Complete C++ Scientific Programming Bundle - 21 Hours!
Last updated 4/2021
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.54 GB | Duration: 21h 12m
Last updated 4/2021
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.54 GB | Duration: 21h 12m
Scientific Programming with C++ Masterclass with STL, BOOST, CUDA, OpenMP and MPI Libraries: 21 Hours!
What you'll learn
Understand programming C++ basics to the advanced C++ 17
Knowledge on developing complex C++ scientific applications
Learn about C++ libraries STL, BOOST, MPI, OpenMP
Be in a position to apply for Developer jobs, PhD and research positions requiring good C++
Requirements
None, this course will cover the basics of C++ to the advanced and useful libraries like STL, BOOST, OpenMP and MPI!
Description
The 'Scientific Programming with C++' is easiest and the most innovative and complete hands-on practical C++ course on the Udemy Platform for learning scientific and research data programming! While languages like Python and R are increasingly popular for Scientific Programming or Data sciences, C/ C++ can be a stronger choice for efficient and effective data and scientific computing. In this course, we hands-on the latest C++17 for Scientific Programming. The focus of this course lies on learning beginner to advanced programming on high-performance computers, object-oriented software design, generic or template-based programming, and the efficient implementation of numerical algorithms. C++ is the best choice for efficient and effective programming in Research Data mining & Scientific Computing. In this course, we will hands-on the latest C++17 for Scientific Programming. Learn from the basics of C++ to the advanced and useful libraries like STL, BOOST, OpenMP and MPI! Main learning goals in this awesome course can be formulated as:COURSE FEATURESGet a basic concepts on the programming with C++.Learn how to program with modern C++, using generic programming and advanced techniques, like meta programming, expression templates, and concepts.Learn how to use programming tools and you can apply these tools to debug, benchmark, and manage your code. The list of tools include compilers, build systems, version control, debuggers, and profilers.Learn to read, understand, and utilize (scientific) software libraries, like BLAS (Basic Linear Algebra Subroutines), LAPACK (Linear Algebra Package), STL (Standard template library), Boost (portable C++ library).Learn how to code in HPC, using OpenMP and MPI.There are numerous hands-on to practice the C++ programming throughout the course. Happy coding!The focus of this course lies on aspects of software development like programming on high-performance computers, object-oriented software design, generic (template-based) programming, and the efficient implementation of numerical algorithms. Additionally experience in analysis, application and extension of software and software libraries is developed. Three main learning goals can be formulated: You know how to program with modern C++, using generic programming and advanced techniques, like meta programming, expression templates, and concepts. You know how to use programming tools and you can apply these tools to debug, benchmark, and manage your code. The list of tools include compilers, build systems, version control, debuggers, and profilers. You can read, understand, and utilize (scientific) software libraries, like BLAS (Basic Linear Algebra Subroutines), LAPACK (Linear Algebra Package), STL (Standard template library), Dune (framework for the discretization of partial differential equations), MTL4 (Matrix Template Library), Boost (portable C++ library). There will be interactive exercises to practice the C++. programming.Based on your earlier feedback, we are introducing a Zoom live class lecture series on this course through which we will explain different aspects of the C++17. Live classes will be delivered through the Scientific Programming School, which is an interactive and advanced e-learning platform for learning scientific coding. Students purchasing this course will receive free access to the interactive version (with Scientific code playgrounds) of this course from the Scientific Programming School (SCIENTIFIC PROGRAMMING IO). Instructions to join are given in the bonus content section.Q&APlease use the Q&A feature on Udemy to ask questions! We'd love to talk about why regular expressions don't seem to be working, discussing decisions we made about course content, and debating regular expression philosophy. There’s no risk involved in taking this Course! This course comes with a 30-day money-back guarantee. Once you Enroll for this Course, you get lifetime access to this course and you will get all the future updates. you also get a Certification of Completion once you complete the course.REQUIREMENTSYou will need a grasp of basic C++. It is a self-learning course with all Linux environments provided.WHY YOU SHOULD GET THIS COURSE? Understand programming C++ basics to the advanced C++ 17 Knowledge on developing complex C++ scientific applications Learn about C++ libraries STL, BOOST, MPI, OpenMP Be in a position to apply for Developer jobs, PhD and research positions requiring good C++
Overview
Section 1: C++ Fundamentals
Lecture 1 Welcome
Lecture 2 Why Get this Course?
Lecture 3 Instructor
Lecture 4 Free Interactive Shell with C++ Compiler
Lecture 5 Variables
Lecture 6 Conditions
Lecture 7 Arrays
Lecture 8 Loops
Lecture 9 Structures
Lecture 10 Functions
Lecture 11 Classes
Lecture 12 Pointers
Lecture 13 Inheritance
Lecture 14 Function Templates
Lecture 15 Class Templates
Section 2: C++ Advanced (C++11 and 17 Standards)
Lecture 16 Struct vs Class
Lecture 17 Streams
Lecture 18 Strings
Lecture 19 Initializer
Lecture 20 Rvalue - Move semantics and forwarding
Lecture 21 Literals - User Defined
Lecture 22 Functions - Compiler Generated
Lecture 23 Pointers - Shared, Weak and Unique
Lecture 24 Classes - Resource managing
Lecture 25 Library - Regular Expressions
Lecture 26 Library - Clock and Timer
Lecture 27 Library - Random Numbers
Lecture 28 Tuples
Lecture 29 Constants
Lecture 30 Constructors and Destructors
Lecture 31 Operator Overloading - Assignments
Lecture 32 Types - Conversion and Casting
Lecture 33 Inheritance
Lecture 34 Operators - New Operator and Handler
Section 3: C++ Standard Template Library (STL)
Lecture 35 STL - Sequences (Vectors, List and Deque)
Lecture 36 STL - Associative Containers (Set and Map)
Lecture 37 STL - Unordered Associative Containers (Set and Map)
Lecture 38 STL - Iterators and Iterator Operations (Copy, Insert, etc.)
Lecture 39 STL - Functors
Lecture 40 STL - Non-Modifying Algorithms (Count, Min, Max, etc.)
Lecture 41 STL - Modifying Algorithms (Copy, Move, Swap, Transform, etc.)
Lecture 42 STL - Sorting and Searching Algorithms
Lecture 43 STL - Container Functions - Members vs Algorithms
Lecture 44 STL - Reverse Iterator
Lecture 45 STL - Find with Equivalence vs Equality
Lecture 46 STL - Remove Elements
Lecture 47 STL - Vectors vs Deques
Lecture 48 STL - Object Slicing
Lecture 49 Source Codes - Download
Section 4: C++ Boost Library
Lecture 50 Boost - Lexical Cast
Lecture 51 Boost - Variants
Lecture 52 Boost - Any
Lecture 53 Boost - Optional
Lecture 54 Boost - Arrays
Lecture 55 Boost Graphs Library - BGL
Lecture 56 Source Codes - Download
Section 5: C++ Concurrency (Threads)
Lecture 57 Threads
Lecture 58 Race and Mutex
Lecture 59 Deadlock, Unique Lock and Lazy Initialization
Lecture 60 Conditions - Threads
Lecture 61 Future, Promise and Async
Lecture 62 Callable Objects
Lecture 63 Packaged Tasks
Lecture 64 Time Constraints
Section 6: C++ OpenMP - Multithreaded Parallel Programming
Lecture 65 What is OpenMP - Multithreaded Parallel Programming?
Lecture 66 C++ OpenMP - Introduction
Lecture 67 C++ OpenMP - Fork and Join
Lecture 68 C++ OpenMP - Components for the Fork and Join
Lecture 69 C++ OpenMP - Synchronization
Lecture 70 C++ OpenMP - Clauses
Lecture 71 C++ OpenMP - Reduction (For-loop)
Lecture 72 C++ OpenMP - Parallel For-loop (Source Code)
Lecture 73 C++ OpenMP - Scheduling
Lecture 74 C++ OpenMP - Data Sharing
Lecture 75 C++ OpenMP - Worksharing Constructs
Lecture 76 C++ OpenMP - Hello World (Source Code)
Lecture 77 C++ OpenMP - Hello World! (HPC Demo)
Lecture 78 C++ OpenMP - Section Parallelization
Lecture 79 C++ OpenMP - Vector Addition (Source Code)
Section 7: C++ MPI - Distributed Programming
Lecture 80 C++ MPI: Introduction
Lecture 81 C++ MPI - What is Message Passing Interface?
Lecture 82 C++ MPI - Basics
Lecture 83 C++ MPI - Program Structure
Lecture 84 C++ MPI: Hellow World (Source Code)
Lecture 85 C++ MPI - Hello World (Demo)
Lecture 86 C++ MPI: Send and Receive (Concept)
Lecture 87 C++ MPI: Send and Receive
Lecture 88 C++ MPI - Simultaneous Send and Receive
Lecture 89 C++ MPI - Collective Communication
Lecture 90 C++ MPI - Non-Blocking Communication
Lecture 91 C++ MPI - Topologies
Section 8: C++ CUDA - GPU Programming
Lecture 92 C++ CUDA - Install
Lecture 93 C++ CUDA - Concepts
Lecture 94 C++ CUDA - Programming Model
Lecture 95 C++ CUDA - Parallelizing a For-Loop
Lecture 96 C++ CUDA - Indexing Threads within Grids and Blocks
Lecture 97 C++ CUDA - Memory Model
Lecture 98 C++ CUDA - Synchronization
Lecture 99 C++ CUDA - Vector Addition (Demonstration)
Lecture 100 C++ CUDA - Vector Addition (Source Code)
Section 9: C++ Scientitfic Libraries: MKL
Lecture 101 MKL - Intel® Math Kernel Library
Lecture 102 C++ MKL - Matrix Multiplication
Lecture 103 C++ MKL - Matrix Multiplication (Source Code)
Lecture 104 C++ MKL: Eigen Vector
Section 10: Scientific Software and HPC Job Submission
Lecture 105 Software Modules
Lecture 106 PBS Job Submission Commands
Lecture 107 Scientific Jobs Submission with PBS
Lecture 108 Slurm Commands
Lecture 109 Scientific Jobs Submission with Slurm
Section 11: Additional Content
Lecture 110 Scientific Programming School FREE Content - Introduction to the Interactive C++
Lecture 111 Interactive Version Access - FREE!
Lecture 112 Interactive Shell (by Scientific Programming School)
Developers, Analysts, Research positions requiring good C++