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:

  • If the file wasn't submitted, tell the student so, and give the student a secret number to put in it. Ideally, this would be a different number for each student. Here's a way to turn a userid into a number:
    (echo "a string that should be customized each term"; echo $userid) | md5sum - | cut -c-9 | tr 0a-f 1-7
    [The above ensures there are no confusing leading 0s in the number by replacing all 0s with 1s, and hex digits a-f with 2-7.]
  • If the file was submitted, and does not contain the secret number, let them know, and tell them the secret number again.
  • If the file was submitted, and it does contain the secret number, then this particular component has been passed.

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.
Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r6 - 2018-09-05 - YiLee
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback