2.
4 IT ITC 304 / IN ITC 304: Advance Programming (IT/ITNS)
A. SYLLABUS
Course No Course Structure Pre
Title of the Course requisite
IT ITC 304 / Advance Programming 3L-0T-2P Data Structure
IN ITC 304
COURSE OUTCOMES (COs)
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 2: Implement basic event-driven programming, exception handling, and threading.
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.
CO 5: Students are able to develop multithreaded applications with synchronization.
UNIT CONTENTS
1. Introduction to Object Oriented Paradigm, Examples of OOP, Data
encapsulation, modularity, code reuse, Identifying classes and objects, Working
with objects (constructors, variable reassignment, instance variables), Class
relationship (association, composition, dependency), Interfaces, Polymorphism
using interfaces, Inheritance
2. Polymorphism using inheritance, Method resolution, Interfaces v/s Inheritance,
Constructor invocation in inheritance tree, Abstract classes, Immutable classes,
Object class in Java, Comparing objects (equals method, Comparable and
Comparator interfaces)
3. Object cloning, Generic programming, Introduction to defensive and secure
programming, Exception handling, Assertions, Collection framework, IO
Streams, Object serialization and deserialization, Unit testing using JUnit,
Unified Modelling Language (sequence diagram, class diagram, use case
diagram)
4. Introduction to event driven programming using JavaFX, Introduction to
multithreading, Ahmdals law, speedup, parallel efficiency, Thread creation
(Runnable interface, Thread class), Multithreaded client server application,
Thread pool (ExecutorService, ForkJoinPool), Parallel performance analysis by
controlling task granularity
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:
1. Core Java Volume I - Fundamentals, 12th Edition Pearson by Cay S. Horstmann
2. Core Java Volume II - Advanced Features, 12th Edition – Pearson by Cay S. Horstmann
3. Design Patterns: Elements of Reusable Object-Oriented Software 1st Edition by Erich
Gamma (Author), Richard Helm (Author), Ralph Johnson (Author), John Vlissides (Author)
4. Program Development in Java: Abstraction, Specification and Object - Oriented
Design by Barbara Liskov (Author), John Guttag (Author)
B. CO-PO & CO-PSO MAPPING TABLE
P P P P P
CO\ P O O P O P O P O PO PO PO PS PS PS PS
PO O1 2 3 O4 5 O6 7 O8 9 10 11 12 O1 O2 O3 O4
CO1 3 1 1 1 1 0 1 0 2 0 1 1 3 2 1 1
CO2 1 1 0 1 1 1 0 0 1 1 1 1 2 2 1 1
CO3 1 0 0 1 2 0 0 1 1 1 1 2 3 2 1 1
CO4 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1
CO5 0 0 0 1 1 0 0 0 1 1 1 1 2 2 0 1
C. THEORY LECTURE PLAN
S.No. CONTENT NUMBER Unit
OF
LECTURES
1 Introduction to Object Oriented Paradigm 1 UnitI
2 Examples of OOP 1
3 Data encapsulation, modularity, code reuse 1
4 Identifying classes and objects 1
5 Working with objects (constructors, variable reassignment, instance 1
variables)
(9)
6 Class relationship (association, composition, dependency) 1
7 Interfaces 1
8 Polymorphism using interfaces 1
9 Inheritance 1
CLASS TEST-I
10 Polymorphism using inheritance 1 UnitII
11 Method resolution 1 (7)
12 Interfaces v/s Inheritance 1
13 Constructor invocation in inheritance tree 1
14 Abstract classes 1
15 Immutable classes, Object class in Java 1
16 Comparing objects (equals method, Comparable and Comparator 1
interfaces)
MID SEMESTER EXAMS
21 Object cloning 1 UnitIII
22 Generic programming 1 (8)
23 Introduction to defensive and secure programming 1
24 Exception handling 1
25 Assertions 1
26 Collection framework 1
26 IO Streams, Object serialization and deserialization 1
26 Unit testing using JUnit,Unified Modelling Language (sequence 1
diagram, class diagram, use case diagram)
CLASS TEST-II
27 Introduction to event driven programming using JavaFX 1 UnitIV
28 Introduction to multithreading, Ahmdals law, speedup, parallel 1 (4)
efficiency
29 Thread creation (Runnable interface, Thread class) 1
30 Multithreaded client server application 1
31 Thread pool (ExecutorService, ForkJoinPool) 1
32 Parallel performance analysis by controlling task granularity 1
33 Mutual exclusion (race conditions, monitor locks, deadlocks), Java 1 UnitV
memory model
(5)
34 Producer-consumer application, Introduction to design patterns 1
(iterator, singleton, flyweight, adapter, strategy)
35 Introduction to design patterns (template, prototype, factory, façade, 1
decorator, composite, proxy, chain of responsibility, observer, state)
D. PRACTICAL CLASS PLAN
Lab Class Name of the Experiment
No.
1 Basic Arithmetic Operations: Create a calculator that performs addition, subtraction,
multiplication, and division.
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.
5 Polymorphism: Demonstrate method overriding and method overloading with a class
Shape and derived classes Circle, Square, and Triangle.
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.
MID SEMESTER EVALUATION
10 Try-Catch-Finally: Write a program to demonstrate the use of try-catch-finally blocks
for exception handling.
11 Thread Creation: Create and start multiple threads using Thread class and Runnable
interface.
12 Thread Synchronization: Demonstrate thread synchronization using the synchronized
keyword and wait/notify methods.
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.
15 Producer-Consumer Problem: Implement solution of Producer-Consumer Problem.
16 File Reading and Writing: Write a program to read data from a file and write data to a
file.
END SEMESTER EVALUATION
E. SELF STUDY
Sr. Topic
No.
1 Create an application that educates users about various aspects of Indian Unit I & II &
culture, see example programs/apps as follows: III & IV & V
Heritage Sites Information: An app providing information about
India's UNESCO World Heritage sites.
Virtual Tour of Indian Monuments: A virtual reality application
showcasing famous Indian monuments and their history.
Indian Mythology Quiz: Make a java program for a quiz to test
knowledge about Indian mythology
2 Classical Music Player: An app that plays Indian classical music, with Unit V
options for different ragas and instruments.
3 As suggested by Course instructor/CCC to bridge any gap in the curriculum
4 Any topic as suggested by Course instructor