CS 240: Algorithms and Data Structures
James Madison University, Fall 2020

The schedule below represents my current best estimate concerning due dates (and everything else). I am providing this information to give you a general idea of the pace and timing of the class. This schedule will certainly change as the semester progresses.

WEEK DATE TOPIC READING/EXERCISES
0 08-24


08-26 Introduction (.pdf) 01.01-01.02

08-28 Java Generics Lab Generics Tutorials
1 08-31 Intro Algorithm Analysis 04.01-04.03

09-02 Asymototic Analsysis (.pdf) 04.04-04.07

09-04 Every Case/Worst Case (.pdf)
Algorithm AnalysisExercises
04.08,04.11
2 09-07 Analyzing Problems

09-09 List ADT
Amortized Analysis
05.01-05.03, Amortization Tutorial

09-11 Dynamic Arrays Lab
3 09-14 LinkedList vs. ArrayList 05.04-05.07

09-16 Stacks
05.08-05.09

09-18 Linked List Lab

4 09-21 Queues 05.12-05.13

09-23 Stack/Queue worksheet
05.14

09-25 Queue Lab

5 09-28 Developing Recurrences
06.01 + PDF

09-30 Analyzing Recurrences
06.02-06.05

10-02 Characterizing Recurrences
Recurrence Exercises
Recurrence Videos
6 10-05 basic sort exercises 09.01-09.07

10-07 Merge Sort 09.09-09.10

10-09 Recursion Lab
7 10-12 Quick Sort
09.11

10-14 radix_activity.pdf 09.13-09.14

10-16 Sort Lab
8 10-19 Sort Wrap Up 09.16-09.17

10-21 Binary Trees 08.01-08.06

10-23 Expression Tree Lab 08.07-08.10
9 10-26 Binary Search Tree Activity 08.11-08.12

10-28
AVL Trees
AVL .pdf + 2-3 trees

10-30
BST Lab
08.13-08.15
10 11-02
AVL Trees


11-04 Red Black Trees Red-Black Trees

11-06 AVL Tree Lab
11 11-09 Heap 08.16-08.17, 09.12

11-11 Huffman Coding Activity 08.18

11-13 Priority Queue Lab
12 11-16 Hashing Intro 10.01-10.04

11-18 Hashing Activity (.pdf) 10.06-10.09

11-20 Hashing Lab

11-23 THANKSGIVING BREAK

11-25 THANKSGIVING BREAK

11-27 THANKSGIVING BREAK
13 11-30 Hashing Wrap 10.08

12-02 Graphs
Graph Activity
12.01-12.03

12-04 Graph Lab
14 12-07 Graph Algorithms 12.04-12.05

12-09 Application