Description
This course focuses on the approaches and techniques needed in the implementation of large C++ based projects. In particular it concentrates on the use of the Standard Template Library - to obviate the need to re-invent the code for maintaining and manipulating complex data sets, and on the exploitation of patterns - to come up with useful approaches to tackling some of the design and implementation problems that crop up on large projects. By combining a good coverage of the STL, and a comprehensive overview of Patterns that have been researched over the last 10 year or so the course should provide senior programmers, analysts and technical project managers with the necessary skills and insights to develop large scale applications more rapidly and with fewer bugs in the code. An important area covered in the course is directed to the art and science of rapidly prototyping applications that will involve the manipulation of rich and complex collections of data (in areas such as data exploration, image processing, operations research and network management).
Key Skills obtained in this course will be:
Knowledge of the major Patterns and how they can be implemented in C++, Use of the Standard Template Library to develop complex data handling processing applications, Implementing graph representation and graph traversal algorithms using the STL, Realising STL container class persistence with Object Oriented Databases, Ability to recognise patterns and situations where certain patterns are applicable, Ability to recognise situations where multiple patterns need to be co-ordinated and applied, Implementing designs involving Singleton, Observer, Composite, Visitor and Proxy patterns in C++, Understanding component and pattern based approaches in the implementation.
Who should attend
The course is for experienced C++ programmers, analysts and technical project managers who would like to gain a good overview of patterns and their uses, and of the Standard Template Library and its potential.
Attendees are expected to be comfortable working with projects containing many modules, have a good knowledge of debugging techniques, and capable of interpreting sometimes obscure compiler errors and warnings.
This course is designed to be operating system, compiler and integrated development environment independent, although, it will by default be taught using workstations running Linux and the GNU C++ compiler