x
Menu

Programming in C++

IIT Kharagpur, , Prof. Prof. Partha Pratim Das

Updated On 02 Feb, 19

Overview

There has been a continual debate on which programming language/s to learn, to use. As the latest TIOBE Index for May 2019 indicates Java (16%), C (14%), C++ (8%), Python (8%), and C# (4%) together control nearly half the programming community. Given this, it is still important to learn C and C++ because of the efficiency they offer. While we appreciate that Java is good for applications, for graphics; and we acknowledge that Python is appropriate for portable software, engineering problem solving (especially ML), and graphics; it is worth bearing in mind that the JVM (Java Virtual Machine) and PVM (Python Virtual Machine - Python interpreter) are indeed written in C++, making C++ the father of all languages today.

Well, C++ is the systems language. It is multi-paradigm - procedural, object-oriented, functional, and generic. So, why should I learn it if my primary focus is on applications? The answer lies in the recent updates of C++, namely, C++11, C++14, C++17, and upcoming C++20 that offer excellent depths and flexibility for C++ that no language can match. These extensions attempt to alleviate many of the long-standing shortcomings of C++ including porous resource management, error-prone pointer handling, expression semantics, and better readability.

The present course builds up on the knowledge of C programming and basic data structure (array, list, stack, queue, binary tree etc.) to create a strong familiarity with C++98 and C++03. Besides the constructs, syntax and semantics of C++ (over C), we also focus on various idioms of C++ and attempt to go to depth with every C++ feature justifying and illustrating them with several examples and assignment problems. On the way, we illustrate various OOAD (Object-Oriented Analysis and Design) and OOP (Object-Oriented Programming) concepts.

While this course can be understood independently (after a course in C programming), it would help in developing understanding in OOP. Hence this course is advised in conjunction with OOAD.

End Note: If you wonder how C++ stands against Java, note the relative movement of the languages since 2016 (when these course videos were recorded) till 2019. In 2016, Java stood at 21% and C/C++ combine at 20%. In 2019, Java has slipped to 16% and C/C++ combine has climbed to 22%. And Java is an application programming language while C++ is a systems language!

Includes

Lecture 1: Module 1: Recap of C (Lecture 01)

4.1 ( 11 )

Lecture Details

Course Details

COURSE LAYOUT


WEEK 1: 
Programming in C++ is Fun : Build and execute a C program in C++, Write equivalent programs in C++

WEEK 2: C++ as Better C : Procedural Extensions of C

WEEK 3:  Overview of OOP in C++ : Classes and basic Object-Oriented features (encapsulation)

WEEK 4: Overview of OOP in C++ : More OO features, overloading, namespace and using struct and union

WEEK 5: Inheritance : Generalization / Specialization of Object Modeling in C++

WEEK 6: Polymorphism : Static and Dynamic Binding

WEEK 7: Type Casting & Exceptions : C++ cast operators; C++ Exceptions & standard exception classes

WEEK 8: Templates & STL Function and Class templates and using STL like containers, algorithms

Ratings

0


0 Ratings
55%
30%
10%
3%
2%
Comments
comment person image

Sam

Excellent course helped me understand topic that i couldn't while attendinfg my college.

Reply
comment person image

Dembe

Great course. Thank you very much.

Reply
Send