C++ Course

course overview

Click to View dates & book now


Basic programming skills are a fundamental requirement for many IT professionals. An entry-level programmer can have difficulty with jargon, and knowing where to start. Learning language syntax can be an uphill struggle when it cannot be put into context.


Each participant will leave with a recognised certificate


  • As scripting languages become more powerful and available traditional tasks of a programmer are invading other IT functions. System administrators may have to write complex scripts which impact on mission critical systems, often with no programming experience or training.
  • Support staff often have to communicate with development staff, and misunderstandings easily arise from cultural differences.
  • This course gives a basic understanding of how computer systems work from a programmer's perspective, and how to use this knowledge to produce good code. It also enables technical staff who are not programmers to gain a perspective of software development.

Chapter 1: System Components

  • Computer system components
  • Central hardware components
  • Software components
  • Operating systems
  • Processes
  • Virtual memory
  • Virtualisation
  • Applications

Bringing it all together

Chapter 2: First Steps

  • What is a program?
  • Programming languages
  • Creating a program
  • A first program
  • What does a program do?
  • Paper to program
  • Giving names to data items
  • Special characters
  • Applications and libraries
  • Administration tools and utilities

Programming tools and utilities

Chapter 3: Software Production

  • Where does software come from?
  • Do you really have to pay?
  • Software licenses
  • Stages in software production
  • Understanding the specification
  • Agile software production
  • Basic flowcharting
  • Most programs consist of three parts
  • Checking and testing
  • Version control


Chapter 4: Data

  • Representing data
  • Bits, bytes and words
  • Conventions
  • Fundamental types
  • Getting it wrong
  • Representing characters
  • Sort order of numbers and text
  • The problem with the Euro
  • Representing integers
  • Representing floating point
  • Representing time
  • Arrays and lists
  • Associative arrays


Chapter 5: Variables and Operators

  • Variables and constants
  • Objects
  • Life of a variable – scope
  • An alternative to scope
  • Choosing variable names
  • Names you should not use
  • Operations on data
  • Choosing variable types
  • Assignment
  • Simple operations?
  • Precedence


Chapter 6: Flow Control

  • Flow control
  • Altering program flow
  • Simple decision statements
  • What is truth?
  • Boolean operators
  • Logical operators
  • Using logical operators
  • Loops
  • Array processing
  • Language supplied iterators
  • Interrupt handling

Exception handling

Chapter 7: Program Structure

  • Scope revisited
  • Named blocks
  • Calling a subroutine
  • Passing a copy of data
  • Passing a reference to data
  • Returning results
  • Entry points
  • Modules and Libraries

Asynchronous subroutines – Threads

Chapter 8: Input and Output

  • What is a file?
  • File systems
  • Exchangeable file systems
  • I/O Libraries and Layers
  • Opening a file
  • Opening a file – checks
  • Opening a file – modes
  • Sequential access
  • Random access
  • Buffering
  • Concurrency issues

Locking strategies

Chapter 9: Building Applications

  • Compilation
  • Linking
  • Loading and running
  • Process attribute inheritance
  • Portability
  • Emulators
  • Interpretation
  • The third way: Byte-code
  • Pre-processing
  • Optimisation


Chapter 10: User Interfaces

  • User IO
  • Text terminal IO
  • Pros and Cons of text terminal interface
  • Text terminal IO development cycle
  • Graphical User Interfaces
  • GUI Examples
  • Pros and cons of GUIs
  • Client-Server Systems
  • Web application development
  • Frameworks
  • Printing


Chapter 11: Coding Style

  • Virtues of a programmer
  • Readability and style
  • Naming conventions
  • Error handling
  • Programming for change
  • The need for speed
  • Programming for performance
  • Constants – aren't
  • Portability and flexibility


Chapter 12: Support and Debugging

  • Why does software have bugs?
  • Programs break!
  • Understanding the problem
  • End-user discussions
  • Finding a solution
  • Debugging a compiled program
  • Other tools
  • Some bug types
  • Trace statements
  • Dealing with 3rd party support

Distributing a patch

Talk to an expert

Thinking about Onsite?

If you need training for 3 or more people, you should ask us about onsite training. Putting aside the obvious location benefit, content can be customised to better meet your business objectives and more can be covered than in a public classroom. Its a cost effective option. One on one training can be delivered too, at reasonable rates.

Submit an enquiry from any page on this site and let us know you are interested in the requirements box, or simply mention it when we contact you.

All $ prices are in USD unless it’s a NZ or AU date

SPVC = Self Paced Virtual Class

LVC = Live Virtual Class

Please Note: All courses are availaible as Live Virtual Classes

Trusted by over 1/2 million students in 15 countries

Our clients have included prestigious national organisations such as Oxford University Press, multi-national private corporations such as JP Morgan and HSBC, as well as public sector institutions such as the Department of Defence and the Department of Health.