1. Introduction to C++

This is an introductory course in programming using the C programming language for the first year of study at a University. The program will be based on topics such as data structures, algorithms, and computer architecture. It will cover topics such as linear algebra, probability, and statistics, and it will give you the opportunity to write code to solve problems in all areas of modern computing.
You will learn some basic concepts related to C++ like pointers, classes, arrays, objects, and functions. To begin with, a list of required courses that are not included in this program includes those related to basic programming in C++, including programming in C++, learning C++ from scratch, the difference between object-oriented and procedural programming, and how to use the library for C++.

2. Data Structures and Algorithms

This lesson is designed to get you familiarized with advanced aspects of C++. You will start by defining a few common data structures like containers, trees, graphs, etc. You will then learn about algorithms for various tasks like sorting or searching, binary search, heap, dynamic programming, matrix operations, random number generation, parallel processing, and more. You can also use these techniques in your real world projects like solving complex mathematical problems or generating random numbers. This course is great for beginners looking to gain skills and knowledge on what data structure and algorithm mean and how they work together.

3. Basic Concepts of Operating System

This course will give you a broad overview of the operating systems and their components, including the file system, memory management, input/output devices, processes, schedulers, and more. You will learn some essential concepts related to operating systems such as debugging, performance tuning, security, user authentication, and more. In addition, you can learn about hardware design and networking, which are crucial for any computer. With this course, you will have an understanding of both the technical details and practical applications of operating systems and networking.

4. Programming Languages

The introduction to C++ program is designed to provide an overview of the different programming languages used in C++. We will discuss their features, advantages, disadvantages, and the main reasons why people choose one over the other. By the end of this module, you should have a good understanding of the fundamental concepts and features of each language.

5. Object Oriented Programming I
This module is intended to introduce students to the field of object oriented programming. You will see some advanced topics like inheritance, polymorphism, encapsulation, and the relationship between class and instance. You will also learn about object-oriented programming paradigms such as Inheritance, Polymorphism, Encapsulation, and Dependency Inversion Principle. As you progress through this section, you will become better equipped to tackle challenging problems and understand the relationship between class and instance concepts.

6. Principles of Software Design
This module is designed to teach you the principles of software design. You will learn about the core elements of software design design, such as interfaces, modularity, separation of concerns, testability, cohesion, testing, quality, and reliability. After completing this course, you should be able to explain these concepts clearly to others. You will also come across new ideas and insights that will help you make the right decisions when designing software.

7. Advanced Programming Topics II

This module covers many advanced topics in C++. Some of them include array manipulation, loops, conditional statements, optimization, pointers, recursion, concurrent programming, and more. You will learn about the basics of compilers, compilation tools, and debuggers. Additionally, you will learn about garbage collection and linker structures. For example, if you want to know how to access certain parts of the am's am’s memory, you may need to know how to access certain parts of the program’s memory.

8. Programming Systems and Applications

This module is designed to teach students how to develop application programs in C++. Students will learn about the major programming paradigms like object oriented and functional programming, as well as how to write robust and maintainable applications. They will also learn about programming languages such as C++, Pascal, assembly, and Fortran. Also, there will be some important concepts such as threading, sockets, threads, and synchronization. And finally, they will have basic knowledge of database systems like MySQL and PostgreSQL.

9. Understanding C++ Libraries
This module is designed to teach students the importance of libraries in C++. There are several useful libraries in C++ that allow you to do things faster, easier, and more efficiently. These modules are especially helpful for professionals who are working with large amounts of C++ code. So, we recommend taking advantage of the resources provided by this module.



10. Networking & Security

This module provides an overview of network and security issues in C++. It starts with simple topics like IP addresses, TCP/IP stacks, DNS, HTTP, FTP, SMTP, SSH/SFTP, SSL, IPS, VPNs, and WAN. Then, you will take a look at some popular protocols like TCP, UDP and P2P protocols, ARP, UDP, MNS, DNS, and SNMP. You will also learn about secure sockets layer protocol and cryptographic algorithms and methods. So this module will prepare you well to solve network and security problems. The best part about this module is that you will also learn about cryptography using the RSA encryption method.

11. Common Classes in C++

This module covers many common classes used in C++. It begins with the basic concept of classes, which are basically collections of data stored in memory and they allow you to create powerful programs. The next topic covered in this module is the basic concepts of interface and implementation. Also, some advanced topics covered in this module are the use of variables, inheritance, and polymorphism. If you are interested in coding, then this is a must-have module for you.