CR: Stack II Topics Outline

From Soma-notes

Title

Learning Objectives

  • learn basics of modern web applications?
  • basics of dynamic languages
    • first class functions
    • functional programming concepts (non-mutability)
  • basics of databases
    • data representation
    • query languages
  • basics of distributed applications
    • latency vs. bandwidth
    • reliability concerns
    • state vs. stateless

Weekly Topics

  • Modern web architecture
  • HTML, CSS: markup languages
  • client-server, stateless vs. stateful servers, HTTP (cookies & other state)
  • Server-side scripting: PHP
  • Database schemas
  • Database query languages & semantics (logic)
  • Dynamic memory management (garbage collection)
  • lexical and dynamic scoping
  • functions as first-class objects, functions that generate other functions
  • eval, JSON
  • domain-specific languages: SQL
  • embedded interpreters
  • scalability for data: NoSQL approaches, database caches
  • mapreduce

Assignments

  1. PHP/HTML introduction (dynamic generation of web pages)
  2. PHP & Databases: simple SQL
  3. RPC: REST, SOAP, legacy
  4. runtime generation of client code: PHP->JavaScript (AJAX) + DB
  5. first-class functions for dynamic code generation (JavaScript) + DB
  6. closures, scoping + DB
  7. JavaScript interpreter in Java (Rhino?)
  8. scalable database? (BigTable-like?)