Lectures

Lecture Notes for CS351, Spring 2005

This page will house lecture notes, slides, code, URLs, etc., as they become available.

Lecture 01: Aug 25: Design principles; interfaces
Lecture Notes
|Ackley-style raw text lecture notes|
Lecture 03: Aug 30: Overview of the MondoHashMap UML Diagram. Example code: Data views; self-resizing objects; test rigs.
Example Code
|code.tar.gz| |code.jar|
Lecture 04: Sep 01: Testing principles and practices.
Lecture Notes
|Ackley-style raw text lecture notes|
Lecture 05: Sep 06: The Java memory model; "contains-a" vs. "refers-to"; design exercise: the MSpider inner loop.
Lecture Notes
|Ackley-style raw text lecture notes|
Lecture 06: Sep 08: The web page fetch cycle; the URL class; HTML parsing
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Example Code
|code.tar.gz| |code.jar|
Lecture 08: Sep 15: Administriva (Quiz 2); Action handling in Swing; late-binding of functionality; example Swing codes; Keat's poetry.
Lecture Notes
|Keynote slides| |PDFified slides| |PowerPoint slides|
Example Code
|code.tar.gz| |code.jar|
Lecture 07: Sep 13: Summary of P1M1 grading results; analysis of common design flaws in P1M1; intro to UI design with Swing.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 09: Sep 20: The model-view-controller design pattern; principle of separation of functionality.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Example Code
|code.tar.gz| |code.jar|
Lecture 10: Sep 22: Thinking about the design of P1; design exercise: designing an editor with multiple views and rebindable keys/buttons.
Lecture Notes
|Ackley-style raw text lecture notes|
Lecture 11: Sep 27: Quiz 2 delayed; hand out of P2; discussion of P2.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 12: Sep 29: Introduction to Reinforcement Learning.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 13: Oct 04: News and administrivia; Reinforcement Learning (RL) continued; design exercise: WorldSimulator and friends.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 14: Oct 06: Design exercise: WorldSimulator.act() and singletons; the MDP (reprise); policies & policy representation; Q functions; Q learning.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 15: Oct 11: The true meaning of static; the singleton design pattern.
Lecture Notes
|PDFified slides|
Example Code
|code.tar.gz| |code.jar|
Supplemental Stuff
Lecture 16: Oct 18: Follow-up on enums, static, and singletons; the Q function; Q learning.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Example Code
|code.tar.gz| |code.jar|
Lecture 17: Oct 25: Results of the midterm; answer to midterm Q5; the factory method design pattern; the principle of polymorphism instead of tests; the intuition behind Q learning.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Ackley-style raw text lecture notes| |Keynote slides|
Example Code
|code.tar.gz| |code.jar|
Lecture 18: Oct 27: Drawbacks of Q-learning; measuring learning performance; eligibility traces; SARSA(\lambda); design exercise: RL experimental rig.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 19: Nov 01: Hint o' the day: micro-experiments; exploration for reinforcement learners; design exercise (experiment-driver) revisited.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Example Code
|code.tar.gz| |code.jar|
Lecture 20: Nov 08: Design principle: orthagonality; design pattern: client/server; Java Sockets and the client/server implementation.
Lecture Notes
|Ackley-style raw text lecture notes|
Lecture 21: Nov 15: Design principle: fail-fastness; threads vs. processes; the thread model; intro to synchronization.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 22: Nov 17: Team tips: code ownership policies; synchonization in gory detail: who owns the lock?
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Lecture 24: Nov 29: Design principle: early vs. late commitment; thread-based timers; thread communication via wait()/notify().
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|
Example Code
|code.tar.gz| |code.jar|
Lecture 25: Dec 01: News: Java security; Swing/AWT threads and network synchronization issues; race conditions and data security.
Lecture Notes
|PDFified slides| |PowerPoint slides| |Keynote slides|

Last updated: Thu Dec 1 17:58:58 2005