• (1 Apr 2014) Midterm Answer Key Posted I have posted the answer key here
  • (12 Feb 2014) Chris's Office Hours My office hours are now posted on the website: Wednesday 4:30-5:30pm, and Thursday 10:30am-12:30pm
  • (23 Jan 2014) clang++ change Clang has been updated on the homework server, and is now invoked simply by using "clang++" and not "/usr/bin/clang++". We will update the makefiles to apply this change.
  • (16 Jan 2014) Lab Note: If you submitted a lab request between 2:15AM and 11:30AM Thu morning, then your request was lost. You need to re-submit the request.
  • (15 Jan 2014) Homework note:  Please log in to "" when you compile your programs. The clang++ compiler is only working correctly on that server (it is not working on, and homework is also a humongous server that can handle everyone at once.
  • (15 Jan 2014) Lab Assignments:  Please go to the following web page to request a lab section. Please ensure you do Step 2 if you haven't taken COMP 11! Lab Signup
  • (7 Jan 2014) Textbook Information:  I have been getting a few questions about the textbook -- here is the bottom line: The textbook is going to be for reference only. We won't be assigning any particular work out of the book, but it will help if you want some good examples of the types of data structures we'll be seeing in class. If you find an older edition (2 or 3), that should work, as well. Additionally, there are so many programming resources online these days that you can certainly find the information on the web instead of in the book.
  • (6 Jan 2014) Want to connect remotely and work from home? Click here for instructions: Remote Access
  • (6 Jan 2014) Need a new CS account or to reactivate an old account? Click here: CS Accounts
  • (6 Jan 2014) Want some quick pointers on emacs? Click here: Emacs Reference Card from
  • (6 Jan 2014) Want some quick pointers on vim? Click here: Vim Reference Card found via There is a nice tutorial online located here (Thanks to Marshall for this pointer)
  • (6 Jan 2014) For general Unix pointers, here is a nice one page reference from Bruce Unix Lab Review
  • (6 Jan 2014) Coding styleguide is located here. There is an excellent article about why coding styles matters by Nicholas C. Zakas here

Course Information

This course is intended as an introduction to data structures and more advanced programming techniques. Students will be able to solve real-world problems by reasoning about data structure choices, choose appropriate implementations, and analyze the costs associated with those choices. Students will learn to write, debug, and test large programs systematically. We hope to achieve these goal by presenting higher level concepts in lecture and hands-on computer practices in the lab. The programming assignments will be in C++.

The major topics within the course include: Abstraction, Problems Solving, Software Design, Sequences, Sets, Finite Maps, Linked Lists, Templates, Stacks, Queues, Trees, Heaps, Sorting Algorithms, Graphs, and Hashing, with exposure to complexity and algorithm analysis.

Course Locations

Both section 1 (E+ block, MW 10:30-11:45) and section 2 (I+ Block, MW 3:00-4:15) are located in Barnum Hall, Feinleib Auditorm. All labs are held in room 116/118 in Halligan Hall.


Chris Gregg direct email:
Bruce Molay direct email:

Graduate Teaching Assistants:
Ehsan Ullah direct email:
Jingjie Ni direct email:
Sara direct email:

Contact Info

The fastest way to get a response to a question is through where comp15 has a course page, we will use the page to post questions and answers. The course webpage on piazza is

Office Hours

Professor Gregg's Office Hours: TBA
In addition the undergraduate teaching assistants will have many office hours. Click this link for the full schedule. All office hours, (including professors, graduate TAs, and undergraduate TAs) are in Halligan 118, 116, or 120. Check the doors and/or white boards for details.