Wed. 8/25
Lecture 1: Introduction
  • Client-server architecture of the World Wide Web
  • Naming resources with URLs
  • Limitations of a static web
  • The role of server-side programming
  • The role of client-side programming
  • Web application architectures
    • Classic Model-View-Controller
    • Modern AJAX-based architecture
Mon. 8/30
Lecture 2: HTML
  • A high-level review of HTML document structure and elements providing the groundwork for XHTML.
Wed., 9/1
Lecture 3: XML and XHTML
  • Validation of HTML using a DTD
  • Motivation for development of XML
  • Rules for well-formed XML
  • XML Namespaces
  • XHTML as HTML + XML
Wed., 9/8
Lecture 4: CSS
  • Assignment 1
  • CSS overview
  • CSS selectors
Mon., 9/13
Lecture 5: CSS, part 2
  • CSS selectors continued
  • CSS attributes and values
Wed., 9/15
Lecture 6: CSS, part 3
  • Block vs. Inline elements
  • Element size control
  • Floating elements
  • Positioning
Mon., 9/20
Lecture 7: JavaScript, part 1
  • Introduction to JavaScript.
  • Linking HTML pages to JavaScript.
  • Typical program flow with event-based programming.
  • A first example.

Links to Examples

Wed., 9/22
Lecture 8: JavaScript, part 2
  • Basic Data Types in JavaScript
    • Numbers
    • Strings
    • Booleans
  • Variables
  • Operators
  • Assignment
Mon., 9/27
Lecture 9: JavaScript, part 3
  • Arrays
  • Conditional Execution
  • Looping Execution
  • Functions
  • Objects
Wed., 9/29
Lecture 10: JavaScript, part 4
  • Objects
  • Assignment 3
Wed., 10/6
Lecture 11: HTTP
  • HyperText Transport Protocol
  • Network protocols
  • Web resources
  • Request format
  • Reply format
Mon., 10/11
Lecture 12: CGI and HTML forms
  • Common Gateway Interface
  • Parameter encoding
  • HTML Forms

Links to Examples

Wed., 10/13
Lecture 13: The DOM
  • The Document Object Model
  • Representing the document as a tree
  • Navigating and manipulating the DOM

Links to Examples

Wed., 10/18
Lecture 14: Prototype
  • Prototype and extended elements
  • Selecting elements with $ and $$
  • Creating new elements
  • Navigating the DOM
  • Escaping HTML
Mon., 11/1
Lecture 15: Event-based Programming Part 1
  • Overview of event-based programming.
  • Observing events with observe()
  • Getting input from user with prompt
  • Setting/getting style on elements.
  • Getting event information from event data object
  • Stopping default behavior
  • Event propagation and stopping propagation.
Wed., 11/3
Lecture 16: Event-based Programming Part 2
  • Dynamically adding and stopping event handlers
  • Stop propagation example.
  • Keyboard focus and handling keypress events

Links to Examples

Mon., 11/8
Lecture 17: Security
  • Security issues in web programming.
  • Public key crytopgraphy
  • Certificates and digital signatures
  • SSL and HTTPS
Wed., 11/10
Lecture 18: Client-side Form Validation/Processing
  • Client-side Form Validation
  • Client-side Form Processing
  • event.stop()
  • More coding examples

Links to Examples

Mon., 11/15
Lecture 19: AJAX and AJAX-based Web Applications
  • AJAX Overview
  • XMLHTTPRequest object (XHR)
  • onreadystatechange
  • AJAX with Prototype: Ajax.Request
  • Classical MVC Web Application Model
  • Modern AJAX Web Application Model
Wed., 11/18
Lecture 20: RESTful Interfaces to Back-end Web Services
No Lecture Notes
  • RESTful API to Web Services
  • Design example: Emily's Blog
  • Code examples
Mon., 12/6
Lecture 21: Relational Databases
  • Relational Databases
  • Normalization and Normal Forms