• (12 Sep 2014) Review Session Posted:  The video for the C++ review session is online here.
    The files we used are in this zip file.
  • (5 Sep 2014) Pre-lab #1 posted:  I have posted the pre-lab for the first lab session, and you need to complete it prior to the first lab -- it is relatively short, but it should help prepare you for the lab itself. Labs start on Monday! (September 8)!
  • (5 Sep 2014) Piazza:  If you haven't signed up for Piazza yet, it is because I don't have your email or registration information to do it for you. So, PLEASE go to and sign up as a student in the course. We will have a lot of important information there, and before everyone is enrolled, it is the only way for me to pass out the information.
  • (2 Sep 2014) Lab Assignments:  Lab sign-ups will begin at 6pm on Wednesday, September 3, on a first-come-first-served basis. The lab times will be as follows:
    Mon 6:00pm-7:15
    Mon 7:30pm-8:45
    Tue 10:30am-11:45
    Tue 12:00pm-1:15
    Tue 1:30pm-2:45
    Tue 3:00pm-4:15
    Tue 4:30pm-5:45
    Tue 9:00pm-10:15 (new!)
    Signups will be here: Lab Signup
  • (29 Aug 2014) Information about enrollment (and the waiting list) for COMP 15: Please click here to see updated information about the waiting list for COMP 15, and how to enroll in the course if you meet the requirements.
  • (29 Aug 2014) Anonymous Feedback:  If you ever want to send anonymous feedback to Chris, please do so by going to and fill out the form. If you want a reply (I still won't know who you are), then be sure to ensure that the checkbox for "Allow Chris Gregg to respond privately." is selected.
  • (13 Aug 2014) Textbook Information:  There will be two textbooks (one is free) for the class -- you may choose either textbook, and the readings will be similar, but distinct. I will not be assigning homework from the texts:
  • (13 Aug 2014) The Eclipse IDE:I am strongly encouraging the use of the Eclipse Integrated Development Environment (IDE) for your projects. You can either download and install Eclipse (with C++) to your own computer, and/or you can follow the video tutorial on how to use Eclipse from the homework server. Watching the video will be part of Homework  0 on the first day of class: Setting up Eclipse for a C++ environment
  • (13 Aug 2014) Want to connect remotely and work from home? Click here for instructions: Remote Access
  • (13 Aug 2014) Need a new CS account or to reactivate an old account? Click here: CS Accounts
  • (13 Aug 2014) For general Unix pointers, here is a nice one page reference from Bruce Unix Lab Review
  • (13 Aug 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

  • Section 1: (MoWe 1:30PM - 2:45PM, G+ block) is in Barnum Hall, Room 104
  • Section 2: (MoWe 4:30PM - 5:45PM, K+ block) is in Anderson Hall, Room 253
  • All labs are held in room 116/118 in Halligan Hall.


Chris Gregg direct email:
Bruce Molay direct email:

Graduate Teaching Assistants:
TBA direct email: TBA
TBA direct email: TBA
TBA direct email: TBA

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: Tuesdays and Thursdays, 10:00am-11:30am, Halligan 228C, and by appointment.

In addition, the undergraduate teaching assistants will have many office hours. Click this link for the full schedule. Office hours for the TAs, are in Halligan 118, 116, or 120. Check the doors and/or white boards for details, or log in to Halligan Helper.