Introduction. Software Development Life Cycle. General syntax rules. Preprocessor. Basic concepts of OOP - object, message, class, instance, method, abstraction, encapsulation, inheritance, and polymorphism. Classes. Objects - instances of the class. Class members. Accessibility of class members (public, private, protected). Inline functions. Constructors and destructors. Operators new and delete. Scope and visibility. Memory classes. Inheritance. Derived classes. Public and private inheritance rules. Multiple inheritance. Constructors and destructors of derived classes. Exception handling. Static class members. Friends. Virtual member functions. Pure virtual functions and abstract base classes. Overloading of operators. Templates. Introduction to Java.