COMP-409: Concurrent Programming
School of Computer Science
Note: Please see MyCourses for course materials, assignment submission, and announcements.
Monday, Wednesday: 10:05 - 11:25
Please consult Minerva for
the most up-to-date scheduling & classroom location information.
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
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:
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.
- Maurice Herlihy and Nir Shavit. The Art of Multiprocessor Programming. Revised First Edition (2012).
This is the main, required text for the course.
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.
A detailed syllabus is available here.
3 Assignments: 40%
2 Midterms: 10%
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 1 description is available here. The test file is here.
- Assignment 2 description is available here.
- Assignment 3 description is available here. The DFA example is here, and the openmp example is 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
http://www.mcgill.ca/integrity 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.