Sie sind auf Seite 1von 13

BIRLA INSTITUTE OF TECHNOLOGY & SCIENCE, PILANI

WORK INTEGRATED LEARNING PROGRAMMES

COURSE HANDOUT

Part A: Content Design

Course Title Object Oriented Programming and Design


Course No(s) SEWP ZG222
Credit Units 4
Course Author Akshaya Ganesan & Nayan Khare
Version No v2.0
Date

Course Objectives:
No Course Objective

CO1 To advance the programming skills students gathered in the course computer programming in
their first semester and advance problem solving techniques by using the object oriented
approach

CO2 To teach object oriented programming concepts including polymorphism, encapsulation,


overloading, and inheritance.

CO3 Designing and implementing the solutions to problems using object oriented concepts

Learning Outcomes:
No Learning Outcomes

LO1 Demonstrate sound understanding of Object oriented concepts and able to design
applications having to apply OOP paradigms.

LO2 Express the OOP concepts in form of code snippet, small applications having to
recognize the differences between procedural and OOP concepts.

LO3 Design applications using the various constructs and features available in the
programming language and assess them.
Text Books:
T1 The Java Programming Language, Ken Arnold, David Holmes, James Gosling, Prakash
Goteti, 3 rd Edition, Pearson

Reference Books:
R1 Java: The Complete Reference by Herbert Schildt, 9th Ed, 2017

Contact Sessions:
Module List of Topic Title Text/Ref Book/external resource
No

M1 INTRODUCTION TO OOP T1 Chapter 1, 2


CONCEPTS
● Object and Class Basics
● Object-Oriented Paradigms
● Java Program Structure
● Primitive Types in Java RL Abstraction and Encapsulation
● Creating and defining classes , RL Inheritance and its Types
methods RL Polymorphism
● Creating and instantiating Objects RL Java Program Structure
● Accessing class members RL Java Primitive Types , Type Casting
RL Creating and defining classes ,
methods
RL Access Modifiers
RL Object Creation

M2 CLASSES , OBJECTS AND METHODS T1 Chapter 1, 2


● Construction and Initialization, R1 Chapter 7
Constructors , destructors
● Methods (Method invocation , RL Accessing Class members and
execution and return) and Access methods
Control RL Constructors and Types
● Static fields and static methods RL Static classes and members
● This operator RL FINAL Keyword
● Passing parameters as objects RL Mutable and Immutable objects
● Method and constructor RL Method Overloading
overloading RL Objects as parameters

M3 PACKAGES, ARRAYS, STRINGS and T1 Chapter 1, 6, 14, 15


STREAM
● Introduction to Packages RL Packages
● Array Handling RL Arrays in Java
● Dynamic Arrays RL Array Class
● Strings in Java RL Dynamic Arrays
● String Operations RL Strings in Java
● I/O Streams RL Strings Operations
RL Searching Strings
RL Streams and Scanner Class
RL Object Class
M4 EXTENDING CLASSES - T1 Chapter 7
INHERITANCE R1 Chapter 8
● Creating subclass
● Inheritance types , redefining RL Composition and Aggregation
members, Hiding Fields RL Inheritance in Java
● Accessibility and overriding RL Extending Classes and Super
● Super Class and its use RL Method Overriding
● Final Class and Methods RL Abstract Classes and Methods
● Abstract Class and Methods

M5 INTERFACES AND EXCEPTIONS T1 Chapter 8, 9, 10


● Declaring interfaces
Extending interfaces RL Interfaces and Runtime
•Implementing interfaces Polymorphism
•Nested Classes and Nested RL Comparable and comparator
Interfaces interfaces
•Inner Classes and Anonymous RL Exception
classes RL Exception Handling
•Inheriting Nested Types RL Throw Clause
•Comparator and Comparable RL Finally Clause
interfaces
● Exceptions
•try catch blocks,
•throw, throws and finally
•Exception classes in Java library
•Assertions and assert statements

M6 COLLECTIONS T1 Chapter 11
● Collection Interface R1 Chapter 17
● List- ArrayList, LinkedList,
RandomAccess List RL Collection Interface
● Writing Iterator Implementations RL ArrayList
● Writing Collections RL LinkedList
Implementation RL Iterators and List Iterators

M7 MULTITHREADING T1 Chapter 12
● Creating Thread R1 Chapter 11
● Using Runnable interface
● Thread Class in Java RL Multitasking Vs Multithreading
● Thread States RL Threads in Java and States
● Thread synchronization RL Thread Class
● Creating and Executing Threads RL Thread Synchronization

M8 THE JAVA OBJECT MODEL T1 Chapter 7


• The Java Type System R1 Chapter 14
• Type Inquiry
• The Object Class
RL Java Type System
• Shallow and Deep Copy RL Wrapper
GENERIC PROGRAMMING BASICS RL Type Inquiry
• Generic Form of a Class RL Revisiting Object
• Bounded Types RL Generic Form of a class
• Generic Interfaces RL Generic Interfaces and Bounded
• Restrictions on Generics Types

Learning Exercises and Case Studies:


Faculty needs to provide learning exercise, reading notes and case studies and include them in EC-1
evaluation which are primarily drawn from the tables below.

Detailed Plan for Learning Exercises:


The learning exercises is designed keeping in mind a simple approach to motivate the
students to actively participate in completion of the assignment and fulfil learnings that is
desired by the instructor.
Lab Lab Objective Content Reference
No

LE1 Java Program to define a class, describe its constructor, T1


overload the Constructors and instantiate its object

LE2 Java Program to define a class, define instance methods T1


for setting and Retrieving values of instance variables
and instantiate its object

LE3 Java Program to define a class, define instance methods T1


and overload them and use them for dynamic method
invocation

LE4 Java Program to demonstrate use of sub class and nested T1


classes, wrapper classes and their methods

LE5 Java Program to implement array of objects and Vector T1


class and methods

LE6 Java Program to implement inheritance and demonstrate T1


use of method overriding, multilevel inheritance by
applying various access controls to its data members and
methods.

LE7 Java program to demonstrate use of implementing T1


interfaces

LE8 Java program to implement the concept of importing T1


classes from user defined package and creating packages

LE9 Java program to implement the concept of Threads - T1


Thread Class and Runnable Interfaces. Multithreading
concepts and associated operations on threads

Experiential learning components


1. Lab work: Lab exercises are required for all the modules. The exercises are should
be implemented in Java programming language using Eclipse IDE. BlueJ Editor
could be used to demonstrate the OOP paradigms visually.
Please refer to detailed lab plan for the types of exercise which has to be conducted
2. Project work: Introduce students to GUI constructs that could help the students to
develop the mini projects. A running mini project of a relevant application which
involve students in all the stages of development could be given at the start of the
semester
3. Case Study: Suitable case study may be presented (Optional)
4. Work integration: Project work could be made relevant to individual students work
experience/ or problems found in host organization can be chosen
5. Design Work/Field work: The Project work should include the design related to the
application to be designed.

Evaluation Components:
No Name Type Duration Weight Day, Date, Session, Time
EC-1 Assignment/Quiz Online Faculty will discuss in the
Quiz -1 5% class.
Quiz – 2 5%
Assignment – 1 10%
EC-2 Mid-Semester Exam Closed Book 1.5 hours 30% Refer to the semester time
table
EC-3 Comprehensive Exam Open Book 2.5 hours 50% Refer to the semester time
table

Instructional Plan – I
There are 10 contact sessions; 5 before mid-semester and 5 post mid-semester. Each contact session is
of two hour; typical gap between two contact sessions is on average around 2 weeks. In the tabular
cells quote appropriate legends from the modular structure table

Contact Pre-contact prep Contact session Post-contact sessions


Session
1 Recap of basics of Introduce the Eclipse IDE T1 Chapter 1, 2
Programming Language - Run the first Java
Tokens, Values and variables Program RL Abstraction and
Lexical Elements Introduce the basic Encapsulation
Types and Literals - Character, debugging e.g. step into, RL Inheritance and its Types
Integer, Floating Point, String step through, watching RL Polymorphism
Variables - Field, Local, variables RL Java Program Structure
Parameter Significance of a Class RL Java Primitive Types ,
Array variables Main function inside a Type Casting
Primitives and Types class RL Creating and defining
Constants, Void, Number Keywords associated with classes , methods
Operators and Exceptions main function - public, RL Access Modifiers
Integer Arithmetic, Floating static, void RL Object Creation
Point, Increment and Differentiate Class and
Decrement, Relational, Object
Equality, Logical, Bit Creating class and
Manipulations, Conditional creating objects
Operator, Expressions, Type Adding members to the
Conversions, Operator class - variables and
Precedence and Associativity methods
Control Flow Running a simple
Statements and blocks, if-else, program with a class and
switch, while, do-while, for, objects
break, continue, return Introduction to concepts
of Encapsulation and
Reference: Abstraction
T1 Chapter 7, 8, 9, 10 Access Modifiers -
private, public, static
2 T1 Chapter 1, 2 Construction and LE1, LE2, LE3, LE4
R1 Chapter 7 Initialization,
RL Accessing Class members Constructors , destructors
and methods Methods (Method
RL Constructors and Types invocation , execution and
RL Static classes and members return) and Access
RL FINAL Keyword Control
RL Mutable and Immutable Static fields and static
objects methods
RL Method Overloading This operator
RL Objects as parameters Passing parameters as
objects
Method and constructor
overloading
3 T1 Chapter 1, 18, 20 Introduction to Packages
LE5, LE8
RL Packages Array Handling
RL Arrays in Java Dynamic Arrays
RL Array Class Strings in Java
RL Dynamic Arrays String Operations
RL Strings in Java I/O Streams
RL Strings Operations
RL Searching Strings
RL Streams and Scanner Class
RL Object Class
4 T1 Chapter 3 Creating subclass LE6
R1 Chapter 8 Inheritance types ,
RL Composition and redefining members,
Aggregation Hiding Fields
RL Inheritance in Java Accessibility and
RL Extending Classes and overriding
Super Super Class and its use
RL Method Overriding Final Class and Methods
RL Abstract Classes and Abstract Class and
Methods Methods
5 Recap - CS1 to CS4 Recap Modules M1 to M4
MID SEM EXAMINATIONS – CS 1 to CS 5
6 T1 Chapter 10, 12 Declaring interfaces LE7
RL Interfaces and Runtime Extending interfaces
Polymorphism •Implementing interfaces
RL Comparable and comparator •Nested Classes and
interfaces Nested Interfaces
RL Exception •Inner Classes and
RL Exception Handling Anonymous classes
RL Throw Clause •Inheriting Nested Types
RL Finally Clause •Comparator and
Comparable interfaces
Exceptions
•try catch blocks
•throw, throws and finally
•Exception classes in Java
library
•Assertions and assert
statements
7 T1 Chapter 21 Collection Interface
R1 Chapter 17 List- ArrayList,
RL Collection Interface LinkedList,
RL ArrayList RandomAccess List
RL LinkedList Writing Iterator
RL Iterators and List Iterators Implementations
Writing Collections
Implementation

8 T1 Chapter 14 Creating Thread LE9


R1 Chapter 11 Using Runnable interface
Thread Class in Java
RL Multitasking Vs Thread States
Multithreading Thread synchronization
RL Threads in Java and States Creating and Executing
RL Thread Class Threads
RL Thread Synchronization
9 T1 Chapter 3 THE JAVA OBJECT
R1 Chapter 14 MODEL
RL Java Type System •The Java Type System
RL Wrapper •Type Inquiry
RL Type Inquiry •The Object Class
RL Revisiting Object •Shallow and Deep Copy
RL Generic Form of a class GENERIC
RL Generic Interfaces and PROGRAMMING
Bounded Types BASICS
•Generic Form of a Class
•Bounded Types
•Generic Interfaces
10 Recap - CS1 to CS10 Recap Modules M2 to M8
END SEM EXAMINATIONS – CS 1 to CS 10

Recorded Lectures Mapping


Module Topics in RL RL Name Link
1 RL Abstraction PKV RL M1 2 https://www.youtube.com/watch?
Introduction to and v=DBbZvbXB0ag&index=2&list=PL
OOP Encapsulation vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ&t=153s

RL Inheritance PKV RL M1 3 https://www.youtube.com/watch?


and its Types v=ihp_UhPzp8c&list=PLvvQ7qimT
OklfwcFSqSkglad1uUAA-
7QJ&index=3

RL PKV RL M1 4 https://www.youtube.com/watch?
Polymorphism v=l_O_9tLYOmo&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=4

RL Java Program PKV RL M2 1 https://www.youtube.com/watch?


Structure v=1kziWKBJFbY&index=5&list=PL
vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ

RL Java PKV RL M2 2 https://www.youtube.com/watch?


Primitive Types , v=uFzgRb2qBv0&index=6&list=PLv
Type Casting vQ7qimTOklfwcFSqSkglad1uUAA-
7QJ

RL Creating and PKV RL M3 1 https://www.youtube.com/watch?


defining classes , v=lQYYorlz6U0&index=7&list=PLv
methods vQ7qimTOklfwcFSqSkglad1uUAA-
7QJ

RL Access PKV RL M3 2 https://www.youtube.com/watch?


Modifiers v=EXysoYEn22E&index=8&list=PL
vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ

RL Object PKV RL M3 3 https://www.youtube.com/watch?


Creation v=SURlJRKkYCk&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=9

2 Classes and RL Accessing PKV RL M4 1 https://www.youtube.com/watch?


Objects Class members v=ZgS8DoQr-
and methods fU&index=10&list=PLvvQ7qimTOk
lfwcFSqSkglad1uUAA-7QJ

RL Constructors PKV RL M3 3 https://www.youtube.com/watch?


and Types v=SURlJRKkYCk&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=9

RL Static classes PKV RL M4 2 https://www.youtube.com/watch?


and members v=ctRrnPTBMIM&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=11
RL FINAL PKV RL M4 3 https://www.youtube.com/watch?
Keyword v=M5B6Rhl_xlY&index=12&list=P
LvvQ7qimTOklfwcFSqSkglad1uUA
A-7QJ

RL Mutable and PKV RL M5 1 https://www.youtube.com/watch?


Immutable v=jrc2V0ILhDk&index=13&list=PL
objects vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ

RL Method PKV RL M5 3 https://www.youtube.com/watch?


Overloading v=9YMHN6Mo_1c&index=15&list=
PLvvQ7qimTOklfwcFSqSkglad1uU
AA-7QJ

RL Objects as PKV RL M6 1 https://www.youtube.com/watch?


parameters v=YPLOU552pFA&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=16

3 Packages, RL Packages PKV RL M6 3 https://www.youtube.com/watch?


Arrays , Strings v=VrFX9jBJes8&index=18&list=PL
and Streams vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ

RL Arrays in PKV RL M7 1 https://www.youtube.com/watch?


Java PKV RL M7 2 v=XpLwykQmhE8&index=22&list=
PLvvQ7qimTOklfwcFSqSkglad1uU
AA-7QJ
RL Array Class https://www.youtube.com/watch?
v=gRifKadgGTM&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=23

RL Dynamic PKV RL M7 3 https://www.youtube.com/watch?


Arrays v=f_9KI8m6Ax0&list=PLvvQ7qimT
OklfwcFSqSkglad1uUAA-
7QJ&index=24

RL Strings in PKY RL M8 1 https://www.youtube.com/watch?


Java v=RGvwlQIojII&list=PLvvQ7qimT
OklfwcFSqSkglad1uUAA-
7QJ&index=25

RL Strings PKY RL M8 2 https://www.youtube.com/watch?


Operations v=5b5PQ9yuAxw&index=26&list=P
LvvQ7qimTOklfwcFSqSkglad1uUA
A-7QJ

RL Searching PKY RL M8 3 https://www.youtube.com/watch?


Strings v=jKEvJWXKtsU&index=27&list=P
LvvQ7qimTOklfwcFSqSkglad1uUA
A-7QJ

RL Streams and PKV RL M6 6 https://www.youtube.com/watch?


Scanner Class v=9iMxBTdJlqk&index=21&list=PL
vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ

RL Object Class PKV RL M6 4 https://www.youtube.com/watch?


v=eHo9belSYVY&index=19&list=P
LvvQ7qimTOklfwcFSqSkglad1uUA
A-7QJ

RL Composition PKV RL M6 2 https://www.youtube.com/watch?


4 EXTENDING and Aggregation v=rzFXARtAYRI&index=17&list=P
CLASSES- LvvQ7qimTOklfwcFSqSkglad1uUA
INHERITANCE A-7QJ

RL Inheritance in PKV RL M9 1 https://www.youtube.com/watch?


Java v=J6_s5tYojfQ&list=PLvvQ7qimTO
klfwcFSqSkglad1uUAA-
7QJ&index=28

RL Extending PKV RL M9 2 https://www.youtube.com/watch?


Classes and v=L9BqgbRcduA&list=PLvvQ7qim
Super TOklfwcFSqSkglad1uUAA-
7QJ&index=29

RL Method PKV RL M9 3 https://www.youtube.com/watch?


Overriding v=evuu-
dUpo7I&list=PLvvQ7qimTOklfwcF
SqSkglad1uUAA-7QJ&index=30

RL Abstract PKV RL M10 1 https://www.youtube.com/watch?


Classes and v=ofa-
Methods _kPHBfE&index=31&list=PLvvQ7qi
mTOklfwcFSqSkglad1uUAA-7QJ

5 INTERFACES RL Interfaces and PKV RL M10 2 https://www.youtube.com/watch?


and Exceptions Runtime v=PiH2TaUKexw&list=PLvvQ7qim
Polymorphism TOklfwcFSqSkglad1uUAA-
7QJ&index=32

RL Comparable PKV RL M10 3 https://www.youtube.com/watch?


and comparator v=ukTWJmfOE7E&index=33&list=
interfaces PLvvQ7qimTOklfwcFSqSkglad1uU
AA-7QJ

RL Exception PKV RL M13 1 https://www.youtube.com/watch?


v=jT2iMqNQ-
xU&list=PLvvQ7qimTOklfwcFSqSk
glad1uUAA-7QJ&index=42

RL Exception PKV RL M13 2 https://www.youtube.com/watch?


Handling v=IaHruC51EaA&index=43&list=PL
vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ

RL Throw Clause PKV RL M13 3 https://www.youtube.com/watch?


PKV RL M13 4 v=z5ugkdX65wc&index=44&list=PL
vvQ7qimTOklfwcFSqSkglad1uUAA
RL Finally -7QJ
Clause https://www.youtube.com/watch?
v=LyTnDC_oan4&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=45

6 RL Collection PKV RL M12 1 https://www.youtube.com/watch?


COLLECTIONS Interface v=z_xLfrZh6UE&list=PLvvQ7qimT
OklfwcFSqSkglad1uUAA-
7QJ&index=38

RL ArrayList PKV RL M12 2 https://www.youtube.com/watch?


v=oXmRiyqlOOI&list=PLvvQ7qimT
OklfwcFSqSkglad1uUAA-
7QJ&index=39

RL LinkedList PKV RL M12 3 https://www.youtube.com/watch?


v=fSBLHxPHKFI&index=40&list=P
LvvQ7qimTOklfwcFSqSkglad1uUA
A-7QJ

RL Iterators and PKV RL M12 4 https://www.youtube.com/watch?


ListIterators v=zishUhrtk_s&list=PLvvQ7qimTO
klfwcFSqSkglad1uUAA-
7QJ&index=41

7 MULTI RL Multitasking PKV RL M14 1 https://www.youtube.com/watch?


THREAD Vs v=2_QXOU9syZY&index=46&list=
PROGRAMMIN Multithreading PLvvQ7qimTOklfwcFSqSkglad1uU
G AA-7QJ

RL Threads in PKV RL M14 2 https://www.youtube.com/watch?


Java and States v=d0qralCypv0&list=PLvvQ7qimTO
klfwcFSqSkglad1uUAA-
7QJ&index=47

RL Thread Class PKV RL M14 3 https://www.youtube.com/watch?


v=rvwS_AFkELA&list=PLvvQ7qim
TOklfwcFSqSkglad1uUAA-
7QJ&index=48

RL Thread PKV RL M14 4 https://www.youtube.com/watch?


Synchronization v=NioQHev7CL4&index=49&list=P
LvvQ7qimTOklfwcFSqSkglad1uUA
A-7QJ

8 THE JAVA RL Java Type PKV RL 11 1 https://www.youtube.com/watch?


OBJECT System v=zLkhw9P7Tvg&index=34&list=P
MODEL LvvQ7qimTOklfwcFSqSkglad1uUA
AND A-7QJ
GENERIC
PROGRAMMIN
RL Wrapper PKV RL M11 2 https://www.youtube.com/watch?
G v=oxCsNkFsj5g&index=35&list=PL
vvQ7qimTOklfwcFSqSkglad1uUAA
-7QJ

RL Type Inquiry PKV RL M11 3 https://www.youtube.com/watch?


v=tUD1reX3FAk&list=PLvvQ7qimT
OklfwcFSqSkglad1uUAA-
7QJ&index=36

RL Revisiting PKV RL M11 4 https://www.youtube.com/watch?


Object v=UtONVppcd9o&index=37&list=P
LvvQ7qimTOklfwcFSqSkglad1uUA
A-7QJ

RL Generic Form RL not available


of a class

RL Generic RL not available


Interfaces and
Bounded Types

Das könnte Ihnen auch gefallen