NPTEL : NOC:An Introduction to Programming through C++ (Computer Science and Engineering)

Co-ordinators : Prof. Abhiram G Ranade


Lecture 1 - Introduction - Part 1

Lecture 2 - Introduction - Part 2

Lecture 3 - Introduction - Part 3

Lecture 4 - Introduction - Part 4

Lecture 5 - Problem Solving using Computer - Part 1

Lecture 6 - Problem Solving using Computer - Part 2

Lecture 7 - Problem Solving using Computer - Part 3

Lecture 8 - Problem Solving using Computer - Part 4

Lecture 9 - Problem Solving using Computer - Part 5

Lecture 10 - Basic Elements of Program - Part 1

Lecture 11 - Basic Elements of Program - Part 2

Lecture 12 - Basic Elements of Program - Part 3

Lecture 13 - Basic Elements of Program - Part 4

Lecture 14 - Program Design - Part 1

Lecture 15 - Program Design - Part 2

Lecture 16 - Program Design - Part 3

Lecture 17 - Simple cpp Graphics

Lecture 18 - Conditional Execution - Part 1

Lecture 19 - Most general form of if - Part 2

Lecture 20 - More general form of conditions - Part 3

Lecture 21 - A somewhat large program example - Part 4

Lecture 22 - Switch statement and logical data - Part 5

Lecture 23 - Loops - Part 1

Lecture 24 - Mark averaging - Part 2

Lecture 25 - The break and continue statements - Part 3

Lecture 26 - The for statement - Part 4

Lecture 27 - Euclid's algorithm for GCD - Part 5

Lecture 28 - Correctness proof for GCD - Part 6

Lecture 29 - Computing Mathematical Functions - Part 1 : Taylor series

Lecture 30 - Computing Mathematical Functions - Part 2 : Numerical integration

Lecture 31 - Computing Mathematical Functions - Part 3 : Bisection Method

Lecture 32 - Computing Mathematical Functions - Part 4 : Newton Raphson Method

Lecture 33 - Loops in various applications - Part 1 : Loops in various applications brute force algorithms

Lecture 34 - Loops in various applications - Part 2 : Finding Pythagorean Triples

Lecture 35 - Loops in various applications - Part 3 : Modelling a system: bargaining

Lecture 36 - Loops in various applications - Part 4 : Simulating a water tank

Lecture 37 - Loops in various applications - Part 5 : Arithmetic on very large numbers

Lecture 38 - Functions - Part 1 : Basics

Lecture 39 - Functions - Part 2 : Examples

Lecture 40 - Functions - Part 3 : Reference parameters

Lecture 41 - Functions - Part 4 : Pointers

Lecture 42 - Functions - Part 5 : Graphics Objects and Lecture conclusion

Lecture 43 - Recursion - Part 1 : Introduction

Lecture 44 - Recursion - Part 2 : Recursive objects, Tree drawing

Lecture 45 - Recursion - Part 3 : How to think about recursion

Lecture 46 - Virahanka Numbers - Part 1 : Introduction

Lecture 47 - Virahanka Numbers - Part 2 : Recursive Program

Lecture 48 - Virahanka Numbers - Part 3 : Iterative Program and Conclusion

Lecture 49 - Program Organization and Functions - Part 1 : Introduction

Lecture 50 - Program Organization and Functions - Part 2 : Splitting into files

Lecture 51 - Program Organization and Functions - Part 3 : Namespaces

Lecture 52 - Program Organization and Functions - Part 4 : How to use C++ without simplecpp

Lecture 53 - Advanced Features of Functions - Part 1 : Introduction and passing one function to another

Lecture 54 - Advanced Features of Functions - Part 2 : Lambda expressions

Lecture 55 - Advanced Features of Functions - Part 3 : Default values to parameters

Lecture 56 - Advanced Features of Functions - Part 4 : Function overloading and lecture conclusion

Lecture 57 - Array Part-1 - Part 1 : Introduction

Lecture 58 - Array Part-1 - Part 2 : Marks averaging problem

Lecture 59 - Array Part-1 - Part 3 : Histogram computation

Lecture 60 - Array Part-1 - Part 4 : Marks display variation

Lecture 61 - Array Part-1 - Part 5 : Polynomial multiplication

Lecture 62 - Array Part-1 - Part 6 : Queues in dispatching taxis

Lecture 63 - Array Part-1 - Part 7 : More efficient Queues in dispatching taxis

Lecture 64 - Array Part-1 - Part 8 : Disk intersection

Lecture 65 - Array Part-1 - Part 9 : Arrays of graphical objects and conclusion

Lecture 66 - Array Part-2 - Part 1 : Introduction

Lecture 67 - Array Part-2 - Part 2 : Interpretation of aname[index]

Lecture 68 - Array Part-2 - Part 3 : Arrays and function calls

Lecture 69 - Array Part-2 - Part 4 : A function to sort an array

Lecture 70 - More on Arrays - Part 1 : Textual data

Lecture 71 - More on Arrays - Part 2 : Functions on character strings

Lecture 72 - More on Arrays - Part 3 : Two dimensional arrays

Lecture 73 - More on Arrays - Part 4 : Command Line Arguments

Lecture 74 - Arrays and recursion - Part 1 : Binary Search Introduction

Lecture 75 - Arrays and recursion - Part 2 : Binary search analysis

Lecture 76 - Arrays and recursion - Part 3 : Mergesort overview

Lecture 77 - Arrays and recursion - Part 4 : Merge function

Lecture 78 - Arrays and recursion - Part 5 : Mergesort conclusion

Lecture 79 - Structures - Part 1 : Definition and instantiation

Lecture 80 - Structures - Part 2 : Operations on structures

Lecture 81 - Structures - Part 3 : An example program

Lecture 82 - Structures - Part 4 : Pointers and lecture conclusion

Lecture 83 - Structures Part 2 - Part 1 : Introduction to Member functions

Lecture 84 - Structures Part 2 - Part 2 : Vectors from Physics

Lecture 85 - Structures Part 2 - Part 3 : Taxi dispatch

Lecture 86 - Classes - Part 1 : Introduction

Lecture 87 - Classes - Part 2 : Constructors

Lecture 88 - Classes - Part 3 : Operator overloading

Lecture 89 - Classes - Part 4 : Access control

Lecture 90 - Classes - Part 5 : Classes for graphics and input output

Lecture 91 - Classes - Part 6 : General remarks

Lecture 92 - Representing variable length entities - Part 1 : Introduction

Lecture 93 - Representing variable length entities - Part 2 : Heap memory basics

Lecture 94 - Representing variable length entities - Part 3 : Pitfalls of using heap memory

Lecture 95 - Representing variable length entities - Part 4 : Automating memory management

Lecture 96 - Representing variable length entities - Part 5 : Implementing a class with automated memory management - 1

Lecture 97 - Representing variable length entities - Part 6 : Implementing a class with automated memory management - 2

Lecture 98 - Representing variable length entities - Part 7 : Using the implemented class and conclusion

Lecture 99 - The Standard Library - Part 1 : Class string

Lecture 100 - The Standard Library - Part 2 : Class vector

Lecture 101 - The Standard Library - Part 3 : Sorting vectors and arrays

Lecture 102 - The Standard Library - Part 4 : Classes map and unordered_map

Lecture 103 - The Standard Library - Part 5 : Iterators

Lecture 104 - Data structure based programming - Part 1 : Introduction

Lecture 105 - Data structure based programming - Part 2 : Set and pair classes

Lecture 106 - Data structure based programming - Part 3 : Implementation of standard library data structures

Lecture 107 - Data structure based programming - Part 4 : Composing data structures

Lecture 108 - Data structure based programming - Part 5 : typedef and lecture conclusion

Lecture 109 - Medium size programs - Part 1 : The new marks display program

Lecture 110 - Medium size programs - Part 2 : Manual algorithm for new marks display

Lecture 111 - Medium size programs - Part 3 : RSMTAB and rest of the program

Lecture 112 - Medium size programs - Part 4 : Sophisticated solutions to marks display

Lecture 113 - A graphical editor and solver for circuits - Part 1 : Outline

Lecture 114 - A graphical editor and solver for circuits - Part 2 : Main program and organization

Lecture 115 - A graphical editor and solver for circuits - Part 3 : Mathematical representation of the circuit

Lecture 116 - A graphical editor and solver for circuits - Part 4 : Extensions and concluding remarks

Lecture 117 - Cosmological simulation - Part 1 : Introduction and First order Euler method

Lecture 118 - Cosmological simulation - Part 2 : Second order Euler method

Lecture 119 - Cosmological simulation - Part 3 : The program

Lecture 120 - Cosmological simulation - Part 4 : Concluding remarks