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

Department of Computer Science :: Williams College

Lecture Schedule & Readings

The table below gives the topic we plan to discuss in each lecture and the readings associated with each topic. In general, readings should be completed before their associated lecture.

We will add readings and revise the schedule of topics as the semester progresses, so please check this page regularly.

Most of the readings listed below are from the course packet. Students should purchase a copy of the course packet from the Computer Science Department office (room TCL 303).

      Date       Topic Readings Demos/Slides
[1] 09/11 Being Digital Slides on digital encoding (click on image to advance through slides)
[2] 09/14 Encoding in Binary
[3] 09/16 Providing a GUI Interface TouchyButton.java
LoginWindow.java
TouchyButtonAgain.java
FriendlyLogInWindow.java
[4] 09/18 Network Communication in Java TimeClient.java
WHOISClient.java
SMTPClient.java
FriendlyLogInWindowWithPanels.java
[5] 09/21 Huffman Codes for Text Huffman Codes
[6] 09/23 Conditional Execution JustTheMenu.java
PortButtons.java
MidTap.java
BooleanTap.java
[7] 09/25 Transmitting Binary Signals RobustTap.java

Slides on digital transmission (click first slide to start, then use arrow keys to step through the slides)
[8] 09/28 Transmission Delays and Framing Slides on Framing and Delay
[9] 09/30 Processing Strings in Java Slides on String Processing
ModedPopClient.java
[10] 10/02 Iteration FullHouse.java
TextEditor.java
[11] 10/05 Ethernet Operation Slides on Ethernet Operation
[12] 10/07 Java Class Definitions Constructor with Parameter: Combined Email Reader/Sender: Combined Email Reader/Sender with Reply: POP Client with Mail Message Class:
[13] 10/09 Java Class Definitions Address Card Clas and Using HashMaps: POPConnection Class:
[14] 10/14 Ethernet Performance Slides on Ethernet Efficiency
[15] 10/19 Ethernet Performance
[16] 10/21 Recursive Class Definitions WindowMaker (Counting loop, helper methods): BetterSMTPClient (Multiple Constructors for class): SimpleBrowser (Recursion):
[17] 10/23 Recursive Class Definitions WindowListManager (Using a List to implement a Map): Reverse.java
[18] 10/26 Switched Networks Slides on switched networks
[19] 10/28 Internetworking
[20] 10/29 Midterm Exam at 6:15 or 8:00 PM in Physics 203
[21] 11/02 IP Addressing, Forwarding, and Configuration
[22] 11/04 Arrays & Image Manipulation
[23] 11/06 Arrays & Image Manipulation More Image Maniluations useing ImageViewer: Histogram:
[24] 11/09 Arrays & Collections Example of Simple Graphics and Random Number Generators: POP Connection with MessageCollection:
[25] 11/11 Image Compression, Huffman cost \& Inheritance Video Recorder and SlideShow (using ImageCollection):
[26] 11/13 Inheritance Camera Filters:
[27] 11/16 Web Protocols & Standards Slides: HTTP server that counts requests: Program that displays text files using Scanners: Web Server based on DataInputChannel: IM Chat TOC server:
[28] 11/18 Server Programming
[29] 11/20 Routing Algorithms
[30] 11/23 Routing Algorithms & Squint Implementation TouchyButton as shown earlier in the semester: TouchyButton written without using Squint: TouchyButton written without using Squint but to look like Squint version: TouchyButton written by extending a miniature equivalent of GUIManager: TouchyButton written by extending a manager that handles listeners: SMPTClient written without Squint:
[31] 11/30 Transport Protocols & TCP
[32] 12/02 TCP Connections & Retransmission
[33] 12/04 Error Detecting Codes
[34] 12/07 Error Detecting Codes + Understanding Squint and Swing
[35] 12/09 Problem Reductions and Intractability
[36] 12/11 Topics in CS
12/18 Final Exam at 1:30 in TCL 123 Sample final exam ( with solutions )