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 Notes
|PDFified slides| |Ackley-style raw text lecture notes| |Keynote slides| |PowerPoint slides|
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