| Topics |
Assignments |
| 1. Week of Aug 24
Introduction to Classes
(Week's Objectives)
|
Announcements:
- This calendar and related items are at www.portmain.com/ds.
- Office hours are listed at www.cs.colorado.edu/~main/hours.html
- Please review the grading policies at the bottom of this page,
including the recording of a zero score for missed exams or quizzes.
- Quiz Friday in class
- First homework is due next Monday at 11:30pm. Please follow the
style
requirements.
Submit to culearn.colorado.edu.
- Be sure to register for your csel account and access at sac.colorado.edu.
- Note: Some weeks we will get ahead of schedule and start the next
week's material.
This Week's Topics:
|
|
| 2. Week of Aug 31 Container Classes
|
Announcements:
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm
in the CSEL
This Week's Topics:
|
- Please read 3.1 and 3.3 before this Friday's quiz.
- Please read Section 4.1 before next week's first lecture.
- Homework 1: The Statistician Class
due at 11:30pm on Monday, Aug 31
(submit to CULearn). For the first two homeworks, you may submit
work up to 24 hours late with no penalty, but no work will
be accepted after that.
- Start Homework 2: Container Classes
|
| 3. Week of Sep 7 Dynamic Arrays
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation: Pointers
(http://wikidir.portmain.com/cgi-bin/view/Main/PointerExercise)
- Introduction to Pointers
- Pointers and Assignment Statements
- The New Operator
- Dynamic Arrays
- Running Out of Memory
- The Delete Operator
- Pointer Type Definitions
- Pointers as Parameters
- Arrays as Parameters
- Dynamic Arrays as Members of a Class
- Memory Management in a Class with Dynamic Arrays
- Documentation in a Class with Dynamic Memory
- Dynamic Value Semantics
- The Bag Class with a Dynamic Array
- Prescription for a Class with Dynamic Arrays
- Chapter 4 Practice
- Quiz on Friday: Sections 4.1 through 4.4
|
- Please read 4.1 through 4.4 before this Friday's quiz.
- Please read Section 4.5 and 4.6 before next week's first lecture.
- Homework 2: Container Classes
due at 11:30pm on Monday, Sep 7
(submit to CULearn). For the first two homeworks, you may submit
work up to 24 hours late with no penalty, but no work will
be accepted after that.
- Start Homework 3: Dynamic
Arrays
|
| 4. Week of Sep 14 The Polynomial with a Dynamic Array
|
Announcements
- First Exam in Class on Friday, Sep
18. The exam will cover all assigned reading, lectures, homework, the
debugger and makefiles.
- We will have exam review during recitation this week.
- Extra exam review Wednesday at 5:00pm to 6:00pm in the CSEL.
This Week's Topics
- In Recitation: Exam Review Chapters 1-4
- A Matrix Class that Uses a 2-Dimensional Dynamic Array
- Discussion of the String Class
- Strings that Share Dynamic Memory
- (if time permits) More Dynamic
Arrays
- Exam on Friday
|
- No new reading this week
- Homework 3: Dynamic
Arrays
due at 11:30pm on Wednesday, Sep 16
(submit to CULearn).
Work is accepted with a 10% penalty up to 24 hours late.
|
| 5. Week of Sep 21 Introduction to Linked Lists
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation: Linked
List Practice (Part 1)
(http://wikidir.portmain.com/cgi-bin/view/Main/LinkedListExercise)
- Introduction to Linked Lists
- A Simpler Linked List Node Using Struct
- The Member Selection Operator
- Const Member Functions for Nodes
- Why We Need Two Versions of a Function
- Never Dereference the Null Pointer
- The Length Function
- Pattern to Traverse a Linked List
- More Linked List Design Patterns
- Inserting a Node
- The Proper Use of New and Delete
- Searching a Linked List
- Discussion of a Node for Your New String Class
- Sections 5.1/5.2 Practice
- Quiz on Friday: Pages 211 to 238
|
- Please read Pages 211 to 238 before this week's quiz.
- No homework due this week
- Start Homework 4: Linked
String
Class
|
| 6. Week of Sep 28 Advanced Linked List Functions
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation: Linked List Practice (Part 2)
(http://wikidir.portmain.com/cgi-bin/view/Main/LinkedListExercise)
- Copying a Linked List
- Removing Nodes from a Linked List
- Clearing a Linked List
- Discussion of a Functions for Your String Class Node
- Section 5.2 Practice
- Quiz on Friday: Section 5.2
|
- Please read the rest of Section 5.2 before Friday's quiz.
- Homework 4: Linked
String Class
due at 11:30pm on Wednesday, Sep 30
(submit to CULearn).
Work is accepted with a 10% penalty up to 24 hours late.
- Start Homework 5: Extensions
|
| 7. Week of Oct 5
Classes That Use Linked Lists
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
|
- Please read Sections 5.3 and 5.5 before Friday's quiz.
- You may skip Section 5.4
- Homework: Extensions
due at 11:30pm on Wednesday, Oct 7
(submit to CULearn).
Work is accepted with a 10% penalty up to 24 hours late.
- Start Homework 6: TBA
|
| 8. Week of Oct 12
Templates, the Standard Template Library, Iterators
|
Announcements
- Second Exam in Class on Friday, Oct
16. The exam will cover Chapter 5 plus Sections 6.1 and 6.3
- We will have exam review during recitation this week.
- Extra exam review Wednesday at 5:00pm to 6:00pm in the CSEL.
- We didn't cover all this material in class, so we'll hit it
next week. I did do some more examples on Wednesday, and they are
posted online.
This Week's Topics
- In Recitation:
Templates
(http://wikidir.portmain.com/cgi-bin/view/Main/TemplateExercise)
and Exam Review
Mostly Chapter 5
- Template Functions
- Standard
Template Classess
- The Multiset Class
- Iterators and the [...) Pattern
- Do Not Dereference
the End Iterator
- Invalid Iterators
- Standard
Categories of Iterators
- Iterators for Arrays
- STL Iterator Algorithms
- Building
Your Own Template Classes
- Exam on Friday
|
- Please read Sections 6.1 and 6.3 before the exam.
- You may skip the rest of Chapter 6.
- Homework 6: Practice
Exam
due at Noon (in class) on Wednesday, Oct 14. You may work with
other students however you like. Just learn the material!
No late work accepted without prior arrangement.
|
| 9. Week of Oct 18
Stacks and Queues
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation:
Quantum Telepathy Homework Discussion
- Introduction
to Queues
- The STL Queue
- Evaluating
Arithmetic Expressions
- Array Implementation of a
Stack
- Linked List Implementation of a
Stack
- Converting Infix to
Postfix
- Building
a Postfix Calculator
- Backtrack algorithm with a stack
- Array Implementation of a
Queue
- Linked List Implementation of a
Queue
- Chapter
7 Practice
- Section
8.1 and 8.3 Practice
- Quiz on Friday: Chapter 7 and Sections 8.1 and 8.3
|
|
| 10. Week of Oct 26
Recursion
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation:
Recursion Practice
- First
Recursion Example: Digits
- Tracing
Recursive Calls
- Pattern for
Recursive Thinking
- Fractal Example
- 3D Fractal Example
- Backtrack
Searching
- Recursive
Functions with Return Values
- Sections
9.1 and 9.2 Practice
- Quiz on Friday: Sections 9.1 and 9.2
|
- Please read Sections 9.1 and 9.2 before Friday's quiz.
- You may skip Section 9.3
- Homework: Verification
of a Quantum Computer Program
due at 11:30pm on Wednesday, Oct 28
(submit to CULearn).
Note: If you have not finished by Wednesay, you may submit late work
before 11:30pm on Thursday for 10% penalty. No work will be accepted
after that.
- Start Homework: Fun with Recursion
|
| 11. Week of Nov 2
Binary Trees
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation:
Binary Tree Practice
- Binary Trees
- Taxonomy Tree Example
- Complete Binary Trees
- Binary Tree Node Class
- Tree Traversals
- Functions as Parameters
- The Apply Function
- General Tree
Traversal Functions
- Sections
10.1 to 10.5 Practice
- Quiz on Friday: Sections 10.1 to 10.4
|
- Please read Sections 10.1 to 10.4 before Friday's quiz.
- Homework: Fun with Recursion
due at 11:30pm on Wednesday, Nov 4
(submit to CULearn).
Work is accepted with a 10% penalty up to 24 hours late.
- Start Homework: Trees
|
| 12. Week of Nov 9
Binary Search Trees
|
Announcements
- Third Exam in Class on Friday, Nov
13. The exam will cover Chapters 7 through 10.
- We will have exam review during recitation this week.
- Extra exam review Wednesday at 5:00pm to 6:00pm in the CSEL.
This Week's Topics
- In Recitation: Exam
Review Chapters 6-10
- Biunary Search Trees
- The Bag with BST
- BST Search
- BST Insertion
- BST Removal
- BST Union
- Exam on Friday
|
- Please read Section 10.5 before Friday's exam.
- Homework: Continue working on Trees
due at 11:30pm on Monday, Nov 16
(submit to CULearn).
|
| 13. Week of Nov 16
Heaps and B-Trees
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation: Get Started on B-Tree Homework
- Heaps
- Unbalanced
Search Trees
- B-Trees
- Set with a B-Tree
- B-Tree Search
- B-Tree Insertion
- Top-Down Design and Testing
- Sections
11.1 and 11.2 Practice
- Quiz on Friday: Pages 534-556
|
|
| 14. Week of Nov 30
More B-Trees, Sorting
|
Announcements
- Quiz Friday in class
- Review and homework session Friday at 5:00pm to 6:00pm in the CSEL
This Week's Topics
- In Recitation: Sorting
Exercise (http://wikidir.portmain.com/cgi-bin/view/Main/SortingAlgorithms1)
- B-Tree Removal
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Heap Sort
- Radix Sort
- Shuffle Sort
- Section 11.2 Practice
- Chapter
13 Practice
- Quiz on Friday: The rest of Section 11.2 and all of Chapter 13
|
- Please read the rest of Section 11.2 and Chapter 13 before Friday's quiz.
- Homework: Balanced
Trees (Part
A, Homework 10)
due at 11:30pm on Thursday, Dec 3
(submit to CULearn).
Late work is accepted up to 96 hours late with a penalty of 10%
- Start Homework: Balanced Trees (Part B)
|
| 15. Week of Dec 7
Sequential Search, Binary Search, Hash Tables
|
Announcements
- Extra Final Exam Review Friday, Dec 11, 5:00pm - 6:00pm in the CSEL.
- Final Exam will be Wednesday, Dec 16, at 4:30pm-7:00pm in the usual lecture room
This Week's Topics
- In Recitation: Timing
Exercise (http://wikidir.portmain.com/cgi-bin/view/Main/SortingAlgorithms2)
- Serial Search
- Binary Search
- Open-Address Hash Tables
- Chained Hash Tables
- Chapter
12 Practice
|
- Please read Chapter 12
before the final exam.
- Homework: B-Tree
(Part B)
due at 11:30pm on Friday, Dec 11
(submit to CULearn).
No late work is accepted.
|
| Final Exam Week
|
- The final exam will have two parts. Part 1 (250 points) will cover Sections 11.1, 11.2 plus all of Chapters 12
and 13. Part 2 (100 points) will be a comprehensive exam covering the entire semester.
- The exam will be in our usual lecture room from
4:30pm to 7:00pm on Wednesday, Dec 16.
|