2nd Edition Status Updates (latest version 2020-08-01: 2.0a4)

The latest build of the Second Edition PDF is always available here.
Target date for Beta (2.0b1), including hardcopy and Kindle, is late August.

22-August-2020: Final alpha version

  • Formatting, figures, etc. all fixed
  • All remaining chapters revised based on reviewer feedback
  • All Gist URIs updated in GitHub and in text to match new code examples
  • This is the version to use for Fall instruction, and will probably be re-tagged 2.0b very soon

10-August-2020: Lecture videos available; edX courses coming soon

  • Please help us make the materials better by completing this brief instructor survey! Thank you!
  • Captioned lecture videos are now available on YouTube that match up section-for-section with the 2nd Edition.
  • Instructions for getting started with Codio for instructors have been clarified.
  • The course will soon be back up on edX as a three-part series, including the revised videos, all-new quizzes, and integration with Codio for autograding. We’re hoping for a mid-September relaunch and will announce it here and by email to the instructor list.
  • The screencasts referenced in Chapter 6 have been captioned and made public, though they will likely be obsoleted in the near future.
  • All chapters now have reviewers—thank you!—the next release of the text will include the acknowledgments. If you reviewed a chapter and would like to receive a complimentary hardcopy for your efforts, please send me your US mailing address and I’ll get a signed copy out to you as soon as they are available.

1-August-2020: PDF updated to 2.0a4

  • All undefined references and bibliography entries have been resolved.
  • Chapter 5 (Advanced Rails) received major improvements.  The Scopes subsection was dropped and is being replaced by a new CHIPS in which students will implement an associated Review model in RottenPotatoes, but that CHIPS is still in development.  These changes should be incorporated into the Codio cbook in the next week or so.
  • Chapters 6 (JavaScript), 7 (BDD), 9 (Legacy/Refactoring), and 10 (Teams) received significant improvements thanks to the feedback from reviewers: Tom Hastings (U. Colorado at Colo. Springs), Hank Walker (Texas A&M), Prabhat Vaish (NJIT), and Anastasia Kurda (Tulane).
  • I am working on eliminating all references to Haml and replacing with .html.erb. I love Haml, but it is one more thing for students to learn, and omitting it doesn't harm the fundamental concepts materially.
  • I would love reviewers for chapters 4 (Rails Intro), 5 (Advanced Rails), and 12 (Dev/Ops).
  • We are targeting early August for print and Kindle availability of a Beta edition.  Beta means content-complete but may still have a few bugs.  As we postmortem from the summer offering of the course at Berkeley and then make further revisions as a result of the Fall offering, we will probably transition from Beta to 2.0.0 by the end of calendar year 2020.
  • We found a few hiccups with Codio as a result of the summer course and are working on smoothing them out.

14-July-2020: PDF updated to 2.0a3

  • Chapter 4 (Rails Intro) has received a MAJOR rewrite to bring it in line with the new CHIPS and the new book structure.  This will happen for Chapter 5 (Advanced Rails) over the next week.  These changes should be integrated into the Codio c-book over the next week or so as well.
  • Thanks to the reviewers who have got their notes back to me (Mark Smucker for ch. 2, Anastasia Kurdia for ch. 10, Tom Hastings for ch. 6).  Chapters 4 (just revised) and 12 still need reviewers; Chapter 5 will need one after I do a major reorg pass on it next week!

29-June-2020: PDF updated to 2.0a1

  • Thanks to Kristin Stephens-Martinez for reviewing Chapter 1, Blagovesta Kostova for reviewing Chapter 3, and Mark Smucker for providing some feedback on Chapter 2. I’m still seeking reviewers!
  • The Kindle and hardcopy editions may be delayed until August to test-drive the book in the UC Berkeley summer offering of the course.


  • I'm planning to make a content-complete edition (probably with some typos and imperfections) available by Monday evening, as that's when our summer course pre-enrollment opens.  We'll be launching our summer offering with all new videos, Codio integration, and more in a couple of weeks.  We are in the process of converting the new videos for edX usage as well.  I am trying to get permission to also make the videos available publicly for those not using edX or Codio.
  • We have de-duplicated and heavily curated the Course Question Bank (though we haven't switched over to the new DB yet) - we have somewhat over 600 questions, grouped by chapter of 2nd Edition, multiple-choice auto-gradable.  We also have new tools that allow you to not only group these questions and export them into HTML or printable quizzes, but also to upload them into the Canvas LMS as interactive gradable quizzes there.  Watch the saasbook/courseware repo on GitHub for details.
  • We are still putting all of our energy for autograding behind Codio so I encourage you to consider using it if you aren't already.  Your membership on this list gives you access to the CHIPS solution and Gradescope repos if you prefer to do-it-yourself, but we can't really provide tech support.


  • 2e is now "structure-complete"—the chapter, section, and CHIPS (assignment) ordering is frozen. Within the text there are still some "tbd".
  • I'm looking for high-level chapter reviewers. As a reviewer, your main tasks would be to pick one chapter and report on the following:
    • Does the chapter's text/flow hold together? Are the examples, etc. clear?
    • What changes would you suggest to the Concepts & Prerequisites? Are there useful resources you'd recommend for students needing to brush up on the Prerequisites? (Note: the bar must be extremely high for resources mentioned in the book, as it won't be updated as often. We'll provide an online community area for suggesting resources that are more informal.)
    • Are the end-of-section Summaries accurate and useful?
    • Are the Fallacies and Pitfalls useful? Are the most important ones listed first (in your opinion)? Which could be cut?
    • Are the elaborations, sidebars, etc. useful? What could be cut?
    • Non-goal: don't worry about typos, TBDs, etc—that will come in round 2.

Preparing to Teach With the 2nd Edition

Note that the PDF of the 2nd Edition will be free; students who sign up with Codio (see below) will have access to complete textbook within Codio IDE; Kindle & hardcopy will still be sold on Amazon.

Main content differences from 1st Edition

  • Virtually all code examples in the book have moved into CHIPS —Coding/Hands-on Integrated Projects. This will allow frequent changes to keep code working, provide additional student scaffolding, etc. to be separate from updating the book text.
  • Intro to Ruby chapter has been moved earlier, so that students can start using Ruby immediately even as they learn about SaaS architecture. This also matches how we actually teach the class. The chapter is also focused away from "here's Ruby" and towards "here's how to learn any new language and framework as an experienced developer would."
  • SaaS Architecture chapter (which switched places with Ruby chapter) has been almost completely rewritten to focus early on RESTful APIs and microservices, including new hands-on exercises.
  • BDD and TDD chapters have been largely rewritten to focus much more on concepts; nearly all of the code has been moved out into CHIPS. Note that some CHIPS are not autograded, but more like scaffolded walkthroughs—see below.
  • The Teams chapter has received many improvements, especially around disciplined use of branches, CI, and so on, and there is a new CHIPS that exercises these skills without requiring an open-ended proejct. (see below)
  • "Concepts" at beginning of each chapter is now "Concepts & Prerequisites," with the latter signaling skills the student should already have before diving into the chapter. Wherever possible, we identify well-curated resources (self-service free online course/tutorial/etc.) for students needing to brush up on prerequisites.
  • The Exercises are moved out of the textbook and into a separate Instructor's Guide. The vast majority of the exercises are open-ended and not autogradable but may be useful starting points 

New/improved instructor resources: CHIPS, worksheets, exam questions

  • The Wiki for the saasbook/courseware repo contains descriptions and links to all current CHIPS, and to some we are deprecating/abandoning. (See below for Autograding options.)
  • The Wiki also contains links to a new repo of open-ended exam questions. These are suitable for paper-and-pencil exams and can be compiled with LaTeX.
  • The Wiki also contains three coding exam questions, where students write code during an exam with (if you like) full access to the Internet, books, notes, etc., and include both an autograder and a "hints" system that allows students to make progress on multi-part questions rather than getting stuck on early parts. More are coming.
  • The Wiki has a link to a newly-organized collection of worksheets, suitable for in-class small-group or pair activities when instructors are available to help.
  • There are many new CHIPS, most notably the two-part Agile Iteration CHIPS (in progress). The goal of this assignment is to give the flavor of working on a team project even in a course in which open-ended projects aren't practical. Students will start with an existing bare-bones app and in Iteration 1 all teams will add a specific set of features to the app. The goal is to exercise the fork-and-pull-and-PR workflow that is (newly) described in detail in the Teams chapter. We are working on autograding that will check that the steps of the process (claim story, create feature branch, PR, etc) happen in the right order and in a timely way. In the optional Iteration 2, each team chooses from a subset of features to add, so there is some variety in student work product.
  • The Course Question Bank is being heavily overhauled and de-duplicated, with questions regrouped into collections to match the chapters of the 2nd Edition.
  • Tooling is available (some command line skillz required) to export collections from the Question Bank either to printable formats (HTML, LaTeX) or (new) directly into the Canvas LMS as actual quizzes.


The legacy "rag" autograder has been end-of-lifed permanently. In addition, while instructors who previously had access to Berkeley-hosted SPOCs on edge.edx.org will retain grandfathered access to their data, the Edge SPOCs are being abandoned and no new ones will be created. This is due to Berkeley's inability to bear both the administrative and monetary costs of providing free SPOCs.

Here are your options for autograding:
  1. Preferred: We have invested lots of time with Codio to integrate the book and all autograding for CHIPS  into their platform so that switching between COD and CHIPs is seamless. See the homepage of this site for info on contacting them to obtain a free trial. We expect this to be the best-supported option going forward.
  2. Do it yourself: Gradescope-compatible files are available in GitHub as part of the solutions repos. Gradescope also offers generous free trials, but we can't provide support for you to get Gradescope working. 


The MOOC is being completely revised, with new videos that represent the best versions/best content from several previous course offerings (including video from on-campus course offerings that has never before been available on edX), a new set of quizzes, new self-check questions, etc. The MOOC will be refreshed and available by midsummer on edX, including Codio integration. Cost constraints don't allow us to spin off free SPOCs from it, and you'd need access to Codio anyway, so please contact edX directly if you're interested in having the students use this resource. Ask them if private cohorts would work for your use case.

We also plan/hope to make the videos freely available on YouTube, but of course that won't include the other elements (autograding, quizzes, self-checks, etc.)

Changes I had hoped for that didn't make it into 2e

  • A discussion of Security in every chapter as a crosscutting concern. In an ideal world, there would be "lock" icon in the sidebar whenever something about the thematic discussion centers on security.
  • A deeper dive into a JavaScript presentation framework such as Vue. As it is, the JS material sticks to fairly simple jQuery examples. In fairness, it's a heavy lift to also cover another complete framework, and the JS framework landscape keeps changing so rapidly that I've been hesitant to put my money on one that is good for pedagogy, plays nicely with Rails, and showcases the virtues of good design, testing, etc.

New app for tracking and handing off NGO project customers

We have developed a new app ESaaS Engagements to track student projects and iterations. The idea is that clients can be shared/handed off across different courses at different universities. Please send Armando your GitHub username if you’d like to be added as teaching staff to either of these apps.