Department Seal Sandia Mountains

CS 561
Algorithms and Data Structures
Fall 2019


Instructor

Teaching Assistant

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

Tests

Homeworks

Slides from Lectures:

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.

Syllabus

The course syllabus is here

Previous Classes

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.

General Theory Links

Animations and Data Structure Resources