UC Berkeley Computer Science 169, 001 - Fall 2012 CS169 teaches the fundamentals for engineering long--lasting software using highly--productive Agile techniques to develop Software as a Service (SaaS) using Ruby on Rails. Students will understand the new challenges and opportunities of SaaS versus shrink--wrapped software. They will understand and apply fundamental programming techniques to the design, development, testing, and public cloud deployment of a simple SaaS application. Students will use best--of--breed tools that support modern development techniques including behavior--driven design, user stories, test--driven development, velocity, and pair programming. Students will learn how modern programming language features like metaprogramming and reflection can improve productivity and code maintainability.