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 readings and a textbook as a reference. 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.)

    Course slides and videos act as bridge between the theory and the practice (exercises). They are also the primary study guide for the exam. The slides and videos will be made available here on MyCourses for Aalto users.

    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!). There are weekly sessions and exercise rounds, which include also a mini-project in three phases. As the course progresses, a section containing resource for each of the course weeks will be available here on MyCourses.

    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.

    Previous courses

    Substitutes for Courses: T-106.5600 Concurrent Programming and it predecessors.

    Contact

    The main forum for questions related to assignments is the course Zulip. Instructions for joining are on the Week 1 -page.

    If you have administrative queries about the course, contact cs-e4110 at aalto.fi. Do not use the personal email addresses of the course personnel for contacting.