Object-Oriented Programming
Object-Oriented Programming
Course Information
Institution: Indus University, Karachi, Pakistan
Department: Engineering, Science, and Technology
Level: Undergraduate
Prerequisites: Programming Fundamentals
Course Description
This course introduces students to the foundational principles and paradigms of Object-Oriented Programming (OOP). The primary aim is to provide a deep understanding of the evolution of OOP, its core concepts, and practical applications in solving real-world problems. Students will explore the design process of OOP programs, emphasizing key features such as encapsulation, inheritance, polymorphism, and exception handling.
Learning Outcomes
Upon successful completion of this course, students will be able to:
- Demonstrate a strong command of object-oriented programming concepts and implementations
- Design and structure programs using classes, methods, constructors, and objects
- Apply encapsulation, inheritance, and polymorphism principles effectively
- Implement advanced programming techniques including operator overloading and virtual functions
- Handle exceptions and manage input/output operations efficiently
- Utilize libraries to enhance program functionality
- Solve complex programming challenges using the OOP paradigm
Course Outline
| Lecture | Topic |
|---|---|
| 1 | Introduction to Computers and Java |
| 2 | Programming Process and OOP Basics |
| 3 | Java Fundamentals |
| 4 | Conversion Between Primitive Data Types |
| 5 | Programming Style and Scope |
| 6 | Decision Structures |
| 7 | Logical Operators and Variable Scope |
| 8 | Conditional and Switch Statements |
| 9 | Formatting Output and Input Validation |
| 10 | Loops |
| 11 | Nested Loops |
| 12 | Introduction to Methods |
| 13 | Passing Arguments to Methods |
| 14 | Problem-Solving with Methods |
| 15 | Common Errors to Avoid |
| 16 | Classes and Objects |
| 17 | Overloading Methods and Constructors |
| 18 | Scope of Instance Fields |
| 19 | Packages and Import Statements |
| 20 | Focus on OOP Design |
| 21 | Arrays and the ArrayList Class |
| 22 | Processing and Passing Arrays |
| 23 | Useful Array Operations |
| 24 | Advanced Classes and Objects |
| 25 | Returning Objects and toString Method |
| 26 | Inheritance |
| 27 | Superclass Constructor |
| 28 | Overriding Methods and Protected Members |
| 29 | Polymorphism |
| 30 | Abstract Classes and Methods |
| 31 | Encapsulation |
| 32 | Exceptions and File I/O |