0% found this document useful (0 votes)
16 views4 pages

OOP with Java: Course Code 3153203

The document outlines the syllabus for the Object Oriented Programming with Java course at Gujarat Technological University for Bachelor of Engineering students. It includes details on course structure, teaching and examination schemes, content units covering Java basics, classes, inheritance, exception handling, multithreading, IO programming, and UML modeling. Additionally, it lists course outcomes, experiments, design problems, and reference materials.

Uploaded by

hetij13635
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views4 pages

OOP with Java: Course Code 3153203

The document outlines the syllabus for the Object Oriented Programming with Java course at Gujarat Technological University for Bachelor of Engineering students. It includes details on course structure, teaching and examination schemes, content units covering Java basics, classes, inheritance, exception handling, multithreading, IO programming, and UML modeling. Additionally, it lists course outcomes, experiments, design problems, and reference materials.

Uploaded by

hetij13635
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

GUJARAT TECHNOLOGICAL UNIVERSITY

Bachelor of Engineering
Subject Code: 3153203
SUBJECT: Object Oriented Programming with Java
SEMESTER – V

Type of course: Professional Core

Prerequisite: none

Teaching and Examination Scheme:


Teaching Scheme Credits Examination Marks
Total
Theory Marks Practical Marks
L T P C Marks
ESE (E) PA ESE (V) PA (I)
4 0 2 5 70 30 30 20 150

Contents:
Sr. Content Total %
No. Hrs Weightage
1 Unit-1: Basics of Java Features of Java, Byte Code and Java Virtual Machine, 5 10
JDK, Data types, Operator, Control Statements – If , else, nested if, if-else
ladders, Switch, while, do-while, for, for-each, break, continue.
Single and Multidimensional Array, String class, StringBuffer class, Operations
on string, Command line argument, Use of Wrapper Class.
2 Unit-2: Classes, Objects and Methods 6 15
Class, Object, Object reference, Constructor, Constructor Overloading, Method
Overloading, Recursion, Passing and Returning object form Method, new
operator, this and static keyword, finalize() method, Access control, modifiers,
Nested class, Inner class, Anonymous inner class, Abstract class.
3 Unit-3: Inheritance and Interfaces 7 12
Use of Inheritance, Inheriting Data members and Methods, constructor in
inheritance, Multilevel Inheritance – method overriding Handle multilevel
constructors – super keyword,Stop Inheritance - Final keywords, Creation and
Implementation of an interface, Interface reference, instanceof operator,
Interface inheritance, Dynamic method dispatch ,Understanding of Java Object
Class,Comparison between Abstract Class and interface, Understanding of
[Link] – statements.
4 Unit-4: Package and Exception Handling 6 12
Use of Package, CLASSPATH, Import statement, Static import, Access
control, Exception and Error, Use of try, catch, throw, throws and finally, Built
in Exception, Custom exception, Throwable Class.
5 Unit-5: Multithreaded Programming 5 5
Use of Multithread programming, Thread class and Runnable interface , Thread
priority, Thread synchronization, Thread communication, Deadlock
6 Unit-6: IO Programming 5 10
Introduction to Stream, Byte Stream, Character stream, Readers and Writers,
File Class, File InputStream, File Output Stream, InputStreamReader,
OutputStreamWriter, FileReader, FileWriter, Buffered Reader
7 Unit-7: Collection Classes and Networking 4 6
List, AbstractList, ArrayList, LinkedList, Enumeration, Vector, Properties,
Introduction to [Link] package
InetAddress class,Socket class, DatagramSocket class, DatagramPacket class
Page 1 of 4
w.e.f. AY 2018-19
GUJARAT TECHNOLOGICAL UNIVERSITY
Bachelor of Engineering
Subject Code: 3153203
8 Unit-8: Introduction to Object orientation and Class Modeling 5 12
Modeling as a Design Technique Modeling Concepts, abstraction, The three
models, Class Model, State model and Interaction model. Object and class
concepts, link and association, Generalization and Inheritance, Advanced
Object and class concepts, Association Ends, N-ary associations, aggregation,
abstract classes, multiple inheritance, Metadata, Constraints, Derived data,
Packages.
10 Unit-9: State modeling, Interaction Modeling 7 18
Events, states, Transition and conditions, state diagram, state diagram behavior,
Use case Models, sequence models, activity models
Total 50 100

Suggested Specification table* with Marks (Theory):

Distribution of Theory Marks


R Level U Level A Level N Level E Level C Level
10 45 10 5 -- --
Legends: R: Remembrance; U: Understanding; A: Application, N: Analyze and E: Evaluate C: Create and
above Levels (Revised Bloom’s Taxonomy)

*This specification table shall be treated as a general guideline for students and teachers. The actual distribution
of marks in the question paper may vary from above table.

Reference Books:
1. Java Fundamentals A comprehensive introduction By Herbert Schildt and Dale Skrien, McGraw Hill.
2. Programming with Java - A Primer By [Link], Tata McGraw Hill.
3. The Complete Reference, Java 2 (Fourth Edition) By Herbert Schild, Tata McGraw Hill.
4. Core Java Volume-I Fundamentals (Eight Edition) By Horstmann and Cornell, Pearson Education
5. Object Oriented Modeling and Design with UML (Second Edition) By Michael Blaha and James Rambaugh,
Pearson Education
6. UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition) By Martin Fowler
Course Outcomes: Students will be able to
Sr. CO Statement Marks
No. % Weightage
1 Understand object oriented programming concepts and its implementation in java. 30
2 Understand and apply Multithreading, Exception handling, Networking concepts in real 30
world problems
3 Understand packages, collection classes, IO programming 20
4 Understand and prepare UML diagram for the software system 20

List of Experiments:
1. Write a program to convert rupees to dollar. 60 rupees=1 dollar.
2. Write a program that calculate percentage marks of the student if marks of 6 subjects are given.
3. Write a program to enter two numbers and perform mathematical operations on them.
4. Write a program to find length of string and print second half of the string.
Page 2 of 4
w.e.f. AY 2018-19
GUJARAT TECHNOLOGICAL UNIVERSITY
Bachelor of Engineering
Subject Code: 3153203
5. Write a program to accept a line and check how many consonants and vowels are there in line.
6. Write a program to count the number of words that start with capital letters.
7. Write a program to find that given number or string is palindrome or not.
8. Create a class which ask the user to enter a sentence, and it should display count of each vowel type in the
sentence. The program should continue till user enters a word “quit”. Display the total count of each vowel
for all sentences.
9. Write an interactive program to print a string entered in a pyramid form. For instance, the string “stream”
has to be displayed as follows:
S
St
Str
Stre
Strea
Stream
10. Write an interactive program to print a diamond shape. For example, if user enters the number 3, the
diamond will be as follows:

*
**
***
**
*
11. Create a class called Student. Write a student manager program to manipulate the student information from
files by using FileInputStream and FileOutputStream
12. Refine the student manager program to manipulate the student information from files by using the
BufferedReader and BufferedWriter
13. Refine the student manager program to manipulate the student information from files by using the
DataInputStream and DataOutputStream. Assume suitable data
14. Prepare a class diagram for given group of classes using multiplicity, generalization, association concepts.
And add at least 5-7 attributes and 3-5 operations for particular class Page, Shape, Point, Line, Arc, Ellipse,
Rectangle, Circle
15. Prepare a class diagram for given group of classes using multiplicity, generalization, association concepts.
And add at least 5-7 attributes and 3-5 operations for particular class. City, Airport, Airline, Pilot, Flight,
Plane, Seat, Passenger
16. Categorize the following relationships into generalization, aggregation or association.
[A] A country has a capital city
[B] A dining philosopher uses a fork
[C] A file is an ordinary file or a directory file
[D] Files contains records
[E] A polygon is composed of an ordered set of points
[F] A drawing object is text, a geometrical object, or a group
[G] A person uses a computer language on a object
[H] Modems and keyboards are input/output devices
[I] Classes may have several attributes
[J] A person plays for a team in a certain year
[K] A route connects two cities
[L] A student takes a course from a professor
17. Prepare a state diagram for an interactive diagram editor for selecting and dragging objects
18. Prepare a use case diagram and sequence diagram for a computer email system

Page 3 of 4
w.e.f. AY 2018-19
GUJARAT TECHNOLOGICAL UNIVERSITY
Bachelor of Engineering
Subject Code: 3153203
19. Prepare an activity diagram for computing a restaurant bill, there should be charge for each delivered item.
The total amount should be subject to tax and service charge of 18% for group of six and more. For smaller
groups there should be a blank entry. Any coupons or gift certificates submitted by the customer should be
subtracted
20. Prepare a sequence diagram for issuing a book in the library management system

Design based Problems (DP)/Open Ended Problem:


1) Remove duplicate lines from a large text or given document.
2) Write a program to compute if one string is a rotation of another. For example, pit is rotation of tip as pit has
same character as tip.

List of Open Source Software/learning website:


1. Java
2. NPTEL Videos
3. Java Development Kit: [Link]
4. [Link]
5. [Link]
6. [Link]
7. [Link]
8. [Link]
9. [Link]
10. [Link]
11. [Link]
12. [Link]

Page 4 of 4
w.e.f. AY 2018-19

Common questions

Powered by AI

Java's design patterns, combined with UML modeling techniques, provide a powerful framework for designing scalable, maintainable, and flexible software solutions. Design patterns offer proven solutions to common design problems, ensuring code reusability and best practices. UML, with its diagrams like class, sequence, and activity, complements design patterns by visually modeling system architecture and behavior, enhancing communication and understanding among stakeholders throughout the software development lifecycle .

Java's object-oriented principles, such as encapsulation, inheritance, and polymorphism, have significantly influenced modern software engineering by promoting modular design, code reuse, and flexibility. These principles enable abstraction, enhance security through access control, and facilitate behavioral inheritance and method overriding. Java's strict adherence to these principles ensures robust, maintainable, and scalable systems, heavily influencing contemporary design patterns and software architecture .

Using Java and UML in education offers several pedagogical advantages by providing clear and practical examples of object-oriented concepts and software design. Java's robust and widely-used nature allows students to learn concepts like inheritance, polymorphism, and abstraction in a real-world context. UML complements Java by allowing students to visualize system architecture and behavior through various diagram types, enhancing comprehension and communication skills essential for software development .

Exception handling in Java is a sophisticated feature that allows developers to manage runtime errors efficiently using a structured try-catch-finally block. Unlike C, where error handling is manually implemented with return codes and checks, Java's built-in exception hierarchy and mechanisms automate error detection and propagation. Java's Throwable class and custom exceptions enable explicit error reporting and handling, reducing the risk of unexpected program termination and improving the robustness of applications .

Java's static import feature and its package system manage large codebases effectively by organizing classes into namespaces, reducing naming conflicts and enhancing code readability. Static import allows specific class attributes, methods, or fields to be used without class qualification, simplifying code writing. However, excessive use can lead to ambiguity, making code harder to follow. Proper use of packages and selective static imports promote code structure and maintainability by encapsulating implementation details and exposing only necessary interfaces .

Java's built-in exceptions provide a standardized approach for handling common errors, such as null pointer access or array index out of bounds, while custom exceptions allow developers to define application-specific error conditions. Compared to traditional paradigms where error management is manual and often inconsistent, Java offers a unified mechanism through its try-catch-finally blocks, promoting clean and efficient error handling practices that improve code reliability and readability .

Java's collection framework significantly enhances data manipulation capabilities by providing a unified architecture for storing and manipulating collections of objects. It supports interfaces like List, Set, and Map with concrete implementations such as ArrayList, HashSet, and HashMap, offering thread-safe and non-thread-safe options. Unlike traditional data structures, the collection framework includes utilities for dynamic resizing, efficient searching, and sorting, promoting code flexibility and efficiency in handling complex data management tasks .

Multithreaded programming in Java allows concurrent execution of two or more parts of a program, facilitating efficient use of processor resources and improving performance for resource-intensive applications. The Thread class and Runnable interface provide the foundation for creating and managing threads. However, challenges include complexities such as thread synchronization, deadlock, and managing thread lifecycle, which require careful design to ensure thread-safe operations and avoid performance bottlenecks .

Java's IO programming model is fundamentally based on streams, which provide a smooth flow of data from source to destination. ByteStream classes handle raw binary data, whereas CharacterStream classes handle character data effectively, utilizing tools like Readers and Writers for converting byte streams to character streams. This separation allows Java to efficiently handle data input/output operations for both text and binary data, promoting modular and adaptable code for file manipulation .

Java supports a single inheritance model through classes and multiple inheritance through interfaces, which allows a clear separation between a class's capabilities and its behavior. This helps avoid issues like the "diamond problem" found in some other languages with multiple inheritance. Interfaces enable dynamic method dispatch, allowing objects to interact flexibly at runtime, while abstract classes allow shared code among subclasses. Java's interface reference and the "instanceof" operator provide additional flexibility for type-checking and interfacing .

You might also like