Schedule

Lectures: Halligan Hall 120 (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 Reading

May 25 (Wed)

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 (Wed)

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

Jun 1 (Wed)

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 (Wed)

The world of C++, part 4

Lab 1

1. Solution
to Lab 0
2. Lab 1

Jun 8 (Wed)

Linked Lists, part 1

 

1. Linked
lists – Pat Morin
2. Section 4.1.2-5
from Shaffer’s book
3. Code
Notes: Singly Linked List

Jun 8 (Wed)

Linked Lists, part 2

Lab 2

1. Solution
to Lab 1
2. Lab 2

Jun 15 (Mon)

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

Jun 17 (Wed)

Recursions, part 2

Lab 3

1. Solution
to Lab 2
2. Lab 3 3. Exercises
on Recursion

Jun 22 (Mon)

Complexity of
Algorithms; Introduction to searching and sorting

 

1. Growth
of functions
2. Sorting: Weiss section 7.1-2 3. Sorting: Shaffer
section 7.1-2

Jun 24 (Wed)

Complexity Analysis (Homework 2 due on Jun 26)

Lab 4

1. Solution
to Lab 3
2. Lab 4
3. Solution
to Homework 2

Jun 29 (Mon)

More on Sorting; Binary
Search Trees

 

1. Sorting: Weiss section 7.1-2
2. Trees: Weiss section 4.1-3 3. Trees: Shaffer
section 5.1-4
4. Exercises on
complexity and BSTs

Jul 1 (Wed)

Midterm Review

Review

1. Midterm
review questions (discussed)

Jul 6 (Mon)

Midterm exam (Homework
3 due)

Exam

1. Midterm
questions
2. Midterm
solution
3. Solution
to Homework 3

Jul 8 (Wed)

Splay trees

Lab 5

1. Solution
to Lab 4
2. Lab 5
3. Splay
trees: Shaffer section 13.2.2

Jul 13 (Mon)

Merge Sort and Quick
SortPriority queues (Heaps)

 

1. Shaffer section
7.4-6
2. Sorting: Weiss section 7.5-7 3. Mergesort and Quicksort

Jul 15 (Wed)

Heaps, part 2

Lab 6

1. Solution
to Lab 5
2. Lab 6

Jul 20 (Mon)

Graphs, part 1

 

1. Trees and
Graphs
2. Graphs intro:
Shaffer section 11.1-3
3. Weiss section 9.1-3

Jul 22 (Wed)

Graphs, part 2

Lab 7

1. Graph algo: Shaffer section 11.4 2. Solution to Lab 6 3. Lab 7

Jul 27 (Mon)

Hashing (Homework
5 due)

 

1. Shaffer section
9.4
2. Weiss section 5.1-4

Jul 29 (Wed)

Tries and suffix trees

Lab 8

1. Solution
to Lab 7
2. Lab 8 3.
Weiss section 12.4

Aug 3 (Mon)

Final Review

Review

1. Final review
questions
2. Solution to
Lab 8

Aug 5 (Wed)

Final exam 

Exam

 

 Aug 7 (Wed)

 Homework 4
/Homework 6 due