CSCI 232: Data Structures and Algorithms

Spring 2022

Date Lecture Topic Reading Lab Project

20 Jan

Introduction/Motivation
 
Notes
 
No Lab
 
 
25 Jan
27 Jan
Background 1
Background 2
1.1 - 1.4
1.1 - 1.4
Lab 1
 
 
 
01 Feb
03 Feb
Trees Intro
Trees
 
 
Lab 2
 
Proj 1 (Due 24 Feb)
 
08 Feb
10 Feb
Tree Traversal
Binary Search Tree
 
3.2
Lab 3
 
 
 
15 Feb
17 Feb
BST
Red-Black BST
3.2
3.3
Lab 4
 
 
 
22 Feb
24 Feb
Red-Black BST
Quiz 1
3.3
 
No Lab
 
 
 
01 Mar
03 Mar
Hashing
Hash Sets
 
 
Lab 5
 
Proj 2 (Due 31 Mar)
 
08 Mar
10 Mar
Hash Functions
Separate Chaining
 
 
Lab 6
 
 
 
15 Mar
17 Mar
Spring Break - No Class
Spring Break - No Class
 
 
No Lab
(Spring Break)
 
 
22 Mar
24 Mar
Closest Pair of Points
Closest Pair of Points
 
 
Lab 7
 
 
 
29 Mar
31 Mar
Review
Quiz 2
 
 
No Lab
 
 
 
05 Apr
07 Apr
Graphs
Graphs (Representation)
4.1
4.1
Lab 8
 
Proj 3 (Due 19 Apr)
 
12 Apr
14 Apr
Graphs (Searching)
Graphs (Searching)
4.1
4.1
No Lab
(University Day)
 
 
19 Apr
21 Apr
Graphs (MST)
Graphs (MST)
4.3
4.3
Lab 9
 
Proj 4 (Due 05 May)
 
26 Apr
28 Apr
Graphs (Shortest Path)
Graphs (Shortest Path)
4.4
4.4
Lab 10
 
 
 
03 May
05 May
Review
Quiz 3
 
 
No Lab
 
 
 
12 May Final Exam, 10:00 - 11:50 am      
Schedule subject to change. Refresh webpage (or hit F5) to view current page.

Baby Watch - 2022

Due to a baby arriving early this semester, I will almost certainly have to cancel or have guest lectures for a couple classes when it arrives.

Lecture

Instructor

Sean Yaw

TAs

Brad McCoy Asad Noor

Textbook

Course Prerequisites

Course Objectives

MSU course description: Advanced data structures and programming techniques and their application. Topics include: trees, balanced trees, graphs, dictionaries, hash tables, heaps. Examines the efficiency and correctness of algorithms. The laboratory uses Java. CSCI 246 is recommended as a prerequisite

At the end of the course, my goal is for you to be able to:

  1. Independently design, write, and test programs of moderate complexity.
  2. Identify the tradeoffs of various data structures and make a defensible decision as to which one(s) to use for a given problem.
  3. Be able to formally detail the performance of an algorithm and identify the factors limiting that performance.

Labs

Labs will be posted on Tuesdays nights and will be due on D2L/Brightspace by the start of class the following Tuesday. You will not need to attend lab in person unless the assignment requires you to.

Grading

At the end of the semester, grades will be determined (after any curving takes place) based on your class average as follows:

Late Policy

If you submit a Lab late, but within 12 hours of being due, the maximum credit you can receive is 50%. After 12 hours, you receive 0. If you submit a project late, but within 24 hours, the maximum credit you can receive is 70%. After 24 hours, you receive 0.

Collaboration Policy

Failure to abide by these rules will result in everyone involved being reported to the Dean of Students and could result in failing the course.