Fall 2008
| COURSE | CRN# | TITLE | TIME | Room |
Disc. Sec. |
UNITS | INSTRUCTOR |
| ECS 160 | 51011 |
Intro Software Eng. |
MWF 1000-1050 |
PhysGeo 148 |
T 8-8:50 Phys 148 |
4 | Devanbu |
Instructor | Schedule of Lectures | Assignments & Grading
What's New and Important.
Electronic Mail:

(Please do not email course-related
questions to TA or Instructor---post them to newsgroup).
Office Hours: Mondays 3-4:30 PM
"Software Engineering is to Programming is as literature is to grammar".
This course in intended to expose students the concepts and principles of the practice of software engineering. Software Engineering is only partly about computer programming; it's also about getting programs to really work. We will discuss why this is so hard, and what the field of software engineering has to say about building programs that do what people really want them to do.
Software engineering is about Processes , Models , and Tools . Processes are ways of arranging the sub-tasks of building software; models are ways of talking about software; and tools save us time and effort during the various sub-tasks. Why are these important? come to class and find out.
During the course, you will be asked to form a small group of developers, and build a system using techniques that you will learn in class. Besides fulfilling the requirements, your system will have to be well-engineered: you will have to justify, explain and document what, why and how the system does what it does; you will also have to convince us that the system you have built is robust, reliable, maintainable, and that it performs adequately. And we'll teach you how to do that. During the course of the project, you will be asked to produce several documents describing your progress. The quality and timeliness of these documents will be a key factor in your grade. If you do this project well, you should make a portfolio out of the resulting documents and present it to prospective employers. They'll be impressed. I may also consider making an installation of the best projects off my web site, so that they can been demonstrated anywhere.
Prerequisites
ECS 140A If you
haven't taken 140A, you will have a very hard time in this
course. Therefore, please drop the class if you have not taken ECS140A.
Required
No Required Text books, however, see below. Note that some of the books below are free.Strongly Recommended
These are good books, not just for this course, but also for a practioner.
Bruce Eckel's Free Books on Java and C++
The
Mythical Man-Month (Anniversary Edition), by Frederick P. Brooks,
Jr., 1995
Design
Patterns : Elements of Reusable Object-Oriented Software -- Erich
Gamma, et al.. (HIGHLY RECOMMENDED!
Steve Maguire,
Writing Solid Code
Steve Maguire,
Debugging
the Development Process
Course Information
Teaching Assistant
msogawa_signat__ ucdavis _dot_
edu