Software Design (C++) : Lectures

Lecture Topics Book chapters
L1 (28.10.)

Introduction to C++, Tools, Compilation and linking

Slideset 0. (slides 1-18)

Ch. 2
L2 (30.10.)

Basic I/O, fundamental types, objects, type safety

Slideset 0. (slides 19-35)

Ch. 3, Ch 10.1, Ch 10.2
L3 - L4 (4.11., 6.11.)

Computation: algorithms & data, std::vector, using I/O streams, errors, pre/post conditions, references, namespaces, overloading

Slideset 1. (slides 1 - 44)    [ updated 4.11. ]

Ch. 4.6, Ch. 5, Ch 8.7, Ch. 9.6, Ch. 10.6
L5 (11.11.)

Assertions, debugging, testing

Slideset 1. (slides 45 - 50)

Classes, constness, Class interface

Slideset 2.  (slides 1 - 11)

 

Ch. 5.9, Ch 9.
L6 (13.11)

constructors and destructors, helper functions

Slideset 2.  (slides 12 - 18)

Code samples about constness that were demonstrated in the lecture (updated 13.11. 16:45)

Ch 9.
L7 (18.11.)

Vector: free store, constructor & destrucor

Slideset 2.  (slides 19 - 36) slideset updated 17.11.

Ch 17.1 - 17.5
L8 (20.11.)

Access to stored elements, copy constructor, copy assignment, move constructor & assigment, the this pointer

Slideset 2.  (slides 37 - 67)

Ch 17.6 - 17.10

Ch 18.1 - 18.6

L9 (25.11.)

Resource management, exception safety

Slideset 3 (slides 1 - 20)

Ch 19.4, 19.5
L10 (27.11.)

Exception safety

Slideset 3 (slides 21 - 28)

Templates, Standard Template Library

Slideset 4 (slides 1 - 12)

Ch 19.3, Ch 20.1 - 20.2, 20.10
L11 (2.12.)

STL continued - containers, iterators, algorithms

Slideset 4 (slides 13 - 24)

Object-oriented programming

Slideset 5 (slides 1 - 9)

Ch 20.3, 21.1, 21.2

Ch 14.3

L12 (4.12.)

Object-oriented programming

Slideset 5 (slides 10 - 20) updated 4.12.

Code sample for public/private inheritance and virtual destructors

Ch 14.3, 14.4
L13 (9.12.)

String streams, function objects, variadic templates, concurrency

Slideset 6

Sample code: string streams, non-aborting assert

Ch 11.4, 21.4