CSCI 345. Data Structures and Algorithms


Spring 2024
Thomas VanDrunen



Meeting time: MWF 12:55am-2:05pm.
Meeting place: MEY 131

Office hours: MWF 3:30-4:30 or schedule through Calendly
Contact: MEY 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu



Syllabus



Final exam: Tues, Apr 30, 10:30am-12:30pm


The date where the calendar says a project is "assigned" is the suggested date to start working on it. The date where a project is "due" is when you should have the project completed in order to stay caught up in the course.
Moon's dayWoden's dayThor's dayFrigga's day

Jan 8

Prolegomena. General introduction
Slides

Pretest part 1 assigned

Jan 10

Algorithms and correctness
Slides

Pretest part 1 due

Jan 11

Pretest part 2

Jan 12

Algorithms and correctness; algorithms and efficiency
Slides

Jan 15

NO CLASS

Jan 17

Algorithms and efficiency
Slides

Jan 18

Writing invariants

Jan 19

Algorithms and efficiency

Jan 22

Abstract data types
Slides

Implementing ADTs assigned

Jan 24

Data structures
Slides

Jan 25

Basic data structures

Jan 26

Data structures; programming practices
Slides

Jan 29

Case studies. Counting sort
Slides
Book excerpt

Implementing ADTs due; linear sorting assigned

Jan 31

Radix sort

Feb 1

Bucket sort

Feb 2

Disjoint sets and array forests
Slides

Feb 5

Priority queues and heaps
Slides

Linear sorting due; heaps assigned

Feb 7

Priority queues and heaps

Bit vectors assigned

Feb 8

N-sets and Bit vectors

Feb 9

Graphs. Concepts and implementation
Slides

Feb 12

Traversal
Slides

Heaps due

Feb 14

Minimum spanning trees
Slides

MST assigned

Feb 15

Graph traversal

Feb 16

Minimum spanning tree

Feb 19

NO CLASS

Feb 21

Single source shortest paths
Slides

MST due; SSSP assigned

Feb 22

Applied graph traversal

Feb 23

Single source shortest paths

Feb 26

Review

Feb 28

TEST

Feb 29

Basic binary search trees

Mar 1

Binary search trees. BST intro
Slides

SSSP due; BST rotations assigned

Mar 4

NO CLASS

Mar 6

NO CLASS

Mar 7

NO CLASS

Mar 8

NO CLASS

Mar 11

Balanced BST problem; AVL trees
Slides

Mar 13

AVL trees

BST rotations due; AVL trees asigned

Mar 14

From BSTs to sorted arrays

Mar 14

Traditional red-black trees
Slides
Visualization by David Galles

Tradtional RB trees assigned

Mar 18

Left-leaning red-black trees
Slides

AVL trees due

Mar 20

BSTs wrap-up
Slides

Mar 21

From AVL to RBT

Mar 22

Dynamic programming. Introduction
Slides

Trad RB trees due

Mar 25

DP principles
Slides

Mar 27

DP algorithms
Slides

Mar 28

DP algorithms

Mar 29

NO CLASS

Apr 1

Optimal BSTs
Slides

Optimal BSTs assigned

Apr 3

Review

Apr 4

TEST

Apr 5

Hash tables. Introduction and separate chaining
Slides

Apr 8

(No class)

Optimal BSTs due

Apr 10

Open addressing
Slides

Open addressing assigned

Apr 11

Separate chaining

Apr 12

Hash functions
Slides

Apr 15

Perfect hashing
Slides

Open addressing due; perfect hashing assigned

Apr 17

Hash table performance
Slides

Apr 18

Sorting strings

Apr 19

Strings. Sorting strings
Slides

Apr 22

Tries

Perfect hashing due; tries assigned

Apr 24

Regular expressions

Apr 25

Review problems

Apr 26

Review

Tries due