Unleashing C++: From Basic to Advanced
Tags: cpp, tutorial, programming, devjournal
Published: 2023-01-11 17:06:50

<h2>Table of Contents</h2>
<ul>

<li><a href="#course-description">Course Description</a></li>

<li><a href="#instructor-information">Instructor Information</a></li>

<li><a href="#course-scope">Course Scope</a></li>

<li><a href="#course-format">Course Format</a></li>

<li><a href="#course-schedule">Course Schedule</a></li>

<li><a href="#prerequisites">Prerequisites</a></li>

<li><a href="#learning-outcomes">Learning Outcomes</a></li>

<li><a href="#assessments">Assessments</a></li>

<li><a href="#technical-requirements">Technical Requirements</a></li>
  
<li><a href="#license">License</a></li>

</ul>



<h2 id="course-description">Course Description</h2>

<p>This comprehensive C++ course is designed to provide a solid foundation in the C++ programming language. It covers all of the essential C++ topics, including basic syntax, data types, control flow, functions, classes and objects, and templates. The course also delves into more advanced concepts such as memory management, exception handling, and advanced template techniques.</p>



<h2 id="instructor-information">Instructor Information</h2>

<p>I am a software developer and a student at a community college. I have worked on projects for over six years, including system software, website development, and AI applications. I am passionate about learning and sharing my knowledge with other students. I am excited to do this through this course.</p>



<h2 id="course-scope">Course Scope</h2>

<p>In this course, we will begin by introducing you to the C++ development environment and the basic syntax of the language. As we progress, you will learn about variables and data types, control flow and looping constructs, functions and arrays, and pointers. We will then delve into object-oriented programming in C++ and cover topics such as classes, objects, inheritance, polymorphism, and operator overloading. You will also learn about templates, the Standard Template Library (STL), input/output, file processing, and exception handling. Additionally, we will cover some of the new features and improvements such as automatic type inference, lambda functions, move semantics, and the Concurrency and Parallelism library.</p>

<table align="center" width="100%">
<thead>
  <tr>
    <th>Unit</th>
    <th>Description</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="https://github.com/Moayed-Ellah/Unleashing-C-From-Basic-to-Advanced/tree/Main/Unit%201:%20Introduction%20to%20C%2B%2B">Unit 1: Introduction to C++</a></td>
    <td>
      <ul>
        <li>Basic C++ syntax and structure</li>
        <li>Compiling and executing C++ programs</li>
      </ul>
    </td>
  </tr>
  <tr>
    <td>Unit 2: Variables and Data Types</td>
    <td>
      <ul>
        <li>Understanding basic data types in C++</li>
        <li>Creating and initializing variables</li>
        <li>Typecasting and type conversion</li>
        <li>Constants and defined variables</li>
      </ul>
    </td>
  </tr>
  <tr>
  <td>Unit 3: Control Flow and Looping</td>
  <td>
    <ul>
      <li>Conditional statements (if, else, switch)</li>
      <li>Looping constructs (for, while, do-while)</li>
      <li>Jump statements (break, continue, goto)</li>
    </ul>
  </td>
</tr>
<tr>
  <td>Unit 4: Functions and Arrays</td>
  <td>
    <ul>
      <li>Creating and calling functions</li>
      <li>Understanding function parameter passing</li>
      <li>Using arrays and array manipulation</li>
      <li>Strings and string manipulation</li>
    </ul>
  </td>
</tr>
<tr>
  <td>Unit 5: Pointers and Memory Management</td>
  <td>
    <ul>
      <li>Understanding pointers and the memory model</li>
      <li>Dynamic memory allocation and deallocation</li>
      <li>Pointers to objects and classes</li>
      <li>Smart pointers and reference counting</li>
    </ul>
  </td>
</tr>
<tr>
  <td>Unit 6: Object-Oriented Programming</td>
  <td>
    <ul>
      <li>Understanding classes and objects</li>
      <li>Inheritance and polymorphism</li>
      <li>Operator overloading and friend functions</li>
      <li>Abstract classes and pure virtual functions</li>
</ul>
  </td>
</tr>
<tr>
  <td>Unit 7: Templates and Standard Template Library (STL)</td>
  <td>
    <ul>
      <li>Understanding templates and function templates</li>
      <li>Understanding class templates and generic programming</li>
      <li>Standard Template Library (STL)</li>
    </ul>
  </td>
</tr>
<tr>
  <td>Unit 8: Exception Handling, Input/Output, and File Processing</td>
  <td>
    <ul>
      <li>Understanding exception handling and try-catch blocks</li>
      <li>Input/output streams and file handling</li>
      <li>Manipulating files and directories</li>
    </ul>
  </td>
</tr>
<tr>
  <td>Unit 9: Advanced C++ Features and Improvements</td>
  <td>
    <ul>
      <li>Automatic type inference and type deduction</li>
      <li>Lambda functions and closures</li>
    </ul>
  </td>
</tr>
</tbody>
</table>

<p3>The content of this course is made available along with other resources such as question, assignments, and any additional valuable resources on this github [repo](https://github.com/Moayed-Ellah/Unleashing-C-From-Basic-to-Advanced)<p3>



<h2 id="course-format">Course Format</h2>

<p>This course is offered online and self-paced. Each lesson is approximately 1 hour in length, and the course will take approximately 25 hours to complete. You can take the course at your own pace and complete it on your own schedule.</p>



<h2 id="course-schedule">Course Schedule</h2>

<p>The course is available for enrollment at any time. Each lesson will be released weekly, and there will be a deadline for each assignment and project. The deadlines for each assignment will be provided in the course.</p>

<h2 id="prerequisites">Prerequisites</h2>

<p>To make the most out of this course, you should have a basic understanding of programming concepts, and a good understanding of computers and operating systems. Additionally, you should be familiar with text editors and have a strong desire to learn and grow as a C++ developer.</p>



<h2 id="learning-outcomes">Learning Outcomes</h2>

<ul>

  <li>Understand the basics of C++ programming, including data types, control flow, and functions</li>

  <li>Write, test, and debug C++ programs using an integrated development environment</li>

  <li>Implement object-oriented programming concepts such as classes, objects, inheritance, and polymorphism</li>

  <li>Use templates and the Standard Template Library (STL) to write generic, reusable code</li>

  <li>Understand advanced topics such as exception handling, input/output, and file processing</li>

  <li>Use the new features and improvements in C++11/14/17/20</li>

</ul>

<h2 id="assessments">Assessments</h2>

<p>you will be assessed through a combination of quizzes, assignments, projects, and a final exam. The quizzes will be based on the material covered in the lessons, while the assignments and projects will give you the opportunity to apply your knowledge in a real-world context. After each unit you'll be assigned a project to test your understanding, along with a pdf that includes questions on each topic we covered.</p>



<h2 id="technical-requirements">Technical Requirements</h2>

<ul>

  <li>A computer with an internet connection</li>

  <li>A modern web browser</li>

  <li>A text editor (such as Visual Studio Code or Sublime Text)</li>

  <li>A C++ compiler (such as GCC or Clang)</li>

</ul>

<h2 id="license">Licence</h2>



<p>This course is released under the MIT Licence, which means that you can use, modify, and redistribute the materials as long as you give me credit and include a copy of the licence.</p>



If you have any questions, feedback or would like to know more about me. 

you can reach me out on my [LinkedIn](https://www.linkedin.com/in/moayedellah/)