IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Mobile og distribuerede systemer 
Kursusnavn (engelsk):Mobile and Distributed Systems 
Semester:Forår 2010 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:12 
Forventet antal deltagere:25 
Maks. antal deltagere:100 
Formelle forudsætninger:BIn order to participate at this course you must have completed the mandatory programming module on the M.Sc. programme Software Development and Technology or have achieved equivalent competencies elsewhere.
(The programming module normally covers the courses Introductory Programming and a programming project.)  
Læringsmål:After the course you should be able to:

* describe and use fundamental principles and models used in
designing and constructing concurrent, distributed and mobile
systems.

* describe and use basic concepts in concurrent, distributed, and
mobile systems for reasoning about, evaluation of, and designing
solutions to problems in the field. Basic concepts include
threads, race conditions, mutual exclusion, deadlock,
starvation, semaphores and monitors; concurrency control,
transactions, multicast, replication, logical clocks, and name
services; data synchronization, overlay network protocols,
discovery protocols, and modeling frameworks.

* implement concurrent, distributed, and mobile systems in
practice with the help of the above techniques in Java or C#.  
Fagligt indhold:After the course you should have basic knowledge and understanding of
concurrent, distributed, and mobile systems.

Programs of today typically exhibit aspects of concurrency (or parallelism), distribution, or mobility or even all of them. In a concurrent system parts of the programs proceed simultaneously --- for example in different threads or using event dispatching. In a distributed system parts of the system are spread over a number of programs communicating over a network to cooperatively provide a service. The network may be anything from the local network in a building to the entire internet. Finally, in mobile systems the programs do not remain statically connected to each other as they may disconnect, and even proceed while disconnected. The programs may run on mobile devices such as laptops, PDAs, or mobile phones.

Rather than studying specific vendors' tools and frameworks, we will be concerned with the theories that inevitably are the underpinnings of all vendors' solutions. In this course we will study some of the fundamental techniques used when developing programs for concurrent, distributed, and mobile systems. We will do this from a theoretical as well as from a practical point of view. In particular, the techniques are demonstrated throughout the course in the development of a simple game, first it will be implemented on a stand alone machine, then it will be distributed over several machines, and finally it will become mobile.

The course consists of three subject areas:
  • Concurrency: Race conditions lead to critical sections on which threads must be synchronized in order to obtain mutual exclusion. The establishment of mutual exclusion may cause deadlock and starvation. Semaphores and monitors are techniques to obtain mutual exclusion.

  • Distribution: Communication over the network leads to dropped and reordered packets which requires robust request/reply and multicast protocols. Programs need to be able to look up services in the system through name services, and services has to be available, scalable, and fault tolerant through techniques such as replication and transactions. Since programs communicate over a potentially faulty network, it is difficult for them to synchronize on time, leaders, and data consistency. Protocols for time synchronization and logical time, consensus, and data distribution address such issues.

  • Mobility: Mobile devices frequently disconnect and reconnect to the network, creating a dynamic network topology. In dynamic network topologies components needs to be able to discover available services through discovery protocols, and be able to operate without centralised control using peer-to-peer overlay networks. Artifacts of such volatile networks can be studied using /modeling tools/ for analysis and simulation.
 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

This is a 7,5 ECTS course which requires you to spend 10 hours every week on reading, participating in class work and solving exercises. Expect to spend more time if you do not entirely fulfill the prerequisites.

During weekly classes we will discuss the theoretical aspects and practical implications assuming that you have already read the literature for that class - that is, you must read the literature before attending.
Weekly exercises will allow you to work with the topics on your own with the help of a teaching assistant.
For information about the mandatory assignments used on the course, please read about assessment below .

Information om studiestruktur / Information about study structure
Dette kursus er en del af SDT-specialiseringerne Mobile og distribuerede systemer og Pervasive Computing, som du kan finde beskrevet her:
SDT studiestruktur
For at blive cand.it. i SDT skal du bestå SDT's obligatoriske moduler, og gennemføre en 22,5 ECTS specialisering samt to 7,5 ECTS valgfag.

This course is part of the SDT specializations Mobile and Distributed Systems and Pervasive Computing- find them described here:
SDT study structure
In order to graduate as a MSc in SDT, you need to pass the SDT mandatory modules, and also take a 22,5 ECTS specialization and two 7,5 ECTS electives.
 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

Mandatory assignments:

A sequence of mandatory assignments providing practical experience must be solved in student groups. Students are required to submit brief reports on this work, and to participate actively in defending and opposing reports, in order to be eligible for the exams. This implies that you must be present on the day of the report presentations (see the course web pages for the exact date).  

Litteratur udover forskningsartikler:Andrew S. Tanenbaum, Maarten Van Steen: Distributed Systems: Principles and Paradigms, 2nd International Edition. Pearson Prentice Hall, 2007. 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Tirsdag 13.45-15.45 Forelæsning ITU Auditorium 4 (4A60)
Tirsdag 16.00-18.00 Øvelser ITU 4A56, 4A58

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2010-06-07 09:00-13:00 Skriftlig eksamen ITU 2A52, 3A50, 4A54, 4A56 og 4A58
2010-08-20 Mulig dag for reeksamen /Possible date for re-exam Skriftlig eksamen ITU Eksamensform kan blive ændret / Examination form may be altered
2010-08-23 Mulig dag for reeksamen /Possible date for re-exam Skriftlig eksamen ITU Eksamensform kan blive ændret / Examination form may be altered
2010-08-25 Mulig dag for reeksamen /Possible date for re-exam Skriftlig eksamen ITU Eksamensform kan blive ændret / Examination form may be altered