I am teaching Software Design(CSE 564) in Spring 2021. I have taught this course for since Fall 2020.
This course: (a) examines software design issues and techniques; (b) presents a comparison of design methods and a survey of design representations; (c) review how to apply design principles, patterns, and architectures to create reusable and flexible software systems; and, (d) describes how to document the design and architecture of a software system using a visual notation.
Syllabus
Lectures
This course includes 24 lectures as follows:
- Course Presentation
- Stepwise Refinement
- Modularization
- Assignment 01
- Large vs Small
- Object-Oriented Design
- Assignment 02
- Design Patterns – Observer
- Design Patterns – Singleton
- Design Patterns – Decorator
- Design Patterns – Builder vs Factory
- Design Patterns – Composite, Bridge, Strategy and Chain of Responsibility
- Assignment 03
- Architectures and Frameworks
- Midterm Review
- Connecting the Dots
- Reviewing the Dots
- Grading the Dots
- Design Smells
- Architecture Patterns
- Architecture Patterns II
- Assignment 05
- Model-Driven Development
- Model-Driven Development II
Videos
Some lectures have been recorded and are available in my YouTube Channel