Design Patterns
In the Software Design and Architecture Specialization, you will learn how to apply design principles, patterns, and architectures to create reusable and flexible software applications and systems. You will learn how to express and document the design and architecture of a software system using a visual notation.Practical examples and opportunities to apply your knowledge will help you develop employable skills and relevant expertise in the software industry.
Created by: Kenny Wong
Quality Score
Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/
Overall Score : 90 / 100
Live Chat with CourseDuck's Co-Founder for Help
Need help deciding on a android development course? Or looking for more detail on Kenny Wong's Design Patterns? Feel free to chat below.
Join CourseDuck's Online Learning Discord Community
Course Description
This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, you will gain a foundation for more complex software applications. Finally, you will identify problematic software designs by referencing a catalog of code smells.You will be challenged in the Capstone Project to redesign an existing Java-based Android application to implement a combination of design patterns. You will also critique a given Java codebase for code smells.After completing this course, you will be able to: - Demonstrate how to use design patterns to address user interface design issues.- Identify the most suitable design pattern to address a given application design problem.- Apply design principles (e.g., open-closed, dependency inversion, least knowledge).- Critique code by identifying and refactoring anti-patterns.- Apply the model-view-controller architectural pattern.
Instructor Details
- 4.5 Rating
- 101 Reviews
Kenny Wong
Kenny Wong is an Associate Professor in the Department of Computing Science, at the University of Alberta, Canada. He received his B.Sc. and Ph.D. degrees in Computer Science from the University of Victoria, Canada. He has been a university instructor for 16 years, regularly teaching team-oriented, project-based software engineering courses, including several offerings of software process and product management. His research in software engineering focuses on analyzing the root causes of problems in the structure, behavior, and management of complex software systems.