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

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.

Unless otherwise noted, all readings are from Data Structures and Algorithms in Python, by Goodrich et. al.

WEEK DATE TOPIC READING OUT IN
1 08-25 Intro/Syllabus (.pdf)



08-27 Turtle Exercises (ISAT/CS248) 1.1-1.5.1


08-29 Lists and Strings (ISAT/CS248)
List and String Activity
Python Tutorial 3.1.2, 3.1.3
Python Tutorial 5.1.0
HW1
2 09-01 Modules
Dictionaries
PA1 Warm-Up (ISAT/CS248)
1.11
Python Tutorial 5.5
PA1

09-03 Software Design
Object Oriented Python
buildings.py
2.1-2.3.2
2.4, 2.6



09-05 OO Python Lab (ISAT/CS248) 2.1-2.3.2 2.4, 2.6
HW1
3 09-08 Exception Lab (ISAT/CS248) 1.7


09-10 Algorithm Analysis 3-3.3.2


09-12 Algorithm Analysis 3.3.3-3.4.2 hw2.pdf
hw2.tex

4 09-15 Unit Testing Lab
(IN ISAT/CS 248)
2.2.4
Testing Tutorial



09-17 Dynamic Arrays (.pdf) 5.1-5.3.3
PA1

09-19 Dynamic Array Analysis (.pdf) 5.4
HW2
5 09-22 Midterm Review
PA2

09-24 MIDTERM #1



09-26 Stacks (.pdf) 6.1

6 09-29 Queues (.pdf)
for_loop.py
iterator.py
generator.py
1.8, 2.3.4, 6.2


10-01 Stack/Queue Lab



10-03 Singly Linked Lists (.pdf)
linked_stack.py
linked_queue.py
7.1

7 10-06 Linked List Lab
HW3

10-08 More linked Lists 7.2, 7.3, 7.7
PA2

10-10 Linked Lists
PA3
8 10-13 Tracing Recursion (.pdf)
recursion_examples.py
4.1, 4.3 - 4.5
HW3

10-15 Start Recurrences (.pdf) 4.2 (skim)
Concise Notes, CH 14
cn_recurrences.py



10-17 Recurrences (.pdf)
HW4.pdf
HW4.tex

9 10-20 Tail Recursion
Introduce Sorting
4.6
Concise Notes, CH 13
(Through Selection Sort)
simple_sorts.py



10-22 Insertion Sort
Merge Sort (.pdf)
merge_array.py
Concise Notes, CH 13
(Through Insertion Sort)
simple_sorts.py

Goodrich: 12.1-12.2



10-24 Quick Sort
quick_array.py
12.3
PA3
10 10-27 Sort Visualizations
sort_table.pdf
12.4-12.5 PA4 HW4

10-29 Midterm Review



10-31 MIDTERM #2


11 11-03 Introduction to Trees
tree.py
draw_tree.py
8.1-8.3.1,
8.3.3-8.4.4



11-05 Tree Activity



11-07 Priority Queues + Heaps
priority_queue_base.py
heap_priority_queue.py
8.3.2, 9.1-9.3.5 HW5
12 11-10 Heap Sort 9.3.6-9.4.2


11-12 Maps + Search Trees 10.1, 11.1
PA4

11-14 AVL Trees 11.2-11.3 PA5
13 11-17 Start Hashing 10.2
HW5

11-19 Hashing (.pdf)
Hashing Lab

HW6 (.pdf)

11-21 Continue Hashing Lab


14 11-24 THANKSGIVING WEEK



11-26 THANKSGIVING WEEK



11-28 THANKSGIVING WEEK


15 12-01 Application Lab



12-03 TBD

HW6

12-05 Exam Review

PA5
16 12-08 Section 2 Final: 8:00-10:00



12-12 Section 1 Final: 8:00-10:00