WORLDCOMP'12 Featured Keynote Lecture - Prof. David A. Patterson
Teaching Software Engineering for Software as a Service using Massive Open Online Courses
Prof. David A. Patterson, Ph.D.
University of California at Berkeley, California, USA
Member, National Academy of Engineering
Member, National of Academy of Sciences
Fellow of IEEE, ACM, and AAAS
Shared (with John Hennessy) the IEEE John von Neumann Medal
Date: July 16, 2012
Time: 08:50 - 09:45am
Location: The Monte Carlo Pavilion
Via a remarkable alignment of technologies, including cloud computing, software as a service (SaaS), and Agile development, the future of software has been revolutionized in a way that is also a much better match to the classroom than earlier software development methods. Over the past 3 years we have been reinventing UC Berkeley’s undergraduate software engineering course to cross the long-standing chasm between what many academic courses have traditionally offered and the skills that software employers expect in new hires: enhancing legacy code, working with nontechnical customers, and effective testing. “Two-pizza” teams of 4 to 6 students create and deploy a prototype of a customer-specified app (primarily nonprofits) on the public cloud using the Rails framework and Agile and Extreme Programming (XP) techniques, including user stories and behavior-driven design to reach agreement with the customer, test-driven development to reduce mistakes, and four 2-week iterations during which they continuously refine the prototype based on customer feedback. The iterative process allows students to experience the entire software lifecycle–requirements gathering, testing, development, deployment, and enhancement–multiple times during a 14-week semester.
Because of Rails’ first-rate tools for testing and code quality, students learn by doing rather than listening, and instructors can concretely measure student progress. We also successfully repurposed these tools to support nontrivial machine grading of complete programming assignments, allowing us to scale the on-campus course from 35 to 115 students and offer a Massively Open Online Course (MOOC) to over 35,000 students.
Our experience has been that students love the course because they learn real-world skills while working with a real customer, instructors love it because students actually practice what they learn rather than listening to lecture and then coding the way they always have, and employers love it because students acquire vital skills missing from previous software engineering courses.
David Patterson joined U.C. Berkeley in 1977. He is currently Director of the Par Lab. In the past, he served as Director of the RAD Lab, as Chair of Berkeley’s CS Division, Chair of the CRA, and President of the ACM. His most successful projects have been Reduced Instruction Set Computers (RISC), Redundant Arrays of Inexpensive Disks (RAID), and Network of Workstations (NOW). All three research projects helped lead to multibillion dollar industries. This research led to many papers and six books, with the most recent being Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing co-authored with Armando Fox.
This resulted in more than 30 honors, some shared with friends, including election to the National Academy of Engineering, the National Academy of Sciences, and the Silicon Valley Engineering Hall of Fame. He was named Fellow of the Computer History Museum and both AAAS organizations. From the University of California he won the Outstanding Alumnus Award (UCLA Computer Science Department) and the Distinguished Teaching Award (Berkeley). From the ACM, where as a fellow, he received the ACM Distinguished Service Award, the ACM Karl- strom Outstanding Educator Award, the SIGARCH Eckert Mauchly Award, the SIGMOD Test of Time Award, and the SIGOPS Hall of Fame Award. He is also a fellow at the IEEE, where he received the Johnson Information Storage Award, the Undergraduate Teaching Award, and the Mulligan Education Medal. He shared the IEEE von Neumann Medal and the NEC C&C Prize with John Hennessy, President of Stanford University and co-author of two of his books. Finally, his most recent award is the 2012 Jean-Claude Laprie Award in Dependable Computing from IFIP Working Group 10.4 on Dependable Computing and Fault Tolerance.