You are on page 1of 5

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani

Pilani Campus
AUGS/ AGSR Division

SECOND SEMESTER 2019-20


COURSE HANDOUT
Date: 07.01.2020

In addition to part I (General Handout for all courses appended to the Time table) this portion gives further
specific details regarding the course.
Course No : CS F213
Course Title : Object Oriented Programming
Instructor-in-Charge : Dr. Amit Dua
Instructor(s) : Dr. Jennifer Ranjani J.
Tutorial/Practical Instructors : Dr. Amit Dua, Dr. Jennifer Ranjani J., Ms. Shail Saharan
1. Course Description:
This course provides a student with an in-depth understanding of object-oriented programming, object
oriented designing, and design patterns. Java programming language is chosen to realize object orientation.
The course is taught with live demonstrations, running and debugging several examples, on tools like
Eclipse. The later part of the course focuses on designing object oriented software. After the completion of
this course a student should be able to effectively realize and implement real world problems using object
oriented principles and techniques.

2. Scope and Objective of the Course:


a) Gives in-depth understandings of object-oriented programming using the java programming language,
object oriented analysis and design, and design patterns.
b) In the classroom the course will be taught with live demonstrations, running and debugging several
examples on tools like Eclipse.
c) The later part of the course focuses on designing object-oriented software.

3. Text Books:
T1. Java: The Complete Reference, Herbert Schildt, McGraw Hill Education, Tenth Edition, 2017
T2. Object Oriented Design & Patterns, Cay Horstmann, John Wiley & Sons, 2004
4. Reference Books:
R1. JavaTM Design Patterns – A Tutorial, James W. Cooper, Addison-Wesley, 2000

5. Course Plan
Module Number
Lecture session Reference Learning Outcome
(Instructor’s name)
- Object and Class Basics
- Basic Pillars of Object-Oriented
Programming
1. Object-Oriented L1.1. Object-Oriented Basics T1, Ch. 2 o Abstraction
and Java Basics o Encapsulation
o Inheritance
(Dr. Jennifer Ranjani o Polymorphism
J.) - Java Program Structure
L1.2 – 1.3. Java - Compiling and Executing a Simple
T1, Ch. 2-5
Programming Syntax Java Application
- Types of Variables in Java
1
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
AUGS/ AGSR Division

- Primitive Types in Java


- Type Promotion and Type Casting
Rules
- Operators
- Control statements
- Defining Classes and Access
Modifiers
- Creating Objects
- Role of Constructors
- Accessing Instance Fields and
L1.4 – 1.5 Defining Classes Methods
T1, Ch. 6
and Object Creation - Local Variables vs. Instance
Variables
- Mutable and Immutable Objects
- Command-Line Arguments (lab)
- Reading Input from console using
Scanner class (lab)
L1.6 Use of static final - Use of static and final keywords
keywords in Java, Method T1, Ch. 7 - Method Overloading
Overloading - Constructor Overloading

L1.7 Objects as Parameters T1, Ch. 7 - Objects as Parameters to Methods

2. Arrays and String T1, Ch.3, Ch. - Implementing 1-D and 2-D Arrays
L2.1 Arrays in Java
in Java 19 - Role of Arrays class
- String class and methods
(Dr. Jennifer Ranjani L2.2. Strings in Java T1, Ch. 17
- StringBuffer and StringTokennizer
J.)
- Extending classes and role of super
keyword
L3.1-3.2. Inheritance in Java T1, Ch. 8
- Method Overriding [Super Type vs
3. Polymorphism and Sub-Type Relationships]
Inheritance in Java - Abstract methods and classes
- Interfaces in Java [Class vs Interface]
L3.3-3.6. Abstract Classes,
(Amit Dua) T1, Ch. 8, - Comparable and Comparator
Abstract Methods and
Class notes Interfaces
Interfaces
- Nested and Inner Classes
- Anonymous class and objects
4. Exception - Exception basics and types
Handling Mechanism - Catching Exceptions
L4.1– 4.2 Exceptions in Java T1, Ch. 10
- Writing your own Exceptions
(Amit Dua)
- Create a file in java
- Read a file in java using
BufferedInputStream
- Read a file in using BufferedReader
5. Input/ Output in
T1, Ch. 21 - Write to a file in using
Java L5.1 – 5.2
<<class FileOutputStream
File handling in Java
notes>> - Write to file in using BufferedWriter
(Amit Dua)
- Append to a file in java using
BufferedWriter, PrintWriter,
FileWriter
- Delete file in using delete() method.
2
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
AUGS/ AGSR Division

- Rename file in Java using renameTo()


method
6. Generic
Programming - Generic Form of a class
T1, Ch. 14 ,
L6.1. Generic Programming - Generic Interfaces and Bounded
Class Notes
(Dr. Jennifer Ranjani Types
J.)
Syllabus for Mid Semester Exam: Module-1 to Module-6
- Introduction to Collection Framework
in Java
7. Collections
- Important Collection Interfaces and
Framework of Java
T1, Ch. 19, their methods
L7.1 – 7.3 Collections in Java
Class notes - ArrayList and LinkedList classes
(Dr. Jennifer Ranjani
- Iterators and ListIterators
J.)
- Wrapper classes and Autoboxing
- Sets and Hash-Maps in Java
- Multithreading vs. Multitasking
8. Multithreading - Thread Class and methods
L8.1 – 8.6
- Creating your own Threads and
Multithreaded Programming T1, Ch. 11
(Dr. Jennifer Ranjani Runnable Interface
in Java
J.) - Thread Synchronization
- Inter Thread Communication
- The Java Type System
- Type Inquiry
9. Object Model
L9.1 – 9.3 - Object Class
T2, Ch. 7
Java Object Model - Shallow and Deep Copy
(Amit Dua)
- Serialization
- Reflection
Syllabus for the Online Test: Module-1 to Module-9
Design Patterns
(a) Creational Patterns
- Singleton
- Abstract Factory and Factory
Method
- Builder
(b) Structural Patterns
- Adapter
Class notes - Composite
10. Object-Oriented Derived from - Decorator
L10.1 – 10.8
Patterns reference book - Bridge
Object-Oriented Design
R1 and other - Proxy
Patterns
(Amit Dua) online (c) Behavioral Patterns
resources - Iterator
- State
- Strategy
- Visitor
- Observer
- Command
- Chain of Responsibility
- Memento
- Template Method
Syllabus for Comprehensive Exam: Module-1 to Module-10
3
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
AUGS/ AGSR Division

6. Lab Plan
Lab # Topics to be Covered
1 Introduction to Eclipse IDE
2 Reading user input, Designing Simple Classes
3 Static variables, methods, and blocks, Object as Parameter, Wrapper Classes
4 Arrays, Passing arrays, Multi-dimensional arrays, Strings, StringBuffer, StringTokenizer
5 Inheritance, Polymorphism, Abstract Classes
6 Interfaces [Comparable, Comparator], Inner classes and static inner classes
7 Exception Handling and Text File I/O
8 Anonymous inner classes, Collections [List, ArrayList, Iterator, ListIterator, LinkedList]
9 Multi-threaded Programming in Java
10 Design Patterns (creational, structural and behavioral patterns)
7. Evaluation Scheme:
Component Duration Weightage (%) Date & Time Nature of component
(Close Book/ Open
Book)
Mid-Semester Test 90 Min. 25 <TEST_1> Closed Book
Comprehensive 3h 35 <TEST_C> Part Open
Examination
Online Test 90 Min. 20 TBA Open Book
Quizzes (Take home, 30 Min 6 Every Month Open Book
Nalanda)
Online Quiz 2h 9 TBA Open Book

Lab Attendance 2h 5 NA NA
Quizzes: There will be a quiz once in every month at regular intervals. The quiz questions will be made
available on Nalanda. Students are advised to revise the concepts taught in the class regularly by going
through the prescribed text and reference books and practicing the lab sheets. It is of utmost importance that
the quizzes be attempted with proper preparation. A fixed window of about 40 minutes will be made
available for students to attempt the quiz from anywhere. However, once the quiz is started, a student will
have to complete that in the prescribed time of 20-30 minutes. The quiz can be started anytime during the
given time window, but will end after the defined time limit. Students are also advised to avoid the last
minute upload due to possible network congestion. Students will be graded for the best 75% of the total
quizzes uploaded. By the end of the semester, four quizzes were uploaded, best 3 will be considered for
grading. No makeup request will be entertained if a student misses the quiz. In addition, the quiz time will
not be extended for any reason.

Online quiz: The online test is intended to test the learned knowledge of a student about the design aspects
of the taught programming languages paradigms. It will comprise of variety of short answer type questions,
which will be multiple choice, fill in the blanks, matching etc. or explanation based. The test will be
conducted in IPC in the 3rd week of April. No makeup request will be considered for online quiz.

8. Important Course Policies


a) Each lab attendance carries 1.25 marks. Best of eight lab attendance will be considered for
final grading.
b) Labs falling on holidays will not be cancelled or rescheduled. They will be conducted on the
very same date and time.
4
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
AUGS/ AGSR Division

c) Makeup requests will be considered only in case of hospitalization.

9. Chamber Consultation Hour : Dr. Amit Dua: Friday 4:00 p.m. to 5:00 p.m.
Dr. Jennifer Ranjani J.: Friday 4:00 p.m. to 5:00 p.m.
10. Notices : All notices will be posted on Nalanda
11. Make-up Policy : Make-up will be granted on in case of hospitalization
12. Note (if any) : No make-up will be granted for the online test, online quiz,
and Nalanda take home quizzes

Dr. Amit Dua


Instructor-in-charge
Course No. CS F213

You might also like