Curated Video
Multi-Paradigm Programming with Modern C++ - Instantiating the Template
When we use a template, we instantiate it. Let’s create a type that performs fixed-point arithmetic, parameterized with templates. Then let’s support that type in our math library • Developing a fixed-point math class • Adding arithmetic...
Curated Video
Multi-Paradigm Programming with Modern C++ - Arguments and Return Values
How many arguments should a function have, and how to pass them properly? There are simple ways for making the functions even better. • How many arguments? • Passing by value, by reference and by pointer • Return values and other tips...
Curated Video
Beginning Python (Video 22)
Python is the becoming the language of choice for pretty much every arena. It is a very simple yet extremely powerful programming language. It is a scripting language that is widely used for prototyping to get work up and running in a...
Curated Video
Multi-Paradigm Programming with Modern C++ - Parallel STL
C++17 has introduced parallel STL. Many of the existing algorithms can now be executed in parallel. Parallelism can be enabled by specifying execution policies. In this video we will learn how existing algorithms can be parallelized with...
Curated Video
Multi-Paradigm Programming with Modern C++ - In Search of a Perfect Container
STL provides many containers, many of them similar. When to use std::vector, and when std::list? This video provides some answers. • Contiguous storage: array and vector • Details of std::vector, and why prefer vectors over lists •...
Curated Video
Multi-Paradigm Programming with Modern C++ - Designing Class Hierarchies
Inheritance is one of the cornerstone features of object-oriented design. We use it to represent a set of hierarchically organized concepts. How to design a good hierarchy? • Drawing a hierarchy • When to use inheritance and when to...
Curated Video
Multi-Paradigm Programming with Modern C++ - Writing Our First Coroutine
Writing a coroutine framework is not as simple as writing a function. In this video, we will try to create the simplest coroutine possible. This coroutine will do nothing useful, but we will implement all the required elements. • Writing...
Curated Video
Multi-Paradigm Programming with Modern C++ - On Programming Paradigms
C++ is a multi-paradigm programming language. We learn about different paradigms (styles), and how C++ supports them. • Programming styles supported by C++ • Criticism of C++ • Your C++ knowledge as a toolbox This clip is from the...
Curated Video
Multi-Paradigm Programming with Modern C++ - Specializing the Template
Our “equal” function uses an epsilon to compare values. This works well with floating point types, but it’s inefficient for fixed point. We can try to specialize the function template, but how to do this in a generic way? • The problem...
Curated Video
Multi-Paradigm Programming with Modern C++ - Shared Pointer
Shared_ptr is a reference-counting smart pointer. It’s less efficient than unique_ptr, but lets us forget about complexities of memory management, and helps avoid double delete bugs. • How shared_ptr works • Using shared_ptr and...
Curated Video
Multi-Paradigm Programming with Modern C++ - Putting It All Together
In this video we will see how useful the new coroutine framework is. We will take the example from Section 9, where we first calculate the average value, then use that value to find standard deviation and items above average in parallel....
Curated Video
Multi-Paradigm Programming with Modern C++ - Manipulating Data
Real-world programs manipulate data in numerous ways. You will need filtering, conversions, transformations, and so on. There is always a temptation to write a loop, but STL algorithms are preferable. • How many ways are there to write a...
Curated Video
Multi-Paradigm Programming with Modern C++ - Data Access Modes
It’s easy to use multiple threads in modern C++. Writing safe multi-threaded code, on the other hand, is not easy. The difficult part is accessing data. • Four modes of concurrent data access • Example of race condition • About...
Curated Video
Multi-Paradigm Programming with Modern C++ - What Makes a Good Function
A function should perform a single logical operation. Small functions are easy to maintain and promote code reuse. The most common anti-pattern is a function that does too many things. • Why small functions are good? • How small should a...
Curated Video
Multi-Paradigm Programming with Modern C++ - Constructors and Destructors
Constructors, destructors, and assignment operators are all about object’s lifetime. Sometimes they are automatically generated, sometimes not. This video, provides instructions on how to deal with them. • The rule of zero: Stick to the...
Curated Video
Multi-Paradigm Programming with Modern C++ - Entering Concepts
Templates make poor interfaces: typename is a wildcard. Concepts let us set requirements for template parameters. Template writer can easily describe what’s expected of the user. Concepts make template interface good. • About concepts:...
Curated Video
Multi-Paradigm Programming with Modern C++ - Using Lambdas
In this coding demo, we use lambda expressions to implement callbacks, for adding logger capability to the server, without increasing coupling. • About callbacks • Std::function • Using callbacks to implement logging in the server...
Curated Video
Multi-Paradigm Programming with Modern C++ - Dual Hierarchy Example
In this video we implement a dual hierarchy for server applications supporting multiple protocols • Overview of what we will implement • Implementing a hierarchy of servers • What we learned by implementing the hierarchy? This clip is...
Curated Video
Multi-Paradigm Programming with Modern C++ - Distributing the Work
Task creation is cheap, but it’s not free. We have to find a compromise between loading all threads with data and introducing unnecessary overhead. In this video we will learn a simple formula for distributing the work, and also discover...
Curated Video
Multi-Paradigm Programming with Modern C++ - Diving into Concepts
So far, we have explored a single use case for concepts. There are more benefits and more tools at our disposal. Some best practices are already defined too. • Different ways to specify type requirements • Most important guidelines when...
Curated Video
Multi-Paradigm Programming with Modern C++ - Structuring Modules
In this video, we learn how modules can be split into implementation and partition units. • Implementation units • Partitions • Modules summary This clip is from the chapter "Structuring Projects in C++" of the series "Multi-Paradigm...
Curated Video
Multi-Paradigm Programming with Modern C++ - Adding Syntactic Sugar
We now can write coroutines that run on executor threads and produce values. Let’s see if we can make working with them a little bit more pleasant. We will also implement await_transform to allow co_awaiting a different type. Finally, we...
Curated Video
Multi-Paradigm Programming with Modern C++ - A Brief History with C++
Every new C++ standard adds support for different programming styles. Understanding the evolution of C++ can improve programming skills. • How C++ started? • Overview of features added in each new standard • Features of the new C++2a...