X

Programming in Modern C++

By Prof. Partha Pratim Das   |   IIT Kharagpur
Learners enrolled: 24189
ABOUT THE COURSE :
There has been a continual debate on which programming language/s to learn, to use. As the latest TIOBE Programming Community Index for August 2021 indicates – C (13%), Python (12%), C++ (7%), Java (10%), and C#(5%) together control nearly half the programming activities worldwide. Further, C Programming Language Family (C, C++, C#, Objective C etc.) dominate more than 25% of activities. Hence, learning C++ is important as one learns about the entire family, about Object-Oriented Programming and gets a solid foundation to also migrate to Java and Python as needed. C++ is the mother of most general purpose of languages. It is multi-paradigm encompassing procedural, object-oriented, generic, and even functional programming. C++ has primarily been the systems language till C++03 which punches efficiency of the code with the efficacy of OOP. Then, why should I learn it if my primary focus is on applications? This is where the recent updates of C++, namely, C++11 and several later 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 / 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. The course also covers important advances in C++11 and later released features.


PRE-REQUISITE: Programming & Data Structure (mandatory), Programming in C (optional). Design and Analysis of Algorithms (optional).

INDUSTRY SUPPORT: 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, Oracle, Google, IBM, TCS, Infosys, Amazon, Flipkart, etc. This course would help industry developers to be up-to-date with the advances in C++ so that they can remain at the state-of-the-art.
Summary
Course Status : Completed
Course Type : Core
Language for course content : English
Duration : 12 weeks
Category :
  • Computer Science and Engineering
Credit Points : 3
Level : Undergraduate/Postgraduate
Start Date : 23 Jan 2023
End Date : 14 Apr 2023
Enrollment Ends : 06 Feb 2023
Exam Registration Ends : 17 Mar 2023
Exam Date : 29 Apr 2023 IST

Note: This exam date is subject 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.
Week 2: C++ as Better C.
Week 3: OOP in C++.
Week 4: OOP in C++.
Week 5: Inheritance.
Week 6: Polymorphism.
Week 7: Type Casting.
Week 8: Exceptions and Templates.
Week 9: Streams and STL.
Week 10: Modern C++.
Week 11: Lambda and Concurrency.
Week 12: Move, Rvalue and STL Containers.

Books and references

Online Material:
  1. C++ reference - C++98 and C++03, C++11, C++14.
  2. Overview of the New C++ (C++11/14) by Scott Meyers, 2015.
  3. ISO C++ Standards.
  4. Presentations used in the Course.
Books:
  1. C++ Move Semantics - The Complete Guide by Nicolai M. Josuttis, 2020.
  2. C++ Concurrency in Action, 2nd Edition by Anthony Williams, 2019.
  3. C++17 - The Complete Guide by Nicolai M. Josuttis, 2020.
  4. C++17 In Detail: Learn the Exciting Features of The New C++ Standard! by Bartlomiej Filipek, 2019.
  5. Professional C++, 4th Edition by Marc Gregoire, 2018.
  6. Functional Programming in C++ by Ivan Čukić, 2018.
  7. Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 by Scott Meyers, 2015.

Instructor bio

Prof. Partha Pratim Das

IIT Kharagpur
Prof. 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.

Dr. Das is currently the Head of Rajendra Mishra School of Engineering Entrepreneurship, the Professor-inCharge of the upcoming Research Park of IIT Kharagpur at Rajarhat, Kolkata, and the Joint Principal Investigator of National Digital Library of India project of MHRD.

Dr. Das has taught several courses in Computer Science including Software Engineering, Object-Oriented Systems, Programming and Data Structure, Compiler Design, Design and Analysis of Algorithms, Information System Design, Database Management Systems, Computational Geometry, Principles of Programming Languages, Embedded Systems, and Image Processing. Jointly with 2 others, he has also offered a course on Introduction to Design of Algorithms under the T10KT program of NME-ICT, MHRD (https://www.facebook.com/t10kt.algorithms/) to nearly 7000 teachers. Further, Dr. Das has been offering Programming in C++ and Object-Oriented Analysis and Design in NPTEL-NOC. Both courses are regularly attended by thousands of students.

Dr. Das has published over 40 technical papers in international journals in areas of Digital Geometry, Image Processing, Parallel Computing and Knowledge-based Systems. In 2013 he has co-authored a research monograph titled Digital Geometry in Image Processing (CRC Press). His current interests include Human-Computer Interactions, Computer Analysis of Indian Classical Dance, Object-Oriented Systems Analysis and Design, Software Engineering, Compiler Technology, and Technology Enabled Learning. Dr. Das is a member of Association of Computing Machinery (ACM), The Institute of Electrical and Electronics Engineers (IEEE), and Indian Unit for Pattern Recognition and Artificial Intelligence (IUPRAI).  

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 centres.
The exam is optional for a fee of Rs 1000/- (Rupees one thousand only).
Date and Time of Exams: 
29 April 2023 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 8 assignments out of the total 12 assignments given in the course.
(All assignments in a particular week will be counted towards final scoring - quizzes and programming assignments).
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.

NOTE: Please note that there will not be an unproctored programming exam for this course this term.

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 will not be dispatched.

Once again, thanks for your interest in our online courses and certification. Happy learning.

- NPTEL team


MHRD logo Swayam logo

DOWNLOAD APP

Goto google play store

FOLLOW US