CSCI 345. Data Structures and Algorithms


Spring 2022
Thomas VanDrunen



Meeting time: MWF 12:55am-2:05pm.
Meeting place: MEY 061

Office hours: Schedule through Calendly
Contact: MEY 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu



Syllabus



Final exam: Tues, 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 10

Prolegomena. Introduction
Slides

Pretest assigned

Jan 12

Algorithms and correctness
Slides

Pretest due

Jan 14

Algorithms and correctness; algorithms and efficiency
Slides

Jan 17

NO CLASS

Jan 19

Algorithms and efficiency
Slides

Jan 21

Algorithms and efficiency
Slides

Implementing ADTs assigned

Jan 24

Abstract data types
Slides

Jan 26

Data structures
Slides

Jan 28

Data structures; programming practices
Slides

Jan 31

Case studies. Counting sort
Slides

Linear Sorting assigned

Feb 2

Radix sort

Implementing ADTs due

Feb 4

Disjoint sets and array forests
Slides

Feb 7

Priority queues and heaps
Slides

Linear Sorting due; Heaps assigned

Feb 9

N-sets and bit vectors
Slides

Bit Vectors assigned

Feb 11

Graphs. Concepts and implementation
Slides

Feb 14

Traversal
Slides

Heaps due

Feb 16

Review

Feb 18

Test

Feb 21

NO CLASS

Feb 23

Minimum spanning trees
Slides

Bit Vectors due; MST assigned

Feb 25

Minimum spanning tree
Slides

Feb 28

Single source shortest paths
Slides

MST due; SSSP assigned

Mar 2

Finishing SSSP

SSSP due Mar 3

Mar 4

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

BST Rotations assigned

Mar 7

NO CLASS

Mar 9

NO CLASS

Mar 11

NO CLASS

Mar 14

Balanced BST problem, AVL trees
Slides

Mar 16

AVL trees
Slides

BST rotations due; AVL trees assigned

Mar 18

Traditional red-black trees
Slides

Traditional RB trees assigned

Mar 21

Left-leaning red-black trees
Slides

AVL trees due; [Practice: LLRB trees]

Mar 23

BSTs wrap-up
Slides

Mar 25

Dynamic programming. Introduction
Slides

Mar 28

Dynamic programming principles
Slides

Traditional RB trees due

Mar 30

Dynamic programming algorithms
Slides

Apr 2

DP: Optimal BSTs
Slides

Optimal BSTs assigned

Apr 4

Review
Slides

Apr 6

Test

Apr 8

Hash tables. Introduction and separate chaining
Slides

Opt BSTs due; [separate chaining practice]

Apr 11

Open addressing
Slides

Open addressing assigned

Apr 13

Hash functions
Slides

Apr 15

NO CLASS

Apr 18

Perfect hashing
Slides

Perfect hashing assigned

Apr 20

Hash table performance
Slides

Open addressing due

Apr 22

String sorts
Slides

Apr 25

Tries
Slides

Tries assigned

Apr 27

Regular expressions
Slides

Perfect hashing due

Apr 29

Review

Tries due