skip to navigation skip to content
- Select training provider - (University Information Services - Digital Literacy Skills)
Thu 17 Oct, Thu 31 Oct, ... Thu 1 May 2014
15:00, ...
Venues:

Provided by: University Information Services - Digital Literacy Skills


Booking

Bookings cannot be made on this event (Event is completed).


Other dates:

No more events

[ Show past events ]



Register interest
Register your interest - if you would be interested in additional dates being scheduled.


Booking / availability

C++: Programming in Modern C++
Prerequisites

Thu 17 Oct, Thu 31 Oct, ... Thu 1 May 2014

Description

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.

Target audience

All University and College staff and students

Prerequisites

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

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
Format

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.

System requirements

Linux with C++

AR Category

Programming & Scientific Computing

Notes
Duration

12 weeks over 3 terms

Frequency

Offered once a year with approximately one session each fortnight

Themes

Booking / availability