Advanced Object-Oriented Programming

CSE 0613-3121 | Theory | 3rd Year 1st Semester | Dept. of CSE, University of Brahmanbaria

Instructor: Md. Rashed

Term: Fall

Location: University of Brahmanbaria, Dept. of CSE

Time: On Campus (3.00 contact hours per week)

## Course Overview This course gives a fundamental idea about the common theoretical phenomena in advanced Object-Oriented Programming using Java. It also provides a bridge to students' previous knowledge of Object-Oriented Programming. **Course Code:** CSE 0613-3121 | **Credit:** 3.00 | **Total Marks:** 100 ## Course Objectives - Familiarize students with the advanced level of the Object-Oriented paradigm - Help them know the basic structure of an Object-Oriented Programming language - Make them understand Object-Oriented concepts in practice - Make students able to understand the relation between classes and objects with access control - Understand the use of various OOP concepts and how to apply them to real scenarios ## Course Learning Outcomes (CLOs) After successful completion of the course, students will be able to: - **CLO1.** Understand the features of Advanced Object-Oriented Programming - **CLO2.** Identify classes, objects, members of a class and the relationships among them - **CLO3.** Develop Java application programs using OOP principles and program structuring - **CLO4.** Demonstrate the concepts of OOP - **CLO5.** Gain OOP and Java knowledge in solving problems - **CLO6.** Use Java GUI and Java Applet - **CLO7.** Demonstrate a commitment to lifelong learning and professional development by engaging in independent learning and staying updated with advancements in computer science and programming languages ## Prerequisites - CSE 0613-2211 ## Textbooks - Richard Weiner, *Fundamentals of OOP and Data Structure* - Y. Daniel Liang, *Introduction to Java Programming* - Deitel and Deitel, *Java How to Program* - D. S. Malik, *From Problem Analysis to Program Design in Java* ## Grading - Class Attendance and Performance: 10% - Assignment/Class Test: 20% - Midterm: 30% - Final: 40% ## Contact Md. Rashed, Lecturer, Dept. of CSE, University of Brahmanbaria Email: md.rashed@uob.edu.bd

Schedule

Week Date Topic Materials
1 Introduction to Java and Programming Basics

OOP vs. procedural paradigm, Java platform (JDK, JRE, JVM), structure of a Java program, compiling and running, data types, variables and literals, operators and expressions, type conversion and casting, console input/output.

2 Control Flow

Conditional program flow (if, if-else, switch), iterations (for, while, do-while, enhanced for), break, continue and nested loops, problem solving with control structures.

3-4 Methods, Arrays, OOP Basics, Classes and Objects

Defining and calling methods, parameter passing, recursion, single- and multi-dimensional arrays. Abstraction, encapsulation, inheritance, polymorphism. Defining classes, creating objects, instance variables and methods, this reference, relationships among classes (association, aggregation, composition).

5-6 Constructors, Destructors, Access Modifiers and Static Members

Default and parameterized constructors, constructor overloading, copy constructor concept, object destruction, garbage collection and finalize(). Public, private, protected and default access, packages, static variables, methods and blocks, final keyword, getters and setters.

7-8 Inheritance, Polymorphism and Overloading

Types of inheritance, super keyword, constructor chaining, method overriding and dynamic (late) binding, abstract classes and methods, interfaces and multiple inheritance through interfaces. Method overloading, operator behavior in Java (e.g., + for strings) and why Java does not support user-defined operator overloading.

9 Midterm Examination
10 Object Arrays and Collections

Array of objects, passing and returning objects, String and StringBuilder handling, introduction to the Collections Framework (ArrayList and basic usage).

11 Exception Handling

Types of exceptions (checked and unchecked), try, catch, finally, throw and throws, multiple catch blocks, user-defined (custom) exceptions.

12 Introduction to Java GUI

AWT and Swing overview, containers and components, layout managers, building a simple GUI application.

13 Event Handling and Java Applet

Event delegation model, event listeners and adapters, handling mouse and keyboard events, Java Applet basics and life cycle (legacy technology overview).

14 Independent Learning and Project Presentation

Recent features of Java (e.g., lambda expressions, records), student presentations on self-learned advanced topics and mini projects, revision.

Final Final Examination (Semester End)