Syllabus

Lecture Date Topic Readings Homework Project
Lecture 1, Monday 3/30 Admin. What is software engineering?
Lec01
Crisis HW 1
Lecture 2, Wednesday 4/1 Software engineering processes.
Lec02
Waterfall, XP, XP Costs
Lecture 3, Monday 4/6 Requirements and Specifications.
Lec03
Writing guide
Lecture 4, Wednesday 4/8 UML. Project planning.
Lec04
Project
UML Prj 1
Discussion, Friday 4/10 Initial Project meeting.
Lecture 5, Monday 4/13 Software development tools. Unit testing. Version control.
Testing slides
Lecture 6, Wednesday 4/15 Presentations I: Requirements. Prj 2
Lecture 7, Monday 4/20 Software Architecture.
Lec05
Software Architecture Proj1 due
Lecture 8, Wednesday 4/22 Design patterns.
Lec06
Gamma et al, Java Companion HW 2
Lecture 9, Monday 4/27 Presentations II: Design. Milestones.
Attendance is compulsory.
Prj 2 due.
Prj 3
Lecture 10, Wednesday 4/29 The nitty and the gritty.
lec07
Lecture 10, Monday 5/4 Testing. Coverage. Test case generation. Random testing.
lec08
testing, coverage, random Prj 3 due.
Prj 4
Lecture 12, Wednesday 5/6 Systematic execution. Symbolic execution. Cute HW 2 due.
HW 3
Lecture 13, Monday 5/11 Concurrency. Race detection.
lec10
Eraser, verisoft, CHESS
Lecture 14, Wednesday 5/13 Debugging. Delta debugging. Co-operative bug isolation.
lec11
How to report bugs, Delta debugging page, DD paper
Lecture 15, Monday 5/18 In class exam.
Lecture 16, Wednesday 5/20 Guest lecture: Dr. Ani Nahapetian. Software Engineering Challenges in Wireless Health. HW 4
Prj 5
Lecture 17, Monday 5/25 Memorial Day (Holiday).
Lecture 18, Wednesday 5/27 Usability and User Interface Design.
lec12
UI Patterns, Golden rules
TMI
Lecture 19, Monday 6/1 Real-time and embedded systems. Feedback on project presentations.
Lecture 20, Wednesday 6/3 Presentations III: Final Presentation and Demo.
(Spill on to Friday.)
Attendance is compulsory.