Most of the course materials are available on this site using the links in the navigation bar.
Announcements are being made using Canvas. Make sure that you configure your Canvas account settings so that announcements will be emailed to you immediately; see Problem Set 0 for details. You can also find the archive of all of the announcements here.
Midterm exam
distance_exams@extension.harvard.edu
Final exam
distance_exams@extension.harvard.edu
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 April 26, 2024.