Course Summary
This course teaches students how to design and implement software systems using abstraction and decomposition. It covers topics such as modularity, software architecture, and design patterns.Key Learning Points
- Learn how to design and implement software systems using abstraction and decomposition
- Understand the principles of modularity, software architecture, and design patterns
- Develop skills in object-oriented design and programming
Related Topics for further study
Learning Outcomes
- Design and implement software systems using abstraction and decomposition
- Apply principles of modularity, software architecture, and design patterns
- Develop skills in object-oriented design and programming
Prerequisites or good to have knowledge before taking this course
- Basic programming experience in a high-level programming language
- Familiarity with object-oriented programming concepts
Course Difficulty Level
IntermediateCourse Format
- Online
- Self-paced
Similar Courses
- Software Design and Architecture Specialization
- Object-Oriented Design
Related Education Paths
Notable People in This Field
- Robert C. Martin
- Martin Fowler
Related Books
Description
The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.
Outline
- Who needs abstractions?
- Intro to Design as an Abstraction
- The Birds Eye View
- Additional Resource
- Additional Resource
- Who needs abstractions?
- Focus on the Users
- User Interface Design
- User Experience
- Additional Resource
- Additional Resource
- Focus on the Users
- What if there are no users?
- Back end design
- Database Design
- Additional Resource
- Additional Resource
- What if there are no users?
- Advanced database design
- Database Design II
- Database Design III and Overall Database Security
- Additional Resource
- Additional Reading
- Advanced database design
- The Good and Bad of Design Patterns
- Design Patterns
- The Mindless Cobbling together of existing capabilities
- Additional Resource
- Additional Resource
- The Good and Bad of Design Patterns
- Language choices
- Languages and Operating Systems
- Operating System Selection
- Additional Resource
- Additional Resource
- Language Choices
- Final Exam
- Assessment 1
- Assessment 2
- Assessment 3
- Assessment 4
- Assessment 5