Concurrent and Distributed Programming


Gerardo M. Sarria M.

Credits: 3

Requirements: Basic knowledge of programming languages, algorithms, data structures and logic.

Time: Saturday, 9:00-12:00 AM


  • To appreciate the convenience of programming declaratively.
  • To get familiar with different types of concurrency.
  • To use concurrency to solve distributed constraint satisfaction problems.


  • Declarative Computation Model
  • Declarative Programming Techniques
  • Declarative Concurrency
  • Message Passing Concurrency
  • Share State Concurrency
  • Concurrent Constraint Programming
  • Distributed Programming


  • First project : 30% (grade * defence-factor)
  • Second project : 30% (grade * defence-factor)
  • Quizzes : 20%
  • Homeworks : 20%


  1. Peter Van Roy and Seif Haridi. Concepts, Techniques, and Models of Computer Programming
  2. Francesca Rossi, Peter van Beek and Toby Walsh. Handbook of Constraint Programming
  3. Andrew S. Tanenbaum and Maarten van Steen. Distributed Systems: Principles and Paradigms

Readings on Concurrency

  1. Abelson and Sussman. amorphous Computing AbSus-paper
  2. Miller, Tribble, Shapiro. E language MiTSha-paper
  3. Edwards Coherent Reaction EdW-paper