1Software Development and Design
- 1.1Data formats and parsing
Covers the traits of the three data-interchange formats JSON, YAML, and XML, and the judgment of parsing each into Python data structures (dict, list) to extract values, framed as interpreting and diagnosing given artifacts: "how do I read this response/config and where do I pull a value from?" and "why did the load fail?"
- 1.2Development methodologies and testing
Covers when to use the waterfall, agile, and lean methodologies, the red -> green -> refactor cycle of test-driven development (TDD) that writes tests before implementation, and the role of unit tests, framed as the judgment/diagnosis of "which approach fits this requirement volatility?" and "how do I respond to this failing test?"
- 1.3Code organization and design patterns
Covers organizing code with functions/methods, classes, and modules/packages, plus the MVC pattern that separates responsibilities and the Observer pattern that notifies subscribers of state changes, framed as the design judgment of "how do I split this monolithic script?" and "which pattern fits this notification requirement?"
- 1.4Version control and Git
Covers the benefits of version control with Git, the roles of clone, add, commit, push/pull, branch, and merge, plus resolving a merge conflict and reading a unified diff (@@ hunks and +/- lines), framed as interpreting and diagnosing given artifacts: "what does this git output mean and what do I do next?"

