X

Programming in C++

By Prof. Partha Pratim Das   |   IIT Kharagpur
Learners enrolled: 22152
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!

INTENDED AUDIENCE: BCA, MCA, B.Tech., M.Tech.

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

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


Summary
Course Status : Completed
Course Type : Core
Duration : 8 weeks
Category :
  • Computer Science and Engineering
Credit Points : 2
Level : Postgraduate
Start Date : 29 Jul 2019
End Date : 20 Sep 2019
Exam Date : 29 Sep 2019 IST

Note: This exam date is subjected to change based on seat availability. You can check final exam date on your hall ticket.


Page Visits



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

Books and references

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 

Instructor bio



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 certificate

  • The course is free to enroll and learn from. But if you want a certificate, you have to register and write the proctored exam conducted by us in person at any of the designated exam centers.
  • The exam is optional for a fee of Rs 1000/- (Rupees one thousand only).
  • Date and Time of Exams: 29th September 2019, Morning session 9am to 12 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. If there are any changes, it will be mentioned then.
  • Please check the form for more details on the cities where the exams will be held, the conditions you agree to when you fill the form etc.

CRITERIA TO GET A CERTIFICATE
  • Average assignment score = 25% of average of best 6 assignments out of the total 8 assignments given in the course. (use as per duration of the course)
  • Exam score = 75% of the proctored certification exam score out of 100
  • Final score = Average assignment score + Exam score

YOU WILL BE ELIGIBLE FOR A CERTIFICATE ONLY IF AVERAGE ASSIGNMENT SCORE >=10/25 AND EXAM SCORE >= 30/75
  • If one of the 2 criteria is not met, you will not get the certificate even if the Final score >= 40/100.
  • 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.
  • Only the e-certificate will be made available. Hard copies are being discontinued from July 2019 semester and will not be dispatched.


MHRD logo Swayam logo

DOWNLOAD APP

Goto google play store

FOLLOW US