Information and Computer Science 52:
Introduction to Software Engineering

Fall Quarter, 2001
Location: ELH 100 -- as of October 1, 2001 (Need a map?)
Monday and Wednesday, 3:30 — 4:50
Course code: 36130
Discussion location: SSPA 1100
Monday, Wednesday, Friday, 1:00 -- 1:50
Course code for discussion section: 36131
(Last modified Sunday, November 25, 2001)


[November 25, 2001] The final set of lecture slides are now on-line.

[November 23, 2001] The final assignment is now available. No surprises, as compared to what I described in the lecture on Monday. I have postponed the due date, howver, until next Friday.

[November 16, 2001] The STMP java files are available: and

[November 8, 2001] A solution guide to the midterm is available. See the "midterm" in the schedule for the pointer. The midterms will be returned in the discussion section on Friday, November 9th.

[November 5, 2001] The implementation assignment is now available. The due date for it has been pushed back to Monday, November 19th.

[November 3, 2001] The slides for week 7 are now available (with page numbers this time!). I've also made some changes to the schedule and to the reading assignments. Assignment 2 is now due on 11/7.

[October 31, 2001] The slides on user interface design are now available.

[October 29, 2001 ] Girish has provided some examples of module descriptions, such as should be used in Assignment 2. Check them out. It is a MS Word document.

[October 15, 2001] The slides for week 4 have been modified in a significant way. If you downloaded the slides yesterday evening please be sure to get the current copy!

[October 7, 2001] The slides for week 3 are now available. I've also made available Professor van der Hoek's slides from last spring quarter on software engineering principles and on requirements engineering. They are "hanging off" the week 2 segment of the schedule, below.

[September 28, 2001] Beginning Monday, October 1st, the lecture portion of ICS 52 will meet in ELH 100. Also: the discussion section will meet Monday, October 1, in its normal time and place.

[September 26, 2001] Want to add the class? Here's what you MUST do before Friday at 1:00.

Overview | Textbooks | Schedule | Assignments | TAs | Keeping in Touch | Computing | Academic Dishonesty |


Overview and Prerequisite Knowledge

From the UCI Catalog:

Introduction to the concepts, methods, and current practice of software engineering. The study of large-scale software production; software lifecycle models as an organizing structure; principles and techniques appropriate for each stage of production. Laboratory work involves a project illustrating these elements.

Prerequisite: ICS 23 with a grade of C or better.

In addition to the skills and concepts introduced in previous classes, students should have these computing skills when they enter the class (or learn them independently in the first week of the quarter):

The instructional objectives for the course are as follows:

Minimum Knowledge and Skills Expected of Students Who Receive Passing Grades

Software Life Cycle


Architectural Design

Module Design






Schedule (Subject to change)

Week Week Date Date Lecture topic Lecture Topic Schedule items Discussion Topic Assignments Assignments Readings (all from Sommerville, unless noted otherwise)
1 September 24 Introduction     Chapter 1. Skim 2. All of 3, but with more attention to the first 2 subsections. Skim 4
-- September 26

Process and Principles

(continuation of the lecture notes associated with the first lecture, above)

2 October 1

Requirements Engineering

and here's the slides I used for my keynote talk at STRAW '01

  Requirements assignment issued Chapters 5, 6 (lighter), and 7.
-- October 3

Requirements Engineering (URL here is to Sommerville's slides from his Chapter 7)

See also Professor van der Hoek's excellent slides on software qualities and requirements, and then on requirements engineering

3 October 8 Architectures     Chapters 10 (key), 11 (a little lighter), and 14.
-- October 10 Architectures   Requirements assignment due  
4 October 15 Design   Design assignment issued Chapter 15.
-- October 17 Design, continued from Monday. (Regular lecture)      
5 October 22 Design      
-- October 24 Design, Review for mid-term      
6 October 29 Mid-term Exam      
-- October 31 UI Design      
7 November 5 Integration testing and Implementation issues   Implementation assignment issued. Pages 452-457 provide good material on integration testing. This is part of chapter 20, which is on the schedule below.
-- November 7 Continued   Arch and module interfaces due .  
8 November 12 No class Veteran's Day   Chapters 19 and 20.
-- November 14 Debugging & Quality assurance      
9 November 19 Testing.  

Implementation due

Testing assignment issued.

See especially section 20.1.2 (since that's the technique you'll be using on the testing assignment)
-- November 21       .
10 November 26 Maintenance and Configuration Mgmt.     Chapter 27 and 29
-- November 28 Course Review   Testing assignment due on Friday November 30th.  
Exams December 3 FINAL EXAM 4:00 — 6:00    

Assignments and Assessment

Aggregate grade for the project: 45%.
Midterm: 20%.
Final: 35%

The project consists of four assignments. Their relative weighting (as a percentage of your final grade) is as follows:

Assignment Weight
Requirements 10
Architecture and module interfaces NOTE that this is now a revised document! Use it, not the original!! Note also that the due date is now 11/7. 18
Implementation 7
Testing 10

Specific assignments will be placed on the web, giving the assignment, the required format, and specific grading criteria.

We do not grade on a curve, meaning that we will not assert in advance that half of the class will receive grades at or below a C+, and half above that. Grading is done based on mastery of the material as exhibited in the exams and the project. If everyone masters the material very well, then everyone will get an A. On the other hand, if no one were to master the material at all adequately, then everyone would receive an F.

NO LATE ASSIGNMENTS WILL BE ACCEPTED, unless you have a legible excuse from a physician, an extreme family emergency, or unless you are willing to accept an extreme penalty with respect to your assignment's grade.

Teaching Assistant and Readers

Keeping in Touch

Check this website regularly. This is the definitive location for course information. Announcements concerning assignments will be made here. The course mailing list will also be used to make announcements, provide instructions, and so on. The course mailing list will be "read only" from the student's perspective. I.e. the instructor, TA, and readers can post messages to the list,but not students. If you ask one of us a question whose answer is relevant to the rest of the class, we'll post the appropriate material to the list.

An important note about email

Any email that you send in conjunction with this class must be sent from a UCI account. That is, if you want any response or action taken, then you must use your UCI account to send the email. Email from yahoo, hotmail, juno, @home, or any other non-UCI site will be ignored.


All computing will be done on the department's NT machines.

You may use another computer to produce the documents you turn in. (No handwritten assignments allowed).

All implementation work will be done in Java.

Please use the computing equipment or instructional purposes only. Also watch out on the social subtleties of electronic mail.

Academic Dishonesty

Cheating in ICS 52 will be punished in accordance with University policy and ICS policy. Please familiarize yourself with those documents. Note that University policy states that faculty have the responsibility of "assigning an appropriate grade to a student who engages in academic dishonesty." That appropriate grade, for this class, is an F. Cheating is wrong. Don't do it.
Department of Information and Computer Science,
University of California, Irvine CA 92697-3425