OOP - Course Overview
OOP - Course Overview
Programming
Meet your Prof
Lea D. Austero, DIT
▪ Doctor in Information Technology at
Technological Institute of the Philippines Quezon
City (May 2023)
▪ Master in Information Technology at University of
the Cordilleras (2015)
▪ Bachelor of Science in Computer Science (2006)
▪ Interests: Optimization, Image Processing, Data
Science
The Course
▪ This course introduces the principles and concepts of
Object-Oriented Programming (OOP). Students will learn how
to design and implement software using the object-oriented
paradigm, focusing on abstraction, encapsulation,
inheritance, and polymorphism. The course will also cover
best practices and design patterns in OOP.
▪ 3 units (2 hours lecture, 3 hours laboratory)
▪ Prerequisites: Basic programming knowledge (variables,
control structures, functions, etc.)\
▪ PL to be used: JAVA
Course Objectives
▪ Understand OOP Fundamentals
▪ Apply Abstraction and Encapsulation
▪ Master Inheritance and Polymorphism
▪ Analyze Software Design Patterns
▪ Develop Effective OOP Programs
▪ Apply Exception Handling
▪ Demonstrate Proficiency in Modern OOP Languages
▪ Analyze Real-World Software Systems
Course Requirements
▪ Midterm Exam (October 12-15, 2023)
▪ Final Exam (December 15-19, 2023)
▪ Machine exercises
▪ Case studies
▪ Assignments
▪ Project (Group of 3)
Expectations
▪ Show interest in learning OOP
▪ Attend our lectures
▪ Complete all course requirements
▪ If cannot understand a concept, must review and practice
▪ Yours?
Topics
▪ Introduction to OOP
▪ Abstraction and Encapsulation
▪ Inheritance
▪ Polymorphism
▪ Design Principles and Patterns
▪ Advanced Topics
Why OOP matters
▪ Modularity and Reusability ▪ Real-World Modeling
▪ Abstraction and Encapsulation ▪ Design Patterns
▪ Ease of Maintenance ▪ Career Opportunities
▪ Code Readability ▪ Adaptability
▪ Flexibility and Extensibility ▪ Preparation for Advanced
Concepts
▪ Team Collaboration
▪ Problem-Solving Skills
Procedural vs OOP
Characteristics
Procedural Object-Oriented
• Focuses on writing procedures • Focuses on creating and interacting with
(functions) that operate on data. objects, which encapsulate data and
• Data and functions are treated as behavior.
separate entities. • Data and functions are bundled together
• Relies on global data that can be within classes.
accessed by any part of the program. • Encourages the use of access modifiers to
• Emphasizes linear execution, where the control data access and promote
program follows a sequence of encapsulation.
instructions. • Supports concepts like inheritance,
• Limited code reusability as functions are polymorphism, and abstraction.
the primary unit of reuse. • Emphasizes code reusability through
• Programs are often organized around classes and hierarchies.
tasks and actions. • Programs are often organized around
Procedural vs OOP
Advantages
Procedural Object-Oriented
• Simple and • Promotes code organization and modular
straightforward for smaller design, making large projects more
programs or projects. manageable.
• Well-suited for tasks that • Enhances code reusability and
follow a clear sequence of maintainability through class hierarchies and
steps. design patterns.
• Easier for beginners to • Reflects real-world modeling, making the
grasp due to its code more intuitive and closely aligned with
procedural nature. the problem domain.
• Supports collaborative development by
allowing multiple developers to work on
Procedural vs OOP
Use Cases
Procedural Object-Oriented
• Small-scale scripts and • Large-scale software applications where
utilities. modular design and maintainability are
• Simple programs where crucial.
data structures and • Systems that require modeling complex
interactions are real-world entities and their interactions.
straightforward. • Projects that may involve multiple teams
• Embedded systems and require efficient collaboration.
with resource
constraints.
Thank you for listening!