Official course description:

Full info last published 7/06-19
Course info
Language:
English
ECTS points:
7.5
Course code:
BSMODIS1KU
Offered to guest students:
no
Offered to exchange students:
Offered as a single subject:
no
Programme
Level:
Bachelor
Programme:
BSc in Software Development
Staff
Course manager
Associate Professor, Head of study programme
Teacher
Part-time Lecturer
Course semester
Semester
Efterår 2019
Start
26 August 2019
End
31 January 2020
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract

This course teaches the theoretical and practical foundations for distributed computing.

Description

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.

The student will gain  theoretical and practical experience in concurrency and distributed computing. 

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.

Formal prerequisites

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 MSc programme Software Design or the first year of the BSc in Software Development.

Intended learning outcomes

After the course, the student should 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
  • Implement distributed, and mobile systems in practice with the help of the above techniques
Learning activities

Lectures, exercise sessions, mandatory exercises and mini-projects. Exercises will emphasise theoretical work, mini-projects implementation work. Mandatory Activities 3 mini-projects, 3 mandatory exercise sets; all submitted in groups. All 6 mandatory submissions must be approved in order to be eligible for the exam. Deadlines will be listed on the course page. If your submission is not approved, you may resubmit. See deadline on the course page

Mandatory activities

3 mini-projects, 3 mandatory exercise sets; all submitted in groups. All 6 mandatory submissions must be approved in order to be eligible for the exam. Deadlines will be listed on the course page. If your submission is not approved, you may resubmit. See deadline on the course page. 

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

Course literature

The course literature is published in the course page in LearnIT.

Ordinary exam
Exam type:
C: Submission of written work, external (7-trinsskala)
Exam variation:
C: Submission of written work
Exam description:

The examination is a written 30-hour take-home exam





reexam
Exam type:
C: Submission of written work, external (7-trinsskala)
Exam variation:
C: Submission of written work
Exam description:
The examination is a written 30-hour take-home exam, with no oral examination.
Immediately after the submission deadline, the examination office randomly select 10% of the participating students to undergo an inspection  for examination fraud. The exact time and room for the inspection are published on the course´s LearnIT page together with the names of the selected students. Students must come to ITU for the inspection. 
Time and date