CSCI 345. Data Structures and Algorithms


Spring 2021
Thomas VanDrunen



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

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



Syllabus



Final exam: Thurs, May 6, 1:30pm-3:30pm Tues, May 4, 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 18

NO CLASS

Jan 20

Prolegomena. Introduction

Pretest assigned

Jan 22

Algorithms and correctness

Pretest due

Jan 25

Algorithms and correctness; algorithms and efficiency

Jan 27

Algorithms and efficiency

Jan 29

Algorithms and efficiency

Implementing ADTs assigned

Feb 1

Abstract data types

Feb 3

Data structures

Feb 5

Data structures; programming practices

Feb 8

Case studies. Counting sort

Linear Sorting assigned

Feb 10

Radix sort

Implementing ADTs due

Feb 12

Disjoint sets and array forests

Feb 15

Priority queues and heaps

Linear Sorting due; Heaps assigned

Feb 17

N-sets and bit vectors

Bit Vectors assigned

Feb 19

Graphs. Concepts and implementation

Feb 22

Traversal

Feb 24

Minimum spanning trees

Bit Vectors due; MST assigned

Feb 26

Minimum spanning tree

Mar 1

Single source shortest paths

SSSP assigned

Mar 3

Review

Mar 5

Test

Mar 8

Binary search trees. General BSTs

BST Rotations assigned

Mar 10

NO CLASS

Mar 12

AVL trees

BST Rotations due

Mar 15

AVL trees

BST rotations due; AVL trees assigned

Mar 17

Traditional red-black trees

Traditional RB trees assigned

Mar 19

Left-leaning red-black trees

AVL trees due; [Practice: LLRB trees]

Mar 22

BSTs wrap-up

Mar 24

Dynamic programming. Introduction

Mar 26

Dynamic programming principles

Traditional RB trees due

Mar 29

Dynamic programming algorithms

Mar 31

DP: Optimal BSTs

Optimal BSTs assigned

Apr 2

NO CLASS

Apr 5

Review

Apr 7

Test

Apr 9

Hash tables. Introduction and separate chaining

Opt BSTs due; [separate chaining practice]

Apr 12

Open addressing

Open addressing assigned

Apr 14

Hash functions

Apr 16

Perfect hashing

Perfect hashing assigned

Apr 19

Hash table performance

Open addressing due

Apr 21

String sorts

Apr 23

Tries

Tries assigned

Apr 26

Regular expressions

Perfect hashing due

Apr 28

Regular expressions

Apr 30

Review

Tries due