CS 331: Data Structures and Algorithms

Announcements

  • Lab 05: Ordered Hashtable has been posted!

  • Lab 04: Linked List has been posted!

  • Lab 03: Array-Backed List has been posted!

  • Lab 02: Vector Space Model has been posted!

  • To help address issues folks are having with the first lab, I've posted a writeup that addresses the installation of necessary software packages and libraries. Please follow it and, if you're still having issues, post questions to Discord!

  • If you haven't yet joined the CS Discord server, use this invitation link. Please post questions about content/labs/logistics there first!

  • Lecture recordings can be viewed in the class Panopto folder

  • Welcome to the Summer 2023 edition of CS 331: Data Structures and Algorithms!

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 15 Syllabus and Overview 00-intro.pdf Syllabus
PythonDS 1.5-1.6
May 15 - May 17 Python language intro

PythonDS 1.7-1.13
Python Tutorial
May 22 Python data structures PythonDS 1.8.2
May 22 Timing and Runtime complexity runtime-complexity.pdf
PythonDS 3.2-3.7
May 24 Array-backed list Lecture notes
PythonDS 4.19-4.20
May 24 Iterators and Generators
May 29 Memorial Day
May 31 Linked structures
May 31 - Jun 5 Linked list PythonDS 4.21
Jun 3 Midterm Exam 1
Jun 5 Map PythonDS 6.5
Jun 7 Stack PythonDS 4.3-4.9
Jun 7 Queue PythonDS 4.10-4.14
Jun 10 Midterm Exam 2
Jun 12 Priority queue Videos: Priority queues #1, #2, #3
PythonDS 7.8-7.10
Jun 14 Tree structures PythonDS 7.2-7.5
Jun 14 Binary search tree Lecture 1
Lecture 2
Video: BSTrees
PythonDS 7.11-7.14
Jun 19 Juneteenth
Jun 21 AVL tree Videos: AVLTrees #1, #2, #3
PythonDS 7.15-7.17
Jun 24 Final Exam

Assignments

Released Due Name Invite Max Points
May 15 May 17 Logistics cs331ds/lab00 10
May 17 May 21 Python Basics cs331ds/lab01 15
May 26 May 31 Vector Space Model cs331ds/lab02 32
May 26 May 31 Array-Backed List cs331ds/lab03 40
May 31 Jun 5 Linked List cs331ds/lab04 38
Jun 6 Jun 10 Hashtable cs331ds/lab05 20
Jun 15 Jun 20 Stack & Queue cs331ds/lab06 28
Jun 20 Jun 23 Heap cs331ds/lab07 16
Jun 20 Jun 26 BSTree cs331ds/lab08 28

Resources

Syllabus

Staff

Reference materials

Development Tools

Exam Catalog