CSCI 345. Data Structures and Algorithms


Spring 2023
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: Wed, May 3, 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

Jan 9

Prolegomena. Introduction
Slides

Pretest assigned

Jan 11

Algorithms and correctness
Slides

Pretest due

Jan 13

Algorithms and correctness; algorithms and efficiency
Slides

Jan 16

NO CLASS

Jan 18

Algorithms and efficiency
Slides

Jan 20

Algorithms and efficiency

Implementing ADTs assigned

Jan 23

Abstract data types
Slides

Jan 25

Data structures
Slides

Jan 27

Data structures; programming practices
Slides

Jan 30

Case studies. Counting sort
Slides

Linear Sorting assigned

Feb 1

Radix sort

Implementing ADTs due

Feb 3

Disjoint sets and array forests
Slides

Feb 6

Priority queues and heaps
Slides

Linear Sorting due; Heaps assigned

Feb 8

N-sets and bit vectors
Slides

Bit Vectors assigned

Feb 10

Graphs. Concepts and implementation
Slides

Feb 13

Traversal
Slides

Heaps due

Feb 15

Minimum spanning trees
Slides

Bit Vectors due; MST assigned

Feb 17

Minimum spanning tree

Feb 20

NO CLASS

Feb 22

Single source shortest paths
Slides

MST due; SSSP assigned

Feb 24

Finishing SSSP

SSSP due Mar 3

Feb 27

Review
Slides

Mar 1

Test

Mar 3

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

BST Rotations assigned

Mar 6

NO CLASS

Mar 8

NO CLASS

Mar 10

NO CLASS

Mar 13

Balanced BST problem, AVL trees
Slides

Mar 15

AVL trees

BST rotations due; AVL trees assigned

Mar 17

Traditional red-black trees
Slides
Visualization by David Galles

Traditional RB trees assigned

Mar 20

Left-leaning red-black trees
Slides

AVL trees due; [Practice: LLRB trees]

Mar 22

BSTs wrap-up
Slides

Mar 24

Dynamic programming. Introduction
Slides

Mar 27

Dynamic programming principles
Slides

Traditional RB trees due

Mar 29

Dynamic programming algorithms
Slides

Mar 31

DP: Optimal BSTs
Slides
Book excerpt

Optimal BSTs assigned

Apr 3

Review
Practice problems

Apr 5

Test

Apr 7

NO CLASS

Apr 10

Hash tables. Introduction and separate chaining
Slides

Opt BSTs due; [separate chaining practice]

Apr 12

Open addressing
Slides

Open addressing assigned

Apr 14

Hash functions
Slides

Apr 17

Perfect hashing
Slides

Perfect hashing assigned

Apr 19

Hash table performance
Slides

Open addressing due

Apr 21

Strings. String sorts
Slides

Apr 24

Tries
Slides

Tries assigned

Apr 26

Regular expressions
Slides

Perfect hashing due

Apr 28

Review
Practice problems

Tries due