Courses » Programming In C++

Programming In C++

About The Course

There has been a continual debate on which programming language/s to learn, to use. As the latest TIOBE Index for April 2016 indicates – Java (21%), C (14%), C++ (6%), C#(4%), and Python (3%) 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, and graphics; it is worth bearing in mind that the JVM and Python interpreter are indeed written in C++, making C++ the father of all languages today.

Well, hence, C++ is the systems language. Why should I learn it if my primary focus is on applications? This is where the recent updates of C++, namely, C++11, C++14, and C++17 offer excellent depths and flexibility for C++ that no language can match. These extensions attempt to alleviate some of the long-standing shortcomings for 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 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 OOP 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 OOP.

Intended Audience

  • Core Course
  • UG/PG Course 
  • BCA, MCA, B.Tech., M.Tech.


1. Basic Knowledge of Programming & Data Structure
2. C Programming
3. Attending a course on OOP with this course will help

Industry Support - List of Companies/Industry that will Recognize/value this online course

Programming in C++ is so fundamental that all companies dealing with systems as well as application development (including web, IoT, embedded systems) have a need for the same. These include – Microsoft, Samsung, Xerox, Yahoo, Google, IBM, TCS, Infosys, Amazon, Flipkart, etc.

38036 students have enrolled already!!

Course Instructor

Dr. Partha Pratim Das received his BTech, MTech and PhD degrees in 1984, 1985 and 1988 respectively from IIT Kharagpur. He served as a faculty in Department of Computer Science and Engineering, IIT Kharagpur from 1988 to 1998. In 1998, he joined Alumnus Software Ltd as a Business Development Manager. From 2001 to 2011, he worked for Interra Systems, Inc as a Senior Director and headed its Kolkata Center. In 2011, he joined back to Department of Computer Science and Engineering, IIT Kharagpur as Professor. Dr. Das has also served as a Visiting Professor with Institute of Radio Physics and Electronics, Calcutta University from 2003 to 2013.

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

Suggested Reading

1. The C++ Programming Language by Bjarne Stroustrup, 2013. Or, Programming: Principles and Practice Using C++ by Bjarne Stroustrup, 2014 – These books will be followed in the course
2. The C Programming Language (Ansi C Version) by Brian W. Kernighan and Dennis M. Ritchie, 1990. Or, The C 
    Programming Language by Brian W. Kernighan and Dennis M. Ritchie, 2015  
3. C++ reference (C++98 and C++03). http://en.cppreference.com/w/  
4. Presentations used in the Course 

Reference (Advanced) Material 

1. Effective C++: 50 Specific Ways to Improve Your Programs and Design by Scott Meyers, 1997. Or, Effective C++: 55 
    Specific Ways to Improve Your Programs and Designs (Third Edition) by Scott Meyers, 2005  
2. More Effective C++ by Scott Meyers, 2002 
3. Modern C++ Design by Andrei Alexandrescu, 2004 
4. Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions by Herb Sutter, 1999
5. More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions by Herb Sutter, 2001
6. C++ Templates: The Complete Guide by David Vandevoorde and Nicolai M. Josuttis, 2002
7. The C++ Standard Library: A Tutorial and Reference by Nicolai M. Josuttis, 2012
8. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library 

  • The exam is optional for a fee.
  • Date of Exam: March 31st 2019 (Sunday).
  • Time of Exam: Morning session 9am to 2 noon; Afternoon session: 2pm to 5pm
  • Registration url: Announcements will be made when the registration form is open for registrations.
  • The online registration form has to be filled and the certification exam fee needs to be paid. More details will be made available when the exam registration form is published.

  • Final score will be calculated as : 25% assignment score + 75% final exam score
  • 25% assignment score is calculated as 25% of average of  Best 6 out of 8 assignments
  • E-Certificate will be given to those who register and write the exam and score greater than or equal to 40% final score. Certificate will have your name, photograph and the score in the final exam with the breakup.It will have the logos of NPTEL and IIT Kharagpur. It will be e-verifiable at nptel.ac.in/noc.