Programming in C++

Lecture 1.
Test on C++. Hello, world! Introduce to template classes vector, string and map.
Lecture 2. Instructions and operators. Priorities. Pointers and references.
Lecture 3. Arrays. C-strings and std::string. Function overloading. Function templates. Static variables.
Lecture 4. Pointers to functions. Classes: fields, methods. Access specifiers. Constructors and destructors. Creating objects of classes and arrays of classes.
Lecture 5. Memory storages: stack, static and dynamic. Arrays. New/delete and new[]/delete[] operators. Operators overloading.
Lecture 6. Operators overloading (continue). Copy constructor, assignment operator. Virtual methods. Smart pointers.
Lecture 7. Classes, inheritance, virtual methods. Virtual destructor. Pattern "Template method".
Lecture 8. Multiple inheritance. Casts. Patterns "PImpl", "abstract factory" и "visitor".
Lecture 9. Virtual inheritance. Access specifiers. Template methods, class templates. Introduction to metaprogramming.
Lecture 10. Exceptions and safety work with them.
Lecture 11. RAII. shared_ptr/weak_ptr. Standart algorithms and predicates. Introduction to lambda expressions.
Lecture 12. Strategy pattern: static (via templates) and dynamic (policy). Type traits.
Lecture 13. Patterns: singleton, factory, template method, strategy.