CSCI 136 - Spring 2026

Data Structures

Home | Lectures | Labs | Handouts | CS@Williams

Home

Instructor:Sam McCauley
Email: srm2 at williams dot edu
Office:TPL 304
Office Hours: Mondays: 3:00-4:30 pm, Tuesdays: 3:00-4:30 pm, Fridays: 1:30-2:30pm in TPL 304
Lab Instructor:Lida Doret
Email: lpd2 at williams dot edu
Office:TCL 205
TAs: Andrew Gu, Anne-Sophie Frederick, Edris Yawar, Lily Clemens, Maia Wang, Mike Cao, Ronald Deng, Sofia Agyare, Sophie Wu
TA schedule: Calendar below.   All TA office hours take place in the lab rooms.

Course Description

This course combines work on program design, analysis, and verification with an introduction to the study of data structures. Data structures capture common ways in which to store and manipulate data, and they are important in the construction of sophisticated computer programs. We will use the Java programming language in class and for the assignments.

You will be expected to write several programs, ranging from the short and simple to the more complex and challenging as the semester progressess. Since one of our goals in this course is to help you learn how to write large, reliable programs composed from reusable pieces, we will be emphasizing the development of clear, modular programs that are easy to read, debug, verify, analyze, and modify.

Syllabus & Textbook

The course syllabus is here.

There is no assigned textbook for the course.

Students who want access to an additional—fully optional—textbook are recommended to use use Java Structures by Duane A. Bailey. You can find more information about the book here and a link to the PDF version of the book here.

Course Support Schedule (TAs and office hours)