Course Name: Programming in Modern C++

Course abstract

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.


Course Instructor

Media Object

Prof. Partha Pratim Das

Dr. Partha Pratim Das is a Professor at the Department of Computer Science and Engineering, IIT Kharagpur, India. He is also the Joint Principal Investigator of National Digital Library of India project of Ministry of Education and leads the initiative to integrate the Digital Repositories of various Institutions. Dr. 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 moved to the industry and served in director positions till 2011. His current interests include Software Productivity and Quality, Human-Computer Interaction, Computer Analysis of Indian Classical Dance, and Technology-Enhanced Learning. He has published over 100 papers in national / international journals and conferences and has been the Editor-in-Chief of The Journal of Institution of Engineers: Series B from 2013-20. Dr. Das has taught several courses in Computer Science. In the past 5 years he has been teaching Software Engineering, Programming and Data Structure, Principles of Programming Languages, Foundations of Algorithms and Machine Learning, and Compiler Design. He has three NPTEL Courses Programming in C++, Object-Oriented Analysis and Design and Database Management System that are being offered to thousands of students online once or twice a year for the past five years.
More info

Teaching Assistant(s)

No teaching assistant data available for this course yet
 Course Duration : Jan-Apr 2022

  View Course

 Enrollment : 14-Nov-2021 to 31-Jan-2022

 Exam registration : 13-Dec-2021 to 18-Mar-2022

 Exam Date : 23-Apr-2022

Enrolled

Will be announced

Registered

Will be announced

Certificate Eligible

Will be announced

Certified Category Count

Gold

Will be announced

Silver

Will be announced

Elite

Will be announced

Successfully completed

Will be announced

Participation

Will be announced

Success

Elite

Gold





Legend

Final Score Calculation Logic

Enrollment Statistics

Total Enrollment: 12421

Assignment Statistics




Score Distribution Graph - Legend

Assignment Score: Distribution of average scores garnered by students per assignment.
Exam Score : Distribution of the final exam score of students.
Final Score : Distribution of the combined score of assignments and final exam, based on the score logic.