Office: FEC 3120, phone: 277-5446 The best way to reach me is
via Piazza (see below). I will check it once a day around 1pm.
Office Hours: Tuesday and Thursday 2:30-3:30PM; or by appointment.
Note: I will always be available in my office during office hours. At other times, if my door is open, feel free to drop
in. If the door is closed, I'm probably hard at work on a paper, grant or research problem. Please come by another time or make an appointment via email.
Teaching Assistant
Jacob Hobbs
Office Hours: Wednesday 9-11AM; Friday 11-12.
Office Hour Location: FEC 2310 (2nd floor across from elevator)
Class Info
The class meets Tuesdays and Thursdays, 3:30-4:45 in Woodward 147
Course Description
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.
Text Book
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.
Piazza
I've set up a Piazza forum for discussions and emails in this class.
For quicker response, please send all of your questions to Piazza (you can post both public, private and anonymous questions). Directions for joining Piazza.
Note: Some of the material in these notes, including many examples and
figures are from Jeff Erickson's class notes for
CS373 at the
University of Illinois Urbana Champagne.
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.
Annihilator Notes
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
located here
Notes from three lectures on Annihilators at the
University of Illinois Urbana Champagne. Most of my discussion is
based on these notes.