IT-Universitetet i København
  Tilbage Kursusoversigt
Kursusnavn (dansk):Mobile and Distributed Systems 
Kursusnavn (engelsk):Mobile and Distributed Systems 
Semester:Efterår 2013 
Udbydes, softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Min. antal deltagere:12 
Forventet antal deltagere:30 
Maks. antal deltagere:45 
Formelle forudsætninger:In order to participate at this course you must be able to use all major elements of the Java language for implementing and testing medium sized programs, including threads, inheritance, packages, I/O, streams and serialisation.
These competencies can be obtained by completing the mandatory programming module on the M.Sc. programme Software Development and Technology or the first year of the B.Sc. in Software Development.

Information about the course of study
This course is part of a specialization on the Master of Science in IT, study programme Software Development and Technology. 
Læringsmål:After the course you are expected to be able to:
• describe and use fundamental architectures, principles and models used in designing and constructing mobile and distributed systems.
• describe and use basic concepts in mobile and distributed systems for evaluation and designing of solutions to problems in the field. The areas covered are: Fundamental models and architectures, Networking and Internetworking, Interprocess communication, Remote Invocation, External Data Representation, Web Services and Process-oriented Computing (BPMN), Indirect communication (Group communication and Message/event-based systems), Mobile and Ubiquitous Computing, Android programming, Time and Global States, Coordination and Agreement, Transactions and Concurrency Control, Security, Formal Models of mobile and distribute systems.
• Implement distributed, and mobile systems in practice with the help of the above techniques in Java, JavaScript and Android.
• Read, understand, and modify small implementations of distributed systems in Java, JavaScript and Android with only limited documentation. 
Fagligt indhold: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.

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, from a theoretical as well as from a practical point of view. In particular, the techniques are demonstrated throughout the course in lab assignments.

However, note that this is an introductory course. This means that the course will not make you an expert in any of the above fields, but it will provide the foundation on which to continue with specialization courses or self-study.

The course covers a number of topics, including:
• Communication over the network leads to dropped and reordered packets which requires robust request/reply and multicast protocols.
• Since programs communicate over an open and potentially faulty network, they must employ security, and it is difficult for them to synchronize on time, leaders, and data consistency. Protocols for encryption, authentication, authorisation, time synchronization, logical time, consensus, and data distribution address such issues.
• In order to support changes and evolution of it-systems loosely coupled architectures such as Service Oriented Architecture are employed, as well as process-oriented architectures for combining services in process flows in an adaptable way.
• Mobile and Ubiquitous computing has become widespread with the integration of computers and mobile phones and tablets like Android and iOS. Moreover, sensors based on RFID tags, bluetooth and GPS are becoming widespread – opening for new possibilities for applications such as location awareness, and new challenges for the implementations. 
Læringsaktiviteter:12 forelæsninger og 12 øvelsesgange

Lectures cancelled in week 35 - the course begins in week 36
12 weeks of teaching consisting of lectures, project work in groups of four students, and exercises.
This is a 7,5 ECTS course which requires the average student to spend 12-15 hours every week in the term (including the exam period) on reading, participating in class work, solving exercises or refreshing/training for the exam. Expect to spend more time if you do not entirely fulfill the prerequisites.
During weekly classes we will present and discuss the theoretical aspects and practical implications.
The project work and a few weekly exercises will allow you to work with the topics on your own with the help of a teaching assistant. Both lectures, project and exercises are part of the curriculum and learning activities preparing for the exam. 

Obligatoriske aktivititer:It is mandatory to do the project and hand in a pre-report during the term (date will be given at the lectures) and a final report at the end of the course at the date given by the study-administration. 
Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

The group first gives a 10 minutes presentation of the project and report. This is followed by 25-30 minutes questioning to the report, presentation and curriculum in general. Questions will be asked individually to each group member. Duration in total for each group: 35-40 minutes.  

Litteratur udover forskningsartikler:George Coulouris, Jean Dollimore and Tim Kindberg, Distributed Systems – Concepts and Design. 5th Edition, Published by Addison Wesley/Pearson Education, 2012, ISBN 10: 0-273-76059-9 or ISBN 13: 978-0-273-76059-7 .
Parts of the BPMN 2.0 Specification (available online from OMG)
Online Material on REST, Web Services in Java, WSDL.
Additional online material may be added 
Følgende personer underviser på kurset:
NavnStillingUndervisertypeIndsats (%)
Thomas Hildebrandt Lektor(ITU) Kursusansvarlig 70
Raghava Rao Mukkamala Postdoc(ITU) Underviser 30
Jens Egholm Pedersen Hjælpelærer(ITU) Hjælpelærer 0
Jesper Sandberg Hjælpelærer(ITU) Hjælpelærer 0

Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
Mandag 12.00-13.50 Forelæsning ITU Aud. 1.
Mandag 14.00-15.50 Øvelser ITU 3A12-14
Mandag 16.00-17.50 Øvelser ITU 3A12-14

Eksamen afholdes på følgende tid og sted:
2013-12-16 No later than 2PM Skriftlige arbejder ITU Study Affairs and Programmes 3D wing
2014-01-20 contact course manager Mundtlig eksamen ITU 5A16
2014-01-21 contact course manager Mundtlig eksamen ITU To be announced
2014-01-22 contact course manager Mundtlig eksamen ITU 5A16