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...

Administrivia

Click here for detailed Syllabus including pre-readings, assignment due dates, etc.


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

NOTE 2: Also check the RAD Lab's Ruby on Rails wiki page for more tips, resources, tools, etc. available to UCB students.

  • 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

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.

  1. Hello World on Rails; a simple model and some tests. Create an account and login on the assignments server  to get it.
  2. CRUDding a model, simple associations
  3. Model validations, writing your own behavior-driven development tests
  4. <<CANCELLED>> Was: Refactoring
  5. Tuning part 1: identifying performance bottleneck points
  6. Tuning part 2: making performance suck less
Final project milestones:
  1. Initial user stories, lo-fi UI sketches, and RSpec test skeletons for your final project app
  2. Check in and deploy your app