EECS 311: General Information

General Information

Teaching Staff


Name: Chris Riesbeck
Office: 3.315, Ford
Phone: 847-491-7279
Office Hours : I am usually available every day. Check my public calendar at Yahoo and email me to set up a meeting time.

Class Schedule

Tech M164
MWF 4:00pm - 5:00pm


EECS 211 or 231. You must be fluent in C++.


In this class, we'll be using the GCC C++ compiler, version 4.x, the UnitTest++ unit testing library, and the Unix make and zip utilities. Instructions on installing and configuring these can be found here.

Textbook and recommended readings

Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss, 3rd edition

The author's web site has errata for the book (most were fixed in the second printing) and source code.

This book assumes a working knowledge of C++. It is recommended that you acquire a C++ reference book. The Association of C and C++ Users has a searchable compendium of book reviews, of varying quality. Search for titles with C++.

Some titles I personally turn to all the time:

C++ gives the programmer great power. But as Uncle Ben told Spiderman: "With great power comes great responsibility." Or, as Steve Haflich has said, "When your hammer is C++, everything begins to look like a thumb." There a zillion ways to do things badly in C++ (and C too), so it's good to have some books on avoiding the traps and pitfalls. The following are particularly good:

Some popular titles are:

Grading and the Code Critic

This course has four programming assignments and two exams, weighted as follows.

Assignments 55% (PA1: 10%, PA2: 15%, PA3: 15%, PA4: 15%)
Midterm 15%
Final exam 30%

You must submit program code to the Code Critic for review, before emailing a final complete package to me for testing.

Course Policies


Extensions, Late submissions

These don't exist because there are no deadlines except the end of the course.

How to do well

This key to Critic-based courses is steady consistent progress. The most common reason for failure is bad time management.

I should be receiving code from you several times a week. If a week goes by with no submissions, you're falling behind. Two weeks and you should think seriously about dropping the course.

Your grade in the assignments is a combination of

A pile of code submitted at the end fails on 2 out of 3 of these criteria.

Besides working steadily:

Valid HTML 4.01 Strict