Lectures
Lecture Notes for CS351, Fall 2011
This page will house lecture notes, slides, code, URLs, etc., as they become available.
- Lecture 01: Aug 23: Introduction; syllabus; topics of the course; philosophy of design; the design hierarchy (I); P1 assigned.
-
- Lecture 02: Aug 25: Progress meter; getting up and running/Eclipse; P1 spec walk-through; P1 architecture overview; Unit testing; test-first methodology.
-
- Lecture Notes
- |PDFified slides|
- Lecture 03: Aug 30: Pretest; more notes on unit testing; discussion of hash tables and Java Hash{Map/Set}; Design principle: Program to interfaces; Design principle: Single responsibility.
-
- Lecture Notes
- |PDFified slides|
- Lecture 04: Sep 01: News: China inadvertantly admits to attacking computers in US; progress meter; discussion: graph search methods; Under the hood: MovieGraph data structures.
-
- Lecture Notes
- |Keynote slides| |PDFified slides|
- Lecture 05: Sep 06: Quiz 1 announced; design patterns defined; the Iterator pattern in detail; Factory Method pattern.
-
- Lecture Notes
- |PDFified slides|
- Lecture 06: Sep 08: Factory pattern review; .iterator() as factory method; LexicalAnalyzer.nextTok() as factory method; intro to lexical analysis ("lexing"); the Adapter pattern; tokens; regular expressions; types of lexers; regexp-driven lexing; a lexer implementation idiom; P1M2 crit.
-
- Lecture Notes
- |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 07: Sep 13: Quiz 1; parsers as "sentence generators"; recursion and parse trees; parts of a grammar; grammars in P1 and in the Java language; grammar operations; the Interpreter Pattern.
-
- Lecture Notes
- |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 08: Sep 15: The Command Pattern and P1; dirty tricks (guru demo); design and the hardware hierarchy; P1M3 crit.
-
- Lecture Notes
- |PDFified slides|
- Lecture 09: Sep 20: Q&A; Principle of the day: program with types; expressing semantics through types; generics subtleties; crits reprised.
-
- Lecture Notes
- |PDFified slides|
- Lecture 10: Sep 22: Quiz 1 returned; quiz 2 announced; Review: design hierarchies, principles, patterns; Guru demo: image histogram; experiments and empirical measurement in computer science.
-
- Lecture Notes
- |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 12: Sep 29: Midterm exam announced; flexible design and GUIs: the Model-View-Controller (MVC) pattern; MVC motivation; sub-patterns of MVC: Command/Callback; Observer (Listener); Composite; View (presentation); the Callback pattern; UML sequence diagrams; the Observer pattern; Observer in threadding.
-
- Lecture Notes
- |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 14: Oct 06: Quiz 2; Statistics on project 1; Threading: memory layout and allocation; models of execution: single process/batch, multi-processing, threading; architecture of multi-processing and threading; thread corollaries: (1) threads do not own code/methods, (2) threads do not own data.
-
- Lecture Notes
- |PDFified slides|
- Lecture 16: Oct 18: Q2 returned; News: Key logger discovered on Air Force control systems for remote-piloted drones; threading & synchronization; definitions: enforced vs advisory (consensual) exclusivity, critical section, mutual exclusion, lock (monitor/semaphore); live action multithreading; Java lock semantics; where is the lock?
-
- Lecture Notes
- |PDFified slides|
- Lecture 18: Oct 27: News: John McCarthy passed away -- long live LISP and garbage collection!; synchronization and deadlock; the dining philosopher's problem (briefly!); race conditions and security: Abusing mutex failures for fun and profit.
-
- Lecture Notes
- |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
- Lecture 19: Nov 01: Midterm exam returned; midterm stats; P3 handed out.
-
- Lecture Notes
- |PDFified slides|
- Lecture 20: Nov 03: Summary of midpoint survey results; discussion of NanoC; implementation of grammar rules as recursive descent parser.
-
- Lecture Notes
- |PDFified slides|
- Example Code
- |code.jar| |code.tar.gz|
Last updated: Sat 05 Nov 2011 05:01:36 PM MDT
