Lectures

The following schedule is tentative. Most likely, some of the topics will change during the semester. As the course progresses, hyperlinks will be provided to the lecture notes. The project assignments are provided early so that you know what to expect; these project handouts are likely to change by the time the project stage is assigned. 

Week

Lec.

Date

Topic

Reading

Assigned

Due (5pm)

1

1

Aug. 29

Overview: What is Software Engineering

[Crisis]

 

 

2

Aug. 31

Software Engineering Processes

 

Proj1 (proposal))

 

2

 

Sep. 5

No class. Labor Day

 

 

 

3

Sep. 7

Agile processes: Extreme Programming

[XP][XPDemystified][XPCosts]

Proj2 (bid)

Proj1

3

4

Sep. 12

Requirements and Specifications

 

 

Proj2

5

Sep. 14

Unified Modeling Language

[PracticalUML]

Proj3 (requirements)

 

4

6

Sep. 19

Design Patterns

[Gamma]

 

 

7

Sep. 21

Version Control

[PRCS][CVS]

 

 

5

8

Sep. 26

Testing Practice

[Mistake][Hard]

Proj4 (design)

Proj3

9

Sep. 28

Presentations (Requirements). Testing Techniques

 

 

 

6

10

Oct. 3

Presentations (Requirements). Testing Techniques

[Coverage]

Proj5 (review)

Proj4

11

Oct. 5

Testing Techniques

[Mutation][TestGen][Unix]

Homework 1 (UML)

 

7

12

Oct. 10

Debugging

 

Proj6 (update)

Proj5

13

Oct. 12

Delta Debugging

[Zeller][Delta]

Homework 2 (Testing)

Homework 1 (UML)

8

14

Oct. 17

Presentations (Design). Runtime Monitoring

[Purify][PurifyCompare]

 

Proj6

15

Oct. 19

Presentations (Design). Runtime Monitoring

[SFI]

 

 

9

16

Oct. 24

Runtime Monitoring for Data Races

[Eraser]

 

Homework 2 (Testing)

17

Oct. 26

Type Checking

 

Homework 3 (delta)

 

10

18

Oct. 31

Static Analysis Tools

[Splint]

 

 

19

Nov. 2

Refactoring

 

Homework 4 (synchronization)

Homework 3 (delta)

11

20

Nov. 7

Memory management

 

 

 

Nov. 9

Midterm Exam (in class)

 

 

 

12

21

Nov. 14

Model Checking

 

Homework 5 (splint)

Homework 4

22

Nov. 16

Program Verification

[Hoare]

 

 

13

23

Nov. 21

Program Verification

[Dijkstra][JML]

 

Homework 5

24

Nov. 23

How To Write Secure Code

 

Proj7 (test)

 

14

25

Nov. 28

Presentations (Final report)

 

Homework 6 (program verification and security)

 

26

Nov. 30

Presentations (Final report)

 

 

Proj7 (due Dec 3)

15

27

Dec. 5

Prospector

 

 

Homework 6

 

Dec. 7

Project Demonstrations