[CS Dept., U Chicago] Courses


CMSC 16100: Honors Introduction to Computer Programming I (Autumn 2003)

Computing Resources

Lab Technique



This course is about concepts, rather than techniques. But it is important to learn good CS laboratory technique, and there is no particular course where we teach it. Different lab technique is appropriate for different types of projects, but there are several techniques that are widely useful, and I will insist on one of them for CMSC 16100:

Version Control with RCS

It is very easy to make little blunders when editing programs, and even textual documents. Use RCS (Revision Control System) to help organize a sequence of versions of each file that you edit. For the future, you should never work on a significant file under Unix without using RCS. RCS saves a complete history of changes to a file, in a convenient form for comparison and backing out of errors. To start:
  1. Whenever you create a new directory in which to work, create a subdirectory named RCS.
  2. Whenever you create a new file by direct editing, check it in to RCS by executing the command ci -l filename. (You don't need to check in for files that are created automatically by a compiler or other translator). You will be prompted for a brief description of the file, or of your recent changes. You may gradually learn how to use this description effectively, but you may just leave it empty and still get most of the benefit of RCS. Type "." or "^D" to end your description.
  3. Whenever you edit a file, check it in again with ci -l filename.
  4. To get a rough idea of what's going on, try ls RCS, rlog filename, rcsdiff filename.
  5. When you get in trouble, learn about the useful features of RCS. Start with man rcs, or info rcs.

On your own initiative, you may choose to use the more advanced, and more complex, CVS (Concurrent Version System) that is built on top of RCS.


Valid HTML 4.0!


Last modified: Wed Sep 24 15:28:12 CDT 2002