course details

Computer Science S-111
Intensive Introduction to Computer Science Using Java


The first lecture will be held on Monday, June 22. For more information, consult the syllabus or contact Dr. Sullivan.

Please check this page regularly throughout the semester for announcements and course materials.

Course Information

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.

The course provides complete coverage of the syllabus for the advanced placement examination in computer science. It also covers most of the topics in the Harvard Extension School courses CSCI E-10a, CSCI E-10b and CSCI E-22 (formerly E-50a, E-50b, E-119). Relative to Harvard College courses, it includes a substantial fraction of CS 50 (although that course uses C, not Java), along with some topics from CS 51 and CS 124.

David G. Sullivan, Ph.D.
Senior Lecturer on Computer Science, Boston University
see the staff page for contact info.

Familiarity with precalculus. No prior programming experience is required.

Requirements and policies
See the syllabus

  • Building Java Programs by Stuart Reges and Marty Stepp (Addison Wesley, 2013). We will be using the third edition of this textbook (ISBN 978-0133360905); copies are available at the Harvard Coop. If you don't expect to need the book after the course is over, you can lease a cheaper electronic version of the book at http://www.coursesmart.com/978-0133360905
  • Computer Science S-111 coursepack. Information about how to obtain it will be given during the first lecture.
  • Optional readings will be also given from the following book:
    Data Structures & Algorithms in Java, 2nd edition by Robert Lafore (SAMS Publishing, 2003, ISBN 9780672324536). This book is not required, but you may find it useful to purchase it. It will be available for purchase at the Harvard Coop, and it will also be on reserve in Grossman Library.