Course description

This course is a fast-paced and rigorous introduction to computer science. 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, as well as the manipulation of data stored in files and arrays. The second half of the course provides a survey of fundamental data structures 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. Problem sets require a minimum of twenty hours of work each week, including both written problems and programming exercises using the Java programming language. Graduate-credit students are expected to complete additional work. The course includes coverage of the key topics needed for the AP Computer Science A examination. Students who have completed the Harvard Extension School courses CSCI E-10a, CSCI E-10b, CSCI E-22, or CSCI E-50 cannot earn degree credit for CSCI S-111.

Instructors

You may also like