Information and Computer Science 52:
Introduction to Software Engineering

Winter Quarter, 2004
Location: Social Science Hall 100 (Need a map?)
Tuesday and Thursday, 2:00-3:20
Course code: 36290
Discussion location: SSLH 100
Monday, Wednesday, Friday 4:00 -- 4:50
Course code for discussion section: 36291
(Last modified Thursday, March 18, 2004)


[March 18, 2004] Due to popular demand a sample final exam, including some answers, is now available.

[March 16, 2004] Lecture notes for week 10 are now available.

[March 12, 2004] The final assignment (test case creation) is now available.

[March 2, 2004] A solution to the midterm is now available.

[January 13, 2004] Want to add the class? You can, just use TELE. I will not be signing add cards; you must add on-line through TELE.

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

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 January 13 Introduction     Chapter 1. Skim 2. All of 3, but with more attention to the first 2 subsections. Skim 4
-- January 15


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

2 January 20

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.
-- January 22

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

  Example requirements document (from FQ 02)  
3 January 27 Architectures     Chapters 10 (key), 11 (a little lighter), and 14.
-- January 29 Architectures      
4 February 3 Design (now live)  

Requirements assignment due

Design assignment issued

Chapter 12
-- February 5 Design, continued from Monday.     examples of module descriptions
5 February 10 Design & Review      

February 12

*Date of exam subject to change*

Mid-term Exam     Here's the midterm exam and solution notes from a couple of years ago.
6 February 17

UI Design (these are Sommerville's slides, which I'll be using)

(URL now fixed)

    Chapter 15. (UI Design)
-- February 19 Continuation of UI Design      
7 February 24       Pages 452-457 provide good material on integration testing. This is part of chapter 20, which is on the schedule below.
-- February 26 Integration testing and Implementation issues  

Design (Arch and module interfaces) due .

Implementation assignment issued.(Friday the 27th)

8 March 2 Testing     Chapters 19 and 20.
-- March 4 Testing, continued      
9 March 9 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)
-- March 11       .
10 March 16 Maintenance and Configuration Mgmt.     Chapter 27 and 29
-- March 18 Course Review   Testing assignment due on ...<tbd>  
Exams March 25 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

Official Requirements Document

MS Word version of the requirements doc


Implementation (Word version)

Official Design Document (Word version)

Testing (Word version) 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