Assignments
All assignments must be done individually, unless the assignment is explicitly designated as a group assignment. When the course has multiple sections, group members can come from any section. 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.
Please review these guidelines before starting each assignment. You will lose marks if these guidelines are not followed.
# | % | Topics (tentative) | Assignment Material | Due Date |
---|---|---|---|---|
1 | 7 | exceptions, semi-coroutines | assignment, Makefile, q1 code, q2 code, q3 code, q3 executable | |
2 | 7 | semi/full-coroutines, tasks | assignment, Makefile, q1 code, q1 executable (int), q2 code, q2 executable, q3 code | |
3 | 7 | synchronization, mutual exclusion, simple locks | assignment, Makefile, q1 code, q2 code, q2 executables (CBEGIN (int), ACTOR (double)), BargingCheck.h, q3 code, q3 executables (BUSY (NOBARGINGCHECK), NOBUSY (NOBARGINGCHECK)) | |
4 | 7 | complex locks | assignment, Makefile, BargingCheckVote.h, q1 code, q2 code, q3 code, q3 executables (SEM, BAR) | |
5 | 7 | monitors, tasks | assignment, BargingCheckVote.h, q2 code, q2 executables (INTB, AUTO, TASK) | |
6 | 15 | administrator, future (groups of 2) | assignment, soda code, parse configuration file (config.h, config.cc), soda executable, sample soda.config. |
Download
To download files for an assignment use the following command, where D is an assignment number 1-6:
wget -m -np -nd -R 'index.html*' -P D https://student.cs.uwaterloo.ca/~cs343/assignments/D/
Submissions
Assignment submission is electronic. Use the
submit
command to
electronically copy assignment files to the course account:
submit cs343 N directory
# N is assignment number 1..6, directory contains the assignment, e.g., a1
- Submit rejects all text (
*txt
) files > 500 lines in length, where lines > 120 characters are folded into multiple lines. txt
/doc
files must be plain text (ASCII). No "word" documents.- Only one test-documentation file per question.
- Submit early and often (no penalty)!
- Use Compilation Request to ensure your
makefile
is set up correctly. - Use
make
for executing allMakefile
files. - Use
g++
/u++
for compiling programs. - Use only relative paths in includes, not absolute (unless specified otherwise in assignment).
Submission Information
Read the output from submit
carefully, as error messages may appear at the top. Verify files submitted against
expected files. Check time stamps and sizes to be sure you have submitted the correct versions.
Compilation Request
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:
- submitted a
makefile
orMakefile
- submitted all required pieces of code
makefile
works properly with GNUmake
- no compilation errors
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.
Lates
- Assignments are due on the due-date at the time specified on the top of the assignment (usually 22:00).
- 2 assignments may be up to 2 days late; except for the last assignment if due on the last day of classes.
- Short term absences are not accepted as a way to extend an assignment deadline. If you have a medical or personal issue affecting your ability to hand in an assignment or attend an examination, contact the ISC, and accomodations will be made, such as extending the assignment due-date a few days.
- To determine the number of lates used/available press the button. If you are currently using a late, it is not included in the count.
-
Use command-line argument
-tardy
or-t
to submit a late assignment:submit cs343 N -tardy dir
where N=1..6 - An assignment not handed in receives a mark of 0, unless there is a documented reason.
- A copy of the documented reason must be given to the Instructional Support Coordinator.
- The weight of the missing assignment is distributed across the other assignments.
Marking
- An assignment is marked on the following criteria:
- correctness
- documentation
- testing (sometimes optional)
- style and efficiency
- Note, a correctly-working program is only one component of the assignment mark.
- Documentation is very important.
- If you do not hand in testing documentation, testing gets 0.
-
If your
makefile
does not work, or code does not compile, the correctness mark is zero. - If you complete < 50% of the code, other marks are scaled appropriately.
MOSS
MOSS (Measure of Software Similarities) is used to compare student assignments to ensure academic integrity.
Discipline cases involving any automated or partially automated marking system such as Marmoset and MarkUs include, but are not limited to, printing or returning values in order to match expected test results rather than making an actual reasonable attempt to solve the problem as required in the assignment question specification.
Returning and Remarking
- Assignment grades and comments are returned through the MarkUs System.
- You have one week after an assignment is returned to email a mark appeal to the management IA, who will coordinate with the grading TA. The mark appeal must clearly state what you want remarked and the problem in grading. Note, the entire assignment may be remarked, which can result in a lower grade than what was originally received. Small appeals (1 or 2 marks) may be rejected.
Work Environment
Assignments must compile and run on one of the linux.student.cs
computers. See CPU/Applications
Hosts
for a complete list of server computers.