COSC 350: Data Structures
Spring 2009

General Course Materials

Syllabus
Survey
Honor Code
The Honor Code and CS

Books
Required: Algorithms in C++ Parts 1-4 by Robert Sedgewick, ISBN 0-201-350883
Links to
Code and Errata

Recommended: Python Pocket Reference, Mark Lutz, ISBN 0-596-00940-2

Python Tutorial

Python and C++ Side-by-Side

Old Quizzes
Fall 2006: Quiz1-Inclass, Quiz1-Takehome, Quiz2, Quiz3
Fall 2008: Quiz1, Quiz2, Quiz3

Other Useful Links

Wofford Computer Science Department
Coping with Hitchhikers and Couch Potatoes on Teams
Code Checklist

Working Schedule

Items in italic are tentative.  When I formally assign something for this semester, I will remove the italic.

Date Description Readings Work Due
Mon.,
Feb. 2
Class Into, C, & Python N/A N/A

Wed.,
Feb. 4

C & Python Sections 1.1-1.2,
Python and C++ Side-by-Side
N/A
Fri.,
Feb. 6
Union-Find Sections 1.3-1.5

Translate into Python: C++ Code

Mon.,
Feb. 9
Analysis of Algorithms Sections 2.1-2.2 Your text only give the union portion of union-find. Implement find().

Wed.,
Feb. 11

Analysis of Algorithms Sections 2.3-2.4 N/A
Fri.,
Feb. 13
Analysis of Algorithms Sections 2.5-2.7 Handout
Mon.,
Feb. 16
More C Programming Start Arrays Sections 3.1-3.2 Search problem postponed until Wednesday

Wed.,
Feb. 18

Finish Arrays
Classes ln Python
Section 3.3 Time sequential and binary search for different size arrays
Fri.,
Feb. 20
Start Linked Lists Read Section 3.4
Skim Section 3.5
Recode Program 3.5 in Python
Mon.,
Feb. 23
Linked Lists
Finish Chapter 3
Sections 3.6-3.7 N/A

Wed.,
Feb. 25

Finish Chapter 3
Start ADT
Sections 4.1-2 Box-pointer diagrams
Fri.,
Feb. 27
Class Cancelled
due to illness
N/A N/A
Mon.,
Mar. 2
Class Cancelled
due to weather
N/A Submit via email:
Dummy head and tail
Doubly-linked list

Wed.,
Mar. 4

ADT, Stacks & Queues
Review
Sections 4.3-4.4 N/A
Fri.,
Mar. 6
SIGCSE Conference
In class project
Implement linked list stack & queue N/A
Mon.,
Mar. 9
Test on Chapters 1 through 3
Wed.,
Mar 11
Return & Go Over Work
Stacks and Queues
Sections 4.3-4.4 In class project
Fri.,
Mar 13
Stacks and Queues Applications Section 4.5 N/A
Mon.,
Mar 16
Finish ADTs, Etc.
Start Recursion
Sections 5.1 Revised project

Wed.,
Mar. 18

Recursion
Practice Problems
Sections 5.1-
Skim 5.2-5.3
Recursive programs

Fri.,
Mar. 20

Trees  Sections 5.4-5.5 More Recursive programs

Mon.,
Mar. 23

Tree Algorithms
Sections 5.6-5.7, 5.9 Rewrite programs 5.2, 5.3, and 5.6 in Python.

Wed.,
Mar. 25

Finish Trees
Simple BST
Start Sorting
Sections 6.1-6.5 Maze Problem from Handout
(Counts triple)
Fri.,
Mar. 27
Sorting Algorithms
Sections 6.1-6.6 Add a search routine for the BST code
Mar. 28 thru
Apr.5
Spring Break
Mon.,
Apr. 6
More Sorting Algorithms:
Shell, Quick & Merge Sort

High-points from Chapters 7 and 8

N/A

Wed.,
Apr. 8

Priority Queues & Heap Sort High-points from Chapter 9 Sort the data: [8, 4, 2, 9, 3, 0, 7, 1, 6, 5]
Fri.,
Apr. 10
Review N/A Bring questions for review
Mon.,
Apr. 13
Test on Chapters 4 through 6

Wed.,
Apr. 15

Over Test, Grades, & Course
Discuss Project
Binary Search
Trees
N/A N/A
Fri.,
Apr. 17
Binary Search Trees & Balancing Trees 12.4-12.6 Sorting Project
(Counts triple)
Mon.,
Apr. 20
Balancing Trees & Tree Rotations 12.8-12.9
Wikipedia Entry
Construct a heap tree using the data 5, 1, 8, 3, 7, 2, 0, 4, 6, 9

Wed.,
Apr. 22

Hash Tables 14.1-14.3 For the data: 5,1,9,3,7,2,4,8
a) Build the BST
b) Show rotating root with left subtree
c) show rotating root with right subtree
Fri.,
Apr. 24
Hash Tables Handout Implement Heap Sort (Counts double)
Mon.,
Apr. 27
Graph Algorithms Handout Resubmit Heap if necessary

Wed.,
Apr. 29

Graph Algorithms Handout Sort Project Rewrite
Fri.,
May 1
Review N/A Hash & Graph Homework
Mon.,
May 4
Test on Quicksort, Mergesort, Heaps & Heapsort, Binary Search Trees, Balancing Trees, Hashing, and Graphs & Graph Algorithms
Wed.,
May 6
Wrap up N/A N/A
Fri.,
May 8
No Class

This page was created by Joe Sloan.
It was last modified on or after: 29 April 2009
Send mail to: sloanjd@wofford.edu