COMP-409: Concurrent Programming

School of Computer Science
McGill University
Fall 2014

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

Time and Place

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


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

Teaching Assistants

Zhen Cao
Office: McConnell, room 234
Office hours: TBD



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.


4 Assignments: 40%
Midterm: 10%
Exam: 50%

A supplemental exam (50%) 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.