Tutors

The Diploma

PROGRAM OVERVIEW

Description:

C++ is a general-purpose object-oriented programming (OOP) language, developed by Bjarne Stroustrup, and is an extension of the C language. It is therefore possible to code C++ in a "C style" or "object-oriented style." In certain scenarios, it can be coded in either way and is thus an effective example of a hybrid language.

C++ is considered to be an intermediate-level language, as it encapsulates both high- and low-level language features. Initially, the language was called "C with classes" as it had all the properties of the C language with an additional concept of "classes." However, it was renamed C++ in 1983.

Data structure, way in which data are stored for efficient search and retrieval. Different data structures are suited for different problems. Some data structures are useful for simple general problems, such as retrieving data that has been stored with a specific identifier. For example, an online dictionary can be structured so that it can retrieve the definition of a word. On the other hand, specialized data structures have been devised to solve complex specific search problems.

The simplest data structure is the one-dimensional (linear) array, in which stored elements are numbered with consecutive integers and contents are accessed by these numbers. Data items stored nonconsecutively in memory may be linked by pointers (memory addresses stored with items to indicate where the “next” item or items in the structure are located). Many algorithms have been developed for sorting data efficiently; these apply to structures residing in main memory and also to structures that constitute information systems and databases. More-complex data structures may incorporate elements of simpler data structures.

What will you Learn?

It is true that C++ is built on top of C, the compatibility being 90+%. Therefore, there is a very strong tendency to write C-style code with C++. Avoid this. That's the first thing to keep in mind. Following are a list of techniques / features / terms you should understand and use regularly in your C++ code to reap the benefits of the language.

Basics:

1. Various uses of the 'const' keyword and its liberal use.

2. Basic class syntax, difference between public, protected and private inheritance and *virtual functions*.

3. How the constructor and destructor work, their relation to definition scope for C++ objects on stack, and to the new and delete operators for C++ objects on the heap. The importance of virtual destructors.

4. Understand and adopt Resource Acquisition is Initialization (RAII).

5. Operator overloading - especially chaining of overloaded operator calls.

6. What "new operator" and "delete operator" do, and their distinction from "operator new" and "operator delete". Also, the different variants of new and delete, including placement new.

7. Exceptions, how to use them efficiently and unobtrusively.

STL + More advanced stuff

1. Advanced class design techniques - Pimpl idiom, proxies (e.g. smart pointers), private inheritance and template method pattern. Rule of Three, Rule of Zero.

2. STL: different classes of objects - containers, iterators, algorithms, factors, container adaptors, iterator adaptors, factor adaptors. C++ 11 stuff

C++ 11 stuff

1. lambda functions: very useful if you know when to deploy and how to format lambdas right. Can become unreadable junk if you don't.

2. STL containers: forward list (singly linked list), unordered set (hash table)/unordered_map (hash-based symbol table), emplace / emplace_back methods in sequence containers, move iterators.

3. Concurrency and atomics: big topic. Worth getting familiar with how you could port your existing Win32 or threads code to C++ 11. But there is much more to this library - including atomic data types and operations, futures and promises.

Prerequisites:

1. C++ Beginner to Intermediate Level (Loops/If Statements/Templates)

2. Basic Understanding of Big Oh Notation (What does O(n) mean, what does O(nlogn) mean, etc)

3. Very Basic Understanding of Recursion (Factorial example suffices)

CURRICULUM

  Overview of Object Oriented Programming System (OOPS) Basics

  • This section has no content published in it.

  Introduction to C++

  • This section has no content published in it.

  Installation Procedure

  • This section has no content published in it.

  Tokens

  • This section has no content published in it.

  Input and Output Streams

  • This section has no content published in it.

  Variable Declaration

  • This section has no content published in it.

  C++ Programs on Variable Declaration

  • This section has no content published in it.

  Storage Class Specifiers

  • This section has no content published in it.

  Operators

  • This section has no content published in it.

  C++ Programs on Operators

  • This section has no content published in it.

  Conditional Statements

  • This section has no content published in it.

  C++ Programs on Conditional Statements

  • This section has no content published in it.

  Loops : while Loop

  • This section has no content published in it.

  C++ Programs on while Loop

  • This section has no content published in it.

  Loops : do.. while Loop

  • This section has no content published in it.

  Loops : for Loop

  • This section has no content published in it.

  C++ Programs on for Loop

  • This section has no content published in it.

  Loops : Break and Continue Statements

  • This section has no content published in it.

  C++ Programs on Break and Continue Statements

  • This section has no content published in it.

  Loops : Nested Loops

  • This section has no content published in it.

  C++ Programs on Nested Loops

  • This section has no content published in it.

  Arrays

  • This section has no content published in it.

  C++ Programs on Arrays

  • This section has no content published in it.

  Pointers

  • This section has no content published in it.

  C++ Programs on Pointers

  • This section has no content published in it.

  Strings

  • This section has no content published in it.

  C++ Programs on Strings

  • This section has no content published in it.

  Structures

  • This section has no content published in it.

  C++ Programs on Structures

  • This section has no content published in it.

  Enumeration

  • This section has no content published in it.