Information and Computer Science 52:
Introduction to Software Engineering

Fall Quarter, 2002
Location: Social Science Plaza A 1100 (Need a map?)
Monday and Wednesday, 2:00-3:20
Course code: 36130
Discussion location: SSLH 100
Tuesday, Thursday, 5:00 -- 5:50
Course code for discussion section: 36131
(Last modified Wednesday, February 19, 2003)


[December 1, 2002] Today's lecture notes are now available. Please also check your recorded scores... I've sent email with the details.

[November 25, 2002] I've granted an extension to the due date on the implemenation assignment, but at the penalty of reducing the maximum possible score for that assignment from 7 to 5. Details are in the email sent to the course mailing list. There will NOT be an extension granted for the testing assignment.

[October 3, 2002] You can find some very helpful guidelines for the composition of good email messages here, courtesy of Ellen Strenski in the UCI writing program.

[September 29, 2002] Would you like to add this class? So would about 110 other people (literally). The room capacity is 190. Currently there are 175 people enrolled. I will therefore sign in a total of 15 people. Priority will be given as follows: (A) ICS majors who are seniors; (B) non-ICS majors who are both seniors and ICS minors; (C) ICS majors who are juniors. Before I sign an add card you must complete, sign, and return to me this form no later than Wednesday, October 2nd. Give me the form, a filled in add card, and I will process the submissions. Signed add cards will be available Friday, October 4th, from my office (in the bin on the outside of my door).

Overview | Textbooks | Schedule | Assignments | TAs | Keeping in Touch | Computing | Disabilities | 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 Date Lecture topic Schedule items Assignments Readings (all from Sommerville, unless noted otherwise)
1 September 30 Introduction (the slides as of 10/2/02 are now here... a revision of the previous posting)     Chapter 1. Skim 2. All of 3, but with more attention to the first 2 subsections. Skim 4
-- October 2


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

2 October 7

Principles & 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 9

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

3 October 14 Architectures     Chapters 10 (key), 11 (a little lighter), and 14.
-- October 16 Architectures      
4 October 21 Design  

Requirements assignment due

Design assignment issued

Chapter 15.
-- October 23 Design, continued from Monday.     examples of module descriptions
5 October 28 Design & Review      
-- October 30 Mid-term Exam     Here's last year's midterm exam and solution notes.
6 November 4 UI Design (these are Sommerville's slides, which I'll be using)      
-- November 6 Continuation of UI Design      
7 November 11 No class Veteran's Day   Pages 452-457 provide good material on integration testing. This is part of chapter 20, which is on the schedule below.
-- November 13 Integration testing and Implementation issues  

Design (Arch and module interfaces) due .

Implementation assignment issued.

8 November 18 Testing     Chapters 19 and 20.
-- November 20 Testing, continued      
9 November 25 Quality assurance  

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 27       .
10 December 2 Maintenance and Configuration Mgmt.     Chapter 27 and 29
-- December 4 Course Review   Testing assignment due on December 4th  
Exams December 13 FINAL EXAM 1:30p.m. — 3:30p.m.    

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 (assignment)

Official Requirements Document


Implementation assignment

Official Design Document

Testing assignment 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 web site 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, cox, 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.


Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately to discuss his or her specific needs. Also contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implementationed in a timely fashion.

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. It is lying. Don't do it.
Department of Information and Computer Science,
University of California, Irvine CA 92697-3425