Note from June 29, 2020
Although we do not yet know how long the social distancing related to the Covid-19 pandemic will last, and regardless of the changes that had to be made in the evaluation of the June 2020 session in relation to what is provided for in this learning unit description, new learnig unit evaluation methods may still be adopted by the teachers; details of these methods have been - or will be - communicated to the students by the teachers, as soon as possible.
Although we do not yet know how long the social distancing related to the Covid-19 pandemic will last, and regardless of the changes that had to be made in the evaluation of the June 2020 session in relation to what is provided for in this learning unit description, new learnig unit evaluation methods may still be adopted by the teachers; details of these methods have been - or will be - communicated to the students by the teachers, as soon as possible.
5 credits
30.0 h + 30.0 h
Q2
Teacher(s)
Van Roy Peter;
Language
English
Main themes
- Concurrent programming paradigms (including shared state, message passing, deterministic dataflow)
- Major programming concepts (including lazy evaluation, nondeterminism, agent, lock, monitor, transaction, deadlock, higher-order programming, compositionality)
- Reasoning and design techniques for concurrent programs
- Practical applications in several areas (including digital logic simulation, lift control, transaction management)
Content
- Concurrent programming paradigms (shared state, message passing, declarative concurrency)
- Major programming concepts including function, object, class, abstraction, instantiation, inheritance, state, encapsulation, concurrency, dataflow, lazy evaluation, nondeterminism, agent (active object), lock, monitor, transaction, deadloc, higher-order programming, compositionality, etc.
- Design and reasoning techniques with different paradigms for building correct programs
- Practical applications in several domains (for example, simulation of digital logic circuits, lift system control, transaction manager).
Teaching methods
- Lectures each week
- Practical sessions in the computer room every week, to solve simplified problems using concepts explained during the lectures
- Design and programming project to apply these concepts in a more complex application
Evaluation methods
- Dispensatory test 25% (around week 7)
- Project 25%
- Final exam 50% (or 75% if redoing test part)
Other information
Prequisite:
- Second-year programming course Informatique 2 (LFSAB1402) or equivalent.
Online resources
LINGI1131 Moodle: https://moodleucl.uclouvain.be/course/view.php?id=1824
Bibliography
Peter Van Roy et Seif Haridi, Concepts, Techniques, and Models of Computer Programming, MIT Press, 2004
Teaching materials
- Concepts, Techniques, and Models of Computer Programming
Faculty or entity
INFO