Topic outline

  • Many modern software system consist of multiple co-operating entities and many of them use heavily various networks, especially the Internet. Such multiprocessing platforms and distributed nature of software makes knowing and mastering concurrent programming a must for any computer scientist. This course addresses such skills and the related theory.

    Material

    The course material includes slides, readings, programming manuals, and a textbook. The course handles issues widely and addresses both practical programming aspects and the theoretical aspects related to the practice.

    • The readings are about the practice. The main body of the readings are programming language documentation (Scala) and the related supplementary material.
    • The textbook is about the theory, which sets the scene for the practice of concurrent programming. (The course textbook is: Mordechai Ben-Ari. Principles of Concurrent and Distributed Programming, 2nd edition. See the Materials section for details.)

    Exercises and the material related to them are very essential (the course is a programming course using Scala 2 as the language). The exercises and the related reading material will be available on the A+ learning platform.

    Learning outcomes and content

    The course addresses concurrent and distributed systems in general and views concurrent and distributed algorithms. The focus of the course is in principles of concurrent programming, synchronization and communication mechanisms.

    Schedule

    The course spans over the 2nd period and is rather intense (allocate enough time for your studying!). 

    • The course operates on a week basis. As the course progresses, a section containing the resources for each of the course weeks will be available here on MyCourses.
    • Details on the assignments and their time windows including the deadlines you can find on A+

    Note that the amount of work you need depends on the grade you are targeting. For a top grade, you will need a lot of work hours.

    Components of the course

    The course consist of two main components

    • the exercises
    • the exam
    Both must be passed to pass the course.

    Requirements and grading

    Doing the exercises and taking an exam are mandatory. The exercises can be done only during the lecturing period of the course. Check the department exam schedule for the next opportunity.