Computer Science 345

Data Structures and Algorithms
Fall 2024
Thomas VanDrunen



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

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/cs243


Syllabus



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


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

Aug 26

NO CLASS

Aug 28

Prolegomena. General introduction
Slides

Aug 29

Pretest

Aug 30

Algorithms and correctness
Slides

Sept 2

NO CLASS

Sept 4

Algorithms and correctness; algorithms and efficiency
Slides

Sept 5

Writing invariants

Sept 6

Algorithms and efficiency
Slides

Sept 9

Algorithms and efficiency

Sept 11

Abstract data types
Slides

ADT review assigned

Sept 12

Basic data structures

Sept 13

Data structures
Slides

Sept 16

Data structures; programming practices

Sept 18

Case studies. Counting sort
Slides
Book excerpt

Sept 19

Bucket sort

Sept 20

Radix sort

ADT review due; linear sort assigned

Sept 23

Disjoint sets and array forests
Slides

Sept 25

Priority queus and heaps
Slides

Linear sort due; heaps assigned

Sept 26

N-sets and bit vectors

Sept 27

Priority queues and heaps

Sept 30

Graphs. Concepts and implementation
Slides

Oct 2

Traversal
Slides

Oct 3

Graph traversal

Oct 4

Minimum spanning trees
Slides

Heaps due; MST assigned

Oct 7

Minimum spanning trees

Oct 9

Single source shortest paths
Slides

MST due; SSSP assigned

Oct 10

Applied graph traversal

Oct 11

Single source shortest paths

Oct 14

Review

Oct 16

TEST

Oct 17

Basic binary search trees, pt 1

Oct 18

Binary search trees. BST intro
Slides

SSSP due; BST rotations assigned

Oct 21

NO CLASS

Oct 23

NO CLASS

Oct 24

Basic binary search trees, pt 2

Oct 25

Balanced BST problem; AVL trees
Slides

Oct 28

AVL trees

BST rotations due; AVL trees assigned

Oct 30

Traditional red-black trees
Slides
Visualization by David Galles

Trad RB trees assigned

Oct 31

From BSTs to sorted arrays

Nov 1

Left-learning red-black trees
Slides

AVL trees due

Nov 4

BST wrap-up
Slides

Nov 6

Dynamic programming. Introduction
Slides

Trad RB trees due

Nov 7

DP algorithms

Nov 8

DP principles
Slides

Nov 11

DP algorithms
Slides

Nov 13

Review

Nov 14

TEST

Nov 15

(No class)

Nov 18

Optimal BSTs
Slides

Opt BSTs assigned

Nov 20

Hash tables. Introduction; separate chaining
Slides

Nov 21

Separate chaining

Nov 22

Open addressing
Slides

Linear probing assigned

Nov 25

Hash functions
Slides

Opt BSTs due

Nov 27

NO CLASS

Nov 28

NO CLASS

Nov 29

NO CLASS

Dec 2

Perfect hashing
Slides

Linear probing due; perfect hashing assigned

Dec 4

Hash table performance
Slides

Dec 5

Sorting strings

Dec 6

Strings. Sorting strings
Slides

Dec 9

Tries
Slides

Perfect hashing due; tries assigned

Dec 11

Regular expressions
Slides

Dec 12

Review problems

Dec 13

Review

Tries due