|
Outline
- These pages contain only the course outline and installation instructions
- Avenue is used for all announcements
- jhub2sd3 is used for assignments and course notes, see Avenue
- Lectures start on Tuesday, January 6; tutorials start on Thursday, September 7 and Friday, September 8
Instructor Information:
- Emil Sekerinski
- Office hours: Fridays 1:00 - 2:00 and by appointment, ITB 215
Class times:
- Lectures: Tuesdays, Thursdays, and Fridays 11:30 - 12:20 in HSC 1A1
- Tutorials: As scheduled on Mosaic
- Midterm Test: Friday, February 27, 11:30 - 12:20 (lecture time), CNH 104
- Final Exam: As announced on Mosaic
Format and Attendance:
- The lectures introduce the course material through the course notes. Further study of the course notes is required, but reading in advance is not.
- The tutorials present ungraded practice questions, discuss their solution, introduce the graded assignment questions, and present the solutions to the assignments of the previous week. The solutions to lab questions and assignments are only presented in the tutorials; they are not posted.
- Attendance at the tutorials is required but not checked. Regular attendance to the lectures and tutorials is essential for the successful completion of the assignments, the midterm tests, and the final exam.
- Lectures and tutorials are neither streamed nor recorded.
Course Description:
- Models of concurrency: process algebras, Petri nets, temporal logics and model checking; concurrency as software structuring principle: processes, threads, synchronization mechanisms, resource management and sharing; deadlock, safety and liveness; design, verification and testing of concurrent systems.
- Prerequisite(s): COMPSCI 2C03, 2LC3 or 2DM3, 2ME3
- Co-requisite(s): COMPSCI 2AC3
Learning Outcomes:
Students will be able to ...
- model concurrency problems abstractly and state their desired properties,
- verify the correctness of concurrent algorithms,
- select synchronization and communication mechanisms, like semaphores, monitors, message passing, remote procedure calls, coroutines, and futures for a given problem,
- design a modular solution to stated problems with said synchronization and communication mechanisms,
- test such designs and be aware of the limits of testing,
- detect concurrency errors using tools, like static analysis tools, and programming language concepts, like ownership,
- apply concurrency design patterns to larger problems.
Topics:
- Program Verification and Static Analysis
- Nature of Concurrency, Synchronization and Communication, Processes vs Threads, Safety and Liveness
- Semaphores
- Monitors and Condition Synchronization
- Message Passing over Synchronous and Asynchronous Channels
- Remote Procedure Call and Rendezvous
- Coroutines and Futures
Required Materials and Texts:
- The course notes are freely available on the JupyterHub server; see Avenue for access. They can either be used remotely or can be downloaded. While you only need a web browser to access the course notes, is recommended that you 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 your laptop computer to the labs, midterm test, and final exam. If you do not have a working laptop on the day of the midterm test or final exam, alternative arrangements can be made. Since the course notes are electronic and interactive, you can use your computer in the lectures and labs, but for the purpose of this course only. You must use your computer such that it is not distractive to those around you.
Evaluation
Assignments: 28%
There are 11 weekly assignments; each is introduced in the lab session for which you are registered. Each assignment is worth 3%; the marks are summed up and capped at 28%. That is, if you don't do perfectly on some assignments, you can stil get the full 28% of the assignments; if you simply skip the first assignment, you are unlikely to catch up. If you MSAF an assignment, you get a 3-day extension. Collaboration on assignments is not allowed unless expliclity stated. Late submissions are not accepted.
Midterm Tests: 22%
There will be a 50-minute midterm test. The test will include programming questions similar to those in the assignments. Your best preparation is completing the lab questions and the assignment questions on your own. If you miss the midterm test due to a valid reason (e.g. MSAF), the weight will be shifted to the final exam.
Final Exam: 50%
There will be a two-hour final examination. You must take the final exam. Your best preparation is completing the tutorial questions and the assignment questions on your own.
Program grading:
Programs are automatically tested and manually evaluated; incorrect or partially correct programs do not get any marks. Due to the nature of concurrency, even if your submission passes the provided tests, it may still be incorrect and not get any marks. Poorly written programs, even if correct, may get deductions - it is not the task of the grader to find out what your program does, you have to structure and document it properly.
Generative AI: Use Prohibited
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 state 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.
Academic Integrity
You are expected to exhibit honesty and use ethical behaviour in all aspects of the learning process. Academic credentials you earn are rooted in principles of honesty and academic integrity. It is your responsibility to understand what constitutes academic dishonesty.
Academic dishonesty is to knowingly act or fail to act in a way that results or could result in unearned academic credit or advantage. This behaviour can result in serious consequences, e.g. the grade of zero on an assignment, loss of credit with a notation on the transcript (notation reads: “Grade of F assigned for academic dishonesty”), and/or suspension or expulsion from the university. For information on the various types of academic dishonesty please refer to the Academic Integrity Policy, located at https://secretariat.mcmaster.ca/university-policies-procedures-guidelines/.
The following illustrates only three forms of academic dishonesty:
- Plagiarism, e.g. the submission of work that is not one’s own or for which other credit has been obtained.
- Improper collaboration in group work.
- Copying or using unauthorized aids in tests and examinations.
On-line Elements
This course uses on-line elements (e-mail, Avenue to Learn (A2L), 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.
Conduct Expectations
As a McMaster 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, Teams, Zoom, JupyterHub), will be taken very seriously and will be investigated. Outcomes may include restriction or removal of the involved students’ access to these platforms.
Academic Accommodation of Students with Disabilities
Students with disabilities who require academic accommodation must contact Student Accessibility Services (SAS) at 905-525-9140 ext. 28652 or sas@mcmaster.ca to make arrangements with a Program Coordinator. For further information, consult McMaster University’s Academic Accommodation of Students with Disabilities policy.
Requests for Relief for Missed Academic Term Work
In the event of an absence for medical or other reasons, students should review and follow the Policy on Requests for Relief for Missed Academic Term Work.
Academic Accomodation 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 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.
|