- Level Professional
- Duration 15 hours
- Course by University of California, Santa Cruz
-
Offered by
About
This course is for experienced C programmers who want to program in C++. The examples and exercises require a basic understanding of algorithms and object-oriented software.Modules
Welcome to the course
1
Videos
- Welcome to C++ for C Programmers, Part B
Module 1 overview
1
Readings
- Topics, readings & files
Introduction to the STL library
3
Videos
- 1.1 Overview
- 1.2 New in C++11
- 1.3 Standard Template Library
Iterator categories and examples
4
Videos
- 1.4 Iterator Categories
- 1.5 Example Poker Probability
- 1.6 Bidirectional Iterator
- 1.7 Random Access Iterator
Containers & algorithms
4
Videos
- 1.8 STL: Overview of Containers
- 1.9 Associative Containers
- 1.10 STL: Algorithms Library
- 1.11 Non-mutating Algorithm
Lambda expressions, functions and algorithms
4
Videos
- 1.12 Lambda Expressions: for_each Function
- 1.13 Numerical algorithms
- 1.14 Functional Objects
- 1.15 Defined Function Object Classes: Function Adapters
Module 2 overview
1
Readings
- Topics, homework, readings & files
Connection games and Hex
2
Videos
- 2.1 Tic-Tac-Toe to Hex
- 2.2 Homework Basic Hex Program
Homework 1: Implement Hex Board
1
Peer Review
- Homework 1: Implement Hex Board
Basics of Inheritance
5
Videos
- 2.3 Basics of Inheritance
- 2.4 Traits and Inheritance
- 2.5 Virtual Member Functions
- 2.6 C++ Feature: 'final'
- 2.7 Topics on Inheritance
More detail about playing Hex
2
Videos
- 2.8 Hex Overview
- 2.9 One Style for a 11x11 Hex Graph
Inheritance and Derived Classes
5
Videos
- 2.10 The Inheritance Mechanism
- 2.11 A Derived Class: grad_student
- 2.12 Students and Graduate Students
- 2.13 Virtual Function Selection
- 2.14 Confusion with Overloading
Module 3 Overview
1
Readings
- Topics, readings & files
Class constructors and the move constructor
3
Videos
- 3.1 Creating a C++11 Class
- 3.2 Some Further Constructors
- 3.3 'Move' Constructor
Min-Max Evaluation and the Alpha-Beta Optimization
4
Videos
- 3.4 Lookahead
- 3.5 Plausible Move Generator
- 3.6 alpha-beta Algorithm Preview
- 3.7 alpha-beta Improvement to Min Max
Detailed example using inheritance to evaluate Polish expressions
4
Videos
- 3.8 Polish Notation
- 3.9 Referential Garbage Collection
- 3.10 Abstract Base Class = 0 Notation
- 3.11 Tree Constructors
Module 4 Overview
1
Readings
- Topics, homework, readings & files
Monte Carlo to solve Hex.
5
Videos
- 4.1 Assertion & Exception Handling
- 4.2 Monte Carlo
- 4.3 Basic Monte Carlo Idea
- 4.4 Simple Idea for Generating Board
- 4.5 MC - Go (2006)
Homework 2: Implement Monte Carlo Hex move evaluation
1
Peer Review
- Implement Monte Carlo Hex move evaluation
Assertions and Exceptions
3
Videos
- 4.6 Asserts and Exceptions
- 4.7 Static Asserts - New C++11 Feature
- 4.8 Exceptions
New parts of the C++11 library - tuple, thread
4
Videos
- 4.9 C++11 & Design Patterns
- 4.10 C++11 Standard
- 4.11 Thread
- 4.12 <tuple> C++11 New Library
Design Patterns in C++
4
Videos
- 4.13 The Bigger Picture
- 4.14 Factory Method
- 4.15 Factory Code; C++ 11 Example
- 4.16 Adapter Pattern
Practice
3
Assignment
- Exam Practice 1
- Exam Practice 2
- Exam Practice 3
Final
1
Assignment
- Final Exam
Auto Summary
"C++ For C Programmers, Part B" is designed for experienced C programmers aiming to master C++. The course delves into algorithms and object-oriented software, offering practical examples and exercises. It runs for approximately 900 minutes and is available through Starter, Professional, and Paid subscriptions. Ideal for professional-level learners, this Coursera course enhances your programming skills in the IT & Computer Science domain.

Ira Pohl