CS3114 Data Structures and Algorithms
Calendar and Coursenotes: Spring 2011
This page will show what we cover each day, including the course notes covered in class as they are presented on the screen.
Reading assignments are also posted for each week. You can find the textbook here. The intention is that you will have finished the reading for that week by the end of the week (that is, typically you would be expected to read material after the associated lecture).
- Week 1: Introduction; Math background
-
Tuesday, January 18: Course intro
Coursenotes: 1-16
Handouts: Syllabus, prereq forms, force add forms (as needed)
Reading Assignment: Skim through Chapter 1 in the textbook
-
Thursday, January 20: Project scheduling and time management; Math background
Coursenotes: 17-29
Reading Assignment: Look at Chapter 2. Read carefully those sections that you are not familiar with, especially the section on estimation.
Homework: Carefully read Project 1 assignment, and be ready to ask questions on Tuesday.
- This week's coursenotes
-
Tuesday, January 18: Course intro
- Week 2: Algorithm Analysis
-
Tuesday, January 25: Discuss Project 1; Estimation; Algorithm Analysis
Coursenotes: 30-38
-
Thursday, January 27: Algorithm Analysis
Coursenotes: 39-65
Reading Assignment: Read Chapter 3
Project 1 initial schedule due via Web-CAT
-
Tuesday, January 25: Discuss Project 1; Estimation; Algorithm Analysis
- Week 3: Lists
-
Tuesday, February 1: Lists (array-based and linked)
Coursenotes: 66-90
-
Thursday, February 3: Heaps, Freelists
Coursenotes: 136-137, 152-163, 91-94
Algorithm Visualization: Trakla2 Heap Tutorial (AlgoViz Catalog Description)
-
Tuesday, February 1: Lists (array-based and linked)
- Week 4: Lists; Binary Trees
-
Tuesday, February 8: Doubly Linked Lists, Dictionaries, Stacks and Queues
Coursenotes: 95-114
Project 1 second schedule due via Web-CAT
Reading Assignment: Read Chapter 4 -
Thursday, February 10: Binary tree representations, traversals
Coursenotes: 115-136
-
Tuesday, February 8: Doubly Linked Lists, Dictionaries, Stacks and Queues
- Week 5: Binary Trees
- Monday, February 14: Early due date for Project 1
- Tuesday, February 15: Binary Search Trees
Course Notes: Slides 139-152
Algorithm Visualization: Binary Treesome (BST insert, AVL tree)
Algorithm Visualization: Trakla BST (BST delete)
Due date for Project 1
- Thursday: February 17: Huffman Coding Trees
Course Notes: Slides 165-170
Algorithm Visualization: Huffman Coding Tree
Due date for Homework 1
Reading Assignment: Read Chapter 5
- Week 6:
- Tuesday, February 22: Midterm (Chapters 1-5)
-
Thursday, February 24: Go over midterm, discuss Project 2
Project 2 initial schedule due via Web-CAT
- Week 7:
- Tuesday, March 1: General Trees, Union/Find (equivalence classes)
Coursenotes: 171-179
Union/Find AV
Reading Assignment: Read Sections 6.1, 6.2
- Thursday, March 3: General tree representations
Coursenotes: 180-187
Reading Assignment: Read Chapter 6
- Tuesday, March 1: General Trees, Union/Find (equivalence classes)
- Week 8: Sorting
- Tuesday, March 15: O(n^2) sorts, Shellsort
Coursenotes: 188-199
- Wednesday, March 16: Revised early due date for Project 2
- Thursday, March 17: O(n log n) sorts
Coursenotes: 200-211
Revised due date for Project 2
Sorting Overview visualization (lets you see a visual comparison of multiple algorithms running at once)
Quicksort visualization (Hit "enter" and then find the Quicksort listed on the left menu)
- Tuesday, March 15: O(n^2) sorts, Shellsort
- Week 9: Sorting, File Processing
- Tuesday, March 22: Radix Sort, sorting lower bound
Coursenotes: 212-221
Radix sort visualization
First Fit memory management tutorial
Reading assignment: Chapter 7
- Thursday, March 24: Disk drives
Coursenotes: 222-231
Project 3 initial schedule due via Web-CAT
Homework 2 due via Web-CAT
- Tuesday, March 22: Radix Sort, sorting lower bound
- Week 10: Buffer pools, external sorting
- Tuesday, March 29: Disk drives, buffer pools
Coursenotes: 232-245
Buffer pool visualization
- Thursday, March 31: External sorting
Coursenotes: 246-264
Reading Assignment: Chapter 8
Project 3 second schedule sheet due
- Tuesday, March 29: Disk drives, buffer pools
- Week 11: Hashing
- Tuesday, April 5: Hashing
Hashing tutorial - Wednesday, April 6: Project 3 early due date
- Thursday, April 7: Hashing
Hashing tutorial
Project 3 due date
- Tuesday, April 5: Hashing
- Week 12: Search
- Tuesday, April 12: Hashing quiz
- Thursday, April 14: Search
Coursenotes: 265-288
Project 4 initial schedule due via Web-CAT
Reading Assignment: Chapter 9
- Tuesday, April 12: Hashing quiz
- Week 13: Indexing and B-trees
- Tuesday, April 19: Linear Index, 2-3 trees
Coursenotes: 289-300
- Thursday, April 21: B-Trees
Coursenotes: 301-312
Reading Assignment: Chapter 10
- Tuesday, April 19: Linear Index, 2-3 trees
- Week 14: Graphs
- Tuesday, April 26: Graph Representations; Graph Traversals
Coursenotes: 313-331
Project 4 intermediate schedule due via Web-CAT
Queue-based Topological Sort Visualization: You will need webstart to run this.
- Thursday, April 28: Shorest paths algorithms, MCST algorithms
Coursenotes: 332-347
Dijkstra's Shortest Paths Algorithm Visualization: You will need webstart to run this.
Reading Assignment: Chapter 11
- Tuesday, April 26: Graph Representations; Graph Traversals
- Week 15: Wrapup, final
- Monday, May 2: Project 4 early due date
- Tuesday, May 3: Last day of class
Project 4 due date - Wednesday, May 4: Homework 3 due date
- Friday, May 6: Final at 4:25-6:25
Go to the CS3114 Homepage.