Computer Science 345

Data Structures and Algorithms
Spring 2016
Thomas VanDrunen



Meeting time: MWF 2:00-3:05 pm.
Meeting place: Meyer 131

Office hours: MWF 9:15-10:15 pm; Tu 1:30-3:30.
Contact: 163 Science; 752-5692; Thomas.VanDrunen@wheaton.edu
http://cs.wheaton.edu/~tvandrun/cs345


Syllabus
Project guide



Final exam: Thursday, May 5, 1:30--3:30


Moon's dayWoden' s dayFrigga's day

Jan 11

Prolegomena. Introduction

Reading for Friday
Practice: Pre-test exercise

Jan 13

Case study: Counting Sort and Radix Sort

Project: Linear sorting

Jan 15

Abstract data types

Project: Implementing ADTs

Jan 18

NO CLASS

Jan 20

Case study: Disjoint sets and union/find

Jan 22

Algorithms: correctness
Slides

Read Section 1.4 plus response

Jan 25

Algorithms: analysis

Jan 27

Case study: Heaps and priority queues

Project: Heaps

Jan 29

Project work day

Feb 1

Case study: Bit vectors

Project: Bit vectors
Read Sections 4.(1&2) plus response

Feb 3

Graphs. Introduction
Slides

Feb 5

Graph implementations

Feb 8

Graph traversal

Read Section 4.3 plus response

Feb 10

Minimum spanning tree algorithms
Slides

Project: MST
Read Section 4.4 plus response

Feb 12

Single-source shortest path algorithms

Project: SSSP

Feb 15

NO CLASS

Feb 17

Finishing SSSP

Feb 19

Review

Feb 22

Test

Read Sections 3.(1&2) plus response

Feb 24

Binary search trees. Introduction to trees and BSTs

Read Sections 3.3 plus response

Feb 26

Overview of balanced trees
Slides

Feb 29

AVL trees
Slides

Project: AVL trees

Mar 2

Project work day

Mar 4

Traditional red-black trees
Slides

Project: Traditional RB trees

Mar 7

NO CLASS

Mar 9

NO CLASS

Mar 11

NO CLASS

Mar 14

Left-leaning red-black trees
Slides

Practice: LLRB trees

Mar 16

Two-three trees

Read pg 866-874 plus response

Mar 18

B-trees

Mar 21

Finishing balanced trees

Mar 23

Dynamic programming. Introduction
Slides

Practice: Dynamic programming

Mar 25

NO CLASS

Mar 28

Examples and principles

Project: Optimal BSTs

Mar 30

Examples
Slides

Apr 1

Optimal BSTs
Slides

Apr 4

Review

Practice problems

Apr 6

Test

Read section 3.4 pg 458-468 plus response by Apr 11

Apr 8

Hash tables. Introduction to hashing; separate chaining

Apr 11

Hash functions

Read section 3.4 pg 469-479 plus response

Apr 13

Open addressing with linear probing

Project: Linear probing

Apr 15

Performance of open addressing

Apr 18

Perfect hashing

Project: Perfect hashing
Skim Section 5.1 (no response necessary)

Apr 20

Hashing wrap-up.
Strings. String sorting; radix sort revisited
Slides

Read Section 5.2 (no response necessary)

Apr 22

Tries

Project: Tries
Skim Section 5.3 (no response necessary)

Apr 25

Substring search

Skim Section 5.4 (no response necessary)

Apr 27

String compression

Apr 29

Review

Practice problems