HARVARD UNIVERSITY
SUMMER SCHOOL
CSCI S-111

home

course details
     schedule
     staff
     syllabus

materials
     lectures
     sections
     assignments
     solutions
     resources
     Piazza

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

Announcements

June 23
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.

Welcome!
The first lecture will be held on Monday, June 23 in Maxwell-Dworkin G115. 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

Description
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.

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

Prerequisites
Familiarity with precalculus. No prior programming experience is required.

Requirements and policies
See the syllabus

Textbooks
  • 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.