Course Packbb
Course Packbb
Self-study
Practical 1 2
Practical
Tutorial
Theory
Self-
1 8
SEE
CIE
study
3. PREREQUISITE COURSE
Prerequisite course Yes (√) No
required
The students must have completed Programming for Problem Solving Basics in the first semester.
Modern Tool Usage: Create, select and apply appropriate techniques, resources and
PO5: modern engineering & IT tools, including prediction and modelling recognizing their
limitations to solve complex engineering problems. (WK2 and WK6).
The Engineer and The World: Analyze and evaluate societal and environmental aspects
PO6: while solving complex engineering problems for its impact on sustainability with reference
to economy, health, safety, legal framework, culture and environment. (WK1, WK5, and
WK7).
PO7: Ethics: Apply ethical principles and commit to professional ethics, human values,
diversity and inclusion; adhere to national & international laws. (WK9).
PO8: Individual and Collaborative Team work: Function effectively as an individual, and
as a member or leader in diverse/multi-disciplinary teams.
Life-Long Learning: Recognize the need for, and have the preparation and ability for:
PO11 i) independent and life-long learning ii) adaptability to new and emerging technologies and
: iii) critical thinking in the broadest context of technological change. (WK8).
PSO2 Demonstrate Engineering Practice learned through industry internship and research project to
solve live problems in various domains.
Concepts of OOP:
Java Object Class -Java OOPs concepts - Naming Convention-Object and Class - Method in Java -Java Constructor -
Static keyword in Java -This keyword
Java Inheritance-Inheritance (IS-A)-Aggregation (HAS-A)-Java Polymorphism-Method Overloading- Method
Overriding-Covariant Return type-Super keyword-Instance Initializer Block-Final Keyword-Runtime polymorphism-
Dynamic Binding – instance Of operator.
Java Abstraction-Abstract class in Java-Interface in Java-Abstract vs Interface
Java Encapsulation-Java Package-Access Modifiers-Encapsulation
PRACTICAL:
PPP (Preliminary Project Plan): The preliminary project plan (PPP) provides an initial, overview of
the project and all of its known parameters. It outlines the project's objectives, relevance to the
program, merit, and conformity to current industry/government policy, proposed methodology, and
expected outcomes. It should also include any known constraints related to the time frame (Gantt
Chart), budget, etc.
TRL (Technology Readiness Level)-1:
Basic Research: Initial scientific research has been conducted. Principles are qualitatively
postulated and observed. Focus is on new discovery rather than applications.
Theory /
Tutorial /
L-No Topic for Delivery Skills Competency
Practical
Plan
Introduction to Java Programming, History, Features of Understanding
1 Theory CO1
Java Java's evolution &
benefits
Understanding
2 C++ vs Java, JVM Architecture (JDK, JRE, JVM) Theory differences & Java CO1
execution model
Setting up Java Environment, Writing & Running Java Installing,
3 Theory CO2
Programs configuring, and
running Java
Variable handling
4 Java Variables, Data Types, Operators, Keywords Theory & operations in CO1
Java
5 Control Statements (if-else, switch)-1 Theory Logic building CO2
using control
6 Control Statements (Loops)-2
structures
Java OOPs Concepts & Naming Conventions Understanding
7 Theory fundamental OOP CO1
principles
8 Objects and Classes, Methods in Java Theory Writing object- CO2
oriented code
Java Constructor
Applying
9 Theory constructors & CO2
static members
10 Static Keyword, This Keyword Theory CO2
11 Inheritance (IS-A), Aggregation (HAS-A) Theory Understanding CO1
code reusability
12 Implementing Inheritance & Aggregation in Java Theory CO2
Applying
13 Polymorphism: Method Overloading, Method Overriding Theory inheritance CO1
Covariant Return Type, Super Keyword concepts in
programs
Understanding
compile-time &
14 Theory runtime CO2
polymorphism
Writing
polymorphic
programs
15 Instance Initializer Block, Final Keyword Theory Deep CO1
understanding of
Runtime Polymorphism, Dynamic Binding, instanceOf
OOP execution
Operator
flow
16 Theory Implementing CO2
polymorphism in
real-world
scenarios
17 Abstraction: Abstract Classes Theory Differentiating CO1
abstract class &
18 Interface in Java Theory CO3
interface
Abstract vs Interface, Implementing Abstraction Applying
19 Theory abstraction in Java CO2
programs
20 Encapsulation: Java Packages Theory Securing data & CO1
code organization
21 Access Modifiers
Applying
22 Encapsulation Implementation & Real-world Applications Theory encapsulation in CO2
Java Arrays: One-Dimensional & Multi-Dimensional projects
Understanding
23 Theory CO3
array memory
structure
24 Java Strings: Introduction & String Methods Theory Manipulating CO3
25 Java Strings: Advanced Methods & Manipulations Theory strings in Java CO4
programs
26 Java Strings: Advanced Methods & Manipulations Theory CO4
Applying all
concepts in a
project
27 Introduction to Exception Handling in Java Theory Reinforcing CO4
concepts & final
assessment
28 Java try-catch block, Multiple Catch Blocks Theory Understanding CO1
errors &
exceptions
29 Java Nested Try, Finally Block Theory Handling CO1
exceptions using
try-catch
30 Java throw & throws Keywords, Theory Ensuring code CO1
execution with
31 Final vs Finally vs Finalize Theory
finally
32 Theory Custom exception CO2
Introduction to Java Multi-threading handling
Understanding
33 Theory CO2
Creating Threads using Runnable & Thread Class thread lifecycle
Implementing
34 Synchronization & Inter-thread Communication Theory multi-threading in CO2
Java
35 Introduction to IO Package & Streams Theory Managing CO2
concurrency issues
36 InputStream, OutputStream Theory Understanding file CO2
handling
37 Object Serialization & Deserialization Theory Performing file I/O CO2
operations
38 Filter and Pipe Streams in Java Theory CO3
Saving and
39 IO Files Theory restoring Java CO3
objects
40 Java Collections: Introduction to ArrayList Theory Advanced file
handling
41 Java Collections: LinkedList & Set Theory techniques
Implementing CO3
dynamic arrays
42 Java Collections: Map and HashMap Theory Working with
linked structures
43 Revision
44 Revision
45 Revision
PRACTICAL PROBLEMS FOR COMPREHENSIVE COURSES OF 5 CREDIT
FOR PRACTICAL 15 weeks * 2Hours = 30 Hours lab sessions (1 credit = 2 lab hours)
Java Basics
7. Create a Java program that defines a Student class with attributes like name, age, and
grade. Include methods to display student details. Create multiple objects of the
Student class to represent different students and display their information.
8. Create a Java program that defines a class named Calculator with methods for
addition, subtraction, multiplication, and division. Then, create a main class to call
these methods and display the results.
9. Design a Java program for a Student class that stores a student's name and age.
Implement two constructors: a default constructor that assigns default values and a
parameterized constructor that takes name and age as input. Create objects using both
constructors and display the student details.
10. Develop a Java program where each student has a name and roll number. Due to a
variable name conflict inside the constructor, you need to use the this keyword to
differentiate between instance variables and constructor parameters. Implement a Java
program to demonstrate the use of the this keyword in assigning values to instance
variables..
Java Inheritance
11. Develop a Java program where a base class Employee stores common details such as
employee name and ID. A derived class Manager should inherit from Employee
and include an additional attribute, department name. Implement a constructor in
both classes and use the super keyword to call the parent class constructor.
Demonstrate how single-level inheritance allows the Manager class to reuse
properties of the Employee class while adding its own functionality.
12. You are designing a vehicle management system for a transport company. Implement
a Java program using multilevel inheritance with the following hierarchy:
The Vehicle class serves as the base class with attributes like brand and speed, along
with a method to display these details.
The Car class extends Vehicle, adding attributes such as fuelType and
seatingCapacity.
The ElectricCar class further extends Car, introducing an additional attribute,
batteryCapacity.
13. Create a Java program using inheritance where a Person class is extended by an
employee class. The Employee class should add properties like employee ID and
department, with methods to display all details.
14. Create a Java program that models a Library and its collection of Books using a HAS-
A relationship (Aggregation). Ensure that the Library class can contain multiple Book
objects, and implement appropriate methods to manage the books.
Java Polymorphism
15. You are building a banking application where users can deposit money into their
accounts in different ways. Some users may deposit cash, others may deposit a check,
and some may transfer money from another account. To handle these different deposit
methods efficiently, the system should use method overloading.
Based on the given scenario, write a Java program that demonstrates method
overloading by creating a BankAccount class with multiple deposit methods. Each
method should accept different types of deposits, such as cash (integer), check
(double), and account transfer (two parameters: account number and amount).
Implement and test these methods in the main function.
16. Imagine you are developing a software system for a transportation company. The
company has different types of vehicles, such as cars and trucks, each with its own
way of calculating fuel efficiency. You need to create a Java program that models this
scenario using inheritance, where a base class Vehicle has a method fuelEfficiency(),
and the Car and Truck classes override this method to provide their own specific
implementations. Based on the given scenario, Design and implement a Java program that
demonstrates method overriding using inheritance. Define a parent class Vehicle with
a method fuelEfficiency(), and create subclasses Car and Truck that override this
method to provide different fuel efficiency calculations.
17. A multimedia streaming platform offers different types of subscriptions, such as Basic
and Premium, each with its own features and pricing. To manage this, the platform
requires a Java-based implementation where a superclass Subscription defines a
method showFeatures(), which is then overridden in its subclasses Basic and Premium
to display specific features.Develop a Java program to model this scenario and
demonstrate the concept of runtime polymorphism.
18. You are developing an e-commerce application that manages different types of
products, such as electronics, clothing, and groceries. Each product category has
unique attributes and behaviors. To apply category-specific discounts and ensure
proper handling of product types, you need to verify whether a given object belongs
to a particular class or subclass. Implement a Java program that demonstrates the use
of the instanceof operator to check and validate product types within the system.
Java Abstraction
19. Imagine you are designing a payment processing system for an e-commerce
platform. The platform supports multiple payment methods, such as Credit Card and
PayPal, but each payment method follows a common structure. Some actions, like
verifying payment details, may differ depending on the payment type, while others,
like displaying a payment confirmation, are the same for all methods.
To achieve this, you need to create an abstract class that defines a blueprint for all
payment methods. The class should include abstract methods (to be implemented by
specific payment types) and concrete methods (which provide common
functionality).
Problem Statement:
Write a Java program that demonstrates an abstract class with both abstract and
concrete methods to model this payment processing system. Implement at least one
subclass (e.g., CreditCardPayment or PayPalPayment) that extends the abstract class
and provides its own implementation for the abstract methods.
Java Encapsulation
22. A retail store needs a program to manage daily sales. Use an ArrayList to store the
sale amounts for the day, allow the user to add new sales, remove incorrect entries,
and finally calculate the total sales at the end of the day.
23. A transportation company maintains a queue of passengers for a shuttle service.
Implement a Java program that uses a LinkedList to store passenger names, allowing
new passengers to join the queue and processing the queue in a first-come-first-served
order.
Exception Handling & Multi-threading
24. A file-processing application may encounter errors such as file not found or invalid
data. Write a Java program that demonstrates exception handling using try-catch-
finally blocks to handle potential runtime errors gracefully.
25. A ticket booking system allows only positive seat numbers to be entered. Write a Java
program that takes an integer seat number as input and throws an exception if the user
enters a negative number.
12. BIBLIOGRAPHY
Reference Books:
"Java: The Complete Reference" – Herbert Schildt, 12th Edition,
McGraw Hill (2021)
"Head First Java" – Kathy Sierra & Bert Bates, 2nd Edition, O’Reilly
(2005)
"Java Concurrency in Practice" – Brian Goetz, 1st Edition,
Addison-Wesley (2006)
"Effective Java" – Joshua Bloch, 3rd Edition, Addison-Wesley (2018)
MOOCS COURSES:
https://onlinecourses.nptel.ac.in/noc22_cs47/preview
https://www.coursera.org/specializations/object-oriented-
programming
16. PROBLEM-BASED LEARNING/CASE STUDIES/CLINICS
Exercises in Problem-based Learning (Assignments) (Min 55 Problems)
S. No. Question KL
Level
6 Write a Java program to find the largest of three numbers using KL3
conditional statements.
Exception
Handling &
Multi-threading
28 Write a Java program that throws a custom exception when the KL4
user enters an invalid age for voting.
32 Create two threads in Java and execute them using the Thread KL3
class.
Java Collections
Framework
8 ATM System with Build an ATM system where users KL5 CO2 Extended
Encapsulation can check their balance, Abstract
withdraw money, and deposit
funds. Use encapsulation to
protect account details from
unauthorized access.
18 File-Based Student Store student records in a file and KL4 CO3 Relational
Database allow retrieval based on student
ID. Implement CRUD operations
to update and manage records
efficiently.