Course goals: students will...
* understand the new challenges, opportunities, and open problems of SaaS relative to SWS (shrink-wrapped software)
* take an SaaS project from conception thru planning, development, assessment/testing, deployment, and operations, experiencing the attendant challenges of each stage, using RoR for development and Cloud Computing for deployment
* understand and use agile development methodologies and tools, including low-fi UI sketching, user stories, behavior-driven development, version control for team-based development, and management tools for cloud-computing environments
* develop both technical and collaboration skills for working in "one-pizza" software teams
* understand and apply fundamental programming constructs and techniques including design patterns for software architecture, higher-order functions, metaprogramming, reflection, etc. to improve the maintainability, modularity and reusability of their code