CR: Stack II Topics Outline: Difference between revisions

From Soma-notes
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Title==
==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==
==Weekly Topics==
Line 11: Line 25:
* Dynamic memory management (garbage collection)
* Dynamic memory management (garbage collection)
* lexical and dynamic scoping
* lexical and dynamic scoping
* functions as first-class objects
* functions as first-class objects, functions that generate other functions
* eval, JSON
* eval, JSON
* domain-specific languages: SQL
* domain-specific languages: SQL
* embedded interpreters
* embedded interpreters
* scalability for data: NoSQL approaches, database caches
* mapreduce


==Assignments==
==Assignments==
Line 24: Line 40:
# first-class functions for dynamic code generation (JavaScript) + DB
# first-class functions for dynamic code generation (JavaScript) + DB
# closures, scoping + DB
# closures, scoping + DB
# JavaScript: SpiderMonkey
# JavaScript interpreter in Java (Rhino?)
# JavaScript: V8
# scalable database? (BigTable-like?)

Latest revision as of 16:33, 9 February 2011

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?)