Ocaml track: administrative information


Prerequisites

CS 1 is a prerequisite for this course. CS 4 is recommended.

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.

Instructor

The instructor is Mike Vanier (mvanier@cs.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

Lectures will be held on Thursdays at 4 PM in Annenberg room 106, starting April 9th.

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 6 labs, for a maximum total mark of 18. The pass grade is 13/18, which is just above a 2 average. This is a very strict pass threshold! A grade of e.g. 12.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

We have one teaching assistant this term:

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 Ocaml track collaboration policy.

Writing your assignments

Once you have a CMS cluster account the normal place to write your code will be in the CMS cluster itself, which is in Annenberg room 104. You will need to have your card enabled so that the card reader can let you in.

Most of you prefer to write your code in your dorm rooms, and, sadly, most of you run Windows exclusively on your computers. I'd love to persuade you to change that to a dual-boot Windows/Linux machine (or to use Mac OS X with the developers cdrom installed), but failing that, the easiest way to work remotely is to use the freely-available PuTTy program, which will (among other things) act as a terminal into the CMS cluster. Once this is set up, you can log in to the CMS cluster login machine to do your work. However, we prefer that you not do this, since a lot of people use that machine for reading their email and doing routine (non time-intensive) tasks. Whatever you do, don't run a computationally-intensive program (like labs 6 or 7) on the login machine, because that will make it slow down to a crawl and you'll receive nasty emails from people (including me).

A different approach is to use Cygwin, which provides a Linux-like environment on Windows machines, including fully-functional versions of the command interpreter (shell) and emacs. Setting up Cygwin is not for the faint-hearted and will chew up a lot of disk space, but if you get it working, it'll be a great environment for this class.

You could also use an emulator such as VirtualBox, VMWare, or Parallels to run a virtual Linux machine on your home machine. If you do this, you're on your own, but it's not that hard to get going (I've done this successfully with VirtualBox with little difficulty; Ubuntu is a good distribution to run virtually).

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:

    (*** THIS IS ONE OF OUR COMMENTS (ALL UPPER CASE, 3 ASTERISKS AT LEFT).
     ***)

Please don't write your own comments in this style (at least for the duration of this course).

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.

Auditing

We welcome auditors. If we have time, we will grade assignments submitted by auditors. However, this grading has low priority and may not happen (or may not be up to my usual grading standards, or may not be returned promptly).

If course enrollment is high (i.e. over 100 students) we won't grade labs from auditors. You're welcome to come to the lectures and do the labs on your own, but don't expect feedback.