Programming, Data Structures and Algorithms
Programming, Data Structures and Algorithms. Instructor: Prof. N. S. Narayanaswamy, Prof. Hema A. Murthy and Prof. Shankar Balachandran, Department of Computer Science and Engineering, IIT Madras. This is a course on programming, data structures and algorithms. The learner is assumed to have no prior experience of programming, but is expected to be at the level of a second year undergraduate college student in science or engineering. The course will run over ten weeks with about 2-3 hours of lectures per week. At the end of each week, the learner is expected to write some programs and submit them for grading. These programming problems are classified as easy, moderate or difficult. The easy problems, typically, are repeats from the lecture. The moderate and difficult ones will require increasing levels of initiative from the learner. In addition, at the end of each week the learner is expected to answer a set of objective-type assessment questions.
(from nptel.ac.in)
Go to the Course Home or watch other lectures:
Basic Programming Constructs |
Lecture 01 - Introduction to Computers and Programming |
Lecture 02 - Writing Your First Program |
Lecture 03 - Variables, Operators and Expressions |
Lecture 04 - Variable Declarations, More Operators and Precedence |
Lecture 05 - Input and Output Statements |
Lecture 06 - Conditionals |
Lecture 07 - Loops |
Arrays, Pointers and Strings |
Lecture 08 - Introduction to Arrays |
Lecture 09 - Working with 1D Arrays |
Lecture 10 - Find Prime Numbers |
Lecture 11 - Debugging Demo |
Lecture 12 - Multi-dimensional Arrays |
Lecture 13 - Pointers |
Lecture 14 - More on Pointers |
Lecture 15 - Arrays and Pointer Arithmetic |
Lecture 16 - Introduction to Strings |
Lecture 17 - More on Strings |
Functions, Time Complexity |
Lecture 18 - Introduction to Functions |
Lecture 19 - More Details on Functions |
Lecture 20 - Arguments, Variables and Parameters |
Lecture 21 - Pass Parameters by Reference |
Lecture 22 - Recursive Functions |
Lecture 23 - C Control Structures, Functional Specification of Programs |
Lecture 24 - Complexity Analysis using Sum and Product Rule |
Lecture 25 - Complexity Analysis of Recursive Functions |
Sorting and Searching Algorithms |
Lecture 26 - Algorithms and Powering |
Lecture 27 - Polynomial Evaluation and Multiplication |
Lecture 28 - Linear and Binary Search Analysis |
Lecture 29 - Analysis of Minimum and Maximum in an Array |
Lecture 30 - Sorting I: Insertion, Merge |
Lecture 31 - Sorting II: Counting, Radix |
Lecture 32 - Finding i-th Smallest Number |
Structures, Dynamic Memory Allocation and ADTs |
Lecture 33 - Structures |
Lecture 34 - More on Structures |
Lecture 35 - Using Structures and Pointers to Structures |
Lecture 36 - Dynamic Memory Allocation |
Lecture 37 - Linked List |
Lecture 38 - Brief Introduction to C++; Classes and Objects |
Lecture 39 - Abstract Data Types |
Lecture 40 - More on Abstract Data Types |
Stacks, Queues, Heaps, Trees and Graphs |
Lecture 41 - Stacks: Last In First Out |
Lecture 42 - Queues: First In First Out |
Lecture 43 - Trees |
Lecture 44 - Tree Traversal |
Lecture 45 - Binary Search |
Lecture 46 - Heaps |
Lecture 47 - Graphs and Representations |
Greedy Algorithms and Dynamic Programming |
Lecture 48 - Greedy Algorithms |
Lecture 49 - Dynamic Programming |
Lecture 50 - Matrix Chain Multiplication |
Hash Tables and Graph Algorithms |
Lecture 51 - Hash Tables |
Lecture 52 - Graph Algorithms: Dijkstra's Algorithms and Prim's Algorithms |
Graph Traversal, Articulation Points, File I/O, Modular Programming |
Lecture 53 - Graph Traversals: BFS, DFS and Articulation Points |
Lecture 54 - File Input and Output |
Lecture 55 - Modular Programming |