Paradigms of concurrent programming

linfo1131  2019-2020  Louvain-la-Neuve

Paradigms of concurrent programming
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.
5 credits
30.0 h + 30.0 h
Q1

  This learning unit is not being organized during year 2019-2020.

Language
English
Prerequisites
This course assumes that the student already masters the concepts, paradigms and semantics of the programming languages targeted by the course LINFO1104
Main themes
  • Concurrent programming paradigms (shared state, message passing, and declarative competition)
  • Major programming concepts that include function, object, class, abstraction, instantiation, inheritance, state, encapsulation, competition, dataflow, lazy evaluation, non-determinism, agent (active object), lock, monitor, transaction, deadlock, higher order programming, compositionality, etc.
  • Techniques of reasoning and design with different paradigms to design correct programs
  • Practical applications in several areas (eg logic circuits simulation, elevator simulation, transaction manager).
Aims

At the end of this learning unit, the student is able to :

1
Given the learning outcomes of the "Bachelor in Computer science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
  • S1.I5
  • S2.2-4
  • S5.2, S5.4-5
Students completing successfully this course will be able to
  • define precisely and use wisely in medium-sized programs the key concepts of programming;
  • define the main paradigms of concurrent programming (shared state, message passing and declarative competition), with the concepts they contain and the properties they give to programs;
  • explain the relationships (similarities, differences) between these different paradigms;
  • explain the link between programming languages and the main paradigms of concurrent programming;
  • write medium-sized programs in these concurrent programming paradigms.
  • think using abstractions (reason correctly on a system that includes several layers of abstractions, and define new abstractions to simplify the resolution of a problem)
 

The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.
Faculty or entity
INFO


Programmes / formations proposant cette unité d'enseignement (UE)

Title of the programme
Sigle
Credits
Prerequisites
Aims
Additional module in computer science