Search this site
Embedded Files
Skip to main content
Skip to navigation
CS 312 - Algorithms [F19]
Home
Schedule
Syllabus
Notes
Notes 01 - administrivia and stable matching
Discussion 1 - learning and stable matching
Notes 02 - stable matchings & running time (big-O)
Notes 03 - asymptotic analysis
Discussion 2 - asymptotic analysis
Notes 04 - asymptotic analysis & intro to graphs
Notes 05 - graph traversals (DFS & BFS) and representations
Discussion 3 - asymptotic analysis & graphs
Notes 06 - directed graphs & topological ordering
Notes 07 - bipartite graphs
Discussion 4 - topological ordering & bipartite graphs
Notes 08 - greedy algorithms (stay ahead)
Notes 09 - greedy algorithms (stay ahead) - Dijkstra's
Discussion 5 - greedy algorithms (stay ahead)
Notes 10 - greedy algorithms (exchange) - MST & interval lateness
Notes 11 - greedy algorithms (exchange) - matroids
Discussion 6 - greedy algorithms (exchange)
Notes 12 - disjoint sets & union-find
Notes 13 - divide and conquer (recursion tree/unrolling)
Notes 14 - divide and conquer (master theorem)
Discussion 8 - divide-and-conquer
Notes 15 - divide and conquer (substitution)
Notes 16 - dynamic programming (intro)
Notes 17 - dynamic programming (binomial coefficients, taffy/rod cutting)
Notes 18 - dynamic programming (knapsack)
Discussion 10 - dynamic programming
Notes 19 - network flow
Discussion 11 - network flow
Notes 20 - network flow
Notes 21 - P and NP
Notes 22 - NP-Completeness
Assignments
Assignment 1
Assignment 2
Assignment 3
Assignment 4
Assignment 5
Assignment 6
Assignment 7
Assignment 8
Assignment 9
Assignment 10
Extra credit opportunities
Tools
CS 312 - Algorithms [F19]
Home
Schedule
Syllabus
Notes
Notes 01 - administrivia and stable matching
Discussion 1 - learning and stable matching
Notes 02 - stable matchings & running time (big-O)
Notes 03 - asymptotic analysis
Discussion 2 - asymptotic analysis
Notes 04 - asymptotic analysis & intro to graphs
Notes 05 - graph traversals (DFS & BFS) and representations
Discussion 3 - asymptotic analysis & graphs
Notes 06 - directed graphs & topological ordering
Notes 07 - bipartite graphs
Discussion 4 - topological ordering & bipartite graphs
Notes 08 - greedy algorithms (stay ahead)
Notes 09 - greedy algorithms (stay ahead) - Dijkstra's
Discussion 5 - greedy algorithms (stay ahead)
Notes 10 - greedy algorithms (exchange) - MST & interval lateness
Notes 11 - greedy algorithms (exchange) - matroids
Discussion 6 - greedy algorithms (exchange)
Notes 12 - disjoint sets & union-find
Notes 13 - divide and conquer (recursion tree/unrolling)
Notes 14 - divide and conquer (master theorem)
Discussion 8 - divide-and-conquer
Notes 15 - divide and conquer (substitution)
Notes 16 - dynamic programming (intro)
Notes 17 - dynamic programming (binomial coefficients, taffy/rod cutting)
Notes 18 - dynamic programming (knapsack)
Discussion 10 - dynamic programming
Notes 19 - network flow
Discussion 11 - network flow
Notes 20 - network flow
Notes 21 - P and NP
Notes 22 - NP-Completeness
Assignments
Assignment 1
Assignment 2
Assignment 3
Assignment 4
Assignment 5
Assignment 6
Assignment 7
Assignment 8
Assignment 9
Assignment 10
Extra credit opportunities
Tools
More
Home
Schedule
Syllabus
Notes
Notes 01 - administrivia and stable matching
Discussion 1 - learning and stable matching
Notes 02 - stable matchings & running time (big-O)
Notes 03 - asymptotic analysis
Discussion 2 - asymptotic analysis
Notes 04 - asymptotic analysis & intro to graphs
Notes 05 - graph traversals (DFS & BFS) and representations
Discussion 3 - asymptotic analysis & graphs
Notes 06 - directed graphs & topological ordering
Notes 07 - bipartite graphs
Discussion 4 - topological ordering & bipartite graphs
Notes 08 - greedy algorithms (stay ahead)
Notes 09 - greedy algorithms (stay ahead) - Dijkstra's
Discussion 5 - greedy algorithms (stay ahead)
Notes 10 - greedy algorithms (exchange) - MST & interval lateness
Notes 11 - greedy algorithms (exchange) - matroids
Discussion 6 - greedy algorithms (exchange)
Notes 12 - disjoint sets & union-find
Notes 13 - divide and conquer (recursion tree/unrolling)
Notes 14 - divide and conquer (master theorem)
Discussion 8 - divide-and-conquer
Notes 15 - divide and conquer (substitution)
Notes 16 - dynamic programming (intro)
Notes 17 - dynamic programming (binomial coefficients, taffy/rod cutting)
Notes 18 - dynamic programming (knapsack)
Discussion 10 - dynamic programming
Notes 19 - network flow
Discussion 11 - network flow
Notes 20 - network flow
Notes 21 - P and NP
Notes 22 - NP-Completeness
Assignments
Assignment 1
Assignment 2
Assignment 3
Assignment 4
Assignment 5
Assignment 6
Assignment 7
Assignment 8
Assignment 9
Assignment 10
Extra credit opportunities
Tools
CS 312
Algorithms
Fall 2019 - Mount Holyoke College
Instructor
Audrey St. John
- Clapp 221
astjohn <at> mtholyoke.edu
Office hours:
Mon 12:30 pm - 1:30 pm
Wed 1:30 pm - 2:30 pm
Fri 9:30 am - 10:30 am
[rescheduled 11/22 1:30 - 2:30pm]
and by appointment via
Pathways
Meetings - Kendade 303
Monday/Wednesday 11 am - 12:15 pm
Friday 11 am - 11:50 am
TA hours
Sunday 6 - 8 pm [Clapp 218]:
Nhu Do
no hours 10/12
10/27 room change: Clapp 203
Monday 7 - 9 pm [Clapp 206]:
Nguyen Nguyen
no hours 10/13
Study group - Clapp 225
Sunday 11 am
Monday 8 pm
Wednesday 7 pm
Friday 7 pm
Quick links
CS 312 Piazza
: Q & A
CS 312 Gradescope
: Assignments, Exams
Polleverywhere
:
PollEv.com/astjohn
Report abuse
Report abuse