/SECJ2154-OOP

This repository offers educational resources, code examples, and implementations relating to object oriented programming using Java programming language.

Primary LanguageJava

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors Visitors

Don't forget to hit the ⭐ if you like this repo.

Object Oriented Programming (SECJ2154)

Welcome to the Course on Object Oriented Programming! This course will present the concepts of object orientation and object-oriented programming techniques using Java programming language. It provides students with a thorough look at the basic constructs of the Java programming language such as its basic data types and operations. It also emphasizes on the use of standard Java APIs that allow students to develop text-based and GUI applications. It will also provide the programming techniques on exception handling and input/output files. At the end of this course, students should be able to use the basic constructs in object-oriented programming.

Course Overview πŸ“š

  • Course Duration: 15 weeks
  • Prerequisites: Programming Technique 1 and Programming Technique 2

Course Learning Outcomes (CLO) 🎯

By the end of this course, students will be able to:

  1. Apply OOP concepts in problem solving and develop Java applications.
  2. Develop Java applications that leverage the object-oriented features of the Java language such as encapsulation, inheritance and polymorphism in a given time frame.
  3. Work in a team to develop a medium to complex program as a group mini project using Java programming language.

Program Learning Outcomes (PLO) 🌟

This course contributes to the following Program Learning Outcomes:

  • PLO1: Ability to acquire theory and principles of computer science and equip with social science and personal development knowledge.
  • PLO3: Ability to creatively solve real world problems through computer science principles using current tools and techniques.
  • PLO5: Ability to think critically and creatively in order to solve problems.

Table of Contents πŸ“‘

  1. Introduction to Object-oriented Concepts
  2. Introduction to Classes and Objects
  3. Enumerated Type, Wrapper Class and Java Package
  4. Arrays
  5. Vectors and Collections
  6. Class Relationships
  7. Inheritance
  8. Polymorphism
  9. Exception Handling

Course Content πŸ“–

Introduction to Object-oriented Concepts

  • Object Oriented Definition

    Object-oriented refers to a programming language, system or software methodology that is built on the concepts of logical objects. It works through the creation, utilization and manipulation of reusable objects to perform a specific task, process or objective 1. Object-Oriented Programming (OOP) is a programming paradigm in computer science that relies on the concept of classes and objects 2. It is used to structure a software program into simple, reusable pieces of code blueprints (usually called classes), which are used to create individual instances of objects.

  • Object oriented concept

    Object-oriented programming (OOP) is a fundamental programming paradigm used by nearly every developer at some point in their career 1. OOP is the most popular programming paradigm used for software development and is taught as the standard way to code for most of a programmer’s educational career 1. OOP refers to languages that use objects in programming 2. Object-oriented programming aims to implement real-world entities like inheritance, hiding, polymorphism, etc in programming 2. The main aim of OOP is to bind together the data and the functions that operate on them so that no other part of the code can access this data except that function. Key concepts of OOP include classes, objects, encapsulation, inheritance, polymorphism, and abstraction 3.

    Image Description

  • Classes in Java
  • Java basics
  • Creating Java programs
  • Java variables and data types

Introduction to Classes and Objects

  • Instance fields, accessor and mutator methods
  • Constructors
  • UML class diagram
  • Static class members
  • Passing and returning Objects to/from methods

Enumerated Type, Wrapper Class and Java Package

  • Enumerated types
  • Garbage collection
  • Wrapper classes
  • Packages and import Statements

Arrays

  • Defining one-dimensional array
  • Passing arrays as arguments to methods
  • Returning arrays from methods
  • String arrays
  • Arrays of objects
  • Defining two-dimensional array

Vectors and Collections

  • ArrayList
  • Vector

Class Relationships

  • Association
  • Aggregation
  • Composition

Inheritance

  • Introduction to inheritance
  • Protected members
  • The object class
  • Calling the superclass constructor
  • Chains of inheritance
  • Overriding superclass methods

Polymorphism

  • Introduction to polymorphism
  • Abstract classes and abstract methods
  • Interface and implements

Exception Handling

  • Introduction to exceptions
  • Checked vs unchecked exceptions
  • Throwing exceptions

Evaluation πŸ“Š

  • Lab Exercises(5): 15%
  • Quizzes(3): 10%
  • Project: 15%
  • Test1(Theory): 15%
  • Test2(Practical): 15%
  • Final Exam: 30%
  • Total: 100%

Additional Resources πŸ”—