Computer Science 345

Data Structures and Algorithms
Fall 2025
Thomas VanDrunen



Meeting time: MWF 11:35 am -12:45 pm.
Meeting place: Science 129

Office hours: MTuWThF 9:00-10:00 am; Th 1:30-3:30 pm.
Contact: 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu
http://cs.wheaton.edu/~tvandrun/cs345


Syllabus



Final exam: Thursday, Dec 18, 10:30 am


Moon's dayWoden's dayThor's dayFrigga's day

Aug 25

NO CLASS

Aug 27

Prolegomena. General introduction
Slides

Aug 28

Pretest

Aug 29

Algorithms and correctness

Sept 1

NO CLASS

Sept 3

Algorithms and correctness; algorithms and efficiency

Sept 4

Writing invariants

Sept 5

Algorithms and efficiency

Sept 8

Algorithms and efficiency

Sept 10

Abstract data types

ADT review assigned

Sept 11

Basic data structures

Sept 12

Data structures

Sept 15

Data structures; programming practices

Sept 17

Case studies. Counting sort

Sept 18

Bucket sort

Sept 19

Radix sort

ADT review due; linear sort assigned

Sept 22

Disjoint sets and array forests

Sept 24

Priority queus and heaps

Linear sort due; heaps assigned

Sept 25

N-sets and bit vectors

Sept 26

Priority queues and heaps

Sept 29

Graphs. Concepts and implementation

Oct 1

Traversal

Oct 2

Graph traversal

Oct 3

Minimum spanning trees

Heaps due; MST assigned

Oct 6

Minimum spanning trees

Oct 8

Single source shortest paths

MST due; SSSP assigned

Oct 9

Applied graph traversal

Oct 10

Single source shortest paths

Oct 13

Review

Oct 15

TEST

Oct 16

Basic binary search trees, pt 1

Oct 17

Binary search trees. BST intro

SSSP due; BST rotations assigned

Oct 20

NO CLASS

Oct 22

NO CLASS

Oct 23

Basic binary search trees, pt 2

Oct 24

Balanced BST problem; AVL trees

Oct 27

AVL trees

BST rotations due; AVL trees assigned

Oct 29

Traditional red-black trees

Trad RB trees assigned

Oct 30

From BSTs to sorted arrays

Oct 31

Left-learning red-black trees

AVL trees due

Nov 3

BST wrap-up

Nov 5

Dynamic programming. Introduction

Trad RB trees due

Nov 6

DP algorithms

Nov 7

DP principles

Nov 10

DP algorithms

Nov 12

Review

Nov 13

TEST

Nov 14

(No class)

Nov 17

Optimal BSTs

Opt BSTs assigned

Nov 19

Hash tables. Introduction; separate chaining

Nov 20

Separate chaining

Nov 21

Open addressing

Linear probing assigned

Nov 24

Hash functions

Opt BSTs due

Nov 26

NO CLASS

Nov 27

NO CLASS

Nov 28

NO CLASS

Dec 1

Perfect hashing

Linear probing due; perfect hashing assigned

Dec 3

Hash table performance

Dec 4

Sorting strings

Dec 5

Strings. Sorting strings

Dec 8

Tries

Perfect hashing due; tries assigned

Dec 10

Regular expressions

Dec 11

Review problems

Dec 12

Review

Tries due