Distributed and Mobile Programming Paradigms

Printer-friendly version

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.

Assistant Florian Myter
Room 1E.05 (Mac room)
Time Slot 2st Semester, Tuesday, 16:00 - 18:00
Communication

Via PointCarré

Material

IdeAT Eclipse plugin which already contains the AmbientTalk interpreter.

AmbientTalk tutorial and language reference

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.