C++: Programming in Modern C++ Prerequisites
This is an introduction to programming in modern C++, based on the book Programming: Principles and Practice using C++. It teaches how to write modern C++ as the designer intended it to be used, and that is the key to effective use of the C++ language including several aspects of programming and C++ that are neglected in many courses, like practical program design and some numerical programming. There is some extra, locally written, material on those topics. The aim is to teach you how to write large, practical programs.
- At the end, you will have a good understanding of how to write comprehensible, debuggable, maintainable and portable C++ programs.
- You will also be able to understand and modify most well-written C++ applications, though not necessarily every aspect of them.
Prof. Stroustrup estimates that newcomers to programming will have to put in about 210 hours' of work to learn how to program in C++ properly. That is an accurate estimate; this is not an easy course and should not be undertaken lightly. Unfortunately, the effort is due to the nature of the C++ language, and not the way the course is presented. We are attempting to give this course in rather less time by targetting people who have some of the basic skills. This why we say that complete newcomers to programming should learn how to use Python first, and why this course is spread over most of a year.
All University and College staff and students
You do not have to use Linux to attend this course, but you need to be able to install a C++ compiler and the course materials yourself, and use them to build C++ programs. What little help can be given on installing materials and using the systems will be for Linux and very similar Unices only. Also, the MCS systems used for the practical classes run only Linux or Microsoft Windows, and the latter have only Visual Studio 2005.
- Above all, a willingness to put in the time to do a lot of practical work between sessions. The practical classes are intended for you to show problems that you have, and ask for help on how to resolve them. They are not long enough to actually do the drills and exercises needed to learn C++.
- Your own copy of the book: “Programming - Principles and Practice Using C++” by Bjarne Stroustrup. This is published by Addison-Wesley, and the latest printing (2009) is ISBN-9780321543721. You will also need a copy of the errata. A locally merged copy of all three sets of errata, suitable for use with the first printing, is available in HTML and PDF.
- Your own MCS (PWF) account, not a class account, at least for the practical classes.
- Some system that you can use to do the practicals on, in between sessions. This can be any of:
- Your own computer. You will need to install a C++ compiler yourself (see above). Linux is easiest, followed by Microsoft Windows, but other systems are possible.
- A departmental or research group system. You need to check that it has a reasonable C++ compiler and you may use it for that purpose.
- MCS Linux. This can be accessed either by using a MCS computer (any of them in any computer room will do, as they all have access to all home directories), or by ssh @linux.pwf.cam.ac.uk.
- If you are using Linux, basic knowledge of the Unix command line interface, as taught in Unix: Introduction to the Command Line Interface. If you are using, some other system, you will need the equivalent skills for that. If you do not have this level of skill, you will have trouble even getting started.
- You must be able to use a plain text editor (e.g. emacs, gedit, pico or vi) on your system, as covered on the Emacs or Vi Introductions. The Microsoft Office suite is NOT suitable, because it is very hard to prevent it inserting formatting markup (‘rich text’). The lecturer finds the editor packaged with Microsoft Visual Studio very painful to use, but you may find it acceptable.
- Unless you are already a programmer, you are very strongly advised to learn Python first, as in this course. “Programmer” does not mean in Visual Basic, Excel or even most uses of Matlab; it means in Python, Fortran, C, Pascal etc. It surprises most people, but learning simpler languages first often saves time overall.
Number of sessions: 18
# | Date | Time | Venue | Trainer | |
---|---|---|---|---|---|
1 | Thu 17 Oct 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
2 | Thu 17 Oct 2013 17:15 - 19:15 | 17:15 - 19:15 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
3 | Thu 31 Oct 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
4 | Thu 14 Nov 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
5 | Thu 14 Nov 2013 17:15 - 19:15 | 17:15 - 19:15 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
6 | Thu 28 Nov 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
7 | Thu 12 Dec 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
8 | Thu 12 Dec 2013 17:15 - 19:15 | 17:15 - 19:15 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
9 | Thu 30 Jan 2014 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
10 | Thu 13 Feb 2014 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
11 | Thu 13 Feb 2014 17:15 - 19:15 | 17:15 - 19:15 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
12 | Thu 27 Feb 2014 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
13 | Thu 13 Mar 2014 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
14 | Thu 13 Mar 2014 17:15 - 19:15 | 17:15 - 19:15 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
15 | Thu 27 Mar 2014 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
16 | Thu 17 Apr 2014 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
17 | Thu 17 Apr 2014 17:15 - 19:15 | 17:15 - 19:15 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
18 | Thu 1 May 2014 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
There are 12 weeks of lectures, with odd numbered lectures (i.e. the first, third and so on) followed by a practical session You are expected to read the book and do the exercises in between lectures. There will also be some assistance by Email and (by arrangement) telephone. We also hope to arrange some practical classes using desktop conferencing, which has not been done before, and details will be provided later.
Linux with C++
Programming & Scientific Computing
- Nick Maclaren has written several papers for the C++ Standards Committee
- More information may be found on the following webpage
12 weeks over 3 terms
Offered once a year with approximately one session each fortnight
Booking / availability