This will evolve as the semester progresses. Click on chapter names (“Topic” column) for lecture notes; click on section names (reading assignments) for instructor’s comments on the textbook. Unless otherwise noted (e.g., at the beginning of the semester), new lab assignments will be handed out on Thursday and due before the start of lab the following Thursday. They will all be handed in via Blackboard.

Date | Session | Topic | Reading and assignments |
---|---|---|---|

Tues Jan 19 | Lecture | Chapter 1 Python review |
Read Chapter 1. |

Thurs Jan 21 | Lecture | Classes | Project 1 assigned. |

Lab 1 | Improving the Fraction class | See Blackboard. Due Tues. Jan. 26. | |

Tues Jan 26 | Lecture | Chapter 2 Stacks |
Read Sections 2.1–2.3. |

Lab 2 | Infix, postfix, and error checking | See Blackboard. Due Tues. Jan. 28. | |

Workshop | Classes | ||

Thurs Jan 28 | Lecture | Queues and deques | Read Sections 2.4–2.7 |

Lab 3 | Queue performance | See Blackboard. Due Tues. Feb. 2. | |

Tues Feb 2 | Lecture | Chapter 3 Recursion |
Read Sections 3.1–3.4.2. |

Lab 4 | Recursion | See Blackboard. Due Tues. Feb. 9. | |

Workshop | Stacks and queues | ||

Thurs Feb 4 | Lecture | Backtracking search | Project 1 due at noon. Project 2 assigned. |

Lab | More recursion | See Blackboard. Due Thurs. Feb. 11. | |

Tues Feb 9 | Lecture | Backtracking (continued) | |

Lab | (no new assignment) | Work on lab from Thurs., or on Project 2. | |

Workshop | Recursion, permutations | ||

Thurs Feb 11 | Lecture | Dynamic programming; start linked lists | Read Section 7.3. |

Lab | Linked-list-based sets | See Blackboard. Due Thurs. Feb. 18. | |

Tues Feb 16 | Lecture | Linked lists (continued); start Big-O | Read Section 7.2. |

Lab | (no new assignment) | Work on lab from Thurs., or on Project 2. | |

Workshop | Dynamic programming | ||

Thurs Feb 18 | Lecture | Chapter 4
Big-O, searching |
Read Sections 4.1–4.2 and Section 4.3. |

Lab | Pascal’s Triangle | See Blackboard. Due Thurs. Feb. 25. | |

Tues Feb 23 | Lecture | Sorting | Read Sections 4.4–4.5. Project 2 due at noon. Project 3 assigned. |

Lab | (no new assignment) | Work on lab from Thurs., or on Project 3. | |

Workshop | Hashing | ||

Thurs Feb 25 | Lecture | Sorting (continued) | |

Lab | Visualizing sorts | See Blackboard. Due Tues. Mar. 2. | |

Tues Mar 2 | Lecture | Midterm review.
BRING QUESTIONS |
Project 3 due at noon. |

Lab | (no new assignment) | Prepare for midterm. | |

Workshop | Sorting and order statistics | ||

Thurs Mar 4 | Midterm Exam |
In class. | |

SPRING BREAK | |||

Tues Mar 16 | Lecture | Chapter 5 TreesGuest lecture; Prof. Scott out of town |
Read Sections 5.1–5.4. Project 4 assigned. |

Lab | (no new assignment) | Get started on Project 4. | |

Workshop | Enumerating trees | ||

Thurs Mar 18 | Lecture | Syntax trees; simple parsing | Read Section 5.5. |

Lab | Tree implementations | See Blackboard. Due Thurs. Mar. 25. | |

Tues Mar 23 | Lecture | Traversals; binary search trees | Read Section 5.6. |

Lab | (no new assignment) | Work on lab from Thurs., or on Project 4. | |

Workshop | Expression trees | ||

Thurs Mar 25 | Lecture | Overview of balanced trees | (no reading assignment) |

Lab | Binary search trees | See Blackboard. Due Thurs. Apr. 1. | |

Tues Mar 30 | Lecture | Skip lists | Read Section 7.4. Project 4 due. Project 5 assigned. |

Lab | (no new assignment) | Work on lab from Thurs., or get started on on Project 5. | |

Workshop | Splay trees | ||

Thurs Apr 1 | Lecture | OctTrees | Read Section 7.5. |

Lab | OctTrees | See Blackboard. Due Thurs. Apr. 8. | |

Tues Apr 6 | Lecture | Chapter 6 Graphs |
Read Sections 6.1–6.3. |

Lab | (no new assignment) | Work on lab from Thurs., or on Project 5. | |

Workshop | Graphs, connectivity | ||

Thurs Apr 8 | Lecture | Breadth-first and depth-first search | Read Sections 6.4.1–6.4.2. |

Lab | Edge tests, transpose | See Blackboard. Due Thurs. Apr. 15. | |

Tues Apr 13 | Lecture | Knight's tour, topological sort; threads & events | Read Section 6.4.3. Project 5 due. Project 6 assigned. |

Lab | (no new assignment) | Work on lab from Thurs., or on Project 6. | |

Workshop | Graph searching | ||

Thurs Apr 15 | Lecture | Strongly connected components, shortest paths | Read Sections 6.4.4–6.4.5. |

Lab | Topological sorts | See Blackboard. Due Thurs. Apr. 22. | |

Tues Apr 20 | Lecture | Spanning Trees;
Python extras |
Read Sections 6.4.6–6.5. |

Lab | (no new assignment) | Work on lab from Thurs., or on Project 6. | |

Workshop | Kruskal’s algorithm | ||

Thurs Apr 22 | Lecture | Web scripting; intro to Java | |

Lab | (no new assignment) | Work on Project 6. | |

Tues Apr 27 | Lecture | More on Java; final review
BRING QUESTIONS |
Please fill out ONLINE COURSE EVALUATION. |

Fri Apr. 30 | Project 6 due at noon. | ||

Fri May 7 |
Final Exam |
4–7 pm, CSB 632. |

Last Change: 12 January 2011 /