CSCI 345. Data Structures and Algorithms


Spring 2025
Thomas VanDrunen



Meeting time: MWF 2:15pm-3:25pm.
Meeting place: MEY 133

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, May 6, 1:30pm-3: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 13

Prolegomena. General introduction
Slides

Jan 15

Algorithms and correctness
Slides

Jan 16

Pretest

Jan 17

Algorithms and correctness; algorithms and efficiency
Slides

Jan 20

NO CLASS

Jan 22

Algorithms and efficiency

Jan 23

Writing invariants

Jan 24

Algorithms and efficiency

Jan 27

Abstract data types

Implementing ADTs assigned

Jan 29

Data structures

Jan 30

Basic data structures

Jan 31

Data structures; programming practices

Feb 3

Case studies. Counting sort

Implementing ADTs due; linear sorting assigned

Feb 5

Radix sort

Feb 6

Bucket sort

Feb 7

Disjoint sets and array forests

Feb 10

Priority queues and heaps

Linear sorting due; heaps assigned

Feb 12

Priority queues and heaps

Bit vectors assigned

Feb 13

N-sets and Bit vectors

Feb 14

Graphs. Concepts and implementation

Feb 17

NO CLASS

Feb 19

Traversal

Heaps due

Feb 20

Graph traversal

Feb 21

Minimum spanning trees

MST assigned

Feb 24

Minimum spanning tree

Feb 26

Single source shortest paths

MST due; SSSP assigned

Feb 27

Applied graph traversal

Feb 28

Single source shortest paths

Mar 3

Review

Mar 5

TEST

Mar 6

Basic binary search trees, pt 1

Mar 7

Binary search trees. BST intro

SSSP due; BST rotations assigned

Mar 10

NO CLASS

Mar 12

NO CLASS

Mar 13

NO CLASS

Mar 14

NO CLASS

Mar 17

Balanced BST problem; AVL trees

Mar 19

AVL trees

BST rotations due; AVL trees asigned

Mar 20

Basic binary search trees, pt 2

Mar 21

Traditional red-black trees
Visualization by David Galles

Tradtional RB trees assigned

Mar 24

Left-leaning red-black trees

AVL trees due

Mar 26

BSTs wrap-up

Mar 27

From BSTs to sorted arrays

Mar 28

Dynamic programming. Introduction

Trad RB trees due

Mar 31

DP principles

Apr 2

DP algorithms

Apr 3

DP algorithms

Apr 4

Optimal BSTs

Optimal BSTs assigned

Apr 7

Review

Apr 9

(No class)

Apr 10

TEST

Apr 11

Hash tables. Introduction and separate chaining

Optimal BSTs due

Apr 14

Open addressing

Open addressing assigned

Apr 16

Hash functions

Apr 17

Separate chaining

Apr 18

NO CLASS

Apr 21

Perfect hashing

Open addressing due; perfect hashing assigned

Apr 23

Hash table performance

Apr 24

Sorting strings

Apr 25

Strings. Sorting strings

Apr 28

Tries

Perfect hashing due; tries assigned

Apr 30

Regular expressions

May 1

Review problems

May 2

Review

Tries due