ID2010 Programmering av interaktiva system 7,5 hp

Programming of Interactive Systems

  • Utbildningsnivå

    Avancerad nivå
  • Huvudområde

  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

VT19 för programstuderande

Lärandemål

On successful completion of this course the students should be able to:
- recognise and identify the distinguishing properties of a distributed computer system
- describe and use basic computer networking technology, with particular emphasis on TCP/IP
- extend and enhance a given networking Java application, with multiple components and asyncronous interactions
- give examples of loosely coupled ad-hoc systems, consisting of reactive and proactive components.

Kursens huvudsakliga innehåll

The course is divided into three parts:
-distributed systems
-the agent metaphor
-programming with Java
Distributed systems can be distinguished from local (or single-host) systems by properties such as latency, memory access and partial failure and concurrency. These properties and their effects on performance and robustness are reviewed. Design issues related to division of labour, transaction semantics, central- vs distributed functionality, peer-to-peer vs client-server solutions are then treated. Approaches to heterogeneous platforms are touched upon, followed by issues related to small systems, e.g. constraints in terms of CPU, memory, power, network connectivity and GUI real estate. This is followed by a discussion of networking issues like random connectivity, wireless link layers and techniques for discovery and message exchange.
The agent metaphor as an approach to distributed system design is discussed, emphasising on the modelling and creation of systems of autonomous, reasoning, communicating and proactive entities. This raises questions about knowledge and its representations, reasoning, plans and goal-directed behaviour — in isolation and in collaboration with other entities — interspersed with periods of deactivation, hibernation or transport. Implementation issues involve the proper selection and integration of runtime components, e.g. multi-threading, implementations in multiple programming languages and state maintenance.
Two assignments are given, both involving a Java application that is to be extended or completed.

Kursupplägg

Lectures approx. 20 h
Labs (mostly unsupervised) approx. 50h
Seminars approx. 6h

Behörighet

Eligibility for single course students:

  •  Completed documented upper secondary education incl documented proficiency in English and university studies corresponding to 60 credits (hp)/2 years of study.
  • Academic studies corresponding to 180 ECTS (hp) in Information Rechnology/Computer Science/Computer and Systems Sciences.

Litteratur

Preliminary: 

Java Network Programming and Distributed Computing, David Reilly, Michael Reilly

Upplaga: Förlag: Addison Wesley År: 2002

ISBN: 0-201-71037-4

A collection of selected articles:
(1) "A Note on Distributed Computing" by Jim Waldo, Geoff Wyant, Ann Wollrath and Sam Kendall, Sun Microsystems 1994.
(2) "On agent-based software engineering" by Nicholas R. Jennings, Artificial Intelligence 117 (2000) 277-296, Elsevier Science B.V.
(3) The seven deadly sins of distributed systems, S. Muir, First workshop
on real, large distributed systems, USENIX, 2004.

Examination

  • LAB1 - Laborationer, 3,0, betygsskala: P, F
  • TEN1 - Tentamen, 4,5, betygsskala: A, B, C, D, E, FX, F

Course examination is based on labs and a written exam.

Krav för slutbetyg

The grades on the course are A/B/C/D/E/Fx/F.
For a passing grade on the course it is required that all assignments and the exam has a passing grade.

Ges av

EECS/Kommunikation

Kontaktperson

Fredrik Kilander, fki@kth.se, 08-790 40 82

Examinator

Fredrik Kilander <fki@kth.se>

Versionsinformation

Kursplan gäller från och med VT2009.
Examinationsinformation gäller från och med HT2007.