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

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 READINGS CLASS OUT IN
1 08-21 CS 240 Intro


08-23 Lab 1: Collections and Iterators

2 08-26 Lab2: Iterators PA1

08-28 Analysis Exercises (.pdf)
Exercises.java



08-30 Lab 3: Counting

3 09-02 Asymototic Analsysis


09-04 Big-O Exercises


09-06 Analyzing Problems
Analysis Exercises

PA1 - Part 1 (9/8)
4 09-09 Amortized Analysis

PA1 - Part 2 (9/10)

09-11 LinkedList vs. ArrayList PA2

09-13 Lab 4: Dynamic Arrays Lab

5 09-16 Lab 5: Linked List Lab


09-18 Stacks and Queues


09-20 Lab 6: Queue Lab

6 09-23 Exam #1 Review


09-25 Exam #1


09-27 Lab 7: Recursion

7 09-30 Developing Recurrences


10-02 Analyzing Recurrences
Recurrence Exercises



10-04
Recurrence Exercises


8 10-07 Sorting Algorithms
Sorting Exercises
PA3

10-09 Merge Sort
Merge Sort Visualization

PA2

10-11 Quick Sort Exercises
Quicksort Visualization


9 10-14 Radix Sort


10-16 FALL BREAK


10-18 FALL BREAK

10 10-21 radix_activity.pdf


10-23 Binary Trees


10-25 Lab 8: Expression Trees

11 10-28 Dictionaries and Sets
Binary Search Tree Activity



10-30 AVL Trees
PA3

11-01 Lab 9: BST Lab

12 11-04 Exam #2 Review


11-06 Exam #2


11-08 Heap

13 11-11 Huffman Coding Activity PA4

11-13 Hashing Intro


11-15 Closed Hashing
Hashing Activity (.pdf)


14 11-18 Lab 10: Hashing


11-20 Graphs


11-22 Graph Lab
PA4
15 11-25 THANKSGIVING


11-27 THANKSGIVING


11-29 THANKSGIVING

16 12-02 Application Lab #1


12-04 Application Lab #2


12-06 Final Exam Review