CR: Stack II Topics Outline: Difference between revisions
No edit summary |
|||
(One intermediate revision 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 | * scalability for data: NoSQL approaches, database caches | ||
* mapreduce | |||
==Assignments== | ==Assignments== | ||
Line 25: | 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 | # JavaScript interpreter in Java (Rhino?) | ||
# | # 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
- PHP/HTML introduction (dynamic generation of web pages)
- PHP & Databases: simple SQL
- RPC: REST, SOAP, legacy
- runtime generation of client code: PHP->JavaScript (AJAX) + DB
- first-class functions for dynamic code generation (JavaScript) + DB
- closures, scoping + DB
- JavaScript interpreter in Java (Rhino?)
- scalable database? (BigTable-like?)