WEEK 1: 1/11 - 1/15

Lecture 1: Introduction to Software Engineering, some history.
Lecture 2: Getting up to speed: Git and Scrum essentials
Lecture 3: Why Software Engineering? When Bugs Kill

WEEK 2: 1/18 - 1/22

No class Monday January 18th: MLK Day

Lecture 4: More essentials: product backlog, user stories
Lecture 5: Survey of traditional process models.

WEEK 3: 1/25 - 1/29

Lecture 6: Next-generation processes, Extreme/Agile as intro to TDD.
Lecture 7: General testing principles, TDD, case studies.
Lecture 8: Unit tests, integration tests. Continuous integration. Lots more examples.

WEEK 4: 2/1 - 2/5

Lecture 9: Configuration Management. Git deep dive, I.
Lecture 10: Git deep dive, II.
Lecture 11: Process models and branching/release strategies (case studies).

WEEK 5: 2/8 - 2/12

Lecture 12: Intro. to Project Management. Personnel and teams.
Lecture 13: Formal methods for estimating. Agile approaches (story points, etc.).
Lecture 14: Risk management, scheduling (Gantt charts, PERT, etc.).

WEEK 6: 2/15 - 2/19

First Milestone Due Friday, February 19th.

Lecture 15: Requirements gathering, agile user stories. Requirements and TDD.
Lecture 16: Formal methods and requirements.
Lecture 17: First Milestone Demos!

WEEK 7: 2/22 - 2/26

Lecture 18: In-class planning meeting for second sprint.
Lecture 19: "Guest Lecture"
Lecture 20: Software Architecture Case Studies.

WEEK 8: 2/29 - 3/4

Lecture 21: More Software Architecture Case Studies.
Lecture 22: Midterm Exam.
Lecture 23: Class cancelled.

WEEK 9: 3/14 - 3/18

Lecture 24: More Software Architecture Case Studies.
Lecture 25: Human factors in software engineering
Lecture 26: Guest lecture

WEEK 10: 3/21 - 3/25

No class Friday, March 25th (Good Friday)

Lecture 27: UI Design, I
Lecture 28: UI Design, II

WEEK 11: 3/28 - 4/1

No class Monday, March 28th (Easter Monday)
Lecture 29: Nuts and bolts: code standards, etc.
Lecture 30: Guest lecture

WEEK 12: 4/4 - 4/8

Second Milestone Due Monday, April 4th.

Lecture 31: Demos
Lecture 32: In-class Sprint Planning Meeting
Lecture 33: Code Reviews, Pair Programming

WEEK 13: 4/11 - 4/15

Lecture 34: Guest lecture
Lecture 35: Technical Debt
Lecture 36: Refactoring, I

WEEK 14: 4/18 - 4/22

Lecture 37: Refactoring, II
Lecture 38: Software Engineering Case Studies, I
Lecture 39: Software Engineering Case Studies, II

WEEK 15: 4/25 - 4/29

Lecture 40: Software Engineering Ethics
Lecture 41: Process Improvement
Lecture 42: Scrum Retrospective

WEEK 15: 5/2

Monday, May 2nd is the last class meeting
Final exam is Wednesday, May 4th, 12:00-1:50PM.
Lecture 43: Demos