Study at City
  1. Courses
  2. Applying
  3. Fees and funding
  4. Living in London
  5. Visit us & online events
  6. Student support
  7. International students
  8. Order a prospectus
  9. Ask a student
  1. Short courses
  2. Courses
Study at City

C/C++ - Object-Oriented Programming Using C++ Part 2 Short Course

Key information

Choose a start date
To be confirmed
To be confirmed
To be confirmed
To be confirmed
Course Code:
To be confirmed
To be confirmed
Booking Deadline:
To be confirmed
To be confirmed
Covid-19 update: The learning doesn’t have to stop, join our online community. We will be delivering courses remotely until further notice. Live tutor support and virtual lessons will take place during advertised teaching hours. The classes are taught in small groups, so you’ll get lots of support from your tutor. Book now.

C++ is the key language used for game development and VR.

Why choose this course?

This course is for those who can already program in a procedural language such as C, using control structures such as if, for, while, etc.

It covers the fundamentals of the C++ programming language and shows how to program using object-oriented principles. It is fully hands-on, and you will gain experience in designing simple but powerful object-oriented applications and in writing code using the C++ language.

This course aims to update and refresh your existing programming skills. Using C++ will enable you to develop financial or other algorithms to run quickly, following prototyping in systems such as MATLAB or Octave.

The course takes place in our central London location, taught over 10 weeks in the evenings, allowing you to continue with full-time employment.

Course overview

Feedback is given throughout the course so that participants have as much opportunity as possible to improve their programming technique.

Topics covered include:

  • C++ language features
  • A key standard library objects overview
  • OOP features including:
    • Classes
    • Objects
    • Abstraction
    • Interfaces
    • Constructors/destructors
    • Overloading
    • Inheritance
    • Polymorphism and templates.

By the end of the course, you will be able to:

  • Write C++ programs using a combination of built-in and user-defined types;
  • Be aware of Object Oriented Programming concepts and principles;
  • Apply OOP principles, by writing and compiling programs;
  • Understand the conceptual and syntactic differences between C and C++;
  • Utilise Integrated Development Environments (IDEs) as well as the command line to create and compile programs.
  • “ Value for money, good content and great tutor…lots to cover in ten classes (wish there were more)…very satisfied. ”

    Martin Llavallol

    Former student

  • “ Gives solid unerpinning theory enabling you to build up your core knowledge of C++. You should be actively developing alongside to take full advantage of the course. ”

    Paul Skinner


  • “ Informative, capable course. Pace was just right and the materials were well presented. ”

    Jon Jones


What will I learn?

What will I learn?

  • General language overview. Standard Library. Standard Input and Output. Control Structures.
  • Functions & Function Overloading. Arrays and the string object. Introduction to Object Oriented Programming (OOP).
  • Pointers, pointers to functions and relationship with arrays. Dynamic memory allocation and the keywords new and delete. OOP theory: reusability, composition and inheritance.
  • OOP in practice. Creating classes, classes' members,  specifying  and controlling access. Operator Overloading.
  • Inheritance & Composition. What is inherited, access control, syntax examples. The keywords static and this.
  • Polymorphism. Type Hierarchies and the difference between Early & Late Binding. Virtual functions and abstract base classes.
  • Copy Control (Copy Constructor, Assignment Operator, Destructor). Dynamic Object Creation and Functions Returning Objects.
  • Header guards, preprocessor directives and how to split a program into multiple files. Namespaces and the keyword using. An introduction to exceptions.
  • Generic Programming and the Standard Template Library (STL). Containers, Iterators and Algorithms. An introduction to class templates.
  • Revision of OOP key concepts. Information hiding, Encapsulation, Reusability, Polymorphism, Overloading, Inheritance, Composition.

By the end of the course, you will be able to:

  • Write C++ programs using a combination of built-in and user-defined types.
  • Be aware of Object Oriented Programming concepts and principles
  • Apply OOP principles, by writing and compiling programs.
  • Understand the conceptual and syntactic differences between C and C++
  • Utilise Integrated Development Environments (IDEs) as well as the command line to create and compile programs.



Prerequisite knowledge

You may wish to visit the Introduction to Programming with C/C++ - Part 1 course page before applying.

Not an introductory programming course - participants should have experience of programming already in languages such as VBA, Java, Pascal or C. Confidence with using various operating systems such as Windows 7, XP or Linux with competent numeracy skills.

English requirements

Applicants must be proficient in written and spoken English.

Teaching & assessment

Teaching & assessment

The tutor will provide a series of informal online homeworks spread out during the course - and suggestions are provided on enhancing existing programs. Online quizzes to check learning will also be made available.

This course uses the Moodle virtual learning environment (VLE) source codes, example programs and teaching material can be accessed at anytime on the Internet.

The evening class will also use online forums for questions and answers allowing you to post questions to other classmates and the course tutor.

Recommended reading

Recommended reading

  • Bjarne Stroustrup (2000) The C++ Programming Language: Special Edition. Addison-Wesley Professional
  • David R. Musser, Gillmer J. Derge, Atul Saini (2001) STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library. Addison-Wesley Professional
  • John R. Hubbard (2000) Schaum's Outline of Programming with C++. McGraw-Hill
  • Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.

Web resources:


Tutor information

  • Peter Woodward

    Peter Woodward is currently working as a researcher in the Faculty of Medicine, Imperial College London. He is developing e-learning tools to help train doctors in the diagnosis of stroke. Before joining Imperial in February 2010, Peter was employed for three years at the Human Computer Interaction Design (HCID) centre at City, University of London working on developing tools for medical handovers.

    Peter's earlier research work included 3D graphics in television with the BBC and Air-Traffic Control simulation with ENAV (the Italian Air Traffic Control organisation).

    Peter has worked in teaching for a number of years including as a teaching assistant at City and as a lecturer for post-16 students in further education. In addition he has also worked as an online tutor.

    In the more distant past Peter worked in the broadcast industry as a 3D graphics programmer for ITN, writing engineering software for broadcast news programmes.

    In addition to the academic, research and industrial work experience described, Peter has a Master's degree in Computer Science from Queen Mary, University of London.