Note: Time markers are meant as a general guideline for how far the average incoming graduate should be, but experience levels here are expected to be wildly varied. Feel free to work faster if you know this material, or spend more time working on things that you haven't seen before, but try to help others that have less experience if you are bored. As an academic, one of your priorities is education: begin with those around you. (If nobody needs help, and you know all of this already, go learn Python or Ruby. If you already know those, figure out a way to make Perl readable.)


1 pm


One of your major duties as a TA will be to try to get students to use the debugger. Under Linux, the standard debugger is gdb. To compile C or C++ programs with debugging information, add the "-g" flag to your compilation options. (Thus, the preferred compilation options to write clean, ANSI standard, debuggable code are "-W -Wall -Werror -pedantic -g").

For this hour, practice using the debugger.



We will be covering usage of our home-grown auto-grader framework. The grader is still in "Beta", so if there are features that don't work, things you feel are missing, or you find anything to be terribly confusing, please send email to Titus ( to have your issues addressed.

We will be grading the Towers of Hanoi assignments that were submitted from yesterday. You can download the archive of these assignments here. Unzip this using the command
tar xfz graderproject.tgz
We will demonstrate how to use the grader at around 2pm. When we are finished, please try to "grade" those assignments according to the following rubric:



Part of our drive toward total archival of student information is that we store grades in a standard fashion. One of the nice things about the auto-grader system is that it allows us to do just that in conjunction with Gnumeric, the powerful GNU spreadsheet tool. Experiment with exporting information into Gnumeric from the grader. You will certainly want to change the "Assignment Name" field under "Options->Configure" within the grader.


1 pm

Intro to Linux / RedHat / The CS Cluster

2 pm

Command Line Stuff

Note: If you have had NO Linux/UNIX experience before, you probably need to read through the introductory material that we have created for the undergrads for their introduction to Linux. Read through that material here

A decent UNIX command reference can be found here. This is probably worth bookmarking.

3 pm

Programming Stuff

The basic tools that you will probably be using are these: