Course Title: 
Object Oriented Programming
Course Code: 
Year Taught: 
Undergraduate (UG)
School of Engineering

'Object Oriented Programming' is a course offered in the first semester of  B. Tech. in Computer Science and Engineering (Artificial Intelligence) program at the School of Engineering, Amrita Vishwa Vidyapeetham.

Course Objectives

The course will provide an introduction to object oriented programming. It will expose the students to the paradigm of object oriented programming. Students will also be motivated to solve the problems in engineering using the concepts of object oriented programming.

Course Outcomes

CO1 Understand Abstraction in all forms and in a holistic way
CO2 Observe and Analyse object-oriented Software to effectively utilise its features.
CO3 To enable the students to design and implement programs using standard design patterns to solve general problems.


  PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12
CO1 3 3 2 2 3       3 2 3 3
CO2 3 3 3 3 3 2     3 2 3 3
CO3 3 2 3 3 3       3 2 3 3

Course Evaluation Pattern:

Internal – 75%

  • Assignments – 50% (20 assignments with equal credit)
  • Quiz- 25% (5 Quizzes with equal credit)

External – 25%

  • Project – 25%

Introduction to Scratch/Blockly Visual programming and program constructs. Introduction to Java Language and Runtime Environment- Basic program syntax, Hello world, Data types, variables and Functions - Value types and Reference types, Implicit Pointers and the Null Pointer exceptions - Objects in Java, Class file, constructor functions, Class members and method, Class Instance variables, the Object class, new Operators, Heap allocation and Garbage collector – Basic Java API, Stream classes and objects for Data IO, hierarchy of data streams in Java, Throwable type hierarchy and exception handling syntax, the Thread class. Object-Oriented Concepts-Abstraction, Encapsulation, Inheritance and PolymorphismAbstract Class, partially abstract and purely abstract, purely abstract class called Interface. Inheritance a way of extending classes, multiple inheritances and implements relation with Interfaces, The Base class and Derived class. Revisiting Instance and Class variables-Static and Dynamic Polymorphisms, Overloading and Overriding, Idea of a virtual function. Revisiting Thread API, the Runnable Interface, Other major Interfaces, Cloneable, Serializable and Observable. Interface as a mode of Type Polymorphism. UML Diagrams, Object relations and interactions, Containment and cardinality, Cohesion and Coupling. Object-Oriented Design Patterns: Creational: Factory, Singleton, Pool and Prototype - Behavioural: Command, Iterator, Memento, Observer, State, Visitor – Structural: Adapter, Bridge, Decorator, Flyweight and Proxy.

  1. Blaha, Michael. Object-Oriented Modelling and Design with UML: For VTU, 2/e. Pearson Education India, 2005.
  2. Robert Lafore, Object-Oriented Programming in C++ , Pearson Education India, 2017.
  3. Bert Bates, Kathy Sierra, Head First Java, O Reilly, second edition, 2009.