Instructional Video9:34
Curated Video

Multi-Paradigm Programming with Modern C++ - Promise and Future

Higher Ed
Publication safety pattern that we have implemented with atomics, is somewhat harder to implement for non-trivial types. Luckily, STL provides some primitives for publication safety. In this video we will learn about std future, std...
Instructional Video3:26
Curated Video

Learning PHP 7 (Video 7)

Higher Ed
PHP is back and is faster and more lightweight than ever. The world of web technology is seamlessly evolving, and PHP 7's simplicity and prowess addresses the requirements of current and future web and mobile application development....
Instructional Video12:37
Curated Video

Multi-Paradigm Programming with Modern C++ - Thread Pools

Higher Ed
Thread pool is a collection of threads that execute incoming jobs or tasks. Clients push tasks on the queue, and threads pick them one at a time. This provides an abstraction for background tasks. In addition, there is a single point of...
Instructional Video5:51
Curated Video

Multi-Paradigm Programming with Modern C++ - Enforcing the Guidelines

Higher Ed
Guidelines are, first and foremost, a collection of rules. If the rules are not enforced, they will not be followed. The guidelines are intended as specification for static code analysis tools. In this video we will learn how to enforce...
Instructional Video7:47
Brian McLogan

Master Write a conditional statement, its inverse, converse and contrapositive

12th - Higher Ed
Master Write a conditional statement, its inverse, converse and contrapositive
Instructional Video16:46
Curated Video

Multi-Paradigm Programming with Modern C++ - Synchronization with Mutexes

Higher Ed
Mutex is an object that lets us protect a resource from being accessed from multiple threads simultaneously. Mutex is one of many synchronization primitives. It’s easy to use, but there are a few caveats. • Example of a mutex: Two...
Instructional Video4:29
Curated Video

Multi-Paradigm Programming with Modern C++ - Searching and Sorting

Higher Ed
Search is the most common operation we perform on data. There are three common types of search: Linear, sorted (binary), and by hash. • Linear search is the simplest way to find things, and often the fastest • Overview of associative...
Instructional Video7:12
Curated Video

Multi-Paradigm Programming with Modern C++ - Organizing Source Files

Higher Ed
In this video, we learn how to organize source code of a small project. • Overview of the daytime project • Organize code into packages • Separate package interface from implementation This clip is from the chapter "Structuring Projects...
Instructional Video5:05
Curated Video

Multi-Paradigm Programming with Modern C++ - What Is a Coroutine?

Higher Ed
Coroutine is a function whose execution can be suspended and resumed. Suspension saves the state of the function, then the caller can execute as if the function has returned. Resumption loads the saved state back and continues execution...
Instructional Video1:02
Brian McLogan

How to write the contrapositive from a conditional statement

12th - Higher Ed
👉 Learn how to find the contrapositive of a statement. The contrapositive of a statement is the switching of the hypothesis and the conclusion of a conditional statement and negating both. If the hypothesis of a statement is represented...
Instructional Video8:34
Curated Video

Multi-Paradigm Programming with Modern C++ - Grouping Tasks with Fork/Join

Higher Ed
Fork/Join builds on top of continuation. The idea is that not one, but multiple parallel tasks can consume results of the previous one. And after those tasks are finished, another task aggregates the results. In this video we will both...
Instructional Video9:32
Curated Video

Multi-Paradigm Programming with Modern C++ - Task Continuation

Higher Ed
Continuation is when an asynchronous task consumes results of the previous one. In this video we will implement and use such pattern. Additionally, we will see how to handle exceptions and propagate them to the caller of a task. • Adding...
Instructional Video6:09
Curated Video

Multi-Paradigm Programming with Modern C++ - Coroutines on a Thread Pool

Higher Ed
We had implemented a concurrent tasks framework in Section 9. Back then we observed that threads had to wait on each other, which reduces concurrency. In this section, we will create a tasks framework that uses coroutines to achieve the...
Instructional Video7:20
Curated Video

Multi-Paradigm Programming with Modern C++ - Copy and Move

Higher Ed
Copy creates a duplicate of an object. Move transfers ownership of resources. We can control the behaviors of copy and move by writing copy and move constructors (and operators). • Rules for implementing copy constructors and assignment...
Instructional Video7:49
Curated Video

Multi-Paradigm Programming with Modern C++ - Providing a Good Abstraction

Higher Ed
Abstraction hides complexity and preserves only the information that is relevant in the context. We create leaky abstractions when we fail to hide information that is irrelevant. This video is an exercise in creating an abstraction. •...
Instructional Video5:34
Curated Video

Multi-Paradigm Programming with Modern C++ - Modules in C++ 2a

Higher Ed
In this video, we learn about the biggest change to C++ in decades. • Writing our first module • Consuming the module • Visibility and reachability This clip is from the chapter "Structuring Projects in C++" of the series "Multi-Paradigm...
Instructional Video8:10
Curated Video

Multi-Paradigm Programming with Modern C++ - General Guidelines

Higher Ed
Some guidelines cannot be enforced efficiently. They are still important, especially the guidelines concerning Philosophy, Architectural Ideas, and Non-Rules and myths. • Express ideas directly in code, because compilers don’t read...
Instructional Video4:07
Curated Video

Multi-Paradigm Programming with Modern C++ - When to Use Templates

Higher Ed
Templates are one of the distinctive features of C++, and arguably the most complex one. When used correctly, templates make your code less complicated, and this is not a contradiction. • Use templates to raise the level of abstraction:...
Instructional Video5:59
Curated Video

Multi-Paradigm Programming with Modern C++ - Class and Structs

Higher Ed
What is the difference between struct and class, and which one to use? What’s an invariant and why is it important? Where to put error checking code? • Struct versus class: Which one to use? • Class invariants by example • Public and...
Instructional Video7:53
Curated Video

Multi-Paradigm Programming with Modern C++ - Passing Things Around

Higher Ed
Most languages offer a couple of ways of passing data, e. g. by value and by reference. C++ offers many more. How to choose the right way in every case? • Ground rules for passing arguments • When to pass/return by reference, by value,...
Instructional Video13:52
Curated Video

Multi-Paradigm Programming with Modern C++ - Coroutine Machinery

Higher Ed
C++ does not specify semantics for coroutines. Instead, the language provides some low-level constructs. The promise is an interface for a coroutine’s state machine, and there are also a few primitives for suspending and resuming a...
Instructional Video10:24
Curated Video

Python for Data Analysis: Step-By-Step with Projects - Subsetting Both Rows and Columns

Higher Ed
This video introduces you to subsetting both rows and columns. This clip is from the chapter "Exploring Data" of the series "Python for Data Analysis: Step-By-Step with Projects".This section introduces you to exploring data.
Instructional Video8:35
Curated Video

Multi-Paradigm Programming with Modern C++ - Running Asynchronous Tasks

Higher Ed
In this video, we will use promise, future, and a lambda to create a version of std::async that uses our thread pool. Then we will learn some design patterns for efficient concurrent programming. • Overview of the task class and related...
Instructional Video5:09
Curated Video

Multi-Paradigm Programming with Modern C++ - Dive into Ranges

Higher Ed
You probably have more questions than answers at this point: how does the pipeline work? How many loops did we just write? What is the return value of a pipeline? Where are the intermediate results stored? And of course, what else can we...