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