| • Tuesday 23 November 2010 | • Tuesday 4 January 2011 |
| • Tuesday 5 April 2011 | • Tuesday 9 August 2011 |
| • Tuesday 1 November 2011 | • Tuesday 24 January 2012 |
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.
C Basics |
| 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.
Comments.
Exercise. |
| A first practical program (module C202) Variables, types and numeric types.
Float and ints. Short long and double.
Calculations.
Basic use of printf.
Exercise.
Input from the user.
Conversion and type casting.
Multiple assignments.
Exercise. |
| Conditionals and Loops (module C203) The if statement.
Writing conditions in C.
Exercise.
if, else, elseif.
switch, case, default.
while.
++ and += operator families.
Exercise.
do while.
for.
break and continue.
goto and labels.
Layout of your blocks, and comments revisited.
Exercise. |
| Functions, Macros and programs in multiple files (module C204) Defining functions.
Parameters and return values.
Exercise.
Function prototypes.
Variable scope and global variables.
Constants.
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.
Pointer arithmetic.
Passing pointers.
The use of pointers. |
| Programming techniques and tools (module C208) The Preprocessor and Macros.
Libraries.
Enumerators.
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.
locale.h.
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.
Portability 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.
Basic principles.
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.
Overloading.
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.
Member functions.
Constructors and Destructors.
Private, Protected and Public.
Exercise. |
| Object Orientation: Composite Objects (module Q909) Review of object orientation basics.
Inheritance.
Base classes and subclasses.
Overriding and abstract classes.
Polymorphism.
Inheritance structure.
Multiple inheritance and alternatives.
Class structure.
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.
Extending Classes.
Multiple inheritance. |
| Further C++ Object Oriented features (module C234) Virtual functions.
Inline functions.
Friend funcions.
Dynamic Objects.
Overloading functions and operators.
Multiple constructors and default arguments. |
| Object Orientation: Design Techniques (module Q907) Overview - why design?
Some basics.
OOD, OOA, OOP.
Waterfall, spiral and Incremental models.
Informal techniques.
Micro, macro and specification.
Formal methods.
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.
Formatted output.
Manipulators. |
| Exceptions (module C236) What are exceptions?
Try and catch.
Exception heirarcy.
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.
Template functions.
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
Melksham.
| 1 student |
2 students |
3 students |
For 4 or more students
from the same company,
please consider a private course. |
With hotel room £1340.00 (£1574.50 inc VAT) Without room £1100.00 (£1292.50 inc VAT) |
With hotel rooms £2580.00 (£3031.50 inc VAT) Without rooms £2100.00 (£2467.50 inc VAT) |
With hotel rooms £3820.00 (£4488.50 inc VAT) Without rooms £3100.00 (£3642.50 inc VAT) |
Notes:
• 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.