The first lecture will be held on Tuesday, September 2 from 5:40–7:40 p.m. in One Brattle Square, room 204.
Students can attend in person on campus, participate live online at the time the class meets via web conference, or watch recorded video on demand.
More info is available on the Lectures page, which you can access using the link in the navigation bar. You can also obtain copies of the lecture handouts on that page.
This course is a survey of fundamental data structures for information processing — including lists, stacks, queues, trees, and graphs. The course explores the implementation of these data structures (including both array-based and linked representations) and examines classic algorithms that use these structures for tasks such as sorting, searching, and text compression. Techniques for analyzing the efficiency of algorithms are also covered. The Java programming language will be used to demonstrate the concepts discussed in lecture, and programming problems must be completed in Java. Key notions of object-oriented programming, including encapsulation and abstract data types, are emphasized.
A good working knowledge of Java or another object-oriented programming language. If your background is in another language, you will need to quickly come up to speed with Java, and you may want to consider first taking Computer Science E-10b. You should also consider taking E-10b if you have had little or no prior experience with recursion or arrays.
For a sense of the level of proficiency that is required, we encourage you to review some sample problems.
Last updated on September 2, 2025.