Location: MWF 12-1:50pm & 1-1:50pm @ Taylor 200
Instructor: Dr. Heather Guarnera
TA: Tigist Berhe & Ephrathah Gebremichael
Office Hours: See schedule and/or book appointment


This schedule is subject to change. Resources correspond to activities or materials covered during class on the listed day. You are expected to read the assigned chapters (♢) before class. Plicker questions will be based on assigned readings. In-class activities (★) are due by the following class meeting unless otherwise stated. Homework assignments (☆) are listed on the day they are assigned. Videos (╠) are optional; they are supplemental to the assigned reading.

Date Day Topic Resources Assignments
01/10 W Intro [syllabus]
[book access]
♢ Ch. 1.1 - 1.2
[01-slides]
01/12 F Project Discussion - Q&A with Seniors Final Project
01/15 M No Class: MLK Holiday

01/17 W Insertion sort; Analyzing Algorithms ♢ Ch. 2.1 - 2.2
[02-slides]
HW 1
01/19 F Growth of functions ♢ Ch. 3.1 - 3.2
[03-slides]

01/22 M Basic Data Structures
(stacks, queues, linked lists, trees)
♢ Ch. 10.1, 10.2, 10.4
[04-slides]
01/24 W Hash tables & hash functions
due: HW1
♢ Ch. 11.1 - 11.2, 11.4
[05-slides]
[ex: chaining]
[ex: linear probing]
[ex: double hashing]
HW 2
01/26 F Hash tables & hash functions

01/29 M Heaps, priority queues, heapsort ♢ Ch. 6.1 - 6.5
[06-slides]
[viz: max-heap operations, heapsort]
01/31 W Mergesort
due: Project Proposal (Topic & Software Outline)
♢ Ch. 2.3
[07-slides]
[ex: merge-sort]
02/02 F Quicksort ♢ Ch. 7.1 - 7.4
[08-slides]
HW 3
02/05 M Sorting lower bounds; linear sorting
♢ Ch. 8.1 - 8.4
[09-slides]
[viz: counting sort]
[viz: radix sort using base 10]
02/07 W Review
due: HW2
02/09 F Library Workshop

02/12 M EXAM 1 Topics
Page 1 of Exam - Instructions
02/14 W Binary Search Tree (BST) ♢ Ch. 12.1 - 12.3
[10-slides]
[ex: BST insert]
[ex: BST search]
02/16 F Red Black Tree (RBT)
due: Annotated Bibliography
♢ Ch. 13.1 - 13.3
[11-slides]
[ex: RBT insert]

02/19 M Greedy Method ♢ Ch. 15.1 - 15.3
[12-slides]
HW 4
02/21 W Divide and Conquer
due: HW3
♢ Ch. 4.1 - 4.5
[13-slides]
02/23 F Divide and Conquer [master theorem handout]

02/26 M Divide and Conquer
[master theorem handout - solutions]
02/28 W Dynamic Programming ♢ Ch. 14.1 - 14.4
[14-slides]
[viz: 0-1 knapsack problem]
[ex: matrix-chain product]
[ex: 0-1 knapsack problem]
03/01 F EXAM 2 Topics
Page 1 of Exam - Instructions
03/04 M Dynamic Programming


03/06 W Dynamic Programming

03/08 F Dynamic Programming
due: First Draft
due: HW4
due: Writing Center Appointment
03/11 M No Class: Spring Break

03/13 W No Class: Spring Break

03/15 F No Class: Spring Break

03/18 M No Class: Spring Break

03/20 W No Class: Spring Break

03/22 F No Class: Spring Break

03/25 M Graph representation; searches and topological sort ♢ Ch. 20.1-20.4
[15-slides]
[ex: BFS]
[ex: DFS]
HW 5
03/27 W Graphs (continued)
03/29 F Minimum Spanning Tree (MST)
due: Peer Review
♢ Ch. 21.1-21.2
[16-slides]
[ex: Prim]
[ex: Kruskal]
04/01 M Minimum Spanning Tree (MST)
04/03 W due: Intermediate Code

04/05 F Shortest Paths ♢ Ch. 22.1-22.5
[17-slides]
[ex: dijkstra (undirected graph)]
[ex: dijkstra (digraph)]
[ex: DAG]
[ex: Bellman Ford]
04/08 M No Meeting - watch all videos instead, then watch eclipse! [vid: Dijkstra's algorithm + example]
[vid: Dijkstra's algorithm - analysis]
[vid: Dijkstra's algorithm - proof]
[vid: Bellman-Ford Algorithm]
[vid: DAG-based algorithm]
HW 6
04/10 W Shortest paths
due: HW 5

04/12 F EXAM 3 Topics
04/15 M TBA

04/16 T Junior IS Meeting @ 11am - 12pm in Taylor 110
04/17 W TBA

04/19 F Project Discussion
due: Final Presentation, Paper, & Software


04/22 M Project Discussion

04/24 W Project Discussion
due: HW6


04/26 F No Class: IS Symposium

04/29 M Project Discussion

05/03 F Section 2 (1pm section): Final Exam Time 12pm-2:30pm

05/06 M Section 1 (12pm section): Final Exam Time 4pm-6:30pm