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

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 students gain experience in designing simple but powerful object-oriented applications and in writing code using the C++ language. 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, key standard library objects overview, and OOP features: classes, objects, abstraction, interfaces, constructors/destructors, overloading, inheritance, polymorphism and templates.

C/C++ short course tutor Peter Woodward talks inspiration and how you can take your programming to the next level.

Course Information

Start DateStart TimeDurationCostCourse CodeApply
Tuesday 3 October 2017 18:30 - 20:30 10 weekly classes £490.00 CS2575 Apply Now
Tuesday 16 January 2018 18:30 - 20:30 10 weekly classes £490.00 CS2575 Apply Now
Tuesday 1 May 2018 18:30 - 20:30 10 weekly classes £490.00 CS2575 Apply Now

Tutor Info

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. His 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.


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.

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.

Teaching and Assessment

Provide a series of informal online homeworks spread out during the course - and suggestions are provided on enhancing existing programs. I also provide online quizzes to check learning. This course uses the Moodle virtual learning environment (VLE) source codes, example programs and teaching material can be accessed at anytime on the Internet. We also use online forums for questions and answers allowing students to post questions to other students and the lecturer.

Recommended Reading

Background 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:


Leads To...

Career Outcome

This course will update and refresh your prior 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.

Application Deadline: