IIT Bombay has organised this course while keeping in mind the value of basic programming to all. According to IIT Bombay, C++ allows one to design very fast programs and access low-level machine features. At the same time, its libraries provide a very high-level programming model. Some even consider C++, a modern, safer version of the C language.
This course provides an approach to problem-solving and programming using the C++ programming language. The topics include basic programming notions, control flow, variables and assignments statements, conditional execution, looping, function calls including recursion, arrays and structure, an elementary aspects of classes, heap memory, program design. It further ventures into the array of how human beings solve problems manually.
Moreover, the course includes strategies to translate manual strategies to computer programs, organizing large programs into units such as functions and classes, introduction to assertions and invariants, programming applications, arithmetic on polynomials, matrices, root finding, sorting and searching, design of editors and simulators, including graphical editors; elementary animation, a rudimentary graphics system, standard Library of C++ and the string, vector and map classes.
Who can enrol in the course?
This is an Undergraduate computer science level course which the first and second-year students can easily take. But anyone can enrol in the course. The only prerequisite is you should have had Science in Class 12.
Timeline of the course
This Elective course has a duration of 12 weeks. It will start from 18 January 2021 and end on 09 April 2021. If you want the certificate, you have to give a proctored exam on 25 April 2021. The last date to enrol is 25 January 2020.
Who will teach this course?
Prof. Abhiram G. Ranade will lead the course. He is a professor of Computer Science and Engineering at IIT Bombay who obtained a BTech degree in Electrical Engineering from IIT Bombay in 1981. In 1988, he obtained a PhD in Computer Science from Yale University, USA. Later, he was an Assistant professor of Electrical Engineering and Computer Science at the University of California, Berkeley, the USA during 1988-94. Since 1995, he has been a faculty member in IIT Bombay. His research interests are Algorithms, Combinatorial Optimization, Scheduling in Transportation Systems, and Programming Education. He has also won Excellence in Teaching Awards of IIT Bombay in 2006-07 and 2010-11.
What will the course teach?
This is a 12-week-long course. Here’s the itinerary for the course.
W1: Introduction to computers using graphics, notions of program organization and control flow. Introduction to repeat the macro statement and its use for drawing interesting pictures. Basics of computer hardware and how numbers and other information are represented and processed on computers.
W2: Basic data types - Variables, assignment statement. Also, introduction to program design using examples such as summing infinite series. Further, introduction to coordinate based graphics and elementary animation and how the repeat macro is used for looping.
W3-4: Statements of C++ for conditional execution and looping. Also, applications such as computing mathematical functions, root finding.
W5: Functions, parameter passing, pointers and references and recursion basics.
W6: Recursive algorithms and recursive drawings and breaking larger programs into functions. Also, passing functions as arguments to other functions.
W7: Basic array processing strategies including passing arrays to functions. Further, in pointers, applications illustrating the use of arrays to store sets and sequences and iterating over pairs of objects from an array and also selection sort.
W8: Use of arrays to represent textual data, multidimensional arrays, command-line arguments, binary search and also mergesort.
W9: Structures, pointers with structures, structure examples, basics of classes, member functions, constructors, operator overloading and access control.
W10: Dynamic memory allocation, basic mechanisms and pitfalls, design of a "String" class that has automated memory management, copy constructors and destructors. Also, introduction to the standard library.
W11-12: Use of the standard library in designing programs, design of medium-size programs. A miniature program for marks and ranks display, a program for gravitational simulation, a program for designing and solving resistive circuits with a graphical user interface.
How to obtain a certificate from IIT Bombay?
The course is free to enrol and learn. But if you want a certificate, you have to register and write the optional proctored exam. The fee for this exam is ₹ 1000. Also, the successful completion of the exam does not guarantee a certificate. To get a certificate, you need to get 25% from the assignments and 75% of the proctored certification exam score out of 100.
Final score = Average assignment score (>10/25) + Exam score (>30/75). If one of the 2 criteria is not met, you will still not get the certificate even if the Final score > 40/100.
This printable certificate will carry the stamp from both NPTEL and IIT Bombay. Further, you can enrol in the course here.