CS 134 - Digital Computation and Communication
An Introduction to Computer Science

Department of Computer Science :: Williams College

Programming Laboratories

Room 217A in Thompson Chemistry (TCL) is the primary lab for CSCI 134. You can do all of the programming exercises on these computers. In addition, the software we will use for this course is freely available on the web if you wish to install it on your own computer.

Lab sessions will be held each week. These sessions provide a time during which your instructor can actively assist you in the development of programs. Lab descriptions will be handed out in advance, and you will be expected to have planned your approach to the assignment before the beginning of lab.

You will submit your laboratory programs electronically. Laboratory programs will be accepted up until 11:00 P.M. on the second night after your lab session. Laboratory programs will not be accepted after the due date, but in computing your grade the lowest score on submitted assignments will be dropped. Therefore, it is to your advantage to submit assignments on time, even if they are incomplete.

Date Title
09/14 Exploring Email Protocols
09/21 A Minimal Email Reader
09/28 An Extended POP Client
10/04 Chatting AIMlessly
  • Use this link to download the MessageMenu project for the BlueJ loop debugging tutorial.
  • If you want to work on this lab outside the CS lab, use this link to download the TOCtools.jar file which contains the TOCtools library. You will need to tell BlueJ to use this file by changing your BlueJ preferences just as required for the squint.jar file.
10/19 TOC to Me
10/26 Recursive Revision
11/02 Digital Image Processing
  • The AllImages.zip file contains sample images you will use in this and some of the following labs.
  • The Camera class provided by Squint does not work correctly with the latest version of Java. To make it work, you have to upgrade to BlueJ 2.5.3 and then downgrade from Java 1.6 to Java 1.5. If you use a Mac, click on the following link to download a version of BlueJ for the Mac which has been configured in this way (and also configured to include the Format button and the GUIManager template).
11/09 You Can Make a Difference
11/16 Huff(man)ing and Puffing
  • The Lab9starter.zip file contains a starter package for the lab.
  • Remember that implementation plans are due in lab.
  • Here is an image that may help you verify the correctness of your implementation of the algorithm to determine the number of bits required to encode an image using a Huffman Code. As explained in the lab handout, this image uses only 5 distinct shades of gray. The ratios of the colors used in this image are 4/13, 4/13, 3/13, 1/13, and 1/13.
11/23 Begin Final Projects
11/30 Work on Final Projects
12/07 Work on Final Projects