In this course, participants will explore fundamental OOP concepts and their applications. Starting with class design and encapsulation, the course progresses to inheritance and composition, helping students construct effective class hierarchies. Delving into advanced topics, the lessons cover polymorphism and templates, crucial for building flexible and reusable code. Additionally, learners will gain vital skills in error handling and debugging techniques through targeted exercises. The course culminates in a practical project where students will develop a comprehensive system monitoring tool, solidifying their knowledge and coding competency.
Overview
Syllabus
- Encapsulation and Class Design
- Master encapsulation in object-oriented programming. Explore encapsulation principles, class structure, data hiding, and utilize getters and setters for efficient class design.
- Inheritance, Composition, and Class Hierarchies
- Learn C++ inheritance, composition, and class hierarchies: design clear, safe class structures using single/multiple inheritance, polymorphism, and the "is-a" vs. "has-a" approach.
- Polymorphism in Depth and Templates
- Master C++ polymorphism and templates to build flexible, efficient, and type-safe designs using abstract classes, interfaces, runtime dispatch, and the power of the standard library.
- Error Handling Strategies and Debugging Techniques
- Discover robust error handling in C++ with exceptions, return codes, and optionals, plus learn essential debugging, logging, assertions, and RAII for reliable, safe code.
- Build a System Monitoring Tool
- In this project, you will develop a simple system monitor program inspired by htop to track and display system metrics in real time.
Taught by
Kedar Kodgire