Lectures
Lecture Notes for CS351, Fall 2006
This page will house lecture notes, slides, code, URLs, etc., as they become available.
- Lecture 02: Aug 24: Pretest; demo of using the Graph
interface. -
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 03: Aug 29: Pretests returned; test-first methodology; design of unit tests; edge cases and corner cases.
-
- Lecture Notes
- |Keynote slides| |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 04: Aug 31: Quiz 1 announced; statistics on my implementation of WebGraph.java and WebCrawlState.java; programming w/ interfaces; principle of abstraction; principle of centralized definition; generics; principle of late commitment.
-
- Lecture Notes
- |Keynote slides| |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 05: Sep 05: Basic timing in Java; introductory generic implementations.
-
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 06: Sep 07: Quiz 1; the URL class; the HTMLEditorKit parsing mechanisms; callbacks; "nouning verbs".
-
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 07: Sep 12: Q1 returned; tricky bits of generic code; using reflection to instantiate generic types; debugging with Eclipse.
-
- Lecture Notes
- |Keynote slides| |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 08: Sep 14: The true nature of static; memory diagrams and Java object layout; where static stuff lives; accessing methods and runtime binding.
-
- Lecture Notes
- |Keynote slides| |PDFified slides|
- Lecture 09: Sep 19: Q&A session for P1; Design exercise: DebugLog.
-
- Lecture Notes
- |Keynote slides|
- Lecture 10: Sep 21: Answers to the
DebugLog design exercise; the Listener and Model/View/Controller design patterns. -
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 11: Sep 26: Project 2 handed out; discussion.
-
- Lecture 12: Sep 28
-
- Lecture Notes
- |Keynote slides| |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 17: Oct 19: Terran can't talk day. :-P Design exercise: text filtering.
- Lecture 18: Oct 24: Follow up from midterm; grade statistics; analysis of memory diagrams question; analysis of design question.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Lecture 19: Oct 26: Quiz 2; code example: solution to Quiz 2, Question 6/7; Project 3 assigned; P3 discussion.
-
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 20: Oct 31: Code comparison: P1 vs P3; multiprocessing models: processing vs. threads; the process memory model; the threading memory model.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Lecture 21: Nov 02: Civics lesson; advice on presentations; team organization tips; synchronization (I); who owns the lock?
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Lecture 22: Nov 07: Q2 returned; Who Owns The Lock (WOTL) exercise, part II; design principle: fail-fastness; multi-processing, security, and you: fun with race conditions.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Lecture 23: Nov 09: Communicating between the Swing/AWT thread and a network thread; building timer threads from scratch; mechanics of the Java wait()/notify() mechanism.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 24: Nov 14: Miscellaney: Scripting in Eclipse; Design principle: Unification; Design principle: Specialization; object composition.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Lecture 25: Nov 16: Research openings for undergrads; reflection noitcelfer.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 26: Nov 21: Employment opportunity; the "high-level picture" of the timer thread design; use of reflection to load units/terrains at runtime; the finite-state automaton design pattern.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Lecture 27: Nov 28: Designing with finite state machines; state machine implementations -- table-driven lexing.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 28: Nov 30: Notes on the final exam/policies; geometry: definition of a circle; metric functions; implementations of metrics/disks/balls; design exercise: OO lexing.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Lecture 29: Dec 05: Followup: design exercise on OO lexer/state machines; Java Puzzlers.
-
- Lecture Notes
- |Keynote slides| |PDFified slides| |PowerPoint slides|
- Example Code
- |code.jar| |code.tar.gz|
Last updated: Wed 06 Dec 2006 08:54:06 AM MST
