C++: Programming in Modern C++ PrerequisitesNew
This course is full but please do register your interest. If you do not have a place you can attend the lectures but it is unlikely that there will be a computer for you in the practical session. However, you will be able to download the notes and work in your own time.
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 a little 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: 24
# | Date | Time | Venue | Trainer | |
---|---|---|---|---|---|
1 | Thu 11 Oct 2012 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
2 | Thu 18 Oct 2012 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
3 | Thu 15 Nov 2012 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
4 | Thu 15 Nov 2012 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
5 | Thu 29 Nov 2012 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
6 | Thu 29 Nov 2012 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
7 | Thu 13 Dec 2012 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
8 | Thu 13 Dec 2012 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
9 | Thu 24 Jan 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
10 | Thu 24 Jan 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
11 | Thu 7 Feb 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
12 | Thu 7 Feb 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
13 | Thu 21 Feb 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
14 | Thu 21 Feb 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
15 | Thu 7 Mar 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
16 | Thu 7 Mar 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
17 | Thu 21 Mar 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
18 | Thu 21 Mar 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
19 | Thu 11 Apr 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
20 | Thu 11 Apr 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
21 | Thu 25 Apr 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
22 | Thu 25 Apr 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
23 | Thu 9 May 2013 15:00 - 17:00 | 15:00 - 17:00 | New Museums Site, Hopkinson Lecture Theatre | map | Nicholas Maclaren |
24 | Thu 9 May 2013 17:45 - 19:45 | 17:45 - 19:45 | Phoenix Teaching Room 1, New Museums Site | map | Nicholas Maclaren |
The first two sessions are duplicates, and are lecture only. There are then 11 weeks of lectures followed by a practical session; these are not duplicated. 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
- about this C++ course
13 weeks over 3 terms
Offered once a year with approximately one session each fortnight
Booking / availability