CSCI 134 - Digital Communication and Computation
An Introduction to Computer Science
Home | Lectures | Labs | Homework | Documents | CS Dept | Williams Home

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. Click here for instruction on how to download the course software

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. Unexcused absence from your laboratory section may result in a grade of zero for that week's lab. 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. Click here for the lab submission instructions

Lab TAs

Here are schedule of TA hours, which includes hours for 134.

Lab Grading

Grading will typically be done by evaluating your lab submission based on three sets of criteria: how complete your code is, how well it works, and how clearly it is written. Completeness measures whether you have done a reasonable job of writing instructions to provide the desired functionality, even if the instructions you wrote do not fully work. Correctness measures whether all the desired functionality works as we expect it to. Good style is also an important quality for programs to have; it is essential to make programs readable and understandable. Over the course of the semester we will get pickier about style issues, but it is important for you to get into good habits from the very beginning.

Programming labs will be graded on the following scale:

A+ An absolutely fantastic submission of the sort that will only come along a few times during the semester.
A A submission that exceeds our standard expectation for the assignment. The program must reflect additional work beyond the requirements or get the job done in a particularly elegant way.
A- A submission that satisfies all the requirements for the assignment --- a job well done.
B+ A submission that meets the requirements for the assignment, possibly with a few small problems.
B A submission that has problems serious enough to fall short of the requirements for the assignment.
C A submission that is significantly incomplete, but nonetheless shows some effort and understanding.
D A submission that shows little effort.

Lab Schedule

Date Title

[1] 2/4 Exploring Email Protocols

[2] 2/11 A Minimal Email Reader

[3] 2/18 An Extended POP Client

[4] 2/25 Jabbering Aimlessly

[5] 3/4 Classy Chat

[6] 3/11 Recursive Revision

[7] 4/1 Digital Image Processing
  • The AllImages.zip file contains sample images you will use in this and some of the following labs.

[8] 4/8 You Can Make a Difference

[9] 4/15 Huff(man)ing and Puffing
  • The Lab9starter.zip file contains a starter package for the lab.
  • Remember that implementation plans are due in lab.
  • If you want to work on this lab on your own machine, you may need to update your version of BlueJ to allow Java programs to use more memory. If you using a Mac and downloaded the version of BlueJ from the course website, you should not have to do this. If you obtained BlueJ in some other way, you need to find the bluej.defs file on your machine and change the line that currently reads
    bluej.vm.args=-ea
    to
    bluej.vm.args=-ea -Xms256m -Xmx1536m

[10] 4/15 Steganography

[--] 5/8-9 Final Project --- Boggle
  • The Boggle Starter Project contains the code for the Lexicon class that will provide dictinoary access to your code.