CSCI 232: Data Structures and Algorithms

Spring 2023

Date Lecture Topic Reading Lab Project

19 Jan

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

Lecture

Instructor

Sean Yaw

TAs

Brad McCoy

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.