List of Course Topics in 10 Units

Java in C++

Basic Object-oriented C++

Textbook (Lippmann): Chapters 1.1-1.6, 2.1-2.3, 3.1-3.3, 4.1-4.6, 5.1-5.5

Included

  • Java, C and C++

  • Basic structure of a C/C++ program

  • Fundamental and complex data types including classes and strings

  • Operators for fundamental types

  • Control and decision statements

  • Basic use of std::vector, std::array and std::string

  • Console input/output

  • Class attributes and methods

  • Method overloading, default parameters

  • Class construction and constructor types, destruction

Not included

  • no inheritance

  • no pointers

  • no arrays, no unions, no structures

  • no dynamic memory management

  • no bitwise operators

C-like C++

Data types and memory management

Textbook (Lippmann): Chapters 2.4-2.6, 3.5, 3.6, 4.11, 6.1, 6.2-6.4, 7.2, 12

Included

  • Scope, modifiers, type conversions

  • Automatic type derivation and conversions

  • Pointers and arrays

  • Memory allocation: static, automatic and dynamic

  • Allocation and de-allocation, C++ vs. C

  • Pass by value, by reference, by pointer

Not included

OO

Object-oriented design

Textbook (Lippman): Chapters 7.1-7.5, 13.1, 13.2, 13.4, 15.1-15.5, 15.7, 18.1

Included

  • Class relationships: association, aggregation, generalization and inheritance

  • Pointer attributes

  • Copy construction and assignment

  • Polymorphism: Virtual functions, abstract classes and dynamic cast

  • Exceptions Basics

  • Inline functions, static members, constexpr

Not included

  • No templates

Text is beautiful

Input and output streams

Textbook (Lippman): Chapters 8.1-8.3, 14.2

Included

  • Relevant classes for STL Stream I/O

  • File handling

  • Overloading the insertion and extraction operators

  • String streams

Not included

Just like int

Abstract data types

Textbook (Lippman): Chapters 14.1-14.4, 14.7, 14.9

Included

  • Operator overloading

  • Numerical vector and matrix classes in C++

  • Friend operator on classes and functions

Not included

Do more with less

Macros and Templates

Textbook (Lippman): Chapters 2.9.2, 6.14, 16.1-16.3, 16.5

Included

  • Macros and the C++ preprocessor: debugging, conditional compilation

  • Templates: template functions and classes

  • Templates: type and non-type parameters

  • Template specialization

Not included

Write even less code

Callable Objects

Textbook (Lippman): Chapters 6.7, 10.3

Included

  • Passing a function: function pointers, functors

  • C++11 bind

  • Lambdas

Not included

No reinventing the wheel

Standard Template Library

Textbook (Lippman): Chapters 10.1-10.2, 10.4, 11.1-11.4

Included

  • Review: Java Collections Framework

  • Sequential STL containers and container adaptors

  • STL iterators

  • Associative STL containers

  • Generic algorithms

Not included

No more Memory leaks

Smart pointers and data management

Textbook (Lippman): Chapters 12, 12.1-12.2

Included

  • Smart pointers

  • C++11 smart pointer library types

  • Move constructor and move assignments

Not included

A Million other Things

Miscellaneous

Textbook (Lippman): Chapters 18.1, 18.3

Included

  • Multiple inheritance

  • Virtual inheritance and abstract classes

  • Exception handling

  • Interfacing Java and C++

Not included