Office Hours: Tuesday and Thursday 2:00-3:00PM; or by appointment.
Office Hours: M, W, F, 1-2pm
Office Hours on Zoom (see Piazza for details)
The class meets Tuesdays and Thursdays, 3:30-4:45 on Zoom.
This class covers advanced topics in Algorithms and Data Structures with a focus on mathematical techniques, proofs and analysis. Topics to be covered will likely include the following:
Randomized Algorithms, fingerprinting, data streaming algorithms, coupon collectors, birthday paradox, skip lists; Network Flow: Max Matchings, Min-cut Max-flow duality;
Linear Programming, and basic game theory; NP-Hardness and Approximation Algorithms.
We will be using the book: Introduction to Algorithms (third edition) by Cormen, Leiserson, Rivest and Stein, in addition to supplemental material and occasional handouts.
Class Discussion via Piazza
I've set up a Piazza forum for all announcements and discussions in this class. Piazza allows for
public, private and anonymous questions, and extensive math formatting support.
Please use it instead of email. I will check it once a day around 1pm.
Prereq: CS 361 either taken at UNM or equivalent class. You should have taken an algorithms class where you learned proofs of correctness, asymptotic notation,
recurrence relations, proof by induction, basic algorithms (e.g. search and sorting) and data structures (e.g. binary trees and graphs). I will assume all students are very familiar with this prerequisite material.
Annihilators are a powerful technique for solving recurrence
relations. Following are two resources that discuss annihilators.
Lectures 9 through 12 from my last CS361 class which are
Notes from three lectures on Annihilators at the
University of Illinois Urbana Champagne. Most of my discussion is
based on these notes.