An Introduction to Computer Science | |
Department of Computer Science :: Williams College
Lecture Schedule & Readings
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 ) |