Advanced C++ Programming for Unix and Linux — A 5 day course

contact usEnquire about this course


This course covers the mechanics of building complex Unix / Linux based applications in C++. It is a collection of examples and case studies that are important, yet do not seem to be dealt with elsewhere.

A large part of the course explores techniques for implementing wrappers around Unix API system calls in order to implement functionality at a higher level of abstraction, by hiding much of the low level functionality inside a suitable class.

The course also covers techniques for developing Graphical User Interfaces using Widget sets implemented in C++,such as Qt+ and Gtk+, as well as the Motif widget set (which is implemented in C).

The principles of developing distributed applications using CORBA are introduced, as are C++ object oriented approaches to building Socket based applications.

A major section of the course deals with implementing Posix threads based applications in an object oriented manner.



An overview of C++ - the language, patterns and idioms

An overview Unix technologies

Techniques for Devising and Implementing Wrapper Classes

Extending functionality beyond Wrapper Classes

Working with P-threads the object oriented way

Working with C++ based widget sets

CORBA and C++

Data Persistence

Network Programming

Suitable For

The course is for experienced C++ and Unix programmers, who would like to take a more object oriented approach to Unix application development.

Attendees are expected to have an engineering "mind set" - i.e. prepared to "get their hands dirty" by experimenting with ideas and programming approaches.

The course is also suited to those who will be designing and implementing large complex application frameworks that will be running on Unix / Linux platforms.

The course contains a number of challenging exercises. For many of the exercises a lot of the supporting code will be provided, so that students can concentrate on applying one or more key concepts.

Exercises will consist of a core problem, followed by several challenges of increasing difficulty. The challenges are meant for post course skills development.

The course will use the GNU C++ compiler, Linux and Solaris based workstations.


A good understanding in C++ programming

Several months experience in practical C++ programming

Delegates must be fluent in C++ and keen to learn about methods of building better software and improving their understanding of what works well in a C++ environment.