Sections begin today. Section assignments, times, and locations are available using the sections link in the left-hand navigation bar.
Please complete Problem Set 0 ASAP. It will help you to prepare for your work in the course. In addition, you can get started on Problem Set 1, which is available using the assignments link.
The lecture notes for unit 1 – along with a PDF of the full coursepack – are available using the lectures link.
This course is a fast-paced introduction to computer science designed for students who plan to work extensively with computers (for example, engineers, biologists, physicists, and economists), as well as future concentrators who plan to take more advanced courses in the field.
The first half of the course covers foundational programming concepts such as data types, conditional execution, iteration, and recursion. It also explores the key features of object-oriented programming, and the manipulation of data stored in files and arrays.
The second half of the course provides a survey of fundamental data structures for information processing, including lists, stacks, queues, trees, and graphs. It explores the implementation of these data structures using both array-based and linked representations, and it 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.
For more information about the topics this course covers, prerequisites, required textbooks, its equivalent credit in other Harvard schools, and other policies, please see the syllabus.