Stanford University
Computer Science 249B: Winter 2009
Overview | Details | Materials | Exams | Project | Policies
This course examines the grand challenge of producing "perfect software systems" or more modestly stated, how to produce really, really, good software. The next stage of evolution of software engineering is producing large-scale systems that handle often life-critical systems. How do we produce really high-quality software at a reasonable cost, software that does what it is supposed to do at a reasonable cost.
The objectives of the course are to:
Students are expected carry out a project that explores some aspect of the course. One possibility is developing a software system that explores some aspect of the structuring and practice discussed in the course. The project will include a report. There will also be an midterm and a final exam. Students are also expected to attend and participate in class.
The following is the basic syllabus:
The course reader will be provided in PDF online in advance of the lectures. These are chapters that continue on from the CS 249A chapters. We keep the prior years readings as a reference for students to read ahead. As we update the reader for this year, we will mark the reading as updated.
N. Leveson, High-pressure Steam Engines and Software Engineering
Chapter 10 - Introduction to Part II pdf and postscript
Chapter 11 - Auditing (Updated) pdf and postscript
Chapter 12 - Named Descriptions (Updated) pdf and postscript
Chapter 13 - Concurrency (Updated) pdf and postscript
Chapter 14 - Collection and Iterator Implementation (Updated) pdf and postscript
Chapter 15 - Genericity, Templates and Generic Programming (Updated) pdf and postscript
Chapter 16 - Value-Oriented Programming and Value Types (Updated) pdf and postscript
Chapter 17 - Memory Management (Updated) pdf and postscript
Chapter 18 - Object-Oriented Programming and the Object Model (Updated) pdf and postscript
Chapter 19 - Process / Chapter 20 - Concluding Summary pdf and postscript
If you are interested in using the framework interfaces and classes discussed in cs249A for your project, they can be found here. These are the files used for the first homework assignment in cs249A. You will want to look inside of Tissue-HW.tar for the framework classes.
Files specific to cs249b can be found here: cs249b Files.
Please take a look at the detailed project page.
The honor code is to be followed and shall be enforced. In particular:
The Stanford honor code applies to all work done in this course. All work you submit must be your own. Suspected violations of the honor code will be investigated and referred to the Office of Judicial Affairs.
Honor code violations are a serious matter, and being found guilty of one can ruin your academic career. Review the honor code. If you ever find yourself uncertain about how it applies to your situation, ask. Asking what you might think is a silly question is better than risking your career.
No incompletes will be given in this course, so make sure you determine before the drop deadline whether you can complete it satisfactorily.