Brief Summary
This course is a fun and practical adventure through 24 important Design Patterns used in programming. With tons of real-world Java examples and a quirky teaching style, you'll learn when and how to use these patterns effectively, all while thinking deeply about the core ideas behind them.
Key Points
-
Focus on 24 essential Design Patterns
-
Over 50 real-world Java examples
-
Quirky and engaging teaching style
-
Deep exploration of programming principles
-
Active learning with quizzes and discussions
Learning Outcomes
-
Recognize when to use specific Design Patterns
-
Understand the principles behind each of the 24 patterns
-
Apply learned concepts in real-life coding scenarios
-
Engage with interactive quizzes to reinforce learning
-
Develop a broader view of programming concepts and idioms
About This Course
An intensely practical, deeply thoughtful and quirky look at 24 Design Patterns. Instructors are ex-Google, Stanford.
Prerequisites: Basic understanding of Java
Taught by a Stanford-educated, ex-Googler, husband-wife team
More than 50 real-world examples
This is an intensely practical, deeply thoughtful, and quirky take on 24 Design Patterns that matter.
Let’s parse that.
The course is intensely practical, bursting with examples - the more important patterns have 3-6 examples each. More than 50 real-world Java examples in total.
The course is deeply thoughtful, and it will coax and cajole you into thinking about the irreducible core of an idea - in the context of other patterns, overall programming idioms and evolution in usage.
The course is also quirky. The examples are irreverent. Lots of little touches: repetition, zooming out so we remember the big picture, active learning with plenty of quizzes. There’s also a peppy soundtrack, and art - all shown by studies to improve cognition and recall.
Lastly, the patterns matter because each of these 24 is a canonical solution to recurring problems.
What's Covered:
Decorator, Factory, Abstract Factory, Strategy, Singleton, Adapter, Facade, Template, Iterator, MVC, Observer, Command, Composite, Builder, Chain of Responsibility, Memento, Visitor, State, Flyweight, Bridge, Mediator, Prototype, Proxy, Double-Checked Locking and Dependency Injection.
The only GoF pattern not covered is the Interpreter pattern, which we felt was too specialized and too far from today’s programming idiom; instead we include an increasingly important non-GoF pattern, Dependency Injection.
Examples: Java Filestreams, Reflection, XML specification of UIs, Database handlers, Comparators, Document Auto-summarization, Python Iterator classes, Tables and Charts, Threading, Media players, Lambda functions, Menus, Undo/Redo functionality, Animations, SQL Query Builders, Exception handling, Activity Logging, Immutability of Strings, Remote Method Invocation, Serializable and Cloneable, networking.
Dependency Inversion, Demeter’s Law, the Open-Closed Principle, loose and tight coupling, the differences between frameworks, libraries and design patterns.
Identify situations that call for the use of a Design Pattern
Understand each of 24 Design Patterns - when, how, why and why not to use them
Distill the principles that lie behind the Design Patterns, and apply these in coding and in life, whether or not a Design Pattern is needed
Janardhan N.
Great course and very detailed explanations, the authors have put in lot of effort in creating this course. only annoying thing is the background music :-(