# Fundamentals of Object Oriented Programming

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

## Lectures

1. [Lecture 1: Introduction to Object-Oriented Programming](https://invisiblenetwork.ai/learn/nptel/106107574/c04e14b846ab) (Video)
2. [Lecture 2: Introduction to Classes and Objects in C++](https://invisiblenetwork.ai/learn/nptel/106107574/e694cd98d1df) (Video)
3. [Lecture 3: Introduction to Member Data and Member Functions in C++](https://invisiblenetwork.ai/learn/nptel/106107574/d941a0c363f6) (Video)
4. [Lecture 4: Introduction to Classes and Objects in Java](https://invisiblenetwork.ai/learn/nptel/106107574/8433b7e55410) (Video)
5. [Lecture 5: Introduction to Paradigms of OOP](https://invisiblenetwork.ai/learn/nptel/106107574/67b38b32170f) (Video)
6. [Lecture 6: Classes and Objects in C++](https://invisiblenetwork.ai/learn/nptel/106107574/8254ec34f8aa) (Video)
7. [Lecture 7: Classes and Objects in Java and Solved problems](https://invisiblenetwork.ai/learn/nptel/106107574/e69c56dbb6ac) (Video)
8. [Lecture 8: Constructors in C++ - Default and Parameterized](https://invisiblenetwork.ai/learn/nptel/106107574/4811a77de241) (Video)
9. [Lecture 9: Constructors in C++ - Copy Constructor](https://invisiblenetwork.ai/learn/nptel/106107574/0d5c89c99de1) (Video)
10. [Lecture 10: Constructors in Java - Default and Parameterized](https://invisiblenetwork.ai/learn/nptel/106107574/7cb16575d552) (Video)
11. [Lecture 11: Access Specifiers in C++](https://invisiblenetwork.ai/learn/nptel/106107574/3e969ad00e79) (Video)
12. [Lecture 12: Inheritance - Single Inheitance](https://invisiblenetwork.ai/learn/nptel/106107574/8400dbf20e3f) (Video)
13. [Lecture 13: Inheritance - Multilevel Inheitance](https://invisiblenetwork.ai/learn/nptel/106107574/28a495395919) (Video)
14. [Lecture 14: Inheritance - Multiple, Hierarchial, and Hybrid](https://invisiblenetwork.ai/learn/nptel/106107574/106aefc0be98) (Video)
15. [Lecture 15: Inheritance and Introduction to Friend Function](https://invisiblenetwork.ai/learn/nptel/106107574/8e6a8724d50a) (Video)
16. [Lecture 16: Polymorphism](https://invisiblenetwork.ai/learn/nptel/106107574/769dd802e9a2) (Video)
17. [Lecture 17: Overloading - Operator and Constructor](https://invisiblenetwork.ai/learn/nptel/106107574/80ad9ad4d2bb) (Video)
18. [Lecture 18: this keyword in C++](https://invisiblenetwork.ai/learn/nptel/106107574/00358c0c21dc) (Video)
19. [Lecture 19: Method Overloading](https://invisiblenetwork.ai/learn/nptel/106107574/68540c2dc53b) (Video)
20. [Lecture 20: Method Overriding](https://invisiblenetwork.ai/learn/nptel/106107574/a4e1f6c7273b) (Video)
21. [Lecture 21: Encapsulation I](https://invisiblenetwork.ai/learn/nptel/106107574/0b5cd2505bd0) (Video)
22. [Lecture 22: Encapsulation Il](https://invisiblenetwork.ai/learn/nptel/106107574/e44b127e5692) (Video)
23. [Lecture 23: Data Abstraction](https://invisiblenetwork.ai/learn/nptel/106107574/e7dba1ebd6c1) (Video)
24. [Lecture 24: Virtual Functions in C++ and Abstract Class](https://invisiblenetwork.ai/learn/nptel/106107574/82cb738928e9) (Video)
25. [Lecture 25: Interface in Java](https://invisiblenetwork.ai/learn/nptel/106107574/d993a3ca5b73) (Video)
26. [Lecture 26: Exception Handling in C++](https://invisiblenetwork.ai/learn/nptel/106107574/269a646a4cd6) (Video)
27. [Lecture 27: Exception Handling - Solved Problems](https://invisiblenetwork.ai/learn/nptel/106107574/a3a26533ba9b) (Video)
28. [Lecture 28: Multiple Catch and Nested try Statements](https://invisiblenetwork.ai/learn/nptel/106107574/dad58a1b2f97) (Video)
29. [Lecture 29: 'throws' keyword in Java](https://invisiblenetwork.ai/learn/nptel/106107574/77797ddaba17) (Video)
30. [Lecture 30: 'finally' keyword in Java](https://invisiblenetwork.ai/learn/nptel/106107574/5324d5f525c4) (Video)
31. [Lecture 31: Basics of File Handling](https://invisiblenetwork.ai/learn/nptel/106107574/0277f25fe4ec) (Video)
32. [Lecture 32: File Handling - Solved Problems](https://invisiblenetwork.ai/learn/nptel/106107574/1f2ce9794309) (Video)
33. [Lecture 33: File Handling - Append and other Mathematical Operations](https://invisiblenetwork.ai/learn/nptel/106107574/89138e378a30) (Video)
34. [Lecture 34: File Handling - Character, Line, and CSV File Reading](https://invisiblenetwork.ai/learn/nptel/106107574/39ec9661a81e) (Video)
35. [Lecture 35: Serialization and Deserialization](https://invisiblenetwork.ai/learn/nptel/106107574/96662866d48a) (Video)
36. [Lecture 36: Introduction to Templates and Generics](https://invisiblenetwork.ai/learn/nptel/106107574/eeee572abe6c) (Video)
37. [Lecture 37: Template Class in C++](https://invisiblenetwork.ai/learn/nptel/106107574/de63fa6c8fb7) (Video)
38. [Lecture 38: Generics in Java](https://invisiblenetwork.ai/learn/nptel/106107574/3d1ad8c388a9) (Video)
39. [Lecture 39: Generics in Java \[contd.\]](https://invisiblenetwork.ai/learn/nptel/106107574/4135d4da3c0f) (Video)
40. [Lecture 40: Generics in Python](https://invisiblenetwork.ai/learn/nptel/106107574/4d8ff3b9c9f9) (Video)
41. [Lecture 41: Introduction to Standard Template Library](https://invisiblenetwork.ai/learn/nptel/106107574/7dc969130ea3) (Video)
42. [Lecture 42: Associative Containers](https://invisiblenetwork.ai/learn/nptel/106107574/b351603eade4) (Video)
43. [Lecture 43: Unordered Containers, Iterators](https://invisiblenetwork.ai/learn/nptel/106107574/19218ba08f86) (Video)
44. [Lecture 44: STL Algorithms](https://invisiblenetwork.ai/learn/nptel/106107574/beed7c235b95) (Video)
45. [Lecture 45: Case Studies - Library Management System, Real-Time Stock Tracker](https://invisiblenetwork.ai/learn/nptel/106107574/54419eb4047b) (Video)
46. [Lecture 46: Design Patterns](https://invisiblenetwork.ai/learn/nptel/106107574/f16d443c8b46) (Video)
47. [Lecture 47: Singleton and Factory Pattern](https://invisiblenetwork.ai/learn/nptel/106107574/3bad3630dc3c) (Video)
48. [Lecture 48: Factory Pattern in Java](https://invisiblenetwork.ai/learn/nptel/106107574/b9274a4da60c) (Video)
49. [Lecture 49: Observer Pattern](https://invisiblenetwork.ai/learn/nptel/106107574/d10cdf8d0e75) (Video)
50. [Lecture 50: Structural Patterns](https://invisiblenetwork.ai/learn/nptel/106107574/01a99d863578) (Video)
51. [Lecture 51: Advanced Topics - Multithreading and Concurrency](https://invisiblenetwork.ai/learn/nptel/106107574/6987a5293af1) (Video)
52. [Lecture 52: Deadlocks - Causes and Prevention](https://invisiblenetwork.ai/learn/nptel/106107574/d368adc24335) (Video)
53. [Lecture 53: Introduction to Network Programming](https://invisiblenetwork.ai/learn/nptel/106107574/7c539296d75b) (Video)
54. [Lecture 54: Communication over HTTP and Related Protocols](https://invisiblenetwork.ai/learn/nptel/106107574/36843a197c44) (Video)
55. [Lecture 55: GUI Development](https://invisiblenetwork.ai/learn/nptel/106107574/60bc6d59fc2b) (Video)
56. [Lecture 56: Case Study - Mathematical Computation Framework C++](https://invisiblenetwork.ai/learn/nptel/106107574/4ef598a0a001) (Video)
57. [Lecture 57: Case Study - Hotel reservation System C++](https://invisiblenetwork.ai/learn/nptel/106107574/9d9807eb368d) (Video)
58. [Lecture 58: Case Study - Online Shopping Cart Java](https://invisiblenetwork.ai/learn/nptel/106107574/4aebcf58ea02) (Video)
59. [Lecture 59: Case Study - Employee Payroll System Java](https://invisiblenetwork.ai/learn/nptel/106107574/35512d3ec73d) (Video)
60. [Lecture 60: Case Study - Image Classification Tool Python](https://invisiblenetwork.ai/learn/nptel/106107574/cdf563a40d9a) (Video)
