Guest post by: Klaus Schauser
Cloud Computing and Software-as-a-Service (SaaS) is revolutionizing the next frontier: teaching university classes. My colleagues and friends Armando Fox and David Patterson from UC Berkeley just finished teaching a Software Engineering course to over 250 students at Berkeley. Here is what is amazing and inspiring about this: Over 10,000 students around the globe took this class along side the Berkeley students. They were all watching the lectures online and submitting homework, labs, and quizzes over the web (www.saas-class.org), and running their assignments on cloud computing infrastructure powered by Amazon Web Services.
How would you teach a course for over 10,000 students? From my own experience, even with great teaching assistants, teaching large classes with hundreds of students is difficult; thousands of students would seem impossible. Well, Armando and Dave managed this, and summarized their experience in an interesting op-ed piece to be published in the May issue of Communications of the ACM.
The key insight is to leverage the same technologies that many new software startups are using due to their efficiencies, including open-source, cloud computing, SaaS, Ruby-on-Rails, Agile software development, and test-driven development (TDD). The result is a powerful educational SaaS web site that can support thousands of students login in from all over the world. Here is how it works:
- The lectures, homework assignments, labs, and quizzes are all published on the website so that students review them at their convenience.
- The instructors have packaged the computing environment and tools into a virtual machine that students download onto their personal computer allowing them to start coding the assignments without any tedious installation.
- The instructors created an “auto-grader” where students can upload their code to get detailed feedback and comments.
- How can a professor keep up with specific questions from thousands of students? This would be a nearly impossible. Instead, questions are posted on an online forum so that the student’s peers can answer them in a collaborative class effort.
Students that complete the class learn all of these technologies and modern software engineering techniques in a semester, no matter where they are located. As a result, students become much more attractive for the job market, or if already employed can apply the new knowledge to innovative projects. Many companies, including we at AppFolio, are looking for engineers that understand these new technologies. At AppFolio we have been using Rails, TDD, Pivotal Tracker, Selenium, and more for the past five years - our team loves it. We now have one of the largest commercial Rails application and just launched our third product AppFolio SecureDocs. We still do releases every 2 weeks, which keeps our customers happy. Being Agile is so important to us that we made it part of our AppFolio company values. This helps us being a Lean Startup that learns quickly from market validation and customer development.
Do you have the feeling after reading this that you have missed out on a great opportunity? Well you are in luck. Armando and Dave are teaching the class again in two weeks. It starts on May 16 – if you would like to learn about software engineering, Agile, Ruby-on-Rails, TDD, cloud computing and SaaS, go to www.saas-class.org and register. You will be happy you did, and so will your future career. The bonus for taking the class: During gatherings with family, friends, and colleagues you can brag about taking a class with thousands of students from all around the world and share your experience of participating in the next educational revolution. The world is truly flat.