CS 6363.003.21S — Design and Analysis of Computer Algorithms

Spring 2021
Tuesdays and Thursdays 1:00pm–2:15pm
Live lectures: MS Teams. Link will be given in the "CS 6363.003 2212" team.
Recorded lectures: Posted in the Lectures channel of the "CS 6363.003 2212" team as soon as they are available.

Instructor:

Kyle Fox
Office: ECSS 4.224 (all meetings will likely be online)
Phone: (972) 883-4168
Email: kyle.fox@utdallas.edu
Office Hours: Wednesdays 10:30am–11:30am and Thursdays 2:30pm–3:30pm via MS Teams. Additional or private office hours available by request. Please email Kyle directly.
Homepage: https://personal.utdallas.edu/~kyle.fox/

Teaching Assistant:

Gregory Van Buskirk
Email: greg.vanbuskirk@utdallas.edu
Office Hours: Mondays 12:00pm–2:00pm via MS Teams.

Administrivia:

Electronic Text and Assorted Notes: Jeff Erickson: Algorithms
Required Textbook for all CS 6363 Sections: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein: Introduction to Algorithms, 3rd Edition. MIT Press 2009 (CLRS)

About this course
Writing policies and advice
Course syllabus: (MS Word) (pdf)

Announcements


Schedule and Homework

The schedule below will be updated with new subjects and recommended readings throughout the semester. Exact topics discussed in each lecture may change.

Shortly before or after each lecture, I will update the readings with my own notes/script. Use at your own risk! My notes likely have typos or maybe even a few bugs!

Date Subject/Event Reading Notes
Tue, Jan. 19th Administrivia, "What is an algorithm?", designing and describing algorithms Erickson 0; CLRS 2–2.2; lecture notes; scribbles
Thur, Jan. 21st Reductions, induction, recursion Erickson I (through Section 2 plus however many examples you think would be helpful), Erickson 1–1.2; lecture notes; scribbles
Tue, Jan. 26th Divide-and-conquer, mergesort, quicksort Erickson 1.4–1.6; CLRS 2.3, 4.0, 4.3, 7–7.1; lecture notes; scribbles
Thur, Jan. 28th Asymptotic notation, solving divide-and-conquer running time recurrences Erickson 1.7, 1.9; CLRS 3, 4.4–4.5; typeset notes on asymptotic notation from CS 4349; lecture notes; scribbles
Tue, Feb. 2nd Quicksort analysis, element selection Erickson 1.5, 1.8; CLRS 7–7.2, 7.4.1, 9.0, 9.3; lecture notes; scribbles
Thur, Feb. 4th Closest pair of points in the plane, Karatsuba multiplication Suri; CLRS 33.4; lecture notes; scribbles (recommended)
Tue, Feb. 9th Dynamic programming, Fibonacci numbers, rod cutting Erickson 2.4–2.5, 3.1, 3.3–3.5; CLRS 15–15.1, 15.3; lecture notes; scribbles
Thur, Feb. 11th No class; university closed due to inclement weather Homework 1 due Friday, February 12th (source) (solutions template) (solutions)
Tue, Feb. 16th No class; university closed due to inclement weather
Thur, Feb. 18th No class; university closed due to inclement weather
Tue, Feb. 23rd Edit distance, longest increasing subsequence(?) Erickson 2.6, 3.6–3.7; CLRS 15.4; lecture notes; scribbles
Thur, Feb. 25th Optimal binary search trees, maximum independent set in trees Erickson 3.9–3.10; CLRS 15.5; lecture notes; scribbles
Tue, Mar. 2nd Maximum independent set in trees, greedy algorithms, class scheduling Erickson 3.10, 4.2–4.3; CLRS 16–16.2; lecture notes; scribbles
Thur, Mar. 4th Huffman codes Erickson 4.4; CLRS 16.3; lecture notes; scribbles Homework 2 due Sunday, March 7th (source) (solutions)
Tue, Mar. 9th Graph basics review, breadth-first search, depth-first search Erickson 5–5.6, 6–6.2; CLRS 22–22.3; lecture notes; scribbles
Wed, Mar. 10th, 10:30am–11:45am Review session for Midterm 1 Please prepare your own questions concerning the first two homework assignments, class material, or other problems from the texts. Handwritten scribbles are available as well.
Thur, Mar. 11th Midterm Exam 1 (solutions)
Tue, Mar. 16th No class; university closed for Spring break
Thur, Mar. 18th No class; university closed for Spring break
Tue, Mar. 23rd Depth-first search, topological sort, dynamic programming on DAGs Erickson 6–6.4; CLRS 22.3–22.4 (CLRS 24.2 for shortest paths in DAGs); lecture notes; scribbles
Thur, Mar. 25th Minimum spanning trees, Kruskal's algorithm, the Prim-Jarník algorithm, Bor˚uvka's algorithm Erickson 7; CLRS 23; lecture notes; scribbles
Tue, Mar. 30th Single source shortest paths, Bellman-Ford Erickson 8–8.3, 8.7; CLRS 24–24.1, 24.5; lecture notes; scribbles
Thur, Apr. 1st Dijkstra's algorithm, BFS redux, shortest paths in DAGs Erickson 8.4–8.6; CLRS 24.2–24.3; lecture notes; scribbles Homework 3 due Sunday, April 4th (source) (solutions)
Tue, Apr. 6th All-pairs shortest paths, Johnson's algorithm, dynamic programming Erickson 9–9.2, 9.5, 9.8; CLRS 25, 25.2–25.3; lecture notes; scribbles
Thur, Apr. 8th Maximum flows and minimum cuts Erickson 10–10.4; CLRS 26—26.2; lecture notes; scribbles
Tue, Apr. 13th Ford-Fulkerson augmenting paths, flow decompositions, Edmonds-Karp maximum flow algorithms, recent results Erickson 10.5—10.7; CLRS 26.2; lecture notes; scribbles
Thur, Apr. 15th Applications of maximum flows, edge/vertex disjoint paths, maximum bipartite matching, other assignment problems Erickson 11; CLRS 26.3; lecture notes; scribbles Homework 4 due Sunday, April 18th (source) (solutions)
Tue, Apr. 19th NP-hardness, CircuitSAT, SAT Erickson 12.1–12.5; CLRS 34–34.4; lecture notes; scribbles
Wed, Apr. 21st, 10:15am–11:30am Review session for Midterm 2 Handwritten scribbles are available.
Thur, Apr. 22nd Midterm Exam 2 (solutions)
Tue, Apr. 27th More NP-hardness proofs, 3SAT, MaxIndSet, the general pattern Erickson 12.6–12.9; CLRS 34.4–34.5.2; lecture notes; scribbles
Thur, Apr. 29th Even more NP-hardness proofs, MaxClique, VertexCover, 3Color, Hamiltonian cycle, SubsetSum Erickson 12.9–12.14; CLRS 34.5.2–34.5.5; lecture notes
Thur, May 6th Practice QE review Handwritten scribbles are available. Homework 5 due Saturday, May 8th (source) (solutions)
Tue, May 11th, 1:00pm–2:15pm Review session for Final Exam Handwritten scribbles are available. All scribbled notes from this semester's office hours are available.
Thur, May 13th Final Exam