Individual Software Design and Development (CSC 305)

I am teaching Individual Software Design and Development (CSC 305) this Fall. This is a senior-level course for Computer Science and Software Engineering students.

CSC 305 presents practical software development skills needed to construct production-quality software modules applying the object-oriented paradigm. Topics include inheritance, exceptions, loggers, containers, and multithreading. Students complete an individual programming project of mid-level complexity.

Lectures

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

  1. Clean coding in practice
  2. Exception handling
  3. Logging
  4. Object-oriented design
  5. Encapsulation, polymorphism, inheritance
  6. SOLID Principles
  7. Design Patterns
  8. Architectural Patterns
  9. Domain-specific Patterns
  10. Package, Module, Component, and Containers
  11. Frameworks and API Development
  12. Software Architecture
  13. Software Product Lines
  14. Structural Metrics
  15. Refactoring
  16. Individual Final Project