What you'll learnDeep 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
RequirementsPassion with building things!
Passion with problem solving!
Access to a computer.
DescriptionAlmost 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!
OverviewSection 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
Section 16: Templates
Lecture 159 Function Templates
Lecture 160 Class Templates
Section 17: STL
Lecture 161 STL Intro
Lecture 162 Queue
Lecture 163 Priority Queue
Lecture 164 Deque
Lecture 165 Stack
Lecture 166 STL Practice 1
Lecture 167 Pair
Lecture 168 Tuple
Lecture 169 Iterators
Lecture 170 STL with Range-based for loop
Lecture 171 Vector 1
Lecture 172 Vector 2
Lecture 173 String
Lecture 174 STL Practice 2
Lecture 175 Algorithms
Lecture 176 Set
Lecture 177 Unordered Set
Lecture 178 Map 1
Lecture 179 Map 2
Lecture 180 STL Practice 3
Lecture 181 STL Practice 4
Lecture 182 STL Practice 5
Lecture 183 STL Practice 6
Lecture 184 STL Practice 7
Lecture 185 Notes
Lecture 186 STL Homework 1 - 6 Medium Challenges
Lecture 187 STL Homework 1 Solutions p1 p2 p3
Lecture 188 STL Homework 1 Solutions p4
Lecture 189 STL Homework 2 - 3 Hard Challenges
Lecture 190 STL Homework 2 - Solutions p9 (from my interviews course)
Lecture 191 Structured Binding
Section 18: Files and Streams
Lecture 192 Files and Streams 1
Lecture 193 Demo using Eclipse - Streaming from Files
Lecture 194 Demo using Codeblocks - Streaming from Files
Lecture 195 Files and Streams 2
Lecture 196 String Stream
Section 19: Project #3 - Ask.fm: Q & A
Lecture 197 Description
Lecture 198 Demo
Lecture 199 Solution - Big Picture
Lecture 200 Details 1
Lecture 201 Details 2
Section 20: Pointers
Lecture 202 Reference
Lecture 203 Pointers 1
Lecture 204 Pointers 2
Lecture 205 Pointers and Arrays
Lecture 206 Pointers and Const
Lecture 207 Pointers and Functions
Lecture 208 Dynamic Memory Allocation
Lecture 209 Pointers and Struct
Lecture 210 Stack and Heap Memory Allocation
Lecture 211 Handling Pointers
Section 21: Headers and Includes
Lecture 212 Headers and Includes
Lecture 213 Separating Interface from Implementation
Lecture 214 Demo using Eclipse - Creating Header
Lecture 215 Demo using Codeblocks - Creating Header
Lecture 216 Separation with Struct
Lecture 217 Forward Declaration
Lecture 218 Preprocessor and Linker
Lecture 219 Namespace 1
Lecture 220 Namespace 2
Section 22: Exception Handling
Lecture 221 Exception Handling
Lecture 222 Multiple Exceptions Handling
Lecture 223 Stack Unwinding
Lecture 224 noexcept Specifier
Lecture 225 Common Exception handling mistakes
Section 23: More on Fundamentals
Lecture 226 Bits Range
Lecture 227 Signed and Unsigned Variables
Lecture 228 Scientific Notation
Lecture 229 Rounding errors
Lecture 230 Floating point numbers
Lecture 231 Type Conversion
Lecture 232 Stream Manipulators
Lecture 233 Input Validations
Lecture 234 More on Files and Streams
Lecture 235 Switch, Do-while, Inline functions,Enum,Locality of reference
Section 24: Compilation Process
Lecture 236 Compilation Process 1
Lecture 237 Compilation Process 2
Lecture 238 Using Command Line
Lecture 239 Command line arguments
Section 25: Debugger
Lecture 240 Debugger
Lecture 241 Debugging with Eclipse IDE 1
Lecture 242 Debugging with Eclipse IDE 2 - Recursive Functions
Lecture 243 Debugging with Codelocks IDE 1
Lecture 244 Debugging with Codelocks IDE 2 - Recursive Functions
Section 26: Object Oriented Programming
Lecture 245 Objects
Lecture 246 Pyramid of Object Oriented
Lecture 247 Pyramid of Object Oriented Homework
Lecture 248 Data-Hiding
Lecture 249 Abstraction 1
Lecture 250 Abstraction 2
Lecture 251 Demo using Eclipse - Creating Class
Lecture 252 Demo using Codeblocks - Creating Class
Lecture 253 Abstraction Homework
Section 27: OOP: Classes
Lecture 254 Class Constructor & Destructor
Lecture 255 Class Constructor & Destructor Homework
Lecture 256 Class Copy Constructor
Lecture 257 Class Copy Constructor Homework
Lecture 258 Classes with initializer list
Lecture 259 Defaulted Functions
Lecture 260 Deleted Functions
Lecture 261 Const with Class
Lecture 262 Static with Class
Lecture 263 Friend Class
Lecture 264 Class Const, Static & Friend Homework 1
Lecture 265 Class Const, Static & Friend Homework 2
Section 28: UML Class Diagram
Lecture 266 Class Diagram in UML
Lecture 267 Classes Relationship
Lecture 268 Composition Relationship
Lecture 269 Aggregation Relationship
Lecture 270 Generalization Relationship
Lecture 271 Multiplicity
Lecture 272 Relationships & Multiplicity
Lecture 273 UML in Practice
Lecture 274 Improving Design Skills
Lecture 275 Software Development Life Cycle
Section 29: OOP Part 1: Summary
Lecture 276 OOP Part 1 Summary 1
Lecture 277 OOP Part 1 Summary 2
Lecture 278 OO Projects in Practice
Section 30: Project #4 - Ask.fm: Q & A (OOP)
Lecture 279 OOing old project
Section 31: Project #5: Online Book Reader
Lecture 280 Description
Lecture 281 Solution Overview
Section 32: OOP: Inheritance
Lecture 282 Inheritance 1
Lecture 283 Inheritance 2
Lecture 284 Inheritance Homework 1
Lecture 285 Inheritance Homework 2
Lecture 286 Inheritance 3
Lecture 287 Inheritance with Exceptions
Lecture 288 Inheritance in Practice
Lecture 289 Inheritance Homework 3
Lecture 290 Inheritance Homework 4
Section 33: OOP: Polymorphism
Lecture 291 Polymorphism 1
Lecture 292 Polymorphism 2
Lecture 293 Polymorphism 3
Lecture 294 Polymorphism Practice 1
Lecture 295 Polymorphism Tips
Lecture 296 Polymorphism Homework 1
Lecture 297 Polymorphism and Abstract Classes
Lecture 298 Polymorphism Practice 2
Lecture 299 Polymorphism Downcasting
Lecture 300 Polymorphism Virtual Table
Lecture 301 Polymorphism for APIs and Frameworks
Lecture 302 Polymorphism and Composition over Inheritance
Lecture 303 Polymorphism Homework 2
Section 34: OOP: Operator Overloading
Lecture 304 Binary Operator Overloading 1
Lecture 305 Binary Operator Overloading 2
Lecture 306 Unary Operator Overloading
Lecture 307 Subscript Operator Overloading
Lecture 308 Relational Operator Overloading
Lecture 309 Operator Overloading Homework 1
Lecture 310 Operator Overloading Homework 2
Lecture 311 Prefix and Postfix Operator Overloading
Lecture 312 Input-Output Operator Overloading
Lecture 313 Conversions in Operator Overloading
Lecture 314 Assignment Operator Overloading
Lecture 315 Operator Overloading Homework 3
Section 35: OOP Part 2: Summary
Lecture 316 OOP Part 2 Summary 1
Lecture 317 OOP Part 2 Summary 2
Lecture 318 OOP Part 2 Summary 3
Lecture 319 OOP Part 2 Summary 4
Lecture 320 OOP Part 2 Summary 5
Section 36: Project #6: Expedia.com
Lecture 321 Description
Section 37: More on Templates
Lecture 322 Important note
Lecture 323 Variadic Template
Lecture 324 Fold Expression 1
Lecture 325 Fold Expression 2
Section 38: Move Semantics and Perfect Forwarding
Lecture 326 Boosting the performance
Lecture 327 Value Category
Lecture 328 Lvalue and Prvalue 1
Lecture 329 Lvalue and Prvalue 2
Lecture 330 Lvalue and Prvalue 3
Lecture 331 Rvalue Reference
Lecture 332 Move Semantics
Lecture 333 std::Move 1
Lecture 334 std::Move 2
Lecture 335 Delegation and Swap Tricks
Lecture 336 Xvalue
Lecture 337 Perfect Forwarding 1
Lecture 338 Perfect Forwarding 2
Lecture 339 Copy Elision
Section 39: Lambda Expressions
Lecture 340 Lambda Expressions
Lecture 341 Capture Clause
Lecture 342 Generalized Lambda Expressions
Lecture 343 Lambda with Fold Expression
Section 40: Smart Pointers
Lecture 344 A nightmare: Raw Pointers
Lecture 345 Unique Pointers 1
Lecture 346 Unique Pointers 2
Lecture 347 Unique Pointers 3
Lecture 348 Shared Pointer
Lecture 349 Weak Pointers
Lecture 350 Custom Deleter for shared pointer
Lecture 351 Custom Deleter for unique pointer
Section 41: More on STL
Lecture 352 Algorithms any_of,none_of,copy_n,iota
Lecture 353 Algorithms max_element,find_if,replace_if,search_n,for_each
Lecture 354 Algorithms accumulate,inner_product,adjacent_difference,next_permutation
Lecture 355 Algorithms based on ordered containers
Lecture 356 Array
Lecture 357 List and Forward list
Lecture 358 Valarray
Lecture 359 Container adaptors
Lecture 360 Stream iterator
Lecture 361 More on iterators
Lecture 362 STL big Picture
Section 42: Modern Wrapper Types
Lecture 363 Optional 1
Lecture 364 Optional 2
Lecture 365 Optional with in-place
Lecture 366 Variant
Lecture 367 Variant instead of Virtual Functions
Lecture 368 Any
Lecture 369 Optional vs Variant vs Any
Section 43: More on Pointers
Lecture 370 Array of Pointers
Lecture 371 Pointer to pointer
Lecture 372 Void Pointer
Lecture 373 Function Pointer
Section 44: Thank You
Lecture 374 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++
Buy Premium Account From My Download Links & Get Fastest Speed.