CMPSCI 187: Programming With Data Structures

David Mix Barrington

Fall, 2011

This is the home page for CMPSCI 187. CMPSCI 187 is the second course in programming for undergraduate computer science majors and deals with the design, use, and analysis of important data structures, implemented in Java.

Instructor Contact Info: David Mix Barrington, 210 CMPSCI building, 545-4329, office hours for Fall 2011 Monday 11-12, Tuesday 3-4, Wednesday 2:30-3:30, and Thursday 11-12. I generally answer my email fairly reliably.

TA Contact Info: Bobby Simidchieva,, office hours Thursday 2:30-3:30, Navin Sharma,, office hours Wednesday 11:00-12:00, and Hannah Blau,, (no office hours for rest of the term). TA office hours are in LGRT 223 (changed as of 15 September) -- mine are in my office.

The course is primarily intended for undergraduates in computer science and related majors such as mathematics or computer engineering. CMPSCI 121 (an introduction to Java programming) is a prerequisite. There is no formal mathematics prequisite but readiness for MATH 131 (Calculus I for scientists and engineers) is recommended.

The course meets for three lecture meetings a week, Monday, Wednesday, and Friday, at 1:25-2:15, in Hasbrouck 134. (This room is near the north end of Hasbrouck.)

There is one discussion meeting per week, meeting on Wednesday morning. There are two separate discussion sections, each to be led by one of the TA's. Each section meets in ELAB 323 (on the west side of the building), Section 1 from 10:10-11:00 and Section 2 from 9:05-9:55. Most discussions will have a written assignment which you will carry out in groups, chosen randomly at the beginning of each discussion. Discussion attendance is required, so that missing a discussion will incur a grade penalty. It is intended that the two discussion sections be as interchangeable as we can make them.

The textbook is the third edition of Java Software Structures by Lewis and Chase (Addison-Wesley, ISBN 0-13-607858-3). The first and second editions of the book are substantially different and will not do. Lectures will follow the book fairly closely (especially after the first few weeks) but I will also make slides from the lectures available on this site.

The Lewis and Chase book is not a Java language manual. There are a variety of ways to get information about the Java language -- two I like are the official API's for the language and the very inexpensive book Java Precisely by Peter Sestoft. Java Precisely is intended more as a reference for people who already know the language, but it has both all the details you aren't likely to ever memorize and a very clear definition of exactly what the language is and what it does.

Announcements (27 December 2011):

Last modified 27 December 2011