Mastering 4 Critical Skills Using C++ 17
Last updated 11/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 9.87 GB | Duration: 33h 28m
Last updated 11/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 9.87 GB | Duration: 33h 28m
170 problems to enhance problem-solving skills. 6 projects for Project Building and Design Skills. High-quality quizzes
What you'll learn
Deep Dive with C++ 11/14/17 Modern Syntax from basic to advanced
~170 problems from easy to medium to hard to gain level-1 problem-solving skills
6 Projects from easy to hard with their solutions for projects-building skills
MANY Quizzes to master the concepts
FOUR critical skills to master not just one
A proven curriculum: Many of my thousands students highly recommend it
Short lectures, to the point, comprehensive and easy to get in an iterative style
Learn from PhD holder in AI: Teaching, Training & Coaching for many years
Requirements
Passion with building things!
Passion with problem solving!
Access to a computer.
Description
Almost all other courses focus on knowledge. In this course, we focus on 4 critical skills.Overall:The course covers basic to advanced modern C++ syntax. Beginners in C++ will learn a lot!The course helps you master the 4 most important skills for a programmerProgramming skillsProblem-solving skills: rarely covered by other coursesProject building skills: partially covered by other coursesDesign skills: rarely covered by other courses7+ times practice & homework compare to other courses + 6 projectsSpecial Teaching style: iterative, easy, and shortThis is an English Course only. 1/3 Course now has Manual English subtitles. Remaining under-progress.Content Basic to advanced modern C++.Fundamentals: Variables, Loops, Control Flow, Functions, Recursive Functions, ArraysAdvanced Topics: Pointers, STL, Templates, Headers, and Includes, Exception Handling, Compilation Process, Debugging Object-Oriented Programming (OOP): Classes, Objects, Inheritance, Polymorphism, Operator OverloadingModern Topics in C++11/C++14/C++17: Move Semantics, Perfect Forwarding, Variadic Template, Folding expressions, Smart Pointers, Lambda Expressions, Wrappers (Optional, Variant, Any), Uniform initialization, noexcept, Structured Binding, Nested namespaces, misc.OOP: Member initializer, Defaulted and Deleted Functions, Delegating constructors, Inheriting ConstructorsSTL: Forward list, Initializer list, Array, Unordered containersDesign: Several principles and patterns are embedded in the homework & projectsA huge set of Quizzes, Practice, Homework, and Projects2 styles of homework: Algorithmic (problem-solving) and applicationsSeveral software design concerns are embedded in the homework. So you are getting introduced to Software Engineering & Design PatternsSeveral quizzes to master the conceptsClarification: The core intentions of this course to provide very strong introduction to C++. Specifically up to the 6th project. After the last project, the course introduces some further modern C++ syntax (no quizzes/homework in this part). If you are new to C++, there is no course that competes with this one. But, if you are expert or target working with C++ in the market, you will need to good deeper after this course. A useful reference is "C++17 - The Complete Guide" book. Not that, this course provides some C++17 coverage but not all of it. However, the course provides pretty good coverage for C++11/14. Please consider the table of content if you are not new to C++ to satisfy your expectations.Building Skills: Practice, Homework, and ProjectsOne unique feature in this course is my education strategy: Explain, Administrate & ChallengeEach video smoothly explains a simple concept(s)Typically followed by easy to medium practice to administrate the conceptThen typically followed by an easy-medium-hard set of homework questions to challenge youExtensive homework from easy to medium to hard to help to build the skills. Most of the practice/homework questions are unique in this courseProgramming questions are mainly from my competitive programming experienceOOP questions are mostly invented to achieve several goals:Mastering the OOP conceptsEnforcing a lot of design heuristics & OODPreparing you for design principles and patternsSmall-to-large set of projects to build up project building and design skillsSolutions to all of them.By the end of the journeySolid understanding of programming concepts using C++Mastering the target 4 skillsWith the administered problem-solving skillsYou can start competitive programming smoothly in Div2-A/B CodeforcesSmooth start in Data Structure courseSmooth start in Algorithms courseWith the administered project-building and design skillsSmooth start in Software Engineering courseLater, smooth start in one of the technology tracks in frontend or backendMore career options such as games or embedded development.Don't miss such a unique learning experience!
Overview
Section 1: Getting Started
Lecture 1 Why Programming? C++?
Lecture 2 Who should take this course?
Lecture 3 Teaching Style
Lecture 4 Unique and Beyond Others
Lecture 5 Tackling Practice & Homework
Lecture 6 Curriculum Overview
Lecture 7 Resources and Students Community
Lecture 8 Important Note
Lecture 9 Let’s code
Section 2: Installation
Lecture 10 Overall tools
Lecture 11 Installing Codeblocks on Linux
Lecture 12 Installing Codeblocks on Windows
Lecture 13 Installing Eclipse on Linux
Lecture 14 Installing Eclipse on Windows
Lecture 15 Project creation on Codeblocks
Lecture 16 Project creation on Eclipse
Lecture 17 Configuring the Compiler to latest standards
Section 3: Printing
Lecture 18 Printing
Lecture 19 More on Printing
Lecture 20 Errors
Lecture 21 Printing Homework
Section 4: Data Types and Variables
Lecture 22 Data types and variables
Lecture 23 Declaring variables
Lecture 24 Reading Variables
Lecture 25 Errata
Lecture 26 Constant Variables
Lecture 27 Variables Homework 1 - 3 Easy Challenges
Lecture 28 Variables Homework 1 - Solutions p1 p2 p3
Lecture 29 Variables Homework 2 - 2 Medium Challenges
Lecture 30 Variables Homework 2 - Solutions p1 p2
Lecture 31 Variables Homework 3 - 3 Hard Challenges
Lecture 32 Variables Homework 3 - Solution p1 p2 p3
Section 5: Operators
Lecture 33 Binary and Unary Operators
Lecture 34 Prefix and Postfix Operators
Lecture 35 Assignment Operator
Lecture 36 Precedence
Lecture 37 Operators Homework- 3 Easy to Medium Challenges
Lecture 38 Operators Homework - Solutions p1 p2 p3
Lecture 39 Relational Operators
Lecture 40 Comparing Strings
Lecture 41 Truth Table
Lecture 42 Logical Operators
Lecture 43 Short-Circuit Evaluation
Lecture 44 Logical Operators Homework- 3 Easy to Medium Challenges
Lecture 45 Logical Operators Homework - Solutions p1 p2 p3
Lecture 46 Division Operator
Lecture 47 Modulus Operator
Lecture 48 Division and Modulus Homework 1 - 3 Easy Challenges
Lecture 49 Division and Modulus Homework 1 - Solutions p1 p2 p3
Lecture 50 Critical note about Homework
Lecture 51 Division and Modulus Homework 2 - 3 Medium Challenges
Lecture 52 Division and Modulus Homework 2 - Solution p1 p2
Lecture 53 Division and Modulus Homework 2 - Solution p3
Lecture 54 Division and Modulus Homework 3 - 2 Hard Challenges
Lecture 55 Division and Modulus Homework 4 - Solutions p1 p2
Section 6: Selection
Lecture 56 Selection 1
Lecture 57 Selection 2
Lecture 58 Selection Practice
Lecture 59 Selection Initialization
Lecture 60 Selection Homework 1 - 4 Easy Challenges
Lecture 61 Selection Homework 1 - Solutions p1 p2
Lecture 62 Selection Homework 1 - Solutions p3 p4
Lecture 63 Selection Homework 2 - 2 Medium Challenges
Lecture 64 Selection Homework 2 - Solutions p1 p2
Lecture 65 Selection Homework 3 - 2 Hard Challenges
Lecture 66 Selection Homework 3 - Solutions p1 p2
Section 7: Loops
Lecture 67 While Loops
Lecture 68 While Loops Practice
Lecture 69 While Loops Homework 1 - 5 Easy Challenges
Lecture 70 While Loops Homework 1 - Solutions p1 p2 p3 p4 p5
Lecture 71 While Loops Homework 2 - 4 Medium Challenges
Lecture 72 While Loops Homework 2 - Solutions p1 p2
Lecture 73 While Loops Homework 2 - Solutions p3 p4
Lecture 74 While Loops Homework 3 - 4 Hard Challenges
Lecture 75 While Loops Homework 3 - Solutions p1 p2
Lecture 76 While Loops Homework 3 - Solutions p3 p4
Lecture 77 For Loops
Lecture 78 For Loops Practice
Lecture 79 For Loops Homework - 6 Medium to Hard Challenges
Lecture 80 For Loops Homework - Solutions p1 p2
Lecture 81 For Loops Homework - Solutions p3 p4
Lecture 82 For Loops Homework - Solutions p5 p6
Section 8: 1D Arrays
Lecture 83 1D Arrays
Lecture 84 1D Arrays Practice 1
Lecture 85 1D Arrays Practice 2
Lecture 86 Homework 1 - 5 Easy to Medium Challenges
Lecture 87 Homework 1 - Solutions p1 p2 p3
Lecture 88 Homework 1 - Solutions p4 p5
Lecture 89 Homework 2 - 6 Medium Challenges
Lecture 90 Homework 2 - Solutions p1 p2
Lecture 91 Homework 2 - Solutions p3 p4
Lecture 92 Homework 2 - Solutions p5 p6
Lecture 93 Homework 3 - 5 Hard Challenges
Lecture 94 Homework 3 - Solutions p1 p2
Lecture 95 Homework 3 - Solutions p3
Lecture 96 Homework 3 - Solutions p4
Lecture 97 Homework 3 - Solutions p5
Section 9: Char Arrays
Lecture 98 Char Arrays 1
Lecture 99 Char Arrays 2
Lecture 100 Char Arrays Practice
Lecture 101 Homework 1 - 6 Easy to Medium Challenges
Lecture 102 Homework 1 - Solutions p1 p2
Lecture 103 Homework 1 - Solutions p3
Lecture 104 Homework 1 - Solutions p4
Lecture 105 Homework 1 - Solutions p5 p6
Lecture 106 Homework 2 - 3 Medium Challenges
Lecture 107 Homework 2 - Solutions p1
Lecture 108 Homework 2 - Solutions p2
Lecture 109 Homework 2 - Solutions p3
Lecture 110 Homework 3 - Application
Lecture 111 Homework 3 - Application Solution
Section 10: Multidimensional Arrays
Lecture 112 Multidimensional Arrays 1
Lecture 113 Multidimensional Arrays 2
Lecture 114 Position neighbours
Lecture 115 Practice 1
Lecture 116 Practice 2
Lecture 117 Homework 1 - 3 Easy Challenges
Lecture 118 Homework 1 - Solutions p1 p2 p3
Lecture 119 Homework 2 - 4 Medium to Hard Challenges
Lecture 120 Homework 2 - Solutions p1 p2 p3 p4
Lecture 121 Homework 3 - Application
Lecture 122 Homework 3 - Application Solution
Section 11: Functions
Lecture 123 Functions 1
Lecture 124 Functions 2
Lecture 125 Functions 3
Lecture 126 Pass by reference
Lecture 127 Builtin Functions
Lecture 128 Global, Local and Static Variables
Lecture 129 Functions Practice
Lecture 130 Functions Homework - 7 Challenges
Lecture 131 Functions Homework - Solutions p1 p2 p3
Lecture 132 Functions Homework - Solutions p4 p5 p6
Lecture 133 Functions Homework - Solutions p7
Section 12: Recursive Functions
Lecture 134 Recursive Functions 1
Lecture 135 Recursive Functions 2
Lecture 136 Recursive Functions Practice 1
Lecture 137 Recursive Functions Practice 2
Lecture 138 Recursive Functions Practice 3
Lecture 139 Recursive Functions Homework 1 - 8 Easy to Medium Challenges
Lecture 140 Recursive Functions Homework 1 - Solutions p1
Lecture 141 Recursive Functions Homework 1 - Solutions p2 p3 p4 p5 p6 p7 p8
Lecture 142 Recursive Functions Homework 2 - 9 Medium to Hard Challenges
Lecture 143 Recursive Functions Homework 2 - Solutions p9
Lecture 144 Recursive Functions Homework 2 - Solutions p10 p11 p12
Lecture 145 Recursive Functions Homework 2 - Solutions p13
Lecture 146 Recursive Functions Homework 2 - Solutions p14
Lecture 147 Recursive Functions Homework 2 - Solutions p15
Lecture 148 Recursive Functions Homework 2 - Solutions p16
Lecture 149 Recursive Functions Homework 2 - Solutions p17
Section 13: Project #1 - Hospital System
Lecture 150 Description
Lecture 151 Solution
Section 14: Structures
Lecture 152 Structures 1
Lecture 153 Structures 2
Lecture 154 Uniform initialization
Lecture 155 Structures Practice
Section 15: Project #2 - Library System
Lecture 156 Description
Lecture 157 Demo
Lecture 158 Project 2 - Solution
Lecture 159 Software Engineering
Section 16: Templates
Lecture 160 Function Templates
Lecture 161 Class Templates
Lecture 162 Variadic Template
Lecture 163 Fold Expression 1
Lecture 164 Fold Expression 2
Section 17: STL
Lecture 165 STL Intro
Lecture 166 Queue
Lecture 167 Priority Queue
Lecture 168 Deque
Lecture 169 Stack
Lecture 170 STL Practice 1
Lecture 171 Pair
Lecture 172 Tuple
Lecture 173 Iterators
Lecture 174 STL with Range-based for loop
Lecture 175 Vector 1
Lecture 176 Vector 2
Lecture 177 String
Lecture 178 STL Practice 2
Lecture 179 Algorithms
Lecture 180 Set
Lecture 181 Unordered Set
Lecture 182 Map 1
Lecture 183 Map 2
Lecture 184 STL Practice 3
Lecture 185 STL Practice 4
Lecture 186 STL Practice 5
Lecture 187 STL Practice 6
Lecture 188 STL Practice 7
Lecture 189 Notes
Lecture 190 STL Homework 1 - 6 Medium Challenges
Lecture 191 STL Homework 1 Solutions p1 p2 p3
Lecture 192 STL Homework 1 Solutions p4
Lecture 193 STL Homework 2 - 3 Hard Challenges
Lecture 194 STL Homework 2 - Solutions p9 (from my interviews course)
Lecture 195 Structured Binding
Section 18: Files and Streams
Lecture 196 Files and Streams 1
Lecture 197 Demo using Eclipse - Streaming from Files
Lecture 198 Demo using Codeblocks - Streaming from Files
Lecture 199 Files and Streams 2
Lecture 200 String Stream
Section 19: Project #3 - Ask.fm: Q & A
Lecture 201 Description
Lecture 202 Demo
Lecture 203 Solution - Big Picture
Lecture 204 Details 1
Lecture 205 Details 2
Section 20: Pointers
Lecture 206 Reference
Lecture 207 Pointers 1
Lecture 208 Pointers 2
Lecture 209 Pointers and Arrays
Lecture 210 Pointers and Const
Lecture 211 Pointers and Functions
Lecture 212 Dynamic Memory Allocation
Lecture 213 Pointers and Struct
Lecture 214 Stack and Heap Memory Allocation
Lecture 215 Handling Pointers
Section 21: Headers and Includes
Lecture 216 Headers and Includes
Lecture 217 Separating Interface from Implementation
Lecture 218 Demo using Eclipse - Creating Header
Lecture 219 Demo using Codeblocks - Creating Header
Lecture 220 Separation with Struct
Lecture 221 Forward Declaration
Lecture 222 Preprocessor and Linker
Lecture 223 Namespace 1
Lecture 224 Namespace 2
Section 22: Exception Handling
Lecture 225 Exception Handling
Lecture 226 Multiple Exceptions Handling
Lecture 227 Stack Unwinding
Lecture 228 noexcept Specifier
Lecture 229 Common Exception handling mistakes
Section 23: More on Fundamentals
Lecture 230 Bits Range
Lecture 231 Signed and Unsigned Variables
Lecture 232 Scientific Notation
Lecture 233 Rounding errors
Lecture 234 Floating point numbers
Lecture 235 Type Conversion
Lecture 236 Stream Manipulators
Lecture 237 Input Validations
Lecture 238 More on Files and Streams
Lecture 239 Switch, Do-while, Inline functions,Enum,Locality of reference
Section 24: Compilation Process
Lecture 240 Compilation Process 1
Lecture 241 Compilation Process 2
Lecture 242 Using Command Line
Lecture 243 Command line arguments
Section 25: Debugger
Lecture 244 Debugger
Lecture 245 Debugging with Eclipse IDE 1
Lecture 246 Debugging with Eclipse IDE 2 - Recursive Functions
Lecture 247 Debugging with Codelocks IDE 1
Lecture 248 Debugging with Codelocks IDE 2 - Recursive Functions
Section 26: Object Oriented Programming
Lecture 249 Objects
Lecture 250 Pyramid of Object Oriented
Lecture 251 Pyramid of Object Oriented Homework
Lecture 252 Data-Hiding
Lecture 253 Abstraction 1
Lecture 254 Abstraction 2
Lecture 255 Demo using Eclipse - Creating Class
Lecture 256 Demo using Codeblocks - Creating Class
Lecture 257 Abstraction Homework
Section 27: OOP: Classes
Lecture 258 Class Constructor & Destructor
Lecture 259 Class Constructor & Destructor Homework
Lecture 260 Class Copy Constructor
Lecture 261 Class Copy Constructor Homework
Lecture 262 Classes with initializer list
Lecture 263 Defaulted Functions
Lecture 264 Deleted Functions
Lecture 265 Const with Class
Lecture 266 Static with Class
Lecture 267 Friend Class
Lecture 268 Class Const, Static & Friend Homework 1
Lecture 269 Class Const, Static & Friend Homework 2
Section 28: UML Class Diagram
Lecture 270 Class Diagram in UML
Lecture 271 Classes Relationship
Lecture 272 Composition Relationship
Lecture 273 Aggregation Relationship
Lecture 274 Generalization Relationship
Lecture 275 Multiplicity
Lecture 276 Relationships & Multiplicity
Lecture 277 UML in Practice
Lecture 278 Improving Design Skills
Lecture 279 Software Development Life Cycle
Section 29: OOP Part 1: Summary
Lecture 280 OOP Part 1 Summary 1
Lecture 281 OOP Part 1 Summary 2
Lecture 282 OO Projects in Practice
Section 30: Project #4 - Ask.fm: Q & A (OOP)
Lecture 283 OOing old project
Section 31: Project #5: Online Book Reader
Lecture 284 Description
Lecture 285 Solution Overview
Section 32: OOP: Inheritance
Lecture 286 Inheritance 1
Lecture 287 Inheritance 2
Lecture 288 Inheritance Homework 1
Lecture 289 Inheritance Homework 2
Lecture 290 Inheritance 3
Lecture 291 Inheritance with Exceptions
Lecture 292 Inheritance in Practice
Lecture 293 Inheritance Homework 3
Lecture 294 Inheritance Homework 4
Section 33: OOP: Polymorphism
Lecture 295 Polymorphism 1
Lecture 296 Polymorphism 2
Lecture 297 Polymorphism 3
Lecture 298 Polymorphism Practice 1
Lecture 299 Polymorphism Tips
Lecture 300 Polymorphism Homework 1
Lecture 301 Polymorphism and Abstract Classes
Lecture 302 Polymorphism Practice 2
Lecture 303 Polymorphism Downcasting
Lecture 304 Polymorphism Virtual Table
Lecture 305 Polymorphism for APIs and Frameworks
Lecture 306 Polymorphism and Composition over Inheritance
Lecture 307 Polymorphism Homework 2
Section 34: OOP: Operator Overloading
Lecture 308 Binary Operator Overloading 1
Lecture 309 Binary Operator Overloading 2
Lecture 310 Unary Operator Overloading
Lecture 311 Subscript Operator Overloading
Lecture 312 Relational Operator Overloading
Lecture 313 Operator Overloading Homework 1
Lecture 314 Operator Overloading Homework 2
Lecture 315 Prefix and Postfix Operator Overloading
Lecture 316 Input-Output Operator Overloading
Lecture 317 Conversions in Operator Overloading
Lecture 318 Assignment Operator Overloading
Lecture 319 Operator Overloading Homework 3
Section 35: OOP Part 2: Summary
Lecture 320 OOP Part 2 Summary 1
Lecture 321 OOP Part 2 Summary 2
Lecture 322 OOP Part 2 Summary 3
Lecture 323 OOP Part 2 Summary 4
Lecture 324 OOP Part 2 Summary 5
Section 36: Project #6: Expedia.com
Lecture 325 Description
Section 37: Move Semantics and Perfect Forwarding
Lecture 326 Important note
Lecture 327 Boosting the performance
Lecture 328 Value Category
Lecture 329 Lvalue and Prvalue 1
Lecture 330 Lvalue and Prvalue 2
Lecture 331 Lvalue and Prvalue 3
Lecture 332 Rvalue Reference
Lecture 333 Move Semantics
Lecture 334 std::Move 1
Lecture 335 std::Move 2
Lecture 336 Delegation and Swap Tricks
Lecture 337 Xvalue
Lecture 338 Perfect Forwarding 1
Lecture 339 Perfect Forwarding 2
Lecture 340 Copy Elision
Section 38: Lambda Expressions
Lecture 341 Lambda Expressions
Lecture 342 Capture Clause
Lecture 343 Generalized Lambda Expressions
Lecture 344 Lambda with Fold Expression
Section 39: Smart Pointers
Lecture 345 A nightmare: Raw Pointers
Lecture 346 Unique Pointers 1
Lecture 347 Unique Pointers 2
Lecture 348 Unique Pointers 3
Lecture 349 Shared Pointer
Lecture 350 Weak Pointers
Lecture 351 Custom Deleter for shared pointer
Lecture 352 Custom Deleter for unique pointer
Section 40: More on STL
Lecture 353 Algorithms any_of,none_of,copy_n,iota
Lecture 354 Algorithms max_element,find_if,replace_if,search_n,for_each
Lecture 355 Algorithms accumulate,inner_product,adjacent_difference,next_permutation
Lecture 356 Algorithms based on ordered containers
Lecture 357 Array
Lecture 358 List and Forward list
Lecture 359 Valarray
Lecture 360 Container adaptors
Lecture 361 Stream iterator
Lecture 362 More on iterators
Lecture 363 STL big Picture
Section 41: Modern Wrapper Types
Lecture 364 Optional 1
Lecture 365 Optional 2
Lecture 366 Optional with in-place
Lecture 367 Variant
Lecture 368 Variant instead of Virtual Functions
Lecture 369 Any
Lecture 370 Optional vs Variant vs Any
Section 42: More on Pointers
Lecture 371 Array of Pointers
Lecture 372 Pointer to pointer
Lecture 373 Void Pointer
Lecture 374 Function Pointer
Section 43: Thank You
Lecture 375 Bonus
Whoever curious about programming,Learned programming, but has weak skills due to trying little challenges and projects,Experts in other programming languages migrating to C++