Module 1. Module 2. Module 3. Module 4. Module 5. Module 6. Module 7. Video Solution to Digital Root Programming Assignment. Module 8a. Module 8b. Module 8c. Module debugging Demo module. Module 9a. Module 9b. Module 9c. Module 9d. Module 13a. Module 13b. Video Solution to Print Elements of a Matrix in Spiral Order Programming Assignment. Introduction to functions. More details on functions. Arguments, variables and parameters. Pass parameters by reference. Recursive functions. Running time of a program. Module 3. Video Solution to Palindrome Checker Programming Assignment. Algorithms and Powering. Polynomial evaluation and multiplication. Linear and Binary Search Analysis. Analysis of minimum and maximum in an array. Sorting I: Insertion, Merge. Sorting II: Counting, Radix. Finding i-th smallest number. Video Solution to Sorting words Programming Assignment. Structures. More on structures. Using structures and pointers to structures. Dynamic memory allocation. Linked Lists. Brief introduction to C++: Classes and objects. Data Structures: Abstract Data Type. Lists. Supplementary Lesson. Video Solution to Implementing a Hash Table ADT Programming Assignment. Stacks: Last In First Out. Queues: First In First Out. Trees. Tree traversal. Binary Search Trees. Heaps. Graphs and Representation. Supplementary Lesson. Video Solution to the Queue in a Hospital Programming Assignment. Greedy Algorithms. Dynamic Programming. Matrix Chain Multiplication. Boyer-Moore String Matching Algorithm. File I/O. Modular Programming.