Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Comprehensive Software Development Using C++
Rating: 4.4 out of 5(136 ratings)
1,872 students

Comprehensive Software Development Using C++

A detailed journey through Modern Programming Concepts, Data Structures, Algorithms and Algorithm Analysis
Created byDylan Curry
Last updated 2/2022
English

What you'll learn

  • Be able to write clean and efficient C++ programs
  • Learn the Data Structures and Algorithms concepts needed to pass interviews
  • Feel confident with Object Oriented Programming Concepts such as Polymorphism, Encapsulation, and Inheritance
  • Learn about additional topics such as Virtual Memory, Debuggers, and multiple development environments
  • Demystify confusing Recursive problems with the help of visualizations
  • Learn not only about code but also about important Computer Science Theory such as Binary/Hex/Octal, Logic and Algorithm Analysis

Course content

4 sections126 lectures41h 34m total length
  • Introduction and Course Overview8:53

    An outline of the course, our style of teaching and what you can expect to gain from it.

  • Introduction to Computer Science6:38

    A gentle introduction to computers and how they relate to the software that runs on them.

  • Bits and Bytes: Fundamental computer number systems20:09

    An important lecture from Patricia about how computers store and use data, as well as how us humans can interpret that data.

  • Setting up a compiler for C++13:51

    We show you how to set up the minGW compiler on windows.

  • Choosing an Editor (Lengthy Optional Video)25:57

    An overview of the various environments you can write your code in. Each one has its benefits and drawbacks.

  • Using a lightweight IDE to write our first program29:40

    We finally write our first C++ program using the Visual Studio Code IDE. This video should be watched regardless of the code editor you choose to use for the course.

  • Using VIM to write our first program (Optional Video)7:15

    Patricia shows you how to set up and use the terminal based text editor VIM.

  • Using CLION IDE to write our first program (Optional video)18:23

    This is a overview of the CLion IDE. A very powerful IDE that can make writing C++ very comfortable, but has a lot more bells and whistles than a lightweight text editor.

Requirements

  • No prior programming or algorithm experience is needed. This course starts from scratch.

Description

This course focuses on bringing major software development concepts together and attempts to explain them in a detailed, yet easy to understand way. It also includes topics that are often overlooked, including: compilers, virtual memory layout, how to choose the right editor, or how to use a graphical or command line based debugger. It is somewhat of a 2-in-1 course in that it isn't a Data Structures course with a crash course in programming, or vice versa, but rather a full coverage of the essential theoretical and practical aspects of writing software.


Major topics include: Binary and Hexadecimal Numbering Systems, GDB, CLion, VSCode, VIM, Logic, ASCII, Control Structures, Dynamic Memory, Pointers, Virtual Address Space, inheritance, encapsulation, polymorphism, templates, Sorting, Searching, Stacks, Queues, Graphs, Linked Lists, Trees, Hash Tables, Dynamic Programming, Recurrence Relations, Big O Notation and More...

The course is broken into 3 sections:

  • An introductory section to prepare beginners to write C++ programs and introduce students to fundamental Computer Science topics.

  • A C++ programming section that covers all of the major programming concepts

    • Includes in-video challenges and solutions

    • Includes projects with solution files

    • Many Modern/C++11 syntax topics mixed in (initialization lists, nullptr, range based loops, auto, smart pointers)

  • A Data Structures and Algorithms Section

    • Includes many Data Structures ranging from Linked-Lists to advanced concepts like AVL trees

    • Includes practical Algorithm problems and solutions as well as academic topics like recurrence relations and summations

   

This course is best taken from beginning to end, however, certain students may only be interested in the Data Structures and Algorithms section. Some of the Data Structures (i.e. Linked Lists) use some C++ language specific concepts like class templates. These students can always refer to the programming section to find supplementary lectures to fill in any missing C++ language gaps.

Also, if you believe any content is missing, please send me a message or comment and I will try my best to accommodate your learning needs. Not every C++ specific concept is covered (Like C++20 specific features for example) as this is not an advanced C++ Language course, but rather a course to help aspiring Software Engineers/Developers prepare for a career or help students through their studies.

Who this course is for:

  • Learners who want to understand modern programming practices, design techniques, and how to write efficient code. It was designed with the intention to give students enough information to prepare for a career in software development.