Data Structures, Algorithms and Generic Programming
COP 4530
Syllabus, lectures, and other materials — Summer 2019

Assignments

Assignment 1

Assignment 2

Assignment 3

Assignment 4

Assignment 5

Assignment 6

Assignments 7 and 8

Tar file for assignments 7 and 8

If you downloaded the tarfile previously and you are having a problem with valsort validating, I have rebuilt it (I turned off the SUMP_PUMP option in the Makefile) and it's available in this new version of the tar file (all else is the same, so if your development machine likes the original valsort, you don't to re-download.) Remember that you can always just use the regular sort program to sort the files, and then compare the output of standard sort to your heapsort and triesort implementations. The advantage of valsort is that does tell you more about what failed than just a diff.

Syllabus

Syllabus

Reading schedule

Class notes

Lecture 1
  Code for example 1
  Code for example 2
  Code for example 3
  Code for example 4
  Code for example 5

Lecture 2

Lecture 3

Lecture 4
  Code for example 1

Lecture 5

Lecture 6

Lecture 7
  A typical linked heap
  Adding '16' to previous
  After remove to previous
  After another remove to previous
  After another remove to previous

Lecture 8
  Heapsort step 0
  Heapsort step 1
  Heapsort step 2
  Heapsort step 3
  Heapsort step 4
  Heapsort step 5
  Heapsort step 6

Lecture 9

Lecture 10
  Dijkstra example code
  Floyd example code
  Prim example code
  Kruskal example code

Midterm study guide

Final study guide

Discussion of templates, ranges, sstream/stringstream, memory sanitizers
  list-template.cc
  vector.cc
  stream.cc
  sudoku.nasm

Understanding linked heaps

Obligatory XKCD



Other Resources

NIST's Algorithms and Data Structures reference site

Annual sorting contest