810:052  Data Structures

Fall 2009

Instructor: Dr. Ben Schafer

The following links may be helpful this semester.

Date Readings  Activity Links and Announcements
8/24 Sections 1.4 and 1.5 Session 1 - Intro to the course.  Why study data structures?
8/25 Sections 2.2-2.6, 3.1-3.4, 4.1, 4.4 Lab 1 - Reviewing basic python
8/26 Sections 3.5, 5.1-5.4 Session 2 - Introduction to python collections
8/28   Session 3 - Continuing collections
9/31 Chapter 8 Session 4 - Wrapping up collections.  Writing classes
9/1 Read Section 8.2 Lab 2 - Designing classes in Python
9/2   Session 5 - More with designing classes
PA#1 - Creating classes from scratch
9/4 Section 11.1-11.2 Session 6 - Introduction to Complexity, Searching, and Sorting
9/7 LABOR DAY  
9/8 Section 11.3 Lab 3 - Working with Complexity
9/9   Session 8 - Complexity and Searching
9/11 Section 11.4 Session 9 - Wrapup of Lab3 and searching.
9/14   Session 10 - Introduction to sorting
9/15   Lab 4 - Complexity of sorting algorithms
9/16   Session 11 - Debrief of Lab4 /  QUIZ 1 (chapter 11)
The Sort Animator I used in class.
9/18 Skim 12.1 and 12.2, read 12.3 Session 12 - Design and testing of code (My pyunit tests from HW#1)
HW#2 - Design activity
9/21   Session 13 - Visit from State Farm
9/22 Read chapter 13.1-13.3 Lab 5 - Introduction to Arrays
9/23 Read chapter 13.4 Session 14 - Debrief Lab 5 and QUIZ 2 (chapter 12)
9/25 Read chapter 13.5-13.7 Session 15 - Complexity in arrays and linked lists
9/28 Read Chapter 14 Session 16 - Introduction to Stacks and QUIZ 3 (chapter 13)
9/29   Lab 6 - Stack Lab
9/30   Session 17 - Debrief Lab 6 and PA02
PA03 - Working with Stacks
10/2   Session 18 - Wrap up Stacks
10/5 Read Chapter 15 Session 19 - Introduce Queues and QUIZ 4 (chapter 14)
10/6   Lab 7 - Queue Lab
10/7   Session 20 - Debrief Lab 7
10/9   Session 21 - Wrapup Queues, prep for exams, and QUIZ 5 (chapter 15)
10/12   Mid-term exam (Python basics, chapters 11-15)
10/13   Lab Exam #1
10/14   Session 23 - Midterm updates
10/16 Revisit Chapter 15.4.2 Session 24 - Radix Sort ( PA04 ), Circular Array Queue
10/19 Read Chapter 15.6 Session 25 - Priority Queues
10/20   Lab 9 - A mini programming assignment with queues
10/21 Read 16.1-16.4 Session 26 - Building a List structure on top of an Array
10/23 Read 16.5-end of chapter Session 27 - Debrief PA04.  Continue with code from s26
PA05 - Producing an even faster radix sort
10/26 Skim Chapter 17 (focus on 17.1) Session 28 - Chapter 16 quiz.  A review on recursion
10/27   Lab 10 - Creating a List structure on top of a linked list
10/28 Read Chapter 18.1 Session 29 - Finish recursion, An introduction to trees
10/30 Read Chapter 18.2-18.5 Session 30 - Binary Trees, traversal
PA06 - Improving your submission for Lab10
11/2 Read Chapter 18.6 Session 31 - Implementation of a SIMPLE BinaryTree
11/3   Lab 11 - Working with a more advanced BinaryTree and expression trees.  (My solution for your study)
11/4 Read Chapter 18.7 Session 32 - Implementing a BST
11/6   Session 33 - Wrapping up BST
PA07 - Adding functionality to the BST.
11/9 Read 18.9-18.11 Session 34 - Begin Heaps
11/10   Lab 12 - Heaps
11/11 Read 19.1-19.2.1 Session 35 - Debrief Lab 12, Begin Chapter 19 (sets)
11/13 Read remainder of chapter 19 Session 36 - Quiz on chapter 18.  Hash Mapping
11/16   Session 37 - Introduction to dictionaries (dictionary.py)
11/17   Lab 13 - Hashing
11/18   Session 38 - Wrapping up dictionaries (dictionary.py)
HW#8 - Your last BIG assignment - creating a concordance.
11/20 Read Chapter 20 Session 39 - Graph Terminology and representation.  Quiz on Chapter 19. 
11/30 Read 20.6 Session 40 - Graph Representation
12/1   Lab 14 - Graphs
12/2   Session 41 - Debrief of Lab14
12/4 Read 20.7 Session 42 - Shortest Path - PA09
12/7 Read 20.5 Session 43 - Review of Shortest Path - begin concept of Prim's algorithm
12/8   Lab Exam #2 (chapters 16, 18, 19)
12/9   SNOW DAY
12/11   Session 45 - Final review, lab exam discussion, wrap up of Prim??
12/14   Final Exam, 10:00-11:50, Monday