Skip to content

Latest commit

 

History

History
689 lines (476 loc) · 15.5 KB

File metadata and controls

689 lines (476 loc) · 15.5 KB

📚 Complete Course Content Index

This document provides a comprehensive index of all topics, code examples, and learning materials in this repository.

📋 Quick Navigation


🔷 C++ Topics

Lecture 01: An Overview of C++

Location: OOP in C++/Lecture_01: An Overview of C++/

1. C++ Console I/O

  • 1.cpp - Basic output with integers and doubles
  • 2.cpp - Multiple data types output
  • 3.cpp - Console input/output
  • 4.cpp - Formatted I/O
  • 5.cpp - Input validation

Documentation:

  • 3.cpp_console_io_summary.md - Console I/O guide

2. C++ Comments

  • Comment styles and best practices

Documentation:

  • 4.cpp_comments_structured.md - Comments guide

3. Classes: A First Look

  • Introduction to classes and objects

Documentation:

  • 5.cpp_classes_structured.md - Classes introduction
  • 6.cpp_differences_overloading_structured.md - C vs C++ differences
  • 7.cpp_keywords_structured.md - C++ keywords reference
  • cpp_skills_check.md - Skills assessment
  • 2.cpp_versions_summary.md - C++ versions overview

Key Concepts: Console I/O, Basic Syntax, Classes Introduction


Lecture 02: Introducing Classes

Location: OOP in C++/Lecture_02: Introducing Classes/

Topics:

  • Constructors and Destructors
  • Parameterized Constructors
  • Inheritance Basics
  • Object Pointers
  • Class vs Struct vs Union
  • Inline Functions
  • Automatic Inlining

Documentation:

  • 1.constructor_destructor_guide.md
  • 2.parameterized_constructors_guide.md
  • 3.cpp_inheritance_guide.md
  • 4.cpp_object_pointers_guide.md
  • 5.cpp_class_struct_union_guide.md
  • 6.cpp_inline_functions_guide.md
  • 7.cpp_automatic_inlining_guide.md

Key Concepts: Constructors, Destructors, Object Lifecycle, Memory Management


Lecture 03: A Closer Look at Classes

Location: OOP in C++/Lecture_03: A Closer Look at Classes/

Topics:

  • Object Assignment
  • Passing Objects to Functions
  • Returning Objects from Functions
  • Friend Functions

Documentation:

  • 1.cpp_object_assignment_guide.md
  • 2.cpp_objects_functions.md
  • 3.cpp_returning_objects.md
  • 4.cpp_friend_functions.md

Key Concepts: Object Manipulation, Function Design, Friend Access


Lecture 04: Arrays, Pointers, and References

Location: OOP in C++/Lecture_04: Arrays, Pointers, and References/

Topics:

  • Arrays of Objects
  • Pointers to Objects
  • The this Pointer
  • new and delete Operators
  • Advanced Memory Management
  • References
  • Object References
  • Returning References
  • Independent References

Documentation:

  • 1.cpp_arrays_objects_tutorial.md
  • 2.cpp_pointers_objects_tutorial.md
  • 3.cpp_this_pointer_tutorial.md
  • 4.cpp_new_delete_guide.md
  • 5.cpp_advanced_new_delete.md
  • 6.cpp_references_guide.md
  • 7.cpp_object_references_guide.md
  • 8.cpp_returning_references.md
  • 9.cpp_independent_references.md

Key Concepts: Memory Management, Pointers, References, Dynamic Allocation


Lecture 05: Function Overloading

Location: OOP in C++/Lecture_05: Function Overloading/

Topics:

  • Constructor Overloading
  • Copy Constructors
  • Default Arguments
  • Overloading Ambiguity
  • Overloaded Function Addresses

Documentation:

  • 1.cpp_constructor_overloading.md
  • 2.cpp_copy_constructor_guide.md
  • 3.cpp_default_arguments.md
  • 4.cpp_overloading_ambiguity.md
  • 5.overloaded_function_address.md

Key Concepts: Function Overloading, Copy Semantics, Default Parameters


Lecture 06: Introducing Operator Overloading

Location: OOP in C++/Lecture_06: Introducing Operator Overloading/

Topics:

  • Operator Overloading Basics
  • Binary Operator Overloading
  • Relational and Logical Operators
  • Unary Operator Overloading
  • Friend Operator Functions
  • Assignment Operator

Documentation:

  • 1.operator_overloading_basics.md
  • 2.binary_operator_overloading.md
  • 3.relational_logical_operators.md
  • 4.unary_operator_overloading.md
  • 5.friend_operator_functions.md
  • 6.assignment_operator_guide.md

Key Concepts: Operator Overloading, Custom Operators, Operator Semantics


Lecture 07: Inheritance

Location: OOP in C++/Lecture_07: Inheritance/

Topics:

  • Inheritance Fundamentals
  • Protected Members
  • Constructors and Destructors in Inheritance
  • Multiple Inheritance
  • Virtual Base Classes

Documentation:

  • 1.cpp_inheritance_guide.md
  • 2.cpp_protected_members_guide.md
  • 3.cpp_constructors_destructors_inheritance.md
  • 4.cpp_multiple_inheritance_guide.md
  • 5.cpp_virtual_base_classes_guide.md

Key Concepts: Inheritance, Access Control, Multiple Inheritance, Virtual Base Classes


Lecture 08: Introducing the C++ IO System

Location: OOP in C++/Lecture_08: Introducing the C++ IO System/

Topics:

  • I/O Basics
  • Formatted I/O
  • Width, Precision, and Fill
  • I/O Manipulators
  • Inserters
  • Extractors

Documentation:

  • 1.cpp_io_basics.md
  • 2.cpp_formatted_io.md
  • 3.cpp_width_precision_fill.md
  • 4.cpp_io_manipulators.md
  • 5.cpp_inserters_guide.md
  • 6.cpp_extractors_guide.md

Key Concepts: Stream I/O, Formatting, Manipulators


Lecture 09: Advanced C++ IO

Location: OOP in C++/Lecture_09: Advanced C++ IO/

Topics:

  • Manipulators
  • File I/O
  • Binary I/O
  • I/O Functions
  • Random Access
  • I/O Status
  • Customized I/O for Files

Documentation:

  • 1.cpp_manipulators_guide.md
  • 2.cpp_file_io_guide.md
  • 3.cpp_binary_io_guide.md
  • 4.cpp_io_functions_guide.md
  • 5.cpp_random_access_guide.md
  • 6.cpp_io_status_guide.md
  • 7.cpp_customized_io_files.md

Key Concepts: File Operations, Binary I/O, Stream States


Lecture 10: Virtual Functions

Location: OOP in C++/Lecture_10: Virtual Functions/

Topics:

  • Pointers to Derived Classes
  • Virtual Functions Introduction
  • Virtual Functions Implementation
  • Polymorphism Applications

Documentation:

  • 1.cpp_pointers_derived_classes.md
  • 2.cpp_virtual_functions_intro.md
  • 3.virtual_functions_guide.md
  • 4.polymorphism_application_guide.md

Key Concepts: Polymorphism, Virtual Functions, Dynamic Binding, Runtime Polymorphism


Lecture 11: Generic Functions

Location: OOP in C++/Lecture_11: Generic Functions/

Topics:

  • Generic Functions (Templates)
  • Generic Classes
  • Exception Handling Basics
  • Advanced Exceptions
  • Custom Exceptions

Documentation:

  • 1.cpp_generic_functions_guide.md
  • 2.cpp_generic_classes_guide.md
  • 3.cpp_exception_handling.md
  • 4.advanced_cpp_exceptions.md
  • 5.cpp_new_exceptions.md

Key Concepts: Templates, Generic Programming, Exception Handling


Lecture 12: Run-Time Type Identification and Casting

Location: OOP in C++/Lecture_12: Run-Time Type Identification and the Casting Operators/

Topics:

  • RTTI (Run-Time Type Identification)
  • dynamic_cast
  • Casting Operators (static_cast, const_cast, reinterpret_cast)

Documentation:

  • 1.cpp_rtti_guide.md
  • 2.cpp_dynamic_cast_guide.md
  • 3.cpp_casting_operators_guide.md

Key Concepts: RTTI, Type Casting, Type Safety


Lecture 13: Namespaces, Conversion Functions, and Miscellaneous Topics

Location: OOP in C++/Lecture_13: Namespaces, Conversion Functions, and Miscellaneous Topics/

Topics:

  • Namespaces
  • Conversion Functions
  • Static Members
  • Const Member Functions
  • Constructors (Final Look)
  • Linkage Specifiers and asm
  • Array I/O

Documentation:

  • 1.cpp_namespaces_guide.md
  • 2.cpp_conversion_functions_guide.md
  • 3.cpp_static_members_guide.md
  • 4.const_member_functions_guide.md
  • 5.constructors_final_look_guide.md
  • 6.linkage_specifiers_asm_guide.md
  • 7.cpp_array_io_guide.md

Key Concepts: Namespaces, Type Conversion, Static Members, Const Correctness


Lecture 14: Introducing the Standard Template Library

Location: OOP in C++/Lecture_14: Introducing the Standard Template Library/

Topics:

  • STL Overview
  • Vectors
  • Lists
  • Maps
  • STL Algorithms
  • STL Strings

Documentation:

  • 1.stl_overview_guide.md
  • 2.cpp_vectors_guide.md
  • 3.cpp_lists_guide.md
  • 4.cpp_maps_guide.md
  • 5.stl_algorithms_guide.md
  • 6.stl_string_guide.md

Key Concepts: STL Containers, Iterators, Algorithms, Generic Programming


C++ Practice

Location: OOP in C++/Practice/

Practice Topics:

  • 1.C++ Classes and Objects.md
  • 2.C++ Constructors and Destructors.md
  • 3.C++ Operator Overloading.md

☕ Java Topics

Chapter 1: Introduction to Computers, Programs, and Java

Location: OOP in Java/Chapter 1 - Introduction to Computers, Programs, and Java/

Key Concepts: Java Basics, JVM, Program Structure

Documentation: README.md


Chapter 2: Elementary Programming

Location: OOP in Java/Chapter 2 - Elementary Programming/

Key Concepts: Variables, Data Types, Operators, Expressions

Documentation: README.md


Chapter 3: Selections

Location: OOP in Java/Chapter 3 - Selections/

Key Concepts: if Statements, switch, Boolean Logic

Documentation: README.md


Chapter 4: Mathematical Functions, Characters, and Strings

Location: OOP in Java/Chapter 4 - Mathematical Functions, Characters, and Strings/

Key Concepts: Math Class, Character Handling, String Operations

Documentation: README.md


Chapter 5: Loops

Location: OOP in Java/Chapter 5 - Loops/

Key Concepts: while, do-while, for Loops, Nested Loops

Documentation: README.md


Chapter 6: Methods

Location: OOP in Java/Chapter 6 - Methods/

Key Concepts: Method Definition, Parameters, Return Values, Overloading

Documentation: README.md


Chapter 7: Single-Dimensional Arrays

Location: OOP in Java/Chapter 7 - Single-Dimensional Arrays/

Key Concepts: Array Declaration, Initialization, Processing

Documentation: README.md


Chapter 8: Multidimensional Arrays

Location: OOP in Java/Chapter 8 - Multidimensional Arrays/

Key Concepts: 2D Arrays, Matrix Operations

Documentation: README.md


Chapter 9: Objects and Classes

Location: OOP in Java/Chapter 9 - Objects and Classes/

Topics:

  • OOP Introduction
  • Classes and Objects
  • Constructors
  • Instance vs Static Members
  • Encapsulation
  • Passing Objects to Methods
  • Array of Objects
  • Immutable Objects
  • Scope of Variables
  • The this Reference

Documentation: README.md (1802 lines - Comprehensive guide)

Key Concepts: OOP Fundamentals, Encapsulation, Objects, Classes


Chapter 10: Object-Oriented Thinking

Location: OOP in Java/Chapter 10 - Object-Oriented Thinking/

Key Concepts: Class Design, Object Relationships, Aggregation

Documentation: README.md


Chapter 11: Inheritance and Polymorphism

Location: OOP in Java/Chapter 11 - Inheritance and Polymorphism/

Key Concepts: Inheritance, Method Overriding, Polymorphism, super Keyword

Documentation: README.md


Chapter 12: Exception Handling and Text I/O

Location: OOP in Java/Chapter 12 - Exception Handling and Text I and O/

Key Concepts: Try-Catch, Exception Types, File I/O

Documentation: README.md


Chapter 13: Abstract Classes and Interfaces

Location: OOP in Java/Chapter 13 - Abstract Classes and Interfaces/

Key Concepts: Abstract Classes, Interfaces, Multiple Inheritance

Documentation: README.md


Java Code Examples

Location: OOP in Java/Code_Example/

Example Files:

  • VirtualDemo.java - Virtual method demonstration
  • Main.java - Main class example
  • Student.java - Student class with inheritance
  • Employees.java - Employee management
  • Salary.java - Salary calculation

📝 Exam Materials

Class Tests (CT)

Location: Exams/CT/

CT-2

  • 1.cpp - Test problem 1
  • 2.cpp - Test problem 2
  • 3.cpp - Test problem 3
  • 4.cpp - Test problem 4

2nd Batch

  • 1.cpp - C++ problem
  • 2.cpp - C++ problem
  • 3.cpp - C++ problem
  • HRSystem.java - HR System implementation
  • ShoppingCartSystem.java - Shopping cart implementation
  • UniversitySystem.java - University system implementation

Lab Exams

Location: Exams/Lab/

Practice Exam

  • 1.cpp through 6.cpp - Practice problems

Test

  • 1.cpp through 6.cpp - Test problems

🎯 By OOP Concept

Encapsulation

  • C++: Lecture 02, Lecture 03
  • Java: Chapter 9

Inheritance

  • C++: Lecture 02, Lecture 07
  • Java: Chapter 11

Polymorphism

  • C++: Lecture 05 (Overloading), Lecture 06 (Operator Overloading), Lecture 10 (Virtual Functions)
  • Java: Chapter 11

Abstraction

  • C++: Lecture 10 (Virtual Functions)
  • Java: Chapter 13 (Abstract Classes and Interfaces)

Templates/Generics

  • C++: Lecture 11, Lecture 14 (STL)

Exception Handling

  • C++: Lecture 11
  • Java: Chapter 12

File I/O

  • C++: Lecture 08, Lecture 09
  • Java: Chapter 12

📊 By Difficulty Level

Beginner (Weeks 1-4)

  • C++ Lecture 01: Basics
  • C++ Lecture 02: Classes Introduction
  • Java Chapters 1-4: Fundamentals

Intermediate (Weeks 5-9)

  • C++ Lectures 03-06: Advanced Classes, Overloading
  • C++ Lecture 07: Inheritance
  • Java Chapters 5-9: Loops, Methods, Arrays, Objects

Advanced (Weeks 10-14)

  • C++ Lectures 08-09: I/O Systems
  • C++ Lectures 10-11: Polymorphism, Templates, Exceptions
  • C++ Lectures 12-14: RTTI, STL
  • Java Chapters 10-13: OOP Advanced Topics

🔍 Search by Topic

Memory Management

  • C++ Lecture 04: Pointers, References, new/delete
  • C++ Lecture 05: Copy Constructors

Functions

  • C++ Lecture 05: Function Overloading
  • Java Chapter 6: Methods

Arrays

  • C++ Lecture 04: Arrays of Objects
  • Java Chapters 7-8: Arrays

I/O Operations

  • C++ Lectures 01, 08, 09: Console and File I/O
  • Java Chapter 12: File I/O

OOP Principles

  • All Languages:
    • Classes: C++ Lecture 02, Java Chapter 9
    • Inheritance: C++ Lecture 07, Java Chapter 11
    • Polymorphism: C++ Lecture 10, Java Chapter 11
    • Encapsulation: C++ Lecture 03, Java Chapter 9

📈 Learning Statistics

  • Total C++ Programs: 139
  • Total Java Programs: 17
  • Total Documentation Files: 80+
  • C++ Lecture Sections: 14
  • Java Chapter Sections: 13
  • Practice Problems: Multiple sets
  • Exam Materials: Multiple tests and practice exams

🗺️ Suggested Learning Paths

Path 1: C++ Focused (12-14 weeks)

  1. Lectures 01-02 (Weeks 1-2)
  2. Lectures 03-04 (Weeks 3-4)
  3. Lectures 05-06 (Weeks 5-6)
  4. Lecture 07 (Week 7)
  5. Lectures 08-09 (Weeks 8-9)
  6. Lecture 10 (Week 10)
  7. Lecture 11 (Week 11)
  8. Lectures 12-14 (Weeks 12-14)

Path 2: Java Focused (12-14 weeks)

  1. Chapters 1-3 (Weeks 1-2)
  2. Chapters 4-5 (Weeks 3-4)
  3. Chapters 6-7 (Weeks 5-6)
  4. Chapter 8 (Week 7)
  5. Chapter 9 (Weeks 8-9)
  6. Chapter 10 (Week 10)
  7. Chapter 11 (Weeks 11-12)
  8. Chapters 12-13 (Weeks 13-14)

Path 3: Parallel Learning (14 weeks)

Alternate between C++ and Java topics each week to compare and contrast OOP implementations.


📌 Quick Reference

Essential Documentation

Key Resources

  • Main README: Course overview
  • Each chapter/lecture has its own README with detailed explanations
  • Practice folders for hands-on exercises
  • Exam materials for test preparation

This index is maintained and updated regularly. For the latest content, check the repository.

Last Updated: November 2024