Instructional Video8:36
Fun Robotics

Conditions Part 1

Higher Ed
Defining conditions and their usage in Python programming
Instructional Video5:21
Curated Video

Multi-Paradigm Programming with Modern C++ - Instantiating the Template

Higher Ed
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...
Instructional Video5:27
Curated Video

Multi-Paradigm Programming with Modern C++ - Arguments and Return Values

Higher Ed
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...
Instructional Video7:44
Curated Video

Beginning Python (Video 22)

Higher Ed
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...
Instructional Video7:36
Curated Video

Multi-Paradigm Programming with Modern C++ - Parallel STL

Higher Ed
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...
Instructional Video6:36
Curated Video

Multi-Paradigm Programming with Modern C++ - In Search of a Perfect Container

Higher Ed
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 •...
Instructional Video6:14
Curated Video

Multi-Paradigm Programming with Modern C++ - Designing Class Hierarchies

Higher Ed
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...
Instructional Video8:48
Curated Video

Multi-Paradigm Programming with Modern C++ - Writing Our First Coroutine

Higher Ed
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...
Instructional Video7:07
Curated Video

Multi-Paradigm Programming with Modern C++ - On Programming Paradigms

Higher Ed
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...
Instructional Video6:32
Curated Video

Multi-Paradigm Programming with Modern C++ - Specializing the Template

Higher Ed
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...
Instructional Video8:01
Curated Video

Multi-Paradigm Programming with Modern C++ - Shared Pointer

Higher Ed
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...
Instructional Video5:46
Curated Video

Multi-Paradigm Programming with Modern C++ - Putting It All Together

Higher Ed
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....
Instructional Video3:09
Curated Video

Multi-Paradigm Programming with Modern C++ - Manipulating Data

Higher Ed
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...
Instructional Video5:11
Curated Video

Multi-Paradigm Programming with Modern C++ - Data Access Modes

Higher Ed
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...
Instructional Video7:45
Curated Video

Multi-Paradigm Programming with Modern C++ - What Makes a Good Function

Higher Ed
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...
Instructional Video9:32
Curated Video

Multi-Paradigm Programming with Modern C++ - Constructors and Destructors

Higher Ed
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...
Instructional Video5:51
Curated Video

Multi-Paradigm Programming with Modern C++ - Entering Concepts

Higher Ed
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:...
Instructional Video6:31
Curated Video

Multi-Paradigm Programming with Modern C++ - Using Lambdas

Higher Ed
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...
Instructional Video11:00
Curated Video

Multi-Paradigm Programming with Modern C++ - Dual Hierarchy Example

Higher Ed
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...
Instructional Video9:24
Curated Video

Multi-Paradigm Programming with Modern C++ - Distributing the Work

Higher Ed
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...
Instructional Video6:56
Curated Video

Multi-Paradigm Programming with Modern C++ - Diving into Concepts

Higher Ed
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...
Instructional Video6:51
Curated Video

Multi-Paradigm Programming with Modern C++ - Structuring Modules

Higher Ed
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...
Instructional Video4:11
Curated Video

Multi-Paradigm Programming with Modern C++ - Adding Syntactic Sugar

Higher Ed
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...
Instructional Video5:15
Curated Video

Multi-Paradigm Programming with Modern C++ - A Brief History with C++

Higher Ed
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...