6 ECTS credits
150 h study time

Offer 1 with catalog number 4016406FNR for all students in the 1st semester at a (F) Master - specialised level.

Semester
1st semester
Enrollment based on exam contract
Impossible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
English
Faculty
Faculty of Sciences and Bioengineering Sciences
Department
Computer Science
Educational team
Elisa Gonzalez Boix (course titular)
Activities and contact hours
26 contact hours Lecture
26 contact hours Seminar, Exercises or Practicals
Course Content

The course studies different programming models and techniques for distributed applications running on mobile hardware. This course takes a programming language based perspective. By means of a distributed programming language introduced in the first lectures, students are acquainted with complex object models, concurrency models, distribution models, service discovery and failure handling techniques. The course then exposes students to reflection and meta-level programming since these techniques have always played an important part in distributed programming. The course shows how these techniques can be used to implement important concurrency and distribution abstractions such as conditional synchronisation, futures, leased references, tuple spaces, peer-to-peer algorithms. The course also teaches a number of fundamental concepts and topics in distributed systems, such as  synchronization, agreement, consistency and replication, and how they can be adapted or applied to a mobile setting. The course assumes basic knowledge of parallelism and distribution.

Course material
Digital course material (Required) : Scientific articles
Digital course material (Required) : Programming manuals
Digital course material (Required) : Scientific articles
Additional info

The study material consists of slides and a number of scientific articles together with the manuals of the programming language in which the project is done. Both slides and articles are made available ahead of time via the learning platform. Sample code used during the lectures can be also downloaded and inspected from the learning platform where relevant. 

Learning Outcomes

Algemene competenties

Knowledge and Understanding: With the advent of wireless networks and portable hardware, distribution and mobility of hardware and software are getting ever more important. One often makes a difference between "mobile computing" and "mobile computations". The former concerns mobile machinery and mobile users. The latter concerns mobility of programs. This course is based on this difference and continues building on student's basic knowledge in parallelism and distribution. The goal is to show students about the possibilities of such systems and to give then the necessary background about the fundamental software technologies associated with distributed and mobile systems.

 

Application of Knowledge and Understanding: Students should be able to apply the knowledge acquired during the course by building a system in a high-level distributed programming language and running it on a mainstream mobile platform, i.e Android.

 

Making Judgements: Because of the fact that this is a research-oriented course, we largely use papers. Students have to be able to judge whether or not the contents of the techniques discussed in the papers are applicable using the current technologies and (conversely) whether or not popular technology meets the standards put forward in the papers.

Communication: Students should communicate clearly about the topics studied. This is done by asking students to submit a written essay about their programming project, and engaging them in a discussion during the project defense and oral exam.

 

Learning Skills: After having completed the course, students should have a research-oriented background that is sufficiently general for them to be able to find their way through the literature of the field. Moreover, the students should have enough technical background to continue the development of distributed mobile software.

Grading

The final grade is composed based on the following categories:
SELF Presentation determines 50% of the final mark.
SELF Practical Assignment determines 50% of the final mark.

Within the SELF Presentation category, the following assignments need to be completed:

  • oral exam with a relative weight of 50 which comprises 50% of the final mark.

    Note: Oral exam

Within the SELF Practical Assignment category, the following assignments need to be completed:

  • programming project with a relative weight of 50 which comprises 50% of the final mark.

    Note: Programming project (implementation + report) with oral defense

Additional info regarding evaluation

The evaluation consists of a combination of an oral exam (50%) and a programming project which needs to be orally defended (50%).

The oral exam aims to test the knowledge and insight of the student with respect to the topics discussed during the lectures. The student is expected to be able to synthesize the most important aspects of the question's topic, and answers questions on the topic and its relation to the other topics studied during the course.

During the year, a detailed project description will be made known with specifications about the end product. The student delivers the implementation of the project together with a brief report justifying made choices and the design. The project defense includes a presentation and demonstration of the project followed by questions on the solution and how it fulfills the specification.

Both oral exam and programming project are equally important. Students have to pass both parts to be able to pass the entire course. Absence in one of them implies absence for the entire course. Partial marks for the exam or project, if the student obtains at least half of the score for this part, are transferred to the second session. Students may not relinquish partial marks.

 

Allowed unsatisfactory mark
The supplementary Teaching and Examination Regulations of your faculty stipulate whether an allowed unsatisfactory mark for this programme unit is permitted.

Academic context

This offer is part of the following study plans:
Master in Applied Sciences and Engineering: Computer Science: Artificial Intelligence (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Multimedia (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Software Languages and Software Engineering (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Data Management and Analytics (only offered in Dutch)
Master of Applied Sciences and Engineering: Computer Science: Artificial Intelligence
Master of Applied Sciences and Engineering: Computer Science: Multimedia
Master of Applied Sciences and Engineering: Computer Science: Software Languages and Software Engineering
Master of Applied Sciences and Engineering: Computer Science: Data Management and Analytics