COMP-409: Concurrent Programming

School of Computer Science
McGill University
Fall 2013

Note: Please see MyCourses for course materials, assignment submission, and announcements.

Time and Place

Monday, Wednesday: 10:05 - 11:25
ENGTR 1090
Please consult Minerva for the most up-to-date scheduling & classroom location information.


Clark Verbrugge
Office: McConnell, room 230
Office hours: Monday & Wednesday 11:30-12:30, Friday 11:00-12:00, or by appointment.
Phone: 514-398-2411but don't call me, use email

Teaching Assistants

Zhen Cao
Office: McConnell, room 234
Office hours: Tuesday & Wednesday 3:00-4:30pm


COMP 251 (Data Structures and Algorithms).
COMP 302 (Programming Languages and Paradigms).
COMP 310 (Computer Systems and Organization).
There is a non-trivial programming requirement.


Reference material is available in the following texts:

Course Overview/Objectives

Students will learn the fundamentals of programming for concurrency. This includes both theoretical foundations and practical experience with multithreaded programs. Modern concurrent programming environments will be discussed in detail, and significant programming will be required.
Upon completion of the course, students should have a good understanding of concurrent programming issues, the main constructs used in concurrent programming and how to apply them effectively and correctly. Additionally, students will gain experience with some major theoretical concurrency modelling systems/paradigms.

Course Syllabus

A detailed syllabus is available here.


3 Assignments: 40%
2 Midterms: 10%
Exam: 50%

A supplemental exam (60%) will be held if required.
In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.


Assignments are posted in MyCourses. For convenience, assignment descriptions will also replicated here.

Assignment and Exam Policy

Assignments must be submitted on time. Late assignments will only be accepted in highly-exceptional circumstances and only with written permission of the instructor. No assignment submissions will be accepted after marked assignments have been returned, or after solutions have been discussed in class.

McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures (see for more information).

More specifically, work submitted for this course must represent your own efforts. Copying assignments or tests, or allowing others to copy your work, will not be tolerated. Note that introducing syntactic changes into a copied program is still considered plagiarism.