PPPP
PPPP
CO 1: Students are able to demonstrate knowledge of the basic principles of the object oriented
development process and apply this understanding to the analysis and design of solutions for small
to medium scale problems.
CO 3: Students are able to analyze the problem in terms of use cases and create object oriented
design for it. Students are able to present the design in UML or other related tools.
CO 4: Students are able to select and use a few key design patterns to solve a given problem in hand.
UNIT CONTENTS
5. Mutual exclusion (race conditions, monitor locks, deadlocks), Java memory model,
Producer-consumer application, Introduction to design patterns (iterator,
singleton, flyweight, adapter, strategy), Introduction to design patterns (template,
prototype, factory, façade, decorator, composite, proxy, chain of responsibility,
observer, state)
SUGGESTED READINGS:
2. Core Java Volume II - Advanced Features, 12th Edition – Pearson by Cay S. Horstmann
2 Control Structures: Write programs to demonstrate the use of if, else, switch, for, while,
and do-while loops.
3 Classes and Objects: Create a class Car with attributes like model, year, and price.
Instantiate objects of this class.
4 Inheritance: Implement a class hierarchy with a base class Animal and derived classes
Dog and Cat.
6 Encapsulation: Create a class Student with private attributes and public getter and setter
methods.
7 Abstraction: Implement abstract classes and interfaces to define a contract for a set of
operations.
8 LinkedList: Create a simple linked list implementation and perform basic operations like
insertion, deletion, and traversal.
9 Stack: Implement a stack using an array or a linked list and demonstrate push, pop, and
peek operations.
11 Thread Creation: Create and start multiple threads using Thread class and Runnable
interface.
13 JDBC: Connect to a database using JDBC, execute SQL queries, and retrieve results.
14 Design Patterns: Implement common design patterns like Singleton, Factory, and
Observer.
16 File Reading and Writing: Write a program to read data from a file and write data to a
file.