# Topic List

1. Introduction
   1. History, Evolution, Overview, Features
   2. Basic Structure of a Java/C++ Code
   3. Data Types, Constant, Variables, Comment
   4. Input, Output
2. Operators
3. Conditional Statement
   1. if, else
   2. switch
4. Loop
   1. while, do while
   2. for
   3. for each
   4. break, continue
5. Array
   1. Array
   2. Multidimensional Array
6. String
7. <mark style="color:red;">Class, Object, Method</mark>
   1. Class
      1. Attribute/Field
      2. Method
         1. Constructor (Copy Constructor)
         2. Destructor (Garbage Collection in Java)
      3. Access Modifiers
         1. Default \[Package Private in Java, Private in C++]
         2. Private (Only within the Class)
         3. Protected (Within Class and Derived Class)
         4. Public (Anywhere)
      4. Inner/Nested Classes
      5. This, Static, Final, Super
      6. Scope of Attribute and Method
   2. Object
      1. Array of Objects
8. <mark style="color:red;">Encapsulation</mark>
   * Attributes, Methods, Access Modifiers
9. <mark style="color:red;">Inheritance</mark>
10. <mark style="color:red;">Polymorphism</mark>
    1. Method Overloading
    2. Method Overriding
    3. Operator Overloading
11. <mark style="color:red;">Abstraction</mark>
    1. Abstract Class
    2. Interface
12. Exception Handling
13. \[Generics in Java] / \[Template in C++]
14. \[Collections in Java] / \[Standard Template Library (STL) in C++]
15. Package
16. Advanced Topic
    1. File
    2. Multithreaded Programming
    3. Synchronization
       1. Synchronization
       2. Inter-thread Communication
       3. Thread Deadlock
       4. Thread Control
    4. Application
       1. Java Database Connectivity
       2. Graphical User Interface
       3. Object-Oriented Design Patterns
       4. Networking
