C track: administrative information


CS 1 is a prerequisite for this course.

You should have a CMS cluster account. To register for an account on the CMS cluster, please go fill out the online form here. If you have not already done so, please do this immediately as it will take some time to process and you will need your account for the first assignment. You need to be at least somewhat familiar with Unix (specifically Linux) to work on the CMS cluster computers; if you aren't then you can read this tutorial at IMSS. The CMS cluster computers are located in room 110 of the Annenberg building; you will need to have your ID card enabled to allow you to use the card reader to get into the room.


The instructor is Mike Vanier (mvanier@cms.caltech.edu). My office is in Annenberg room 110.

My office hours

My office hours are on Tuesdays from 2 to 4 PM in Annenberg 110.

However, feel free to drop in to my office at any time. I'm unlikely to be in in the mornings, but I'm often around fairly late at night. If you need to meet with me outside of office hours, sending me email beforehand is strongly recommended.


Lectures will be held on Wednesdays at 9 PM in Annenberg room 105, starting October 10th.

You will need card access to the Annenberg building if you want to use the CMS cluster computers (in Annenberg 104) after hours. If you don't have this, email me and I will direct you to the people who can make it happen.

Lectures will typically last an hour. Attendance is optional; if you can do the work without lectures, it's fine with me.

Grading policy

The course is pass-fail. Each assignment will get an integer grade from 0 to 3, where the number means the following:

Late assignments will lose 0.5 marks for each day they are late (all the way to zero). You may also redo your assignments (see below).

The specific day that an assignment is assigned will be indicated on the csman page. Usually, it will be on the same day as a lecture. All labs are due at midnight of the due date.

In special cases, I may grant extensions on homework to individuals in special circumstances. The duration of the extension will depend on how compelling the reason for the extension is.

There will be 8 labs, for a maximum total mark of 24. The pass grade is 17/24, which is just above a 2 average. This is a very strict pass threshold! A grade of e.g. 16.5 is a failing grade. If you get that grade without having completed all the labs you don't have to complete the remaining labs, but of course, you'll learn more if you do (and you will need to complete all labs to be eligible to be a CS 11 TA in this track in the future).

In addition, there is a "completion bonus" of 0.5 marks per lab which you get when all labs have been completed with a mark of 2 or more (not counting late penalties). This is a way to compensate for late penalties. However, if you accrue massive late penalties on the first few labs, this bonus may not be enough to save you and you should drop the course. Note that the completion bonus cannot pull your grade above 100%.

NOTE: We will not accept the first submission of any lab later than one week before grades are due. If you are going to try for the completion bonus, do not try to submit labs for the first time the day before grades are due; you will get a zero on the lab and you will not get an E grade on the course! We don't like students trying to game the system.

If you're heading for an F and drop day is near, I will encourage you to drop the course so as not to harm your academic record. Don't count on getting an E; I rarely give E grades (though I will give I grades for e.g. medical problems).

Teaching Assistants

Here are the teaching assistants for this term:

They are all outstanding and we're lucky to have them.

All TA office hours are in Annenberg 104. Knock on the window if you don't have building access after hours, and/or ask the instructor to give you access. If you're not sure who the TA is, just ask!

TA office hours are as follows:

Collaboration policy

Please read this page for the CS 11 C track collaboration policy.

Writing your assignments

The best way to write your assignments is using a VirtualBox virtual machine (VM) pre-loaded with all the course software. Instructions on how to do this are linked from the course home page.

Submitting assignments

Assignments are to be submitted through csman. If you haven't got a csman account, one will be created for you. Grades and comments will be submitted to csman, and you'll be notified by email when your assignments have been graded.

Redoing assignments

We will deduct marks for a variety of reasons, including (but not restricted to) any of the following:

In general, any serious problem will result in a grade of 1 or lower. Less serious problems (e.g. poor formatting) may only result in a grade of 2, but you may want to try to bring this up to a 3. To this end, you are allowed to redo your assignments. The redo system works as follows. You will be assigned a grade based on what the assignment is worth without redos. Once you have received your initial grade, you have one week to submit a redo (or more than one redo). Any redos received in the week after the initial grading will be graded; after that, the last grade is the final grade for that assignment. If your grader gets your redo back to you before the week is up and you still need to make changes, you may submit another redo.

How assignments are graded

We will email you back a copy of your code with in-line comments. Our comments will look like this:


Please don't write your own comments in this style (at least for the duration of this course). For style (code formatting) issues we will sometimes identify the problem via a tag that can be looked up in the c style guide. An example might be:

    /*** STYLE: [STMTS_ON_LINE] ***/
    i = 1; j = 2; k = 3;

which says to look in the style guide for the style violation called [STMTS_ON_LINE]. If you do that you'll see that we don't like to see more than one statement on a line. Poor code formatting is so common that this notation saves us a lot of work, as well as forces you to read the style guide. In addition, there is also a c style checking program which you will use to check the style of your code. This will give you instant feedback in a way that we can't, but it won't catch all style violations. In CS 11, we are very picky about code formatting, so please use the style checker; it'll save you a lot of time.

When we complain about something in your code, we expect you to fix it. Sometimes we'll say something like "this is OK, but a better way would be...". You should fix that too. Ignoring such comments will lead to an automatic redo. If you don't understand what we're asking you to do, email us or come to our office hours -- don't just ignore the comment and hope it'll go away. This applies even for style violations. We're usually fairly lenient about style checking for the first lab, but not after that.

Late adds

If you want to add the course, please fill out the survey on the course Moodle page first. We will be happy to add you as long as you have done this and it's before add day. However, realize that you will be responsible for late penalties on all assignments, even ones due before you added the class, so add sooner rather than later.


We welcome auditors. However, we will not grade assignments from auditors.