CS361: Data Structures and Algorithms

Book, syllabus, grading and policies

Our book is Cormen, Leiserson, Rivest, and Stein, ``Introduction to Algorithms'' (Second edition). I also highly recommend Algorithm Design by Kleinberg and Tardos, and Algorithms by Dasgupta, Papadimitriou and Vazirani.

Here is the syllabus and policies.

Mailing list

You must subscribe to the mailing list to receive announcements, hints, assignments, and solutions. To do so, visit the listserv site and subscribe. Please note: the listserv system will send you email and you will not be added to the list until you send a reply to confirm.

The TA

Our TA is Olumuyiwa Oluwasanmi, muyiwa [at] cs.unm.edu. His office hours are Wednesdays at 2-4 pm and Fridays at 11 am-12 pm, in FEC 301a.

My office hours and emailing me

My office is in Farris Engineering Center, FEC335. My office hours are Tuesdays and Thursdays 3:30-4:30 p.m. You should also feel free to email me, which is often the quickest way to get help.

Assignments

Here is the pretest. It is due on Tuesday, August 29th.

Here is homework #1, and the solutions.

Here is homework #2, and the solutions.

Here is homework #3, and the solutions.

Here is homework #4, and the solutions.

Here is homework #5, and the solutions.

Midterm

Here is the sample midterm.

And, here are the solutions to the actual midterm.

Programming projects

Here is the project description.

Here is some helpful advice on how to do good computational experiments.

Here are some resources you may find useful: Jared Saia's notes on union-find (slides 20 onward are especially helpful), notes provided by Max Young on log-log plots and fits with Matlab, and Mark Newman's notes on power laws.

Animations of data structures

Check out these applets. They allow you to play with various data structres structures and watch them go.

Former UNM student Rory McGuire's applets for Union-find (with path compression), and 2-3-4 Trees.

Splay trees, red-black trees and AVL trees by Arsen Gogashvili.

Splay trees and more splay trees. This one does a nice job of explaining the rotations step-by-step.

Sorting Algorithms (with Java source code). Thanks to Sheri Winfield for finding this!

Here is a link to Bill Pugh's paper on Skip Lists. And here is a demo of skip lists --- thanks to Cathy Alarid for finding it!

Final exam

Here are the solutions. Have a good winter break!