CSCI 345. Data Structures and Algorithms


Fall 2022
Thomas VanDrunen



Meeting time: MWF 11:35pm-12:45pm.
Meeting place: MEY 181

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



Syllabus



Final exam: Wed, Dec 14, 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 dayFrigga's day

Aug 22

NO CLASS

Aug 24

Prolegomena. Introduction
Slides

Pretest assigned

Aug 26

Algorithms and correctness
Slides

Pretest due

Aug 29

Algorithms and correctness; algorithms and efficiency
Slides

Aug 31

Algorithms and efficiency
Slides

Sept 2

Algorithms and efficiency

Implementing ADTs assigned

Sept 5

NO CLASS

Sept 7

Abstract data types
Slides

Sept 9

Data structures
Slides

Sept 12

Data structures; programming practices
Slides

Sept 14

Case studies. Counting sort
Slides
Page from book

Linear Sorting assigned

Sept 16

Radix sort

Implementing ADTs due

Sept 19

Disjoint sets and array forests
Slides

Sept 21

Priority queues and heaps
Slides

Linear Sorting due; Heaps assigned

Sept 23

N-sets and bit vectors
Slides

Bit Vectors assigned

Sept 26

Graphs. Concepts and implementation
Slides

Sept 28

Traversal
Slides

Heaps due

Sept 30

Minimum spanning trees
Slides

Bit Vectors due; MST assigned

Oct 3

Minimum spanning tree

Oct 5

Single source shortest paths
Slides

MST due; SSSP assigned

Oct 7

Finishing SSSP

Oct 10

Review
Slides

Oct 12

Test

Oct 14

Binary search trees. General BSTs and the balanced tree problem
Slides

SSSP due; BST Rotations assigned

Oct 17

NO CLASS

Oct 19

NO CLASS

Oct 21

Balanced BST problem, AVL trees
Slides

Oct 24

AVL trees

BST rotations due; AVL trees assigned

Oct 26

Traditional red-black trees
Slides
RB-tree visualization

Traditional RB trees assigned

Oct 28

Left-leaning red-black trees
Slides

AVL trees due; [Practice: LLRB trees]

Oct 31

BSTs wrap-up
Slides

Nov 2

Dynamic programming. Introduction
Slides

Nov 4

Dynamic programming principles
Slides

Traditional RB trees due

Nov 7

Dynamic programming algorithms
Slides

Nov 9

Review (and start Optimal BSTs)
Slides

Optimal BSTs assigned

Nov 11

Test

Nov 14

Test 2 retrospective
Slides

Nov 16

DP: Optimal BSTs
Slides

Opt BSTs due; [separate chaining practice]

Nov 18

Hash tables. Introduction and separate chaining
Slides

Open addressing assigned

Nov 21

Open addressing
Slides

Nov 23

NO CLASS

Nov 25

NO CLASS

Nov 28

Finish hashtables
Slides

Perfect hashing assigned

Nov 30

String sorts
Slides

Open addressing due

Dec 2

Tries
Slides

Tries assigned

Dec 5

Regular expressions
Slides

Dec 7

Regular expressions

Perfect hashing due

Dec 9

Review

Tries due