Schedule

Lectures: Halligan Hall 108 (Wed 6:00pm – 8:15pm) 

Lab: Halligan Hall 116, 118 (Wed 8:15pm – 9:30pm)

Note: The following schedule is tentative and
can be subject to change depending on specific circumstances.

Date

Topic

Lab

Suggested Readings

May 25

Introduction, The world of C++, part 1

 

1. Code
Notes: Intro to C++, part 1
 

2. Code
Nodes: Intro to C++, part 2
 

3. Code
Notes: Intro to C++, part 3
 

4. The
World of C++, part 1 

5. C++
classes and objects

May 25

The world of C++, part 2

Lab 0

1. Pointers
and Arrays
 

2. C++
streams

3. The
World of C++, part 2 

4. Pointers
in C++ 

5. Quick
Emacs Reference 

6. Debugging
in 
Emacs

7. Drozdek 1.4-6

Jun 1

The world of C++, part 3

 

1. Inheritance
in C++ 

2. C++
Inheritance
 

3. Review
questions — C++
 

4. Code
Notes: Intro to C++, part 4
 

5. Code
Notes: Intro to smart pointers

Jun 1

The world of C++, part 4

Lab 1

1. Solution
to Lab 0
 

2. Lab 1

3. Drozdek 1.3

Jun 8

Linked Lists, part 1

 

1. Linkedlists
– Pat Morin
 

2. Section
4.1.2-5 from Shaffer’s book 

3. Code
Notes: Singly Linked List

4. Drozdek 3.1-3

Jun 8 

Linked Lists, part 2

Lab 2

1. Solution
to Lab 1
 

2. Lab 2

Jun 15

Stacks, Queues,

Recursions, part 1

(Homework 1 due)

 

 

1. Stacks:
Weiss section 3.6

2. Queues: Weiss
section 3.7

3. Recursion: Weiss
section 1.3

4. Code
Notes: Stack
 

5. Code
Notes: Queue 

6. Exercises
on Linked-lists/stacks 

7. Solution
to Homework 1

8. Drozdek 4.1-2

Jun 15

Recursions, part 2

Lab 3

1. Solution
to Lab 2
 

2. Lab 3 

3. Exercises
on Recursion

4. Drozdek 5.1-3

Jun 22

Complexity of Algorithms

 

1. Growth
of functions
 

2. Sorting: Weiss
section 7.1-2

3. Sorting:
Shaffer section 7.1-2

Jun 22

Introduction to searching and sorting

Lab 4

1. Solution to
Lab 3
 

2. Lab 4

 

3. Solution
to Homework 2

4. Drozdek 2.1-7

Jun 29

More on Sorting

 

1. Sorting: Weiss
section 7.1-2

2. Drozdek 9.1

Jun 29

Binary trees

(Homework 2 due on Jun 28, 11:59pm)

Lab 5

1. Binary Trees:
Drozdek 6.1-2

2. Trees: Weiss
section 4.1-3

3. Trees: Shaffer section 5.1-4 

4. Solution to
Lab 4
 

5. Lab 5

Jul 6

Binary search trees

(Homework 3 due)

1. Solution
to Homework 3

2. Drozdek 6.3-6

3. Exercises
on complexity and BSTs

Jul 6

Tree traversals

Lab 6

1. Solution to
Lab 5
 

2. Lab 6

3. Drozdek 6.8

Jul 13

Sorting algorithms,

Splay trees

 

 

1. Shaffer
section 7.4-6 

2. Sorting: Weiss
section 7.5-7

3. Mergesort and
Quicksort

4. Drozdek 9.3.3-4  

5. Splay
trees: Shaffer section 13.2.2

Jul 13

Merge Sort

(Homework 3 due on Jul 12, 11:59pm)

Midterm quiz

1. Solution to
Lab 6
 

2. Midterm quiz

Jul 20

Quick sort,

 

1. Trees
and Graphs
 

2. Graphs
intro: Shaffer section 11.1-3 

3. Weiss section
9.1-3

4. Drozdek 8.1-2, Drozdek 9.3.2

Jul 20

Heaps (Priority Queues)

Lab 8

1. Graph algo:
Shaffer section 11.4 

2. Solution to
Lab 7
 

3. Lab 8 

4. Drozdek 8.3-4,
8.6-7

Jul 27

Hashing 

(Homework 4 due on Jul 26 at 11:59pm)

 

1. Shaffer
section 9.4 

2. Weiss section
5.1-4

3. Drozdek 10.1, 10.2

Jul 27

Graphs

Lab 9

1. Weiss section
12.4

2. Solution to Lab
8

3. Lab 9

4. Drozdek 13.1.8, 8.3-4

Aug 3

Old Midterm Review

(Homework 5 due on Aug 5 11:59pm)

1. Midterm review questions

2. Midterm
questions
 

3. Midterm solution 

Aug 3

Final
Review

1. Final
review questions
 

2. Solution to Lab 9

Aug 10

Final exam  

(Homework 6 due on Aug 12, at 11:59pm)