An Introduction to the Imperative Part of C++

Rob Miller, September 1996

amended by David Clark, September 1997

amended by Bob White, September 1998

amended by William Knottenbelt, September 1999 - September 2019

Lecture 1, Lecture 2, Lecture 3, Lecture 4, Lecture 5, Lecture 6, Lecture 7, Lecture 8, Guide to emacs and g++, Debugging

These lecture notes are designed for an introductory course on programming, using the imperative core of C++, and given to MSc (Computing Science) students at Imperial College London at the very beginning of their course. The students attend an intensive series of lectures and laboratory sessions over two weeks, carrying out lab work using the GNU g++ compiler on PCs running a flavour of UNIX. Since the course is intended for graduates from disciplines other than Computer Science, very little previous programming experience is assumed.

Program Listings in the Notes

All the example programs referred to in the lecture notes and all the example answers to the exercises have been written in ANSI/ISO standard C++, and have been tested using the GNU g++ compiler.

Recommended Books

The books recommended to accompany this course are:

Walter Savitch , Problem Solving with C++: Global Edition , 10th edition, Pearson Education, January 2018. A comprehensive introductory text on programming, C++ and object-oriented programming; the 9th Edition and 8th Edition are also recommended.

Bjarne Stroustrup, The C++ Programming Language , Pearson Education, 4th Edition, 2013. The "classic" reference book on C++ written by the inventor of the language, updated with details of the C++11 standard. A good investment for those intending to do a considerable amount of C++ programming.

Use of These Notes

Please feel free to use, edit and re-distribute these notes as you wish. It would be appreciated, however, if you could ensure that all references to the original author (i.e. Rob Miller) within both the text and the .html file names are preserved.

William Knottenbelt, Imperial College London, 30 September 2019

Course Structure