COURSE DETAIL

BerkeleyX: CS-169.2x - Software as a Service

Software as a Service

CS169.2x teaches sophisticated SaaS+Agile skills, such as working with legacy code, building on basics from CS169.1x.

ABOUT THIS COURSE

CS 169.2x is the second half of University of California, Berkeley's semester long course on Software as a Service. In the first half of the course, CS 169.1x, students use Agile development methods to deploy a simple SaaS app in the cloud. In the second half, CS 169.2x, students create more sophisticated apps by adding relationships between models in apps and by enhancing their apps with JavaScript. They also learn about what happens after the apps are deployed to real users, including how to monitor performance, identify and fix common performance problems, and avoid compromising customer data. Finally, students learn how to apply Agile techniques to enhance and refactor legacy code, a critical skill for professional programmers.
Other topics covered in CS 169.2x include:
  • How to form, organize and manage small programming teams
  • Introduction to design patterns: what they are and how to recognize opportunities to apply them
  • Using Rails for more advanced features like third-party authentication and elegantly expressing design patterns that arise frequently in SaaS
There will be three homework assignments: two programming assignments and one assignment about operations/deployment. There will also be several short quizzes.
This run of the class includes all new videos, embedded live chat and opportunities for remote pair programming with other students. Group tutorial Q&A sessions will also be held and broadcast live through Google Hangouts and YouTube. 
Before your course starts, try the new edX Demo where you can explore the fun, interactive learning environment and virtual labs. Learn more.

WAYS TO TAKE THIS EDX COURSE:

Simply Audit this Course

Can't commit to all of the lectures, assignments, and tests? Audit this course and have complete access to all of the course material, tests, and the online discussion forum. You decide what and how much you want to do.
or

Pursue a Verified Certificate of Achievement

Plan to use your completed coursework for job applications, promotions or school applications? Then you may prefer to work towards a verified Certificate of Achievement to document your accomplishment.

COURSE STAFF

Armando Fox
Armando Fox
Armando Fox is an Adjunct Associate Professor at UC Berkeley and was previously an Assistant Professor at Stanford, where he received teaching and mentoring awards from the Associated Students of Stanford University, the Society of Women Engineers, and Tau Beta Pi Engineering Honor Society. In previous lives he helped design the Intel Pentium Pro microprocessor and founded a successful startup to commercialize his UC Berkeley dissertation research on mobile computing. His degrees in electrical engineering and computer science are from MIT, the University of Illinois, and UC Berkeley, and he is an ACM Distinguished Member.
David Patterson
David Patterson
David Patterson is the Pardee Professor of Computer Science at UC Berkeley and the recipient of the Distinguished Teaching Award (UC Berkeley), the Karlstrom Outstanding Educator Award (ACM), the Mulligan Education Medal (IEEE), and the Undergraduate Teaching Award (IEEE). He has served as Chair of Berkeley's CS Division, Chair of the CRA, and President of the ACM. His best-known research projects are Reduced Instruction Set Computers (RISC), Redundant Arrays of Inexpensive Disks (RAID), and Network of Workstations (NOW). Among other distinctions, he's been elected to the National Academy of Engineering, the National Academy of Sciences, and the Silicon Valley Engineering Hall of Fame, and is a Fellow of the Computer History Museum. He received all his degrees from UCLA.
Sam Joseph
Sam Joseph
Sam Joseph is an Associate Professor at Hawaii Pacific University and was previously an Associate Researcher at University of Hawaii at Manoa (UHM). He is a recipient of the Raymond-Hide prize for Astrophysics and a Toshiba Fellowship. He teaches courses on game & mobile programming & design, software engineering and scientific research methods exclusively online from London, UK. He runs the funniest computer ever competition as part of his research on creating humorous chatbots, which dovetails nicely with his other research interests in software to support online collaborative learning, in particular remote pair programming. His degrees in Astrophysics, Cognitive Science and Computer Science are from the University of Leicester, the University of Edinburgh, and UHM, and he is an ACM Member.

FAQS

What is the format of the class?

The class will consist of lecture videos, which are broken into small chunks, usually between eight and twelve minutes each. Some of these may contain integrated "check-yourself" questions. There will also be programming assignments and standalone exams/quizzes, which are not part of the video lectures.

How can I learn more about the course content?

Please watch the video on this page that we recorded especially for this offering of the course.

Will the text of the lectures be available?

Yes, transcripts of the course will be made available.

Do I need to watch the lectures live?

No. You can watch the lectures at your leisure.

How much does it cost to take the course?

Nothing; the course is free. However, the recommended textbooks are not, but there are free online sources to follow if you do not wish to purchase textbooks.

Will I need to download any software for this course?

You will need a virtual machine loaded with a virtual machine image that we will provide. You can either download this image and run it using the free VirtualBox (virtualbox.org) software on any Intel x86-based computer, or you can deploy it on Amazon's Elastic Compute Cloud using instructions we will provide.

Visit VM instructions to download the virtual machine and access directions for setup.

What versions of Ruby and Rails will we use in the course?

In general, we'll be using Rails 3.2 and Ruby 1.9.3, but we will also be using many other tools, gems, and libraries that will be preinstalled in the virtual machine image that you will be using.

PREREQUISITES:

Any offering of CS 169.1x.