CS 331: Data Structures and Algorithms

Announcements

  • Live lectures & labs will take place on Tue/Thu 1PM-5:25PM via Zoom

  • Recorded lecture & lab sessions can be found on Panopto

  • You should have received an invitation to Mimir, the platform where you'll be completing all assessments this summer. If not, you can sign up here

Calendar

The lecture calendar is tentative and may be updated.

You can find both starter and completed lecture notebooks in the class GitHub repository, and can also open them directly via Google Colab. Direct links to completed lecture notebooks below are provided for convenience.

Date Topic Notes Supplements
May 17 Syllabus and Overview 00-intro.pdf Syllabus
PythonDS 1.5-1.6
May 17 - May 24 Python language intro

PythonDS 1.7-1.13
Python Tutorial
May 24 Python data structures PythonDS 1.8.2
May 26 Timing and Runtime complexity runtime-complexity.pdf
PythonDS 3.2-3.7
May 31 Array-backed list Lecture notes
PythonDS 4.19-4.20
May 31 Iterators and Generators
Jun 03 Midterm Exam 1
Jun 2 Linked structures
Jun 2 Linked list PythonDS 4.21
Jun 7 Map PythonDS 6.5
Jun 9 Stack PythonDS 4.3-4.9
Jun 9 Queue PythonDS 4.10-4.14
Jun 13 Midterm Exam 2
Jun 14 Priority queue Videos: Priority queues #1, #2, #3
PythonDS 7.8-7.10
Jun 16 Recursion Videos: Recursion #1, #2
PythonDS 5.2-5.10, 6.11
Jun 21 Tree structures PythonDS 7.2-7.5
Jun 21 Binary search tree Lecture 1
Lecture 2
Video: BSTrees
PythonDS 7.11-7.14
Jun 23 AVL tree Videos: AVLTrees #1, #2, #3
PythonDS 7.15-7.17
Jun 24 Final Exam

Resources

Syllabus

Staff

Reference materials

Development Tools

Exam Catalog