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

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.

Readings labeled DSUP refer to Data Structures and Algorithms Using Python, by Dr. Rance Necaise. Readings labeled CN refer to Concise Notes on Data Structures and Algorithms, by Dr. Chris Fox. Readings labeled PD come from http://docs.python.org, the official python documentation site.

WEEK DATE TOPIC READING OUT IN
1 08-27 Introductions/Syllabus (.pdf)
DSUP: 1.1 - 1.3.2 HW1

08-29 Python Basics (in CS/ISAT 250) DSUP: A.1 - A.5.4
DSUP: A.7 - A.7.3



08-31 Turtle Activity (in CS/ISAT 250)
HW2
2 09-03 List/String Activity (in CS/ISAT 250)

HW1

09-05 Discuss PA1 (In HHS 2208)
OO Python
buildings.py
DSUP: B & D PA1

09-07 OO Python
Shape Activity (In CS/ISAT 250)

HW3 HW2
3 09-10 Python Assertions and Exceptions (IN HHS)
atm.py
DSUP: 1.2.3
DSUP: C



09-12 Algorithm Analysis (.pdf) DSUP: 4 - 4.1.2
CN (.pdf): CH 11-12



09-14 Algorithm Analysis (.pdf)
HW4.pdf
HW4.tex
HW3
4 09-17 Algorithm Analysis (.pdf)



09-19 List ADT
Python Lists
List ADT, Python ListsIterators (.pdf)
DSUP: 1.3.2—1.4
DSUP: 2 - 2.2.5
PD: Iterators
PA2 PA1

09-21 Python List Analysis
Python List Analysis (.pdf)
DSUP: 4.2—4.3 HW4
5 09-24 Testing PD: unittest 25.3-25.3.1, 25.3.7.1


09-26 Midterm Review



09-28 MIDTERM 1


6 10-01 Linked Lists (.pdf)
llist.py
DSUP: 6-6.4.2


10-03 Linked Lists Activity (In CS/ISAT 250)
HW5

10-05 Linked Lists (In CS/ISAT 250) DSUP: 9-9.2

7 10-08 Stacks (.pdf)
pyliststack.py
lliststack.py
DSUP: 7-7.3.2
PA2

10-10 Queues (.pdf)
pylistqueue.py
llistqueue.py
arrayqueue.py
DSUP: 8


10-12 Stacks and Recursion
recursion.py
DSUP: 10-10.3.3 PA3 HW5
8 10-15 Search Algorithms
search.py
DSUP: 5.1,


10-17 Recursive Binary Search
binary_search.py
Recurrences (.pdf)
CN (.pdf): CH 14
cn_recurrences.py
DSUP: 10.4-10.4.2



10-19 Recurrences (.pdf)

hw6.pdf
hw6.tex

9 10-22 Simple Sorts
simple_sorts.py
DSUP: 5 - 5.23


10-24 Merge Sort (.pdf)
merge_sort.py
time_sorts.py
DSUP 5.3.2
DSUP: 12-12.1.4
CN (.pdf): CH 15, Merge Sort



10-26 Quicksort
qsort.py
time_qsort.py
xSortLab animations
DSUP: 12.2.-12.3
CN: CH15, Quicksort


10 10-29 Hurricane Day
PA4 PA3

10-31 Wrap Up Sorting (.pdf)

HW6

11-02 Midterm Review


11 11-05 MIDTERM 2



11-07 Trees and Traversals
binary_tree.py
draw_tree.py
DSUP: 13-13.2


11-09 Tree Activity (In CS/ISAT 250) binary_tree.py
draw_tree.py
HW7
12 11-12 Heaps and Heapsort (.pdf)
heap.py
draw_heap.py
heap_sort.py
13.4-13.5


11-14 Maps (.pdf) and Binary Search Trees
bst_map.py
draw_bstmap.py
DSUP 3.2.1-3.2.2
DSUP 14-14.2



11-16 Maps and Binary Search Trees

PA4
13 11-19 THANKSGIVING



11-21 THANKSGIVING



11-23 THANKSGIVING


14 11-26 Hashing DSUP: 11-11.5 PA5

11-28 Hashing Activity
hw8.pdf HW7

11-30 Hashing (.pdf)


15 12-03 AVL Trees
AVL Tree Applet
DSUP: 14.3


12-05 Work on PA (In CS/ISAT 250)



12-07 Review

HW8, PA5
16 12-10 Section 1 Final: 8:00-10:00AM



12-12 Section 2 Final: 8:00-10:00AM