Course Staff     

·        Prof. Alex Aiken,  773 Soda Hall, Office hours: M 11-12, Tu 2-3, and by appointment   aiken@cs

·        Sean Rhea, 447 Soda Hall, Office hours  M 11:30-1:30, F 11:30-1:30    srhea@cs

·        Ibe Merchant, Office hours: M 1-3 (464 Soda), W 1-3 (464 Soda), Su 6-7 (Wozniak Lounge)       ibrahim@eecs

Time and Place:

·        Lectures TT 11:00-12:30,  390 Hearst Mining

·        Sections W 8:00-9:00 AM in 320 Soda, W 9:00-10:00 AM in 320 Soda, W 12:00-1:00 PM in 310 Soda, and Th 8:00-9:00 AM in 310 Soda

Newsgroup: ucb.class.cs169

Text: The texts are

Program Development in Java by Liskov
Software Engineering by Pfleeger

These books are only recommended, not required.  The course will be taught largely from lecture notes and assigned papers.

Grading

·        Homeworks: 15%

·        Midterm: 15%

·        Final 20%

·        Project: 50%

Course Description

Building large software systems is hard, but experience shows that building large software systems that actually work is even harder.  This course covers techniques for dealing with the complexity of software systems.  We will focus on the technology of software engineering for the individual and small team, rather than  business or management issues.  Topics will include, among others, specifications, principles of design and software architecture, testing, debugging, static analysis, and version control.  Students gain hands-on experience through a large course project, done in a team of 5-7 students.

Syllabus

The syllabus will consist of a mix of lectures on software engineering and presentations by project groups.  Each project will give a brief update on its progress four times during the semester.  The final class will be a “169 fair” where groups will demo their projects.

1

8/27

pdf ppt ps

Course Overview

 

2

8/29

pdf ppt ps

Software Process

HW1 assigned

3

9/3

pdf ppt ps

Requirements and Specifications

HW1 due

4

9/5

pdf ppt ps

UML

5

9/10

pdf ppt ps

Design Patterns

HW2 assigned

6

9/12

pdf ppt ps

Project Planning

HW2 Due (9/12); HW3 Assigned (9/13)

7

9/17

pdf ppt ps

Version Control

8

9/19

pdf ppt ps

Testing Practice

9

9/24

pdf ppt ps

Quality Techniques

HW3 due; HW4 assigned

10

9/26

pdf ppt ps

Debuggers (Presentations)

11

10/1

pdf ppt ps

Presentations

12

10/3

 

Testing III

HW4 due; HW5 assigned

13

10/8

 

Debugging

14

10/10

 

Presentations

HW5 due; HW6 assigned

15

10/15

 

Dynamic Analysis

16

10/17

 

Presentations

HW6 due

17

10/22

 

Static Analysis I

 

18

10/24

 

Static Analysis II

19

10/29

 

Midterm

 

20

10/31

 

Presentations

HW7 assigned

21

11/5

 

Memory Management

22

11/7

 

Presentations

HW7 due

23

11/12

 

Programming Languages

 

24

11/14

 

Case Study I

 

25

11/19

 

Presentations

 

26

11/21

 

Case Study II

 

27

11/26

 

Presentations

 

28

11/28

 

Thanksgiving

 

29

12/3

 

Case Study III

 

30

12/5

 

Demos

 

 

 

Prerequisites

 

CS61A-C, and one of CS164, CS162, CS152, CS186

 

 

Policies

 

Assignments are due in class on the dates shown in the course schedule.  Assignments will be docked .5% for each hour they are received late.  An assignment is received when a member of the course staff handles it not, e.g., when you put it under the TAs door.

 

 It is expected that all students understand University policies on academic honesty.  Cheating on assignments or exams is very serious and will not be tolerated. In this course, we will use a variation of the standard policy.  In this class, it is permissible to talk to other students about assignments, to discuss particular solutions, and even to receive partial solutions (including code) from others. However,  all assistance and cooperation must be cited in the

assignment write-up.  If you receive any assistance from anyone other than course staff or one of your team members on an assignment, you must acknowledge in the write-up for that assignment who gave assistance

and what assistance was given.  Grading will take into account how much help a student received from others (the more help, the lower the grade).  Failure to acknowledge sources is plagiarism and will be treated as a serious breach of academic honesty.  No assistance may be given or received on exams.

 

Handouts

 

Handots will be available on-line on the class home page.  There will also be assigned readings, which will also be posted on the course web site.