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