Distributed and Mobile Programming Paradigms
About
This course, Distributed and Mobile Programming Paradigms, is part of the Master of Applied Computers Science curriculum organised by the computer science department of the faculty of applied sciences of the Vrije Universiteit Brussel. It is a course organised under the responsibility of Elisa Gonzalez Boix. It is an elective course intended primarily for students in the master programme in Computer Science.
Both tutorials and lab sessions are in English.
The course is organized as a weekly 2-hour tutorial and 2-hour lab sessions during the second semester. Schedule for both sections is provided below.
Each tutorial is a lecture covering part of the lecture notes. Together with the lecture notes, the study material consists of a number of scientific articles posted on Pointcarre. At the lab sessions students put in practice some of the concepts about distributed programming paradigms using the AmbientTalk language. The language is also used for the programming project of the course.
Objectives
With the advent of wireless networks and portable hardware, distribution and mobility of hardware and software is 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 distribution. The goal is to show students about the future possibilities of such systems and to give them the necessary background about the fundamental software technologies associated with such systems.
The course takes a programming language-based perspective and uses AmbientTalk to progressively introduce important concurrency and distribution abstractions such as conditional synchronisation, futures, leased references, tuples and tuple spaces, replication and eventual consistency. The course also teaches a number of modern technological advancements such as RFID-technology, RETE-based context determination and Complex-Event Processing.
More information on the course itself can be found at PointCarré.
Schedule 2015
Date | Week | Topics |
10/02/15 | 22 | Introduction |
17/02/15 | 23 | Basics: Prototype-based Programming |
24/02/15 | 24 | Basics: Concurrent Programming |
3/03/15 | 25 | Distributed Object-Oriented Programming |
10/03/15 | 26 | Meta-level Engineering |
17/03/15 | 27 | Tuple-based models for Mobile Computing |
24,31/03/15 | 28 - 29 | Fundamentals: Coordination and Consensus |
21/04/15 | 32 | Mobile Peer-to-Peer Networks |
28/04/15 | 33 | Complex Event Processing |
5/05/15 | 34 | Mobile Cloud Computing |
12/05/15 | 35 | Reactive Programming |
19/05/15 | 36 | Mobile RFID-enabled Programming |
Lab Sessions Introduction
In each session, students implement a small application or a subset of an application in AmbientTalk. The idea is to incrementally implement the application starting from a skeleton code. The exercises start from the basics of the AmbientTalk language and gradually introduce how to use concurrent and distributed programing abstractions such guards, asynchronous message passing, distributed programming with tuple spaces, and peer-to-peer networks. Students also deploy some of their applications on real devices such as Android phones and tablets.
|
Lab Sessions Schedule 2015
Schedule for the lab sessions. Assignments and solutions will be published before and after each session, respectively.
Date | Week | Subject | Concepts |
10,17/02/15 | 22,33 | First steps in AmbientTalk | Functional, imperative and object-oriented programming, java symbiosis |
25/02/15 | 24 | Internet Café | concurrent programming with actors, future-typed message passing,guards, unit testing |
4/03/15 | 25 | Mobile music player | distributed programming, insight in language support for partial failures, conditional synchronization with futures |
11/03/15 | 26 | First steps in Android | Building first app, building a dynamic UI, Activities and intents, working with AsyncTasks, managing the Activity lifecycle |
18/03/15 | 27 | Flikken in TOTAM | distributed programming with tuple spaces |
25/03/15 | 28 | weScriblle on Android devices | distributed object-oriented programming, language symbiosis with Java and Android |
1,22/04/15 | 29,32 | wePong on Android devices | distributed object-oriented programming, language symbiosis with Java and Android (advanced) |
29/04/15 | 33 | Omnireferences | reflective programming, interception, group communication abstractions |
6/05/15 | 34 | Work on the project | |
13/05/15 | 35 | MaidSafe in Beernet | p2p networks, structured overlay networks, distributed hash tables |
20/05/15 | 36 | Reactive programming in AmbientTalk | distributed event-based programming, reactive programming |
Programming Project
- Project assignment: To be published
- Project deadline: 10 June 2015
- Watch some demos of previous projects here.