Weekly outline
General
Week 1: Fundamentals
10/1: Prerequisites and Setup
10/3: Work Product Management; Git
Readings: Textbook chs. 1-3Week 2: Starting Construction
10/8: Project setup; languages and programming paradigms; scheduling
10/10: Design; pseudocode
Reading: Textbook chs. 4-5Week 3: Implementation
10/15: Coding best practices
10/17: Instrumentation; error handling; maintainability
Reading: Textbook chs. 7-9Week 4 - Testing and Debugging
10/22: Debugging
10/24: Testing
Reading: Textbook chs. 20, 22-23Week 5: Data
10/29: Data structuring and typing
10/31: Data organization and visibility
Reading: Textbook chs. 10-13Week 6: Control Flow
11/5: Structured Programming done right
11/7: Programming by strengthening of invariants
Reading: Textbook chs. 14-19Week 7: Software Quality
11/12: Code quality
11/14: Inspection, testing, formal methods
Reading: Textbook chs. 31, 32, 21.3Week 8: Various Topics
11/19: Performance, concurrency, big data
11/21: Project and build management
Reading: Textbook chs 25, 28Week 9: Software Engineering
11/26: Overview of "mainstream" academic SE
11/28: US Thanksgiving Holiday—no class meeting
Reading: TBAWeek 10: Last Words
12/3: Software craftsmanship
12/5: Life skills
Reading: Textbook ch. 34