David Patterson joined UC Berkeley in 1977 after receiving all his degrees from UCLA.
His most successful projects have likely been Reduced Instruction Set Computers (RISC), Redundant Arrays of Inexpensive Disks (RAID), and Network of Workstations (NOW). All three projects helped lead to multibillion-dollar industries. This research led to many papers and six books, with the best known book being Computer Architecture: A Quantitative Approach, co-authored with John Hennessy, and the most recent being Engineering Software as a Service, co-authored with Armando Fox. His current research is centered on cancer genomics for the AMP and ASPIRE Labs.
In the past, he served as Director of the Parallel Computing Lab, Director of the Reliable And Distributed Systems Lab, Chair of Berkeley’s CS Division, Chair of the Computing Research Association (CRA), and President of the Association for Computing Machinery (ACM).
This work resulted in 35 honors, some shared with friends. His research awards include_once election to the National Academy of Engineering, the National Academy of Sciences, and the Silicon Valley Engineering Hall of Fame along with being named Fellow of the Computer History Museum, ACM, IEEE, and both AAAS organizations. He received Distinguished Service Awards from ACM, CRA, and SIGARCH. His teaching honors include_once the ACM Karlstrom Outstanding Educator Award, the IEEE Mulligan Education Medal, the IEEE Undergraduate Teaching Award, and the UC Berkeley Distinguished Teaching Award.
The first part of the talk is about teaching Software Engineering. Traditional approaches to software development are often neither supported by tools that students could afford to use, nor appropriate for projects whose scope matched a college course. Hence, instructors lecture about software engineering topics, while students continue to build software more or less the way they always had; thus, software engineering course in practice is often no more than a project course. This sad but stable state of affairs is frustrating to instructors, boring to students, and disappointing to industry.
Cloud computing and the shift in the software industry towards software as a service has led to highly-productive tools and techniques that are a much better match to the classroom than earlier software development methods. That is, not only has the future of software been revolutionized, it has changed in a way that makes it easier to teach.
UC Berkeley’s revised Software Engineering course leverages this productivity to allow students to both enhance a legacy application and to develop a new app that matches requirements of non-technical customers. By experiencing whole software life cycle repeatedly within a single college course, students actually use the skills that industry has long encouraged and learn to appreciate them. The course is now heartening to faculty, popular with students, and praised by industry.
The second part of the talk is about our experience using Massive Open Online Courses (MOOCs) to teach this material. While the media's attention to MOOCs continues unabated, a recent opinion piece expresses grave concerns about their role ("Will MOOCs Destroy Academia?", Moshe Vardi, CACM 55(11), Nov. 2012). I will try to bust a few MOOC myths by presenting provocative, if anecdotal, evidence that appropriate use of MOOC technology can improve on-campus pedagogy, increase student throughput while actually increasing course quality, and help instructors reinvigorate their teaching. I'll also explain the role of MOOCs in enabling half-dozen universities to replicate and build upon our work via Small Private Online Courses (SPOCs) from EdX and our electronic textbook. My conclusion is that the 21st century textbook may be a hybrid of SPOCs and Ebooks.