McMaster University

CAS 766 Concurrent Programming
Emil Sekerinski

Fall Term 2026-27

Outline

  • The first class is on Tuesday, Sept. 8. Attendance is required for anyone interested in taking this course.

Location & Times

  • The classes are Tuesdays and Thursdays, 9:00 - 10:20. Classes are neither recorded nor streamed. Attendance is mandatory.
  • My office hours are Tuesdays and Thursdays after the class.

Prerequisites

    Familiarity with an imperative programming language and knowledge at the undergraduate level of object-oriented program design, program verification, and formal logic is required. Those without this background are expected to make it up on their own. Familiary with concurrent programming is not essential.

Course Objectives

    Concurrency manifests itself in numerous forms, historically first with operating systems, then with distributed and multi-processor systems, more recently with multi-core processors, SIMD instructions, and GPUs. Besides the practical aspects of efficiency, there exists also a rich theory of concurrency, including models of concurrency and verification. Concurrency can also be a natural way of modelling problems, even if the implementation does not involve parallelism. This course is on the principles, methods, and implementations, with focus on multi-core processors; these promise to increase computational performance while lowering power consumption, an essential issue for small mobile devices up to large server farms.

Essential Reading

Further Reading

Topics

  • Foundations: Algorithmic Notation, Program Correctness, Linearizability, Correctness Proofs, Consensus
  • Basics: Cooperative and Preemptive Scheduling, Synchronization, Atomicity, Mutual Exclusion, Locks and Barriers, Semaphores, Classes, Monitors, Message Passing, Distributed Algorithms
  • Robustness: Exception Patterns, Distributed Fault Tolerance
  • Patterns: Map, Reduce, Fork/Join, Pipeline, Scatter, Gather, Master/Worker
  • Efficiency: Memory Consistency, Lock-free Algorithms
  • Implementations: Multi-core Processors, SIMD Instruction, GPUs
  • Analysis: Model-checking, Static Analysis, Abstraction.
  • Design: Modelling Concurrent Systems.

Generative AI

  • Students are not permitted to use generative AI in this course. In alignment with McMaster Academic Integrity Policy, it “shall be an offence knowingly to … submit academic work for assessment that was purchased or acquired from another source”. This includes work created by generative AI tools. Also stated in the policy is the following: “Contract Cheating is the act of “outsourcing of student work to third parties” … with or without payment.” Using Generative AI tools is a form of contract cheating. Charges of academic dishonesty will be brought forward to the Office of Academic Integrity.
  • Students are permitted to use AI-assisted grammar checkers for their assignments and projects.
  • Students are permitted to use AI-assisted literature search for their project. However, any writing must be their own.

Format and Attendance

  • The lecture will be informal and interactive, based on the instructor's Jupyter notebooks and other sources.
  • Assignments will be posted throughout the course; they may be of different weights.
  • Work on the assignments, revisiting the course material, and work on the project should average to 10 h/week on top of the lectures. However, depending on your background, that may vary significantly.
  • Project presentations are 40 minutes and will be scheduled throughout the course.
  • You are expected to attend all lectures and participate actively.
  • If you miss one lecture without explanation, you will be asked to withdraw from the course.

Evaluation

  • Assignments 50%.
  • Project with Presentation 50%.
  • If you MSAF any grade component, you get an extension.

Project

  • The project report can be in the form of slides. As a report contains more details than are suitable for presentation, the report can contain parts that are skipped in the presentation, placed in an appendix, or attached. The report will be distributed among the participants.
  • A complete report must be provided to the instructor for feedback at least 7 days before the presentation.
  • The report must be posted (on Teams) before the presentation. The grade is based on the report and presentation:
  • Structure: The report has to include motivation, approach, insight, conclusions, and bibliography, depending on the topic.
  • Bibliography:The bibliography must include all consulted resources and must be from original sources. Reddit, as other discussion forums, and Wikipedia, as other encyclopedias, do not count as original sources (unless they are the topic of study).
  • Scope: The work of the report should be thorough and sufficiently ambitious. If in doubt, consult the instructor. If the work includes an implementation, it must be done properly, with documentation, testing, etc.
  • Target:The presentation is judged on how insightful it is for the participants; it is not meant for the instructor. Base the presentation on what was previously covered in the course, and avoid repeating it, though brief reminders are fine; the report can be more self-contained.
  • Appearance: Formatting, layout, grammar, spelling, and use of graphics need to be proper. Slides with too large borders, too large headers, repeating the header, too big difference between smallest and largest font, too much text, using text for what can be described visually, too small labels in diagrams, bitmap images instead of vector graphics, “ascii math” (<=) instead of proper math (≤), no use or too much use of colour, distracting backgrounds, fonts that are difficult to read, too many different font styles or sizes, and too wordy formulations get deductions. Sentences should be concise and precise.
  • Presentation: The presentation must be 40 min ± 2 minutes. Be prepared for questions during the presentation and adjust accordingly. Presentations that run long will be cut off. Avoid an overview slide with a table of contents: engage the audience right away (an overview can be part of the report). Presentations are easier to follow if they include a mix of slides, program executions, videos, etc.; Jupyter notebooks support this mix. You have to project your voice and look at the audience. Rehearse the presentation for timing.

Material and Fees

  • The course notes are freely available on the JupyterHub server. You can use them remotely or download them. While you only need a web browser to access the course notes, you can install Jupyter and extensions on your computer for offline reading of the course notes. All software used in this course is freely available.
  • You are asked to bring a laptop computer for your project presentation. Since the course notes are electronic and interactive, you may use your computer in the lectures, provided that you are not distractive to those around you.

Bibliographies

On-line Elements

    This course uses on-line elements (e-mail, Teams, JupyterHub). Students should be aware that, when they access the electronic components of a course using these elements, private information such as first and last names, user names for the McMaster e-mail accounts, and program affiliation may become apparent to all other students in the same course. The available information is dependent on the technology used. Continuation in a course that uses on-line elements will be deemed consent to this disclosure. If you have any questions or concerns about such disclosure, please discuss this with the course instructor.

Academic Dishonesty

  • Assignments are to be completed individually; they must constitute your own work, and references to all used resources must be given. Details are announced with each assignment.
  • Academic dishonesty consists of misrepresentation of deception, or by other fraudulent means and can result in serious consequences, e.g. the grade of zero on all assignments, loss of credit with a notation on the transcript (notation reads: "Grade of F is assigned for academic dishonesty"), and/or suspension or expulsion from the university.
  • It is your responsibility to understand what constitutes academic dishonesty. For information on the various kinds of academic dishonesty, please refer to the Academic Integrity Policy, specifically Appendix 3. The following illustrates only three forms of academic dishonesty:
    • Submission of work that is fully or partly copied from someone else, or making your work available for copying to others.
    • Submission of work that has been fully or partly obtained from other sources like the Internet.
    • Copying or using unauthorized aids in tests and examinations.
  • All submitted assignments are always checked for similarities.

Conduct Expectations

  • As a McMaster graduate student, you have the right to experience, and the responsibility to demonstrate, respectful and dignified interactions within all of our living, learning and working communities. These expectations are described in the Code of Student Rights & Responsibilities (the “Code”). All students share the responsibility of maintaining a positive environment for the academic and personal growth of all McMaster community members, whether in person or online.
  • It is essential that students be mindful of their interactions online, as the Code remains in effect in virtual learning environments. The Code applies to any interactions that adversely affect, disrupt, or interfere with reasonable participation in University activities. Student disruptions or behaviours that interfere with university functions on online platforms (e.g. use of Avenue 2 Learn, WebEx or Zoom for delivery), will be taken very seriously and will be investigated. Outcomes may include restriction or removal of the involved students’ access to these platforms.

Academic Accomodation of Students with Disabilities

Academic Accommodation for Religious, Indigenous, or Spiritual Observances (RISO)

    Students requiring academic accommodation based on religious, indigenous or spiritual observances should follow the procedures set out in the RISO policy. Students should submit their request to their Faculty Office normally within 10 working days of the beginning of the term in which they anticipate a need for accommodation or to the Registrar's Office prior to their examinations. Students should also contact their instructors as soon as possible to make alternative arrangements for classes, assignments, and tests.

Copyright and Recording

  • Students are advised that lectures, demonstrations, performances, and any other course material provided by an instructor include copyright-protected works. The Copyright Act and copyright law protect every original literary, dramatic, musical and artistic work, including lectures by University instructors
  • The recording of lectures, tutorials, or other methods of instruction may occur during a course. Recording may be done by either the instructor for the purpose of authorized distribution, or by a student for the purpose of personal study. Students should be aware that their voice and/or image may be recorded by others during the class. Please speak with the instructor if this is a concern for you.

Extreme Circumstances

    The University reserves the right to change the dates and deadlines for any or all courses in extreme circumstances (e.g., severe weather, labour disruptions, etc.). Changes will be communicated through regular McMaster communication channels, such as McMaster Daily News, A2L and/or McMaster email.