CS 240: Data Structures and Algorithms
James Madison University, Spring 2013

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 01-07 Introductions/Syllabus (.pdf)
DSUP: 1.1 - 1.3.2 HW1

01-09 Python Basics (CS/ISAT 250)
hello.py
CodingBat exercises
DSUP: A.1 - A.5.4
DSUP: A.7 - A.7.3



01-11 Turtle Activity (CS/ISAT 250)


2 01-14 List/String Activity (CS/ISAT 250)
PA1, HW2 HW1

01-16 OO Python
buildings.py
DSUP: B & D


01-18 OO Activity (CS/ISAT 143)
HW3
3 01-21 MLK DAY

HW2

01-23 Python Assertions and Exceptions
atm.py
DSUP: 1.2.3
DSUP: C



01-25 Algorithm Analysis (.pdf) DSUP: 4-4.1.2
CN (.pdf): CH 11-12
hw4.pdf
hw4.tex
HW3
4 01-28 Algorithm Analysis



01-30 Algorithm Analysis

PA1

02-01 Set ADT
List ADT
Python Lists (.pdf)
DSUP: 1.3.2 - 1.4.2
DSUP: 3 - 3.1.3
DSUP: 2 - 2.2.5
PA2 HW4
5 02-04 List ADT / Python List Analysis (.pdf) DSUP: 4.2 - 4.3


02-06 Unit Testing (.pdf)
Unit Testing Activity (CS/ISAT 143)
PD: unittest 25.3-25.3.1
XP Unit Tests
Unit Testing Guidelines



02-08 Midterm Review


6 02-11 MIDTERM 1



02-13 Linked Lists (.pdf)
llist.py
DSUP: 6-6.4.2


02-15 Linked List Activity (CS/ISAT 143)
HW5
7 02-18 Advanced Linked Lists (CS/ISAT 143)
nt_array.py
DSUP: 9-9.2
PA2 (2/19)

02-20 Stacks (.pdf)
lliststack.py
pyliststack.py
DSUP: 7-7.3.2


02-22 Queues (.pdf)
llistqueue.py
pylistqueue.py
arrayqueue.py
DSUP: 8
HW5
8 02-25 Stacks and Recursion
recursion.py
DSUP: 7.4
DSUP: 10-10.3.3
PA3

02-27 Search Algorithms
search.py
DSUP: 5.1


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

hw6.pdf
hw6.tex

9 03-04 SPRING BREAK



03-06 SPRING BREAK



03-08 SPRING BREAK


10 03-11 Recurrences



03-13 Simple Sorts
simple_sorts.py
DSUP: 5.2-5.2.3


03-15 Inauguration

HW6 (5PM)
11 03-18 Snow Day

PA3

03-20 Merge Sort (.pdf)
merge_sort.py
DSUP 5.3.2
DSUP 12-12.1.4
CN (.pdf): CH 15, Merge Sort
PA4

03-22 Quick Sort
qsort.py
DSUP12.2-12.3
CN: CH15, Quicksort


12 03-25 Snow Day



03-27 Wrap Up Sorting (.pdf)



03-29 MIDTERM 2


13 04-01 Trees and Traversals
binary_tree.py
draw_tree.py
DSUP: 13-13.2


04-03 Tree Activity binary_tree.py HW7 PA4

04-05 Heaps and HeapSort
heap.py
draw_heap.py
heap_sort.py
DSUP 13.4-13.5 PA5 PA3 (resubmit)
14 04-08 Maps (.pdf) and Binary Search Trees
bst_map.py
draw_bstmap.py
DSUP: 3.2.1-3.2.2
DSUP: 14-14.2



04-10 AVL Trees
AVL Tree Applet
DSUP: 14.3


04-12 AVL Trees
HW8 HW7
15 04-15 Hashing DSUP: 11-11.5


04-17 Hashing Implementations (.pdf)



04-19 Hashing Activity(CS/ISAT 250)

HW8
16 04-22 Hashing Activity



04-24 Work day for PA5

PA5

04-26 Review For Final


16 05-01 Section 1 Final: 8:00-10:00AM



05-03 Section 2 Final: 8:00-10:00AM