Assignments
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.
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, q2 code q2 executable, q3 code | |
Family Day, Feb 20 Reading Week Feb 21-24 (Tue-Fri) |
||||
3 | 7 | synchronization, mutual exclusion, simple locks |
assignment,
Makefile,
q1 code,
q2 code,
q2 executables (TYPE=char MIMPL=CFOR,
TYPE=int MIMPL=ACTOR,
TYPE=int MIMPL=TASK),
BargingCheck.h,
q3 code,
q3 executables (BIMPL=NOBUSY BCHECK=NOBARGINGCHECK,
BIMPL=BUSY BCHECK=NOBARGINGCHECK)
Note that the testing script relies upon the presence of files q2mergesort.h and q3buffer.h and will fail if they are not present! |
|
4 | 7 | complex locks |
assignment,
Makefile,
q1 code,
q2 code,
BargingCheck.h,
q3 code,
q3 executables (VIMPL=MC,
VIMPL=SEM,
VIMPL=BAR)
Note that the testing script relies upon the presence of the file q3tallyVotes.h and will fail if it is not present! |
|
5 | 7 | monitors, tasks |
assignment,
BargingCheck.h,
q1 code,
q1 executables (VIMPL=EXT,
VIMPL=INT,
VIMPL=INTB,
VIMPL=AUTO,
VIMPL=TASK)
Note that the testing script relies upon the presence of the file q1tallyVotes.h and will fail if it is not present! |
|
6 | 15 | administrator, future (groups of 2) | assignment, README, lrt starter code, parse configuration file (config.h, config.o), sample lrt.config, PImpl starter code ZIP, lrt executable. |
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.
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).
- 3 assignments may be up to 2 days late; except for the last assignment if due on the last day of classes.
- One additional late was provided to all students to account for short-term 48-hour absences. No additional accommodations will be made for this type of absences.
- Under no circumstances will the group assignment be excused or extended as a result of illness or declared absence. As long as the assignment is handed in, it will be marked as is. The only circumstance under which a group assignment may not be handed in is if ALL group members declare an absence (a special case of this would be that you did the assignment yourself). In that case, the accommodation is an INC in the course, and you will have to do the group assignment in a future term. Note that INCs are never automatic, even in this situation. An INC is only awarded if, based on your performance in the rest of the term (including, in this case, the final exam), the instructor feels you had a strong probability of passing the course.
- 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.
- Use only relative paths in includes, not absolute (unless specified otherwise in assignment).
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.