I am teaching Software Engineering II (CSC 309) at California Polytechnic State University this Winter. I have been teaching this course since the Fall of 2022. This is a senior-level course for students in Computer Science and Software Engineering programs.
CSC309 is a continuation of the software lifecycle – Methods and tools for the implementation, integration, testing, and maintenance of large software systems; software development and testing environments; software quality assurance.
Lectures
This course includes 26 lectures as follows (lecture slides available):
- Course Presentation
- Software Metrics: Code Quality
- Software Metrics: Structural Quality
- Stable Abstraction and Stable Dependency Principles
- Software Validation
- Description of Ideas for A Final Project
- Technical Debt
- Legacy Software
- [Sprint Review 1]
- Pair Programming
- Workshop: Pair Programming
- Unit Testing
- Workshop: jUnit 5
- [Sprint Review 2]
- Task Management
- Workshop: Taiga + Github Issues
- Project Dependencies Management
- Workshop: Maven
- [Sprint Review 3]
- Libraries and Frameworks
- Continuous Integration
- Continuous Deployment
- Workshop: GitHub Actions
- [Sprint Review 4]
- Software Cost Estimation
- Workshop: Constructive Cost Model
GitHub
The source code from some assignments and projects is available on GitHub.