Information and Computer Science 52:
Introduction to Software Engineering

Fall Quarter, 2004
Location: Engineering Lecture Hall 100 (Need a map?)
Monday, Wednesday, Friday, 10:00-10:50
Course code: 36290
Discussion location: SSH 100
Monday, Wednesday 5:00 -- 5:50
Course code for discussion section: 36291
(Last modified Monday, November 29, 2004)


[November 29, 2004] This week's lecture notes are now available.

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 Dates Lecture topic Schedule Notes Assignments Readings (all from van Vliet, unless noted otherwise)
1September 24, 27, 29 Introduction Chapters 1, 2, and 3


Slides from 1st Discussion section
2October 1, 4, 6

Principles & Requirements Engineering

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

Requirements assignment issued

Section 11.1

Chapter 9

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

Slides from discussion section (10/6) Example requirements document (from FQ 02)
3October 8, 11, 13 Architectures Slides from discussion (10/11) Chapter 10
Architectures Slides from 10/13 discussion Example requirements document (Unical)
4 October 15, 18, 20 Design

Requirements assignment due 10/18, in discussion.

Design assignment issued

Chapter 11

Design, continued

QuiltsRUs example

Flight control example

Eric Dashofy's slides on the C2-style

examples of module descriptions

ICS 52 standard design notation (though not for C2 designs)

5 October 22, 25, 27 Design
UI Design (these are Sommerville's slides, which I'll be using) Chapter 16
6 October 29, November 1, 3

Review on the 29th and 1st.

Mid-term Exam, on November 3

Here's the midterm exam and solution notes from a couple of years ago.

Here's this quarter's solution key.

November 5, 8, 10

No class on 11/5.

Integration testing and Implementation issues

Design (Arch and module interfaces) due Nov. 8th.

Implementation assignment issued.

Testing assignment issued.

8 November 12, 15, 17 Testing Chapter 13
9November 19, 22, 24 Quality assurance

Testing assignment (yes, that 's right, testing) due 11/24


10 November 29, December 1, 3 Maintenance and Configuration Mgmt. Chapter 4
Course Review

Implementation assignment due.

Exams Monday, December 6th FINAL EXAM 10:30 - 12:30 The exam is comprehensive. Here's a sample from the past.

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

Design Addendum

Required Notation



Testing 10

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

Strictly speaking, 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. But grades are adjusted to suit the difficulty of the exams and the assignments. If an exam turns out to be a real bear, then the threshold for an A will be much lower than for an exam that was piece of cake.

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 lab 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 for 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.
Donald Bren School of Information and Computer Sciences,
University of California, Irvine CA 92697-3425