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
Links to Examples
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
Links to Examples
Mon., 9/27
Lecture 9: JavaScript, part 3
- Arrays
- Conditional Execution
- Looping Execution
- Functions
- Objects
Links to Examples
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
Links to Examples
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
Links to Examples
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
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
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
Links to Examples
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
Links to Examples
Mon., 12/6
Lecture 21: Relational Databases
- Relational Databases
- Normalization and Normal Forms