Next ClassLecture 17 (June 4) - speaker: Rob PikeSpeaker BioRob Pike (From Wikipedia) "Robert C. Pike is a software engineer and author. He is best known for his work at Bell Labs, where he was a member of the Unix team and was involved in the creation of the Plan 9 from Bell Labs and Inferno operating systems, as well as the Limbo programming language."
Talk TopicRob: "I plan to talk about the history of the Sawzall project, with an emphasis on how the design was influenced by the specific problem we were addressing and the effect changing requirements had as the project developed. What we built was not what we started out building and the result was successful but somewhat distorted from the original vision. There are lessons here about real-world software development." Required ReadingsPast ClassesLecture 1 (April 4) - Class OverviewFor the first lecture, Monica and Martin presented an overview of the course. SlidesOther materialsLecture 2 (April 9) - speaker: Alexander SotirovStudent WriteupSpeaker BioAlexander Sotirov Alexander Sotirov has been involved in computer security since 1998. For the past nine years he has been working on reverse engineering, exploit code development and research in automated source code auditing. He has developed highly reliable exploits for Apache, ProFTPd and Windows, and most recently was credited with the discovery of multiple vulnerabilities in Vista. He graduated with a Master's degree in computer science in 2005. His current job is as a reverse engineer on the security research team at Determina Inc. Website: http://www.determina.com/security.research/ SlidesFlash demo of Vista exploit: http://www.determina.com/security.research/flash/ani.html Assigned Reading and Resources
This reading is considered assigned in that you are requested to look over the material in some detail before Alex's talk. For this material, we are more interested in students looking over the breadth of the available content rather than reading any particular articles in depth. The idea is for students to get a feel for the state of the art in hacking and exploitation. While what you read is up to you, make sure you spend adequate time familiarizing yourself with the content. Each class will usually have 1-3 research papers associated with a given talk; you should allocate a commensurate amount of time for looking at the provided material for this speaker as you would for reading 1-3 papers. This material also serves as a resource for the research that will be done in student projects. Lecture 3 (April 11) - speaker: Junfeng YangStudent WriteupSpeaker BioJunfeng Yang Junfeng Yang is a Ph.D. candidate in the Computer Science Department at Stanford. His research interests span the areas of systems, security, software engineering and programming languages, focusing on practically checking large, real-world software systems. Junfeng Yang received his MS in Computer Science from Stanford in 2002, and his BS in Computer Science from Tsinghua University, Beijing, China in 2000. He received the Best Paper Award of OSDI 2004 for his work on using model-checking techniques to find serious bugs in filesystem implementations. Website: http://keeda.stanford.edu/~junfeng/ SlidesRequired Reading
NOTE: this paper succeeds the "Using Model Checking to Find Serious File System Errors" paper (see below). If you have trouble understanding some of the ideas in this paper, please feel free to look at the other paper. Optional Readings
Lecture 4 (April 16) - speaker: Saman AmarasingheStudent WriteupSpeaker BioSaman Amarasinghe Saman Amarasinghe is an Associate Professor in the Department of Electrical Engineering and Computer Science at Massachusetts Institute of Technology. He leads the Commit compiler group and was the co-leader of the MIT Raw multicore processor project. His research interests are in discovering novel approaches to improve the performance of modern computer systems without unduly increasing the complexity faced by application developers, compiler writers, or computer architects. Saman is also the founder and currently the Chief Technology Officer of Determina Corporation, which is productizing Program Shepherding. Saman received his BS in Electrical Engineering and Computer Science from Cornell University in 1988, and his MSEE and Ph.D. from Stanford University in 1990 and 1997, respectively. Website: http://cag.csail.mit.edu/~saman/ SlidesRequired Readings
Optional Material (for the enthusiastic)Lecture 5 (April 18) - speaker: Luiz André BarrosoStudent WriteupSpeaker BioLuiz André Barroso Luiz André Barroso is a Distinguished Engineer at Google, where he has worked across several engineering areas, ranging from applications to software infrastructure and hardware design. His projects have included a system to find related academic articles, designing load-balancing software, networking and server performance optimizations, failure analysis, power provisioning, and leading the design of Google's computing platform. Prior to Google he was a member of the Research Staff at Compaq and Digital Equipment Corporations, where his group did some of the pioneering work on processor and memory system design for commercial workloads. They also designed Piranha, a system based on an aggressive chip-multiprocessing architecture. The work on Piranha has had a significant impact in the microprocessor industry, helping inspire many of the multi-core CPUs that are now in the mainstream. Before joining Digital he was one of the designers of the USC RPM, an FPGA-based multiprocessor emulator for rapid hardware prototyping. He has also worked at IBM Brazil's Rio Scientific Center and lectured at PUC-Rio (Brazil) and Stanford University. Luiz has a Ph.D. degree in Computer Engineering from the University of Southern California and B.S. and M.S. degrees in Electrical Engineering from the Pontifícia Universidade Católica, Rio de Janeiro. Website: http://www.barroso.org/ Talk Topic"I will tell a few stories about watts, faults and threads: three words that computer scientists can no longer afford to ignore." Required Readings
Lecture 6 (April 23) - Project DiscussionThe class discussed possible final projects. Some logistical highlights:
Lecture 7 (April 25) - speaker: Mike BurrowsStudent WriteupSpeaker InformationMike Burrows
Talk Topic"I was thinking of spending the time telling people more than they want to know about concurrent programming." SlidesRequired ReadingsAn Introduction to Programming with C# Threads Lecture 8 (April 30) - speaker: Greg Kroah-HartmanStudent WriteupSpeaker InformationGreg Kroah-Hartman Greg Kroah-Hartman is a Linux kernel hacker. He is the current Linux kernel maintainer for the PCI, USB, I²C, driver core and the sysfs kernel subsystems, along with contributing to the kobject, kref and debugfs code. He is also the maintainer of the linux-hotplug and udev projects. Additionally, he maintains the Gentoo Linux packages for these programs, and helps with the kernel package. He works for SuSE Labs.
Talk Topic"How open-source software breaks all the rules you learned in college." Lecture 9 (May 2) - speaker: Bertrand SerletSpeaker BioBertrand Serlet Bertrand Serlet is Apple's senior vice president of Software Engineering, and is responsible for leading Apple's Software Engineering group. Serlet reports directly to the CEO. Serlet joined Apple in 1997, and has been a key player in the definition, development and creation of Mac OS X, the world's most advanced operating system. As vice president of Platform Technology, Serlet managed the largest part of the Mac OS software engineering group. Before joining Apple, Serlet spent 4 years at Xerox PARC, then joined NeXT in 1989. Serlet holds a doctorate in Computer Science from the University of Orsay, France. Talk Topic"I'll talk about some of the fundamental aspects of designing large computing systems (like Apple's Mac OS X)." Required ReadingsLecture 10 (May 7) - speaker: Amitabh SrivastavaSpeaker BioAmitabh Srivastava Amitabh Srivastava is a Corporate Vice President of the Windows Live Core. Srivastava's current efforts are focused on efficiently developing next generation cloud services. Srivastava joined Microsoft in 1997 as a Senior Researcher and led the Advanced Development Tools group in Microsoft Research that investigated new techniques to build innovative tools and technologies to improve performance and quality of Microsoft software. His vision and energy led to the creation of the Programmer Productivity Research Center (PPRC) in March 1999, which he has led since its inception. Srivastava's PPRC group, now known as Center for Software Excellence (CSE), has produced several tools and technologies that are critical to Microsoft product groups. In January 2001, Srivastava was named a Distinguished Engineer, now known as Technical Fellow. Srivastava joined the Windows team in December 2003 as Vice President of the Core OS Development to redefine the engineering process for Windows Vista, the new operating system from Microsoft. Srivastava was responsible for the development of core operating system components such as the kernel, operating system architecture, definition of development processes, and development of advanced tools to automate the development processes. After shipping Vista in November 2006, Srivastava with Dave Cutler joined Ray Ozzie to focus on next generation cloud services. Before working for Microsoft, Srivastava was the chief technical officer and vice president of engineering at TracePoint Technology Inc., a spin-off company from Digital Equipment Corp. He joined Digital's Western Research Labs (DEC WRL) in Palo Alto, Calif. in 1991. Srivastava's research on binary code modification at DEC WRL resulted in the creation of TracePoint. Srivastava started his career as a researcher at Texas Instruments Inc.'s Research Labs in Dallas, Texas. He left Pennsylvania State University's Computer Science PhD program to work on LISP Machines at Texas Instruments. Srivastava holds 13 patents and has published a variety of papers. His paper on ATOM in PLDI 1994 received the Most Influential PLDI Paper Award in June 2005. He is the author of OM, ATOM and SCOOPS software systems, which have resulted in products for Digital Equipment and Texas Instruments on the Alpha and PC platforms. He led the design and development of Vulcan, a second-generation binary transformation system, at Microsoft. Vulcan is the foundation of a wide variety of tools developed at PPRC. Srivastava holds a bachelor's degree in Electrical Engineering from the Indian Institute of Technology, Kanpur, India, and a master's degree in Computer Science from Pennsylvania State University. He received the 2003-2004 Distinguished Alumnus Award from the Indian Institute of Technology, Kanpur, and was selected the 2004 Outstanding Engineering Alumnus of the Pennsylvania State University. Talk TopicBeyond Algorithms: Developing Software at Scale Developing reliable software at scale is a challenging problem in the software industry. Unfortunately, many manual techniques do not scale to meet the needs of large-scale development. However, with advancements in specification, verification and testing, advanced tools can be to developed to meet the requirements of real production environments. This talk discusses the tools and techniques that we have developed at Microsoft, our experiences in deploying them in our product teams, and the lessons we have learned. Lecture 11 (May 9) - Project Proposal ReviewWe discussed project proposals in class. Lecture 12 (May 14) - speaker: Joshua SchachterStudent WriteupSpeaker BioJoshua Schachter Joshua Schachter is the creator of del.icio.us, a website that helped to popularize the use of tags on the web, particularly within the blogging community.
Talk TopicJoshua will talk about his experience in building del.icio.us as well as the related topics of social software and search (among others). Lecture 13 (May 16) - speaker: David Heinemeier HanssonStudent WriteupSpeaker BioDavid Heinemeier Hansson David Heinemeier Hansson is the creator of the popular Ruby on Rails web development framework. In 2005 he was recognized by Google and O'Reilly with the Hacker of the Year award for his creation of Ruby on Rails.
Talk Topic"Please keep the scientists and engineers out of programming; they're damaged goods". Lecture 14 (May 21) - speaker: Jeff DeanStudent WriteupSpeaker BioJeff Dean Jeff joined Google in mid-1999, and is currently a Google Fellow in the Systems Infrastructure Group. While at Google, he has worked on products such as Google's initial advertising system and internal tools and infrastructure such as MapReduce and BigTable. Talk TopicExperiences and Lessons in Designing and Building Large-Scale Distributed Systems "I'll discuss techniques and general design principles for building high-performance, reliable distributed systems, based on lessons learned in building a variety of systems at Google. I'll touch on issues of dealing with unreliable hardware, designing for performance, and give some general system design tips. Hopefully this will be a relatively interactive discussion." SlidesRequired ReadingsLecture 15 (May 23) - speaker: Seth HallemStudent WriteupSpeaker BioSeth Hallem Talk Topic"My talk is going to span two parts - the first is a commercialization story about taking the bug finding technology that I worked on at Stanford and turning it into a product. I'm going to talk about a few challenges we faced and a few lessons learned. In the second part, I'm going to discuss my opinion on the state of software development given my experience visiting dozens of software companies across many different industries and geographies. I'm going to ask whether good software developers are the key to a successful software project (as the CS343 website says) or if that just feels true because our expectations of software are too low. If my premise is correct (the low expectations premise) then how do we start to attack the problem of broken software?" SlidesRequired ReadingsLecture 16 (May 30) - speaker: Thomas ShaSpeaker BioThomas Sha Thomas S. Sha was the first manager of the frontend engineering discipline at Yahoo!, where he has overseen its growth from a small department of Web Developers to a companywide discipline consisting of more than 500 engineers around the world. Thomas is best known as the founder and chief architect of the Yahoo! User Interface Library (YUI), a free JavaScript and CSS library used widely at Yahoo! and regarded as one of the top-tier frontend toolkits in the open-source arena. Talk TopicDuring the first decade of the World Wide Web, engineering and design struggled with the limitations of technology, and the overall medium, to deliver good user experience. As we enter the second decade, what lessons have we learned? Are we any closer to answering the question, "how to design for the Web?" Required Readings
Upcoming ClassesLecture 18 (June 6) - Presentations of Class ProjectsStudents will be present the work on their projects to their peers. This class runs from 11am-1:30pm. Lunch will be provided to students.
Last modified May 30, 2007 10:06 pm / Skin by Kevin Hughes
![]() |