I am teaching Software Design (CSC 509) at California Polytechnic State University this Fall. This is a senior-level course for students in Computer Science and Software Engineering programs.
CSC 509 offers a comprehensive exploration of software modeling and design. The course delves into methodologies and patterns, equipping learners with essential techniques for creating robust and efficient software solutions. Students engage in detailed case studies of real-world projects and acquire proficiency in designing large-scale software systems.
Lectures
This course includes 26 lectures as follows (lecture slides available):
- Course Presentation
- Reviewing Fundamentals
- Programming in the Large vs. Small
- Object-Oriented Design
- Design Patterns
- Software Architectures
- Architecture Patterns
- Frameworks and Libraries
- Component-Based Software Development
- Platform Development
- Software Product Lines
- Design Smells
- Services and Micro-services
- Containers and Packing
- Model-Driven Development