X
X
X

X
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.


Pre-requisites

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.

21745 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 

CERTIFICATION EXAM :
  • 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.
CERTIFICATION:

  • 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.