# Problem Solving through Programming in C

- Institution: IIT Kharagpur
- Department: Computer Science and Engineering
- Teacher: Prof. Anupam Basu
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering
- Source: [NPTEL](https://nptel.ac.in/courses/106105171)
- Licence: [CC BY-NC-SA](https://nptel.ac.in/faq) (Non-commercial use only.)
- Syllabus: [at the source](https://nptel.ac.in/courses/106105171)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

This course is aimed at enabling the students to

Formulate simple algorithms for arithmetic and logical problems

Translate the algorithms to programs (in C language)

Test and execute the programs and correct syntax and logical errors

Implement conditional branching, iteration and recursion

Decompose a problem into functions and synthesize a complete program using divide and conquer approach

Use arrays, pointers and structures to formulate algorithms and programs

Apply programming to solve matrix addition and multiplication problems and searching and sorting problems

Apply programming to solve simple numerical method problems, namely rot finding of function, differentiation of function and simple integration

INTENDED AUDIENCE : BE/BTech in all disciplines BCA/MCA/M. Sc

INDUSTRY SUPPORT : All IT Industries

## Lectures

1. [Lecture 1 : Introduction](https://invisiblenetwork.ai/learn/nptel/106105171/61388d12a8d9) (YouTube)
2. [Lecture 2: Idea of Algorithms](https://invisiblenetwork.ai/learn/nptel/106105171/2db0e57ddea1) (YouTube)
3. [Lecture 3: Flow Chart and Pseudocode](https://invisiblenetwork.ai/learn/nptel/106105171/11142ccb81e1) (YouTube)
4. [Lecture 4 : Introduction to Programming Language Concepts](https://invisiblenetwork.ai/learn/nptel/106105171/117d0d32221f) (YouTube)
5. [Lecture 5 : Variables and Memory](https://invisiblenetwork.ai/learn/nptel/106105171/9f0939f848c1) (YouTube)
6. [Lecture 6 : Types of Software and Compilers](https://invisiblenetwork.ai/learn/nptel/106105171/32e540a54d89) (YouTube)
7. [Lecture 7: Introduction to C Programming Language](https://invisiblenetwork.ai/learn/nptel/106105171/865b68d9f519) (YouTube)
8. [Lecture 8 : Variables and Variable Types in C](https://invisiblenetwork.ai/learn/nptel/106105171/f75f2e531451) (YouTube)
9. [Lecture 9 : Introducing Functions](https://invisiblenetwork.ai/learn/nptel/106105171/cb812984edad) (YouTube)
10. [Lecture 10 : Address and Content of Variables and Types](https://invisiblenetwork.ai/learn/nptel/106105171/c4455fb766af) (YouTube)
11. [Lecture 11 : Assignment Statement and Operators in C](https://invisiblenetwork.ai/learn/nptel/106105171/e4a525f2fa59) (YouTube)
12. [Lecture 12 : Arithmetic Expressions and Relational Expressions](https://invisiblenetwork.ai/learn/nptel/106105171/b969a5b0a82a) (YouTube)
13. [Lecture 13 : Logical Operators and Change in Control Flow](https://invisiblenetwork.ai/learn/nptel/106105171/9708dec68fe9) (YouTube)
14. [Lecture 14 : Use of Logical Operators in Branching](https://invisiblenetwork.ai/learn/nptel/106105171/98d955841cec) (YouTube)
15. [Lecture 15 : Branching : IF - ELSE Statement](https://invisiblenetwork.ai/learn/nptel/106105171/9cf34b8f22cd) (YouTube)
16. [Lecture 16: IF-ELSE Statement (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/699b401a6261) (YouTube)
17. [Lecture 17: Switch statement](https://invisiblenetwork.ai/learn/nptel/106105171/73672a312292) (YouTube)
18. [Lecture 18: Switch Statement (Contd.) and Introduction to Loops](https://invisiblenetwork.ai/learn/nptel/106105171/1d263e95e4d8) (YouTube)
19. [Lecture 19: Implementing Repetitions (Loops)](https://invisiblenetwork.ai/learn/nptel/106105171/80621c57c9be) (YouTube)
20. [Lecture 20: Implementation of Loops with for Statement (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/3e0d01a7fcf4) (YouTube)
21. [Lecture 21: For Statement (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/a2713962c912) (YouTube)
22. [Lecture 22: Example of If-Else](https://invisiblenetwork.ai/learn/nptel/106105171/40ebd4f037e4) (YouTube)
23. [Lecture 23 : Example of Loops](https://invisiblenetwork.ai/learn/nptel/106105171/29bda77c2483) (YouTube)
24. [Lecture 24 : Example of Loops (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/c9bfde173369) (YouTube)
25. [Lecture 25 : Example of Loops (Contd.), Use of FOR Loops](https://invisiblenetwork.ai/learn/nptel/106105171/79856bb41966) (YouTube)
26. [Lecture 26: Introduction to Arrays](https://invisiblenetwork.ai/learn/nptel/106105171/ff915a6e24a6) (YouTube)
27. [Lecture 27: Arrays (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/eb7a22c0db13) (YouTube)
28. [Lecture 28: Arrays (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/1ad25d0c14b5) (YouTube)
29. [Lecture 29: Program using Arrays](https://invisiblenetwork.ai/learn/nptel/106105171/337c3ea66a8e) (YouTube)
30. [Lecture 30: Array Problem](https://invisiblenetwork.ai/learn/nptel/106105171/2460b451b479) (YouTube)
31. [Lecture 31 : Linear Search](https://invisiblenetwork.ai/learn/nptel/106105171/acd487178a57) (YouTube)
32. [Lecture 32 : Character Array and Strings](https://invisiblenetwork.ai/learn/nptel/106105171/30c31dfda346) (YouTube)
33. [Lecture 33 : String Operations](https://invisiblenetwork.ai/learn/nptel/106105171/e146c0bca775) (YouTube)
34. [Lecture 34 : 2-D Array Operation](https://invisiblenetwork.ai/learn/nptel/106105171/0422463338e0) (YouTube)
35. [Lecture 35 : Introducing Functions](https://invisiblenetwork.ai/learn/nptel/106105171/ea468337c560) (YouTube)
36. [Lecture 36: More on Functions](https://invisiblenetwork.ai/learn/nptel/106105171/82772913946e) (YouTube)
37. [Lecture 37: Function (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/2a599f7465e8) (YouTube)
38. [Lecture 38: Scanf and Printf Functions; Function Prototype](https://invisiblenetwork.ai/learn/nptel/106105171/1b87d50f67c8) (YouTube)
39. [Lecture 39 : Parameter Passing in Function Revision](https://invisiblenetwork.ai/learn/nptel/106105171/60d4c139c5e2) (YouTube)
40. [Lecture 40: Parameter Passing in Function Revision (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/8c1f477f54a1) (YouTube)
41. [Lecture 41: Substitution of # include and Macro](https://invisiblenetwork.ai/learn/nptel/106105171/1242d7c81d4d) (YouTube)
42. [Lecture 42: "search" as a function](https://invisiblenetwork.ai/learn/nptel/106105171/36ce6abcac9e) (YouTube)
43. [Lecture 43: Binary Search](https://invisiblenetwork.ai/learn/nptel/106105171/7c0effb40ba4) (YouTube)
44. [Lecture 44: Binary Search (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/8591bcc565bf) (YouTube)
45. [Lecture 45: Sorting Methods](https://invisiblenetwork.ai/learn/nptel/106105171/764a82b4924e) (YouTube)
46. [Lecture 46: Bubble Sort (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/fd208541e4e8) (YouTube)
47. [Lecture 47: Use of Pointer in Function : Context Bubble Sort](https://invisiblenetwork.ai/learn/nptel/106105171/2919a71e649d) (YouTube)
48. [Lecture 48: Arrays at Strings](https://invisiblenetwork.ai/learn/nptel/106105171/667e493dbbc1) (YouTube)
49. [Lecture 49: Data Representation](https://invisiblenetwork.ai/learn/nptel/106105171/f10938a166e0) (YouTube)
50. [Lecture 50: Bisection Method](https://invisiblenetwork.ai/learn/nptel/106105171/a537764ebe92) (YouTube)
51. [Lecture 51 : Interpolation](https://invisiblenetwork.ai/learn/nptel/106105171/b1ea56d4d78f) (YouTube)
52. [Lecture 52 : Trapezoidal Rule and Runge-Kutta Method](https://invisiblenetwork.ai/learn/nptel/106105171/4f717230df87) (YouTube)
53. [Lecture 53 : Recursion](https://invisiblenetwork.ai/learn/nptel/106105171/64798a5f59ce) (YouTube)
54. [Lecture 54 : Recursion(Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/f26ee9c68e76) (YouTube)
55. [Lecture 55 : Structure](https://invisiblenetwork.ai/learn/nptel/106105171/2fc115ec301a) (YouTube)
56. [Lecture 56 : Structure (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/e550fb2701ec) (YouTube)
57. [Lecture 57 : Structure with typedef](https://invisiblenetwork.ai/learn/nptel/106105171/a5c64df1f32e) (YouTube)
58. [Lecture 58 : Pointer](https://invisiblenetwork.ai/learn/nptel/106105171/f7423bd596fb) (YouTube)
59. [Lecture 59 : Pointer (Contd.)](https://invisiblenetwork.ai/learn/nptel/106105171/5a3fcba56fa0) (YouTube)
60. [Lecture 60 : Pointer in Structures](https://invisiblenetwork.ai/learn/nptel/106105171/667c2fc48425) (YouTube)
61. [Lecture 61 : Dynamic Allocation and File](https://invisiblenetwork.ai/learn/nptel/106105171/b11706ac7c75) (YouTube)
