| Date | Content |
|---|---|
| Jan 25 | Slides: Introduction; grading; object-oriented analysis and design; journey to good design; iterative process; Rick's Guitars example; encapsulation; refactoring |
| Jan 30 | Slides: More instruments; abstract classes; design that doesn't scale well; revisiting a design |
| Feb 1 | Slides: Analysis; requirements: sources and types, stated and implied; automatic dog door example; use cases; functional specification |
| Feb 6 |
Slides:
Waterfall model; agile software development; eliciting
requirements; use cases; UML use case diagram; use case
description; Assignment #1; where do classes come from;
categories of classes; class responsibilities; class
relationships: dependency, aggregation, inheritance
Use case description template which you can use for Assignment #1 |
First goal: You'll learn to develop well-designed software applications that do what they're supposed to do, use proven object-oriented techniques, and that are flexible, reliable, and maintainable. You'll become better programmers .
Good designs don't just happen. Each one is a destination, one that always requires a journey to reach. Every programmer, whether beginner or experienced, must take this trip for each and every project. An inexperienced programmer may meander, take the wrong paths, and maybe even backtrack before reaching that destination. But with practice and knowledge of design patterns and good object-oriented tools and techniques, subsequent journeys will become shorter.
Second goal: You'll learn critical job skills that employers look for in new college hires. You'll work together in small project teams and gain experience on how to cooperate and coordinate your joint efforts to design, develop, and test applications that each consists of over a dozen Java classes. You'll employ modern industry-standard software engineering practices. Each team will take its separate journey to Good Design.
|
Department policy is to enforce all course prerequisites strictly. |
|
Object-Oriented Design & Patterns, 2nd ed. Cay Horstmann Wiley Publishing, Inc., 2006 ISBN: 978-0471744870 |
|
The Object-Oriented Thought Process, 3rd ed. Matt Weisfeld Addison-Wesley Professional, 2008 ISBN: 978-0672330162 |
|
Head First Object-Oriented Analysis & Design Brett D. McLaughlin, et al. O'Reilly Media, 2006 ISBN: 978-0596008673 |
As a Senior Computer Scientist at the NASA Ames Research Center, I am designing, developing, and leading a software lab for the System F6 (Future, Fast, Flexible, Fractionated, Free-Flying) program that will demonstrate the feasibility of distributing functionality over a cluster of satellites, as opposed to using traditional monolithic multi-function satellites. On an earlier mission, I designed and led the development of the middleware for a key information management system for NASA's Mars Exploration Rover (MER) mission. As a Research Staff Member at the IBM Almaden Research Center in San Jose, I implemented a software platform that integrates multiple heterogeneous simulation models in order to help solve the nation's obesity problem. I was the Enterprise Software Strategist at the Lawrence Livermore National Laboratory for a major laser-based fusion energy project, the National Ignition Facility (NIF), where I helped design and develop a scientific workflow system to manage the data generated by the laser firings.
I have degrees in the mathematical sciences and in computer science from Stanford University. I've written books on compiler writing, software engineering, and numerical computation, and I contributed a chapter to the book Beautiful Code which won the Jolt Award. I find designing and developing software such as compilers and enterprise systems to be fun and challenging. So I'm the kind of geek nobody wants to talk to at parties. My one redeeming feature is that I have two cute cats.
| Past courses I've taught at SJSU |
|---|
|
CS 153-01/SE 153: Concepts of
Compiler Design
CS 160: Software Engineering CS 185C-01/CS 286-03: The History of Computing Speaker series: The History of Computing |