Lecture 1 - Introduction to Computers and Programming
Lecture 2 - Writing your first program
Lecture 3 - Variables, Operators and Expressions
Lecture 4 - Variable declarations, more operators and precedence
Lecture 5 - Input and Output Statements
Lecture 6 - Conditionals
Lecture 7 - Loops
Lecture 8 - Video Solution to Digital Root Programming Assignment
Lecture 9 - Introduction to arrays
Lecture 10 - Working with 1D arrays
Lecture 11 - Find prime numbers
Lecture 12 - Debugging demo
Lecture 13 - Multi-dimensional arrays
Lecture 14 - Pointers
Lecture 15 - More on pointers
Lecture 16 - Arrays and pointer arithmetic
Lecture 17 - Introduction to Strings
Lecture 18 - More on Strings
Lecture 19 - Video Solution to Print Elements of a Matrix in Spiral Order Programming Assignment
Lecture 20 - Introduction to functions
Lecture 21 - More details on functions
Lecture 22 - Arguments, variables and parameters
Lecture 23 - Pass parameters by reference
Lecture 24 - Recursive functions
Lecture 25 - Running time of a program
Lecture 26 - Computing time complexity
Lecture 27 - Video Solution to Palindrome Checker Programming Assignment
Lecture 28 - Algorithms and Powering
Lecture 29 - Polynomial evaluation and multiplication
Lecture 30 - Linear and Binary Search Analysis
Lecture 31 - Analysis of minimum and maximum in an array
Lecture 32 - Sorting I: Insertion, Merge
Lecture 33 - Sorting II: Counting, Radix
Lecture 34 - Finding i-th smallest number
Lecture 35 - Video Solution to Sorting words Programming Assignment
Lecture 36 - Structures
Lecture 37 - More on structures
Lecture 38 - Using structures and pointers to structures
Lecture 39 - Dynamic memory allocation
Lecture 40 - Linked Lists
Lecture 41 - Brief introduction to C++: Classes and objects
Lecture 42 - Data Structures: Abstract Data Type
Lecture 43 - Lists
Lecture 44 - Supplementary Lesson
Lecture 45 - Video Solution to Implementing a Hash Table ADT Programming Assignment
Lecture 46 - Stacks: Last In First Out
Lecture 47 - Queues: First In First Out
Lecture 48 - Trees
Lecture 49 - Tree traversal
Lecture 50 - Binary Search Trees
Lecture 51 - Heaps
Lecture 52 - Graphs and Representation
Lecture 53 - Supplementary Lesson
Lecture 54 - Video Solution to the Queue in a Hospital Programming Assignment
Lecture 55 - Greedy Algorithms
Lecture 56 - Dynamic Programming
Lecture 57 - Matrix Chain Multiplication
Lecture 58 - Dijkstra's Algorithm
Lecture 59 - Boyer-Moore String Matching Algorithm
Lecture 60 - File I/O
Lecture 61 - Modular Programming