ECS 160
Introduction to Software Engineering

  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.




Instructor

Prem Devanbu

Electronic Mail:

devanbu atty cs dotty ucdavis dotty edu


(Please do not email  course-related questions to TA or Instructor---post them to newsgroup).

Office Hours: Mondays 3-4:30 PM 



Class Overview

"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.

Textbooks

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