Example isn't another way to teach, it is the only way to teach. Albert Einstein.
Nontrivial systems include many recurring design problems whose solutions are commonly repeated from place to place, and from programmer to programmer. The essence and basic structure of a solution may be repeated many times, even though the realization is different in each case. Patterns offer a technique for capturing design and architecture, presenting and communicating architectural knowledge at all levels of a system, allowing experience to be understood and distilled. Patterns allow developers to work on and understand designs, and are not a basis for automation of design. Frameworks and libraries present code-level reuse often built on common patterns. This course introduces patterns from the ground up, presenting principles as well as concrete examples in UML and C++. It develops understanding through lectures, discussion, and some exercises to reinforce the concepts by putting them into practice.
Duration: 2 days
- solve common C++ programming design problems without recreating the wheel
- tap into a wealth of collected knowledge on software development
- use patterns at every stage of software development: architecture, design, and implementation
- understand what does and does not go to make up a pattern
- understand the beneficial role of patterns in all aspects of development
- learn and use common patterns for object-oriented and large-scale design
- appreciate patterns from the strategic level down to idiomatic examples in C++
- learn C++ by appreciating how to use patterns in your C++ programming
The course is suitable for software developers and designers familiar with C++.
Ideally this training would be preceded by the course: design and develop C++ applications.