Software engineering
Undergraduate · CS / Programming
Syllabus focus
Topics typically covered
Standard syllabus
Process and requirements
- Software lifecycle models: waterfall, agile, DevOps (survey)
- Requirements elicitation and user stories
- Use cases, scenarios, and acceptance criteria
- Version control workflows: branching strategies
- Estimation, planning, and risk management (intro)
Design and quality
- UML diagrams: class, sequence, component (intro)
- Design principles: cohesion, coupling, SOLID (intro)
- Design patterns: strategy, observer, factory (intro)
- Testing: unit, integration, system; test-driven development
- Code review, static analysis, and coding standards
Process and design
- Requirements, user stories, and acceptance criteria
- Architecture diagrams and modular design
- Design patterns commonly used in industry (survey)
- Testing pyramid: unit, integration, E2E
- Code review culture and definition of done
- Technical debt identification and prioritization
STEM / applied
Team projects
- Agile ceremonies: standups, sprints, retrospectives
- CI/CD pipelines for build and test automation
- API design and documentation (OpenAPI intro)
- Deployment environments: dev, staging, production
- Incident response and postmortems (intro)
Architecture and ethics
- Layered, microservices, and monolith tradeoffs (survey)
- Security in the SDLC: threat modeling (intro)
- Accessibility and inclusive design requirements
- Technical debt and refactoring strategies
- Professional ethics, licensing, and open source
Team delivery
- Agile ceremonies without cargo-culting
- Issue tracking and milestone planning
- CI quality gates and release notes
- Observability as part of shipping
- Working with legacy code and strangler patterns
- Capstone: multi-week team project with retros
Notes
Often includes a semester team project. Process emphasis (Scrum vs plan-driven) varies by instructor.