Computer Science 345

Data Structures and Algorithms
Spring 2020
Thomas VanDrunen



Meeting time: MWF 11:35am-12:45pm.
Meeting place: Meyer 131

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


Syllabus
Syllabus addendum for distance learning
Project guide
Information about Algorithmic Commonplaces
Jump to current week


Final exam: Wed, May 6, 8:00-10:00 am


Color code:
Green: Read carefully before class. In-class activities will be planned under the assumption that you have read this.
Magenta: Read sometime. I will lecture on this material, but you are responsible for details in the book that aren't covered in class.
Moon's dayWoden' s dayFrigga's day

Jan 13

Prolegomena. Introduction, 1.1
Slides

Project: Pre-test exercise Due Jan 17
Read 1.(1&2), pg 9-37

Jan 15

Algorithms and correctness, 1.2
Slides

Do Ex 1.6 (pg 19)
Read 1.3, pg 37-54

Jan 17

Algorithms and correctness, 1.2; algorithms and efficiency, 1.3
Slides

Read 1.4, 54-77

Jan 20

NO CLASS

Jan 22

Algorithms and efficiency, 1.(3 & 4)
Slides

Read 2.1, pg 79-95
do practice problem on handout, same as 1.(27,28,42,43) in book (for Jan 27)

Jan 24

Abstract datatypes, 2.1
Slides


Project: Implementing ADTs
Read 2.2, pg 95-128

Jan 27

Data structures, 2.2
Problem solution
Slides

Practice problems
Read 2.(3-5), pg 128-174

Jan 29

More on data structures; programming practices. 2.(2-5)


Read 3.1, pg 177-191

Jan 31

Case studies. Counting sort and radix sort, 3.1
Slides

Project: Linear sorting
Read 3.2, pg 191-209

Feb 3

More about counting sort and radix sort, 3.1

Feb 5

Disjoint sets and array forests, 3.2
Slides

Read 3.3, pg 209-236

Feb 7

Priority queues and heaps, 3.3
Slides

Project: Heaps
Read 3.4, pg 236-247

Feb 10

N-sets and bit vectors, 3.4
Slides

Project: Bit vectors
Read 4.(1 & 2), pg 265-284

Feb 12

Graphs. Concepts and implementation, 4.(1 & 2)
Slides

Read 4.3, pg 284-302

Feb 14

Graph traversal, 3.3
Sample graph


Read 4.4, pg 302-322

Feb 17

NO CLASS

Feb 19

Minimum spanning trees, 4.4
Slides

Project: MST
Read 4.5, pg 322-342

Feb 21

Minimum spanning trees

Feb 24

Single-source shortest paths, 4.5
Slides

Project: SSSP

Feb 26

Review

Practice problems

Feb 28

Test

Read 5.(1&2) pg 347-373

Mar 2

Trees. Binary search trees introduction, 5.(1 & 2)
Slides
Practice problem (in class)

Practice problem (for next time)
Read 5.3, pg 373-386

Mar 4

More about binary search trees; AVL trees, 5.3
Slides

Mar 6

More about AVL trees

Project: AVL trees
Read 5.4, 386-396

Mar 9

NO CLASS

Mar 11

NO CLASS

Mar 13

NO CLASS

Mar 16

NO CLASS

Mar 18

NO CLASS

Mar 20

NO CLASS

Mar 23

Traditional red-black trees, 5.4

Practice problem (due Mar 25)
Project: Traditional RB trees
Read 5.5, pg 408-413 and 417-421

Mar 25

Left-leaning red-black trees, 5.5

Practice: LLRB trees
Read 5.6, pg 421-449

Mar 27

Finishing balanced trees

Read 6.(1 & 2), pg 453-478

Mar 30

Dynamic programming. Introduction, 6.(1 & 2)


Read 6.3, 478-482
Do Ex 6.(5-7), submit through Schoology

Apr 1

Principles of dynamic programming, 6.3

Read 6.4, pg 482-496

Apr 3

Examples of dynamic programming algorithms, 6.4

Practice problem Due Apr 6
Read 6.5, pg 496-507

Apr 6

Optimal BSTs. 6.5

Project: Optimal BSTs

Apr 8

Finishing optimal BSTs

Practice problems--test 2 review

Apr 10

NO CLASS

Apr 13

Test

Read 7.(1&2), pg 511-526

Apr 15

Hash tables. Introduction to hashing and separate chaining, 7.(1&2)

Practice: Separate chaining
Read 7.3, pg 526-542

Apr 17

Open addressing with linear probing, 7.3

Project: Linear probing
Read 7.4, pg 542-557

Apr 20

Hash functions, 7.4

Read 7.5, pg 557-565

Apr 22

Perfect hashing, 7.5

Project: Perfect hashing
Read 7.6, pg 565-572

Apr 24

Hashing wrap-up, 7.6


Read Ch 8 intro and 8.1 (to be made available on schoology)

Apr 27

Strings. String sorting; radix sort revisited, 8.1


Read 8.2 (to be made available on schoology)

Apr 29

Tries, 8.2

Project: Tries

May 1

Review

Practice problems