Usually scheduled to meet customer needs or run as a private course. Please email for details
This intensive course teaches the C languages, and the C++ language which transforms C by adding object orientation.
This is a course for students with prior programming
experience. We also teach newcomers to programming - our
C++ is a programming language used for major systems, based on the
fundamental C language but with additional features such as Object Orientation
which make it very suitable for bigger uses. To some extent, C++ has been
displaced by other more modern languages, but there's still a number of
application areas where it's the ideal choice, and many others where heritage
code needs to be maintained.
|Introduction to C (module C101) What is C?
What are C++ and Java?
When should I use C?
Flavours of C.
|C Language Fundamentals (module C201) "Hello World" - shortest program in C.
Compiling, loading and running a C Program.
|A first practical program (module C202) Variables, types and numeric types.
Float and ints. Short long and double.
Basic use of printf.
Input from the user.
Conversion and type casting.
|Conditionals and Loops (module C203) The if statement.
Writing conditions in C.
if, else, elseif.
switch, case, default.
++ and += operator families.
break and continue.
goto and labels.
Layout of your blocks, and comments revisited.
|Functions, Macros and programs in multiple files (module C204) Defining functions.
Parameters and return values.
Variable scope and global variables.
Header files and other Macros.
|Arrays (module C205) Declaring and initialising an array.
Techniques for iterating through an array.
|Character Strings (module C206) Defining string variables.
String manipulation functions.
|Pointers and references (module C207) Declaring and using a pointer.
The use of pointers.
|Programming techniques and tools (module C208) The Preprocessor and Macros.
Using command line parameters and environment variables.
|Structures and Unions (module C209) Combining data into structures.
Creating your own data types.
Programming techniques for structures.
Overlapping data within unions.
|File Handling (module C210) stdio.h and other headers.
Files and other streams.
Opening and closing.
Reading and writing.
Checking files and directories.
|Standard Libraries and other headers (module C211) The C preprocessor.
stdarg stddef stdio and stdlib.h.
math and limits.h.
errno ctype and time.h.
|Memory Management (module C212) Malloc calloc realloc free and cfree.
Using Pointer arithmetic.
Creating variable length arrays and strings.
Techniques for C Programming
|Secure C Programming (module C221) Pointer issues.
Handling Binary data.
Scrubbing user input.
|C Web Programming (module C222) What is CGI programming?
A Simple CGI program in C.
Reading from a form.
Introduction to sessions.
Object Oriented C - C++
|Introduction to C++ (module C231) C plus Object Orientation.
Overview of the principles of Object Orientation.
Uses of C++
|Revision of C (module C230) Overview / Reminder of C.
Arrays, pointers, structures, unions.
|Object Orientation: Individual Objects (module Q906) History - unstructured and structured code.
Introduction to object oriented programming.
Classes and methods.
Static and nonstatic.
Instances, constructors and destructors.
Accessing members of a class.
Loading and using classes.
Direct access to variables.
Encouraging class use.
|Defining and using classes in C++ (module C232) Defining classes through struct and class.
Constructors and Destructors.
Private, Protected and Public.
|Object Orientation: Composite Objects (module Q909) Review of object orientation basics.
Base classes and subclasses.
Overriding and abstract classes.
Multiple inheritance and alternatives.
Hierarchy and visibility.
A note on design.
|OO in C++ - beyond the basics (module C233) Deriving one class from another - Inheritance.
Inheritance and access control.
Packaging classes into modules.
|Further C++ Object Oriented features (module C234) Virtual functions.
Overloading functions and operators.
Multiple constructors and default arguments.
|Object Orientation: Design Techniques (module Q907) Overview - why design?
OOD, OOA, OOP.
Waterfall, spiral and Incremental models.
Micro, macro and specification.
Booch, Yourdon and the OO design wars.
Unified Modeling Language (UML).
Views, diagrams, model elements and general mechanisms.
Extending UML - stereotypes, tagged values and constraints.
Functions of tools such as Rational Rose.
Drawing support, model repository, navigation, code generation.
Configuration, version control and associated tools.
|I/O in C++ (module C235) The streams libraries.
|Exceptions (module C236) What are exceptions?
Try and catch.
Accessing exception data.
Throwing your own exceptions.
|Namespaces (module C237) Creating and using a namespace.
using, Namespace aliases and the unnamed namespace.
|Templates (module C238) Template definition - parameterized types.
Templates and friends.
Static members and templates.
Exceptions and templates.
|Putting it all together (module C239) Practical examples of C and C++ programs.
Planning your application through UML and patterns.
Integration with PHP, Perl, Python and Tcl.
- our own
purpose fitted training centre and business hotel / conference centre in
|| 2 students
|| 3 students
|| For 4 or more students
from the same company,
please consider a private course.
| With hotel room
£1530.00 (No VAT from 1.2019)
£1250.00 (No VAT from 1.2019)
| With hotel rooms
£3010.00 (No VAT from 1.2019)
£2450.00 (No VAT from 1.2019)
| With hotel rooms
£4490.00 (No VAT from 1.2019)
£3650.00 (No VAT from 1.2019)
• Multiple discount applies to bookings for second and subsequent delegates on the same running of a course, and on same order.
• Hotel rooms are available for arrival the night before the course starts, for departure after the end of the course on the last day.
Upon completion of your course, you'll have online access to the source code of
all the examples from the course, and you'll have access to the
"Ask the Tutor" forum
where you can raise questions. We also encourage you to email the tutor, and
to visit us again to use our library as appropriate.
For more information about our public courses in general, such as class size, course times, materials provided, special requests, accommodation list, finding our centre, etc.
Covering topics such as delegate substitution, payment, cancellation policy and other matters.