All assignments must be done individually, unless the assignment is explicitly designated as a group assignment. All members of a group receive the same grade (no exceptions). Only one member of a group submits the assignment. The instructors/staff do not arbitrate group disputes; group members must handle any and all problems. A group assignment may be done individually, but it must be understood that the amount of work is significantly greater and no extra marks are given for this additional work.
Review the Assignment Guidelines and C++ Coding Guidelines before starting each assignment. You will lose marks if these guidelines are not followed.
| # | % | Topics | Assignment Material | Due Date | TA |
|---|---|---|---|---|---|
| 1 | 6 | exceptions, semi-coroutines | comments | ||
| 2 | 6 | full-coroutines, tasks | comments | ||
| 3 | 6 | locks, mutual exclusion, synchronization | comments | ||
| 4 | 6 | monitors | comments | ||
| 5 | 6 | tasks, communication | comments | ||
| 6 | 10 | administrators, futures, (group of 2) | comments |
Assignment submission is electronic. Use the submit command to electronically copy assignment files to the course account:
submit cs343 N dir where N=1..6
Verify files submitted against expected files. Check time stamps and sizes to be sure you have submitted the correct versions. Note *.txt files over 500 lines in length are automatically rejected by submit.
After submitting an assignment, you can verify if your makefile is correctly formed. Select the assignment number and press the button to start the request.
This facility checks you have:
Tests are run and results emailed to the specified userid every 5 minutes. Delays can occur if email is backlogged or if the system is heavily loaded.
If you are currently using a late, it is not included in the count.
You have two weeks from when an assignment is handed back to see the TA who marked the assignment and get any mark appeals dealt with. The list of TAs and their office hours are located under Teaching Assistants.
Note: The entire assignment is examined when remarking; therefore, the assignment grade could receive a lower mark than the current mark.
To facilitate file sharing on group assignments, UNIX provides a sharing mechanism based on a named group of userids. The group name can then be associated with files (see chgrp) along with specific file permissions (see chmod). All users associated with the group name can then access these files, modulo the specific file permissions set for each file.
To obtain a UNIX group:
uwuserid1 uwuserid2Make sure the file is only two lines in length, only UW userids are present (do not include @student.cs.uwaterloo.ca after the userid), and there is a newline at the end of each line rather than a ^M (see man dos2unix).
submit cs343 group .which only accepts group.txt.
Approximately every 4 hours, the group names are generated and emailed back to the submitter.
Note, the project submission also includes the file group.txt but this time the file is so the TAs know who gets the grade for the assignment.
Assignments must compile and run on one of the linux.student.cs computers. See CPU/Applications Hosts for a complete list of server computers.