CS 194-4 Software as a Service using Ruby on Rails - Fall 2008
This course is an upper division, letter graded version of our previous CS98-10/CS198-10 (Intro to Web 2.0 Development using Ruby on Rails). That course will be offered again in Spring 08; materials from previous iteration, and many other useful resources for RoR developers at Cal, can be found
here.
Course goals: students will...
- understand the new challenges, opportunities, and open problems of SaaS relative to "traditional" methodologies
- 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, planning using the 'velocity' method, Collaboration/Responsibility Cards, version control for team-based development, and management tools for cloud-computing environments
- understand and apply fundamental programming constructs such as higher-order functions, metaprogramming, reflection, etc. to improve the maintainability, modularity and reusability of their code
Administrivia
Required and Recommended Textbooks and Software
NOTE 1: The full text of some of these books is available
free online to UCB students via O'Reilly Safari Online,
if you access it from an on-campus IP address or
configure your Web proxy to access it from off-campus. If you choose to buy the print version, we recommend buying it at a discount through O'Reilly Safari Online or directly from Amazon (the prices are comparable).
- Required book: [LR] Learning Ruby, by Michael Fitzgerald (O'Reilly Media, 2007). Online at O'Reilly Safari Online or buy print version there or at Amazon
- Required book: [RW] The Rails Way, by Obie Fernandez (Addison-Wesley, 2007) (print version only).
- Required book: [AR] Advanced Rails by Brad Ediger (O'Reilly Media, 2008); online at O'Reilly Safari Online or buy the print version there or at Amazon
- Recommended Book: [PR] Programming Ruby by David Thomas & Wesley Hunt (Addison-Wesley, 2001). Available free online.
- Recommended Book: [Ag] Agile Web Development With Rails, 3rd ed., by David Heinemeier Hansson (Pragmatic Programmers, 2008)- if you want a more tutorial introduction to Ruby and Rails. Available as a PDF on their website (not free; book is still in beta, and purchasers of the PDF get free PDF updates and a discount on the print edition coming later if they decide to buy it). Note: If you decide to get this, be sure to get the THIRD EDITION, as earlier editions don't cover the significant changes in Rails 2.0.
- Recommended Book: Simply Rails 2 by Patrick Lenz (Sitepoint, 2008)
- Recommended books that cover related (non-RoR) Web technologies (available free via O'Reilly Safari Online):
Courseware
- Required Web resource: PeepCode - licenses to be provided to registered students during first week of class
- Required Software: this page lists the software you'll need to install (Windows & Mac)
Assignments
Each assignment is due at 11:59 pm the Monday night prior to the lecture indicated. So, e.g., Lab 1 is due 11:59pm Monday 9/8/08. Start the assignments early, or you won't be able to get a TA's attention in time if the lab gets crowded! Don't leave it til Monday morning!
In general, there's a 25% penalty if turned in up to 24 hours late, 50% if up to 48 hours late. No credit if turned in more than 48 hours late. All assignments count toward your grade.
- Hello World on Rails; a simple model and some tests. Create an account and login on the assignments server to get it.
- CRUDding a model, simple associations
- Model validations, writing your own behavior-driven development tests
- <<CANCELLED>> Was: Refactoring
- Tuning part 1: identifying performance bottleneck points
- Tuning part 2: making performance suck less
Final project milestones:
- Initial user stories, lo-fi UI sketches, and RSpec test skeletons for your final project app
- Check in and deploy your app