# Programming, Data Structures and Algorithms using C

- Institution: IIT Madras
- Department: Computer Science and Engineering
- Taught by: Prof. Hema A Murthy, Prof. Shankar Balachandran, Prof. N. S. Narayanaswamy, Prof. Sudarshan Iyengar
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106106127)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106106127)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

## Lectures

1. [Introduction to Computers and Programming](https://invisiblenetwork.ai/learn/nptel/106106127/24523efc9cdc) (Video)
2. [Writing your first program](https://invisiblenetwork.ai/learn/nptel/106106127/95dfeceb769f) (Video)
3. [Variables, Operators and Expressions](https://invisiblenetwork.ai/learn/nptel/106106127/d8945c40d63b) (Video)
4. [Variable declarations, more operators and precedence](https://invisiblenetwork.ai/learn/nptel/106106127/9e31d122af45) (Video)
5. [Input and Output Statements](https://invisiblenetwork.ai/learn/nptel/106106127/6972c61ff2a1) (Video)
6. [Conditionals](https://invisiblenetwork.ai/learn/nptel/106106127/8fc856ba6d6d) (Video)
7. [Loops](https://invisiblenetwork.ai/learn/nptel/106106127/fa28d3516898) (Video)
8. [Video Solution to Digital Root Programming Assignment](https://invisiblenetwork.ai/learn/nptel/106106127/09286d8a28fc) (Video)
9. [Introduction to arrays](https://invisiblenetwork.ai/learn/nptel/106106127/abe45a2a62bd) (Video)
10. [Working with 1D arrays](https://invisiblenetwork.ai/learn/nptel/106106127/829ec0742571) (Video)
11. [Find prime numbers](https://invisiblenetwork.ai/learn/nptel/106106127/97ccb4619cac) (Video)
12. [Debugging demo](https://invisiblenetwork.ai/learn/nptel/106106127/3a3fd3480805) (Video)
13. [Multi-dimensional arrays](https://invisiblenetwork.ai/learn/nptel/106106127/58198ad4a206) (Video)
14. [Pointers](https://invisiblenetwork.ai/learn/nptel/106106127/62221a8d71e0) (Video)
15. [More on pointers](https://invisiblenetwork.ai/learn/nptel/106106127/caefdf88dc00) (Video)
16. [Arrays and pointer arithmetic](https://invisiblenetwork.ai/learn/nptel/106106127/5ecc4a10a9ea) (Video)
17. [Introduction to Strings](https://invisiblenetwork.ai/learn/nptel/106106127/6639b0a7db2b) (Video)
18. [More on Strings](https://invisiblenetwork.ai/learn/nptel/106106127/0782f10029d6) (Video)
19. [Video Solution to Print Elements of a Matrix in Spiral Order Programming Assignment](https://invisiblenetwork.ai/learn/nptel/106106127/9c7bde7c2084) (Video)
20. [Introduction to functions](https://invisiblenetwork.ai/learn/nptel/106106127/d9e0e224d1f9) (Video)
21. [More details on functions](https://invisiblenetwork.ai/learn/nptel/106106127/f1f260e6fa7e) (Video)
22. [Arguments, variables and parameters](https://invisiblenetwork.ai/learn/nptel/106106127/2170af202ee5) (Video)
23. [Pass parameters by reference](https://invisiblenetwork.ai/learn/nptel/106106127/74a5c12d3576) (Video)
24. [Recursive functions](https://invisiblenetwork.ai/learn/nptel/106106127/48f34a992939) (Video)
25. [Running time of a program](https://invisiblenetwork.ai/learn/nptel/106106127/c176cf391511) (Video)
26. [Computing time complexity](https://invisiblenetwork.ai/learn/nptel/106106127/5c0f7632c45f) (Video)
27. [Video Solution to Palindrome Checker Programming Assignment](https://invisiblenetwork.ai/learn/nptel/106106127/4402c9e50cad) (Video)
28. [Algorithms and Powering](https://invisiblenetwork.ai/learn/nptel/106106127/e40bc2b672e6) (Video)
29. [Polynomial evaluation and multiplication](https://invisiblenetwork.ai/learn/nptel/106106127/77a09f545dab) (Video)
30. [Linear and Binary Search Analysis](https://invisiblenetwork.ai/learn/nptel/106106127/a746fc15b82b) (Video)
31. [Analysis of minimum and maximum in an array](https://invisiblenetwork.ai/learn/nptel/106106127/d0d16f2f5fe0) (Video)
32. [Sorting I: Insertion, Merge](https://invisiblenetwork.ai/learn/nptel/106106127/79db8cd1645a) (Video)
33. [Sorting II: Counting, Radix](https://invisiblenetwork.ai/learn/nptel/106106127/4d680fd53bd0) (Video)
34. [Finding i-th smallest number](https://invisiblenetwork.ai/learn/nptel/106106127/b31b462873e1) (Video)
35. [Video Solution to Sorting words Programming Assignment](https://invisiblenetwork.ai/learn/nptel/106106127/bc444466e69b) (Video)
36. [Structures](https://invisiblenetwork.ai/learn/nptel/106106127/188278e19648) (Video)
37. [More on structures](https://invisiblenetwork.ai/learn/nptel/106106127/a1553a1d5039) (Video)
38. [Using structures and pointers to structures](https://invisiblenetwork.ai/learn/nptel/106106127/cbe9230027af) (Video)
39. [Dynamic memory allocation](https://invisiblenetwork.ai/learn/nptel/106106127/29f23ca23ceb) (Video)
40. [Linked Lists](https://invisiblenetwork.ai/learn/nptel/106106127/b2d1c8cd41b6) (Video)
41. [Brief introduction to C++: Classes and objects](https://invisiblenetwork.ai/learn/nptel/106106127/2d62794290ea) (Video)
42. [Data Structures: Abstract Data Type](https://invisiblenetwork.ai/learn/nptel/106106127/2ba98d3ec06a) (Video)
43. [Lists](https://invisiblenetwork.ai/learn/nptel/106106127/b902fee20a83) (Video)
44. [Supplementary Lesson](https://invisiblenetwork.ai/learn/nptel/106106127/4027d4a101e8) (Video)
45. [Video Solution to Implementing a Hash Table ADT Programming Assignment](https://invisiblenetwork.ai/learn/nptel/106106127/c7b10941b6ae) (Video)
46. [Stacks: Last In First Out](https://invisiblenetwork.ai/learn/nptel/106106127/a9f430e7139d) (Video)
47. [Queues: First In First Out](https://invisiblenetwork.ai/learn/nptel/106106127/adbeca0bbeb5) (Video)
48. [Trees](https://invisiblenetwork.ai/learn/nptel/106106127/90d7fba21c09) (Video)
49. [Tree traversal](https://invisiblenetwork.ai/learn/nptel/106106127/63b43b3b535b) (Video)
50. [Binary Search Trees](https://invisiblenetwork.ai/learn/nptel/106106127/6a3bab596ab7) (Video)
51. [Heaps](https://invisiblenetwork.ai/learn/nptel/106106127/f38aa1f99ccf) (Video)
52. [Graphs and Representation](https://invisiblenetwork.ai/learn/nptel/106106127/d8d32a978188) (Video)
53. [Supplementary Lesson](https://invisiblenetwork.ai/learn/nptel/106106127/5d42574a983a) (Video)
54. [Video Solution to the Queue in a Hospital Programming Assignment](https://invisiblenetwork.ai/learn/nptel/106106127/597b8a3b952e) (Video)
55. [Greedy Algorithms](https://invisiblenetwork.ai/learn/nptel/106106127/0255aacb9c83) (Video)
56. [Dynamic Programming](https://invisiblenetwork.ai/learn/nptel/106106127/f7ac609c90fc) (Video)
57. [Matrix Chain Multiplication](https://invisiblenetwork.ai/learn/nptel/106106127/056887727c5c) (Video)
58. [Dijkstra's Algorithm](https://invisiblenetwork.ai/learn/nptel/106106127/e50808a7ed9a) (Video)
59. [Boyer-Moore String Matching Algorithm](https://invisiblenetwork.ai/learn/nptel/106106127/0ea6ed070185) (Video)
60. [File I/O](https://invisiblenetwork.ai/learn/nptel/106106127/2822fa3ab227) (Video)
61. [Modular Programming](https://invisiblenetwork.ai/learn/nptel/106106127/0feea28e0f24) (Video)
