CMPSCI 187: Programming With Data Structures

David Mix Barrington and Mark Corner

Fall, 2014

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.

This course uses the Moodle course management system, and many elements of course content are available there, to registered students only. The Moodle main page will be here once it is available, shortly before the start of term.

Instructor Contact Info: David Mix Barrington, 210 CMPSCI building, 545-4329, office hours for Fall 2014 Tue 11-1, Wed 12-1, Fri 2-3 I generally answer my email fairly reliably.

Mark Corner, email here.

TA Contact Info:

If you have a question that either I or any of the TA's might answer, please use the Student Questions forum on the Moodle site.

TA info: Bruno Castro da Silva, Melissa Frechette, Nick Jacek, Gene Levitzky.

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 satisfies the R2 general education requirement. See this page for details on the learning goals of the course and how it meets the criteria for this requirement.

The course meets for two lecture meetings a week, Tuesday and Thursday, at 2:30-3:45, in Morrill II room 131. (This room is at the south end of the Morrill complex, most easily accessed from North Pleasant Street.)

Second section info (Mark's) Also TuTh 2:30-3:45, in 126 Hasbrouck.

There is one discussion meeting per week, meeting on Mondays. There are currently ten separate discussion sections, each to be led by one of the TA's, two each meeting at 10:10-11:00, 11:15-12:05, 12:20-1:10, 1:25-2:15, and 2:30-3:20. Check SPIRE to see which discussion you are in -- with rare exceptions, we want you to go to the one you are assigned. These discussion sections will meet in the CMPSCI computer lab in rooms 223 and 225 of the Lederle Tower (LGRT) -- room 225 is accessible only through room 223. The first discussion meetings were on Monday 8 September.

Most discussions will have a written assignment which you will carry out in pairs, chosen by you at the start of each discussion with the requirement that you may not have the same partner twice in the term. Some assignments will involve use of the computers that are in the lab, with each pair using a single machine. Discussion attendance is required, so that missing a discussion will incur a grade penalty. It is intended that the many discussion sections be as interchangeable as we can make them.

The textbook is the same one used since Fall 2012, the third edition of Object-Oriented Data Structures Using Java by Dale, Joyce and Weems (Jones & Bartlett, ISBN 978-1-4496-1354-9), henceforth called "DJW" 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 DJW 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 (10 November 2014):

Last modified 10 October 2014.