Assignment Zero
Many courses, particularly 1A-targeted courses, have an assignment 0, the goal of which is to familiarize students with assignment submission procedures, course policies, etc.
Useful "Questions" on an Assignment 0
Student.cs account setup
This is particularly useful for first-term students, so they have accounts setup to read e-mail (for example, from the public tests), and are able to use the lab machines. There are often a list of instructions provided (
TODO: find and post a sample of these) so students can verify everything is correctly set up, and can know where to find assistance if it is not. E-mail reading is particularly important, and setting this up should be emphasized in particular as part of general account setup.
Familiarization with Submit
Assignment 0 can help students get used to the use of the submit command and/or the Odyssey web front end. For CS majors, it is important to familiarize students with
both systems, as there is generally less sympathy when there is a last-minute Odyssey meltdown. For all students, it is beneficial for it to draw explicit attention to the fact that multiple submissions are possible; we want to encourage submitting early and submitting often.
One way to do this is to require a file that is not mentioned by name in the assignment specs be submitted. The instruction would be for students to read through the output of the submit command, find the file that has not yet been submitted, create a file with that name, and then resubmit the assignment.
Use of Public Tests
For courses that offer public tests, students should be strongly encouraged to make use of them. This can actually be made a
requirement on assignment 0.
One way to do this is to require that the contents of a particular file contain a particular key unique to each student (possibly the result of hashing a string containing predetermined text and the student's userid). The options are then either to reject any submission of this file not containing the proper text (via submit's
file filter option), or to have one of the tests in the public tests report success or failure depending on the content of this file.
The following algorithm was suggested by Ian Goldberg for an offering of CS 135:
See
BitterSuiteVerifyingUseOfPublicTests for a
BitterSuite implementation of this.
Use of Course Newsgroup / Message Board
One of the requirements can be that all students download any appropriate software and then [[make a post to the course newsgroup, message board, etc. This way, students are both aware of the forum and aware of how to use it before the difficulty of the course picks up.
In the case of the newsgroup (and possibly the message board, depending on the software),
it is possible to automark this as well. If there's a requirement that students post using their (student.cs.|)uwaterloo.ca addresses, then a program can be written to crawl the newsgroup (or a particular thread of it), and grab all of the userids that have made posts.
Acknowledging the Academic Integrity rules
This assignment can also provide a reminder of the cheating/excessive collaboration policies of the university and the faculty of mathematics. Methods include signing a printed sheet of paper or electronically submitting an acknowledgement. The latter
has been implemented in BitterSuite.
Surveying Students
A survey can also be provided for the students to answer, for example to help
determine the background knowledge of the students in the course.
Mark Weighting
As A0 does not directly related to course content, there is a very strong argument for making this worth 0 marks. The downside of this is that students frequently do not do course work that has no mark credit attached, and will then run across difficulties later in the course which would have been solved by doing A0.
There are two common alternate approaches:
- Completing the assignment is worth a small amount of positive marks. One scheme could be, for a course which weights assignments as 20% of the final mark, to make A0 worth 0.5%, and assignments 1 through 10 worth 1.95% each.
- Not completing the assignment is worth a small number of negative marks. These may be distributed in a way to reduce the negative impact for partially completed work. For example, if there are four components, the marks may be -1 for doing zero components, -0.5 for doing one, -0.25 for doing two, -0.1 for doing three and 0 for doing four.
The Fall 2009 offering of CS 135 used a different approach which forced students to complete assignment 0: no submissions of any other assignments were accepted until assignment 0 had been completely finished, and this was be enforced by a custom submit file_filter. This filter combined the features of
FileFilterSubmitMethodCheck and
FileFilterRequiringAssignmentZero into one script.