Introduction to Software Engineering (CSC 307)

I am teaching  Introduction to Software Engineering (CSC 307) at California Polytechnic State University this Summer. This is a senior-level course for students in the Computer Science program.

CSC 307 covers principles of agile methods; engineering requirements; analysis, design, implementation, testing, and verification of software systems; engineering tradeoffs; and working in project teams.

Lectures

This course includes 16 lectures as follows (lecture slides available):

  1. Course Presentation
  2. Process Models
  3. Agile Methods
  4. Agile in Action I: Stories
  5. Agile in Action II: Sprints
  6. Agile in Action III: Tasks
  7. Clean Coding
  8. Software Design: Classes
  9. Software Design II: Relationships
  10. Behavioral Design Patterns
  11. Creational Design Patterns
  12. Structural Design Patterns
  13. Final Project
  14. Code Metrics
  15. Structural Metrics
  16. Cost Estimation

Projects

This is an example of a project developed by students in this course:

Final Project from Summer 2023. A Block-Based Coding Platform developed in Java as a desktop application.