CMSC 15200
Introduction to Computer Science 2

General information

Section 1
Instructor:Pedro F. Felzenszwalb
Email:pff (at)
Lecture:MWF 9:30-10:20 Ryerson 276
Lab:W 3:30-4:50 JRL A 01C

Section 2
Instructor:Robert C. Kirby
Email:kirby (at)
Lecture:TTh 12:00-1:20 Ryerson 251
Lab:T 4:30-5:50 JRL A 01C

Lab TA
Kenneth Harris
Email: kaharris (at)

Bradley Boven
Email: bboven (at)
Office hours: Monday and Thursday 1pm-2pm in Ryerson 178.
Catalin Dumitrescu
Email: cldumitr (at)
Office hours: Tuesday and Wednesday 6pm-7pm in the CS Lab.


An introduction to computer science using the C++ programming language.

Grading will be based on weekly homeworks (40%), lab participation and performance (20%) and two exams (20% each).

Textbook: Data Structures and Algorithms in C++ by Goodrich, Tamassia and Mount.


Approximatelly one week in each of these topics:

1. Types, Operators, Expressions.
2. Control flow, Functions, Templates.
3. Classes, Encapsulaton, Intro to data structures.
4. Vectors, Lists.
5. Trees.
6. Priority queues, Sorting.
7. Dictionaries, Hashtables.
8. Graphs, Representations and algorithms.


The Lab webpage has information about the computer lab and links to lots of useful material.

There is a mailing list for the class, you should join here.

Example code from section 1 lectures can be found here.

Example code from section 2 lectures can be found here.

Tree Implementation Code (02022k5 Lecture)


How to submit homework assignments:
You must be logged on to a department machine.
Put the relevant files in a directory and type "hwsubmit [classname] [directory]".

Homework 1, due Thursday January 13.

Homework 2, due Friday January 21.

Homework 3, due Friday January 28.

Homework 4, due Thursday February 17.

Homework 5, due Wednesday March 2.