Object Oriented Programming
2010 - 2021
Overview
In this module, the goal is to teach the fundamentals of programming in the object-oriented paradigm. The main objective is to learn how to think object-oriented to model a problem. Concepts and tools of object-oriented thinking are taught step by step with a problem-oriented process and many examples. In this version of the module, it is considered to implement Java language. In the previous versions, C++, C# and Python languages are also presented in almost the same format.
The prerequisite of this course is familiarization with the basic concepts of functional programming and algorithm. It is assumed that the student is familiar with concepts such as variable, condition, and loop, as well as is able to to provide algorithms to solve simple problems.
Syllabus
- Introduction
- Foundation of Programming
- What is the Algorithm
- How to solve a problem by using an Algorithm
- what is OOP
- Theory of Forms
- Object, Variable, Method
- Data type vs Object
- Encapsulation and modifiers
- Three steps to solve a problem in OOP paradigm
- Java as a tool to implement OOP concepts
- Constructor and Types
- why Constractor
- Types of Constructors
- Constructor Chaining
- What happen in the Memory
- Stack vs Heap
- Value Type and a Reference Type
- Types in Java
- Inheritance
- extension
- parent class(super) and child class(sub)
- constructors in inheritance
- methods in inheritance
- overriding
- object class and its methods
- Casting and polymorphism
- Down casting and Up casting
- implicit and explicit Casting
- instanceof method
- Errors
- Polymorphism
- Excption
- throw an Error(Excption)
- Types of Exceptions
- Define a Custom Error(Excption)
- Catch an Excption
- Abstraction
- Abstract class
- Contract and interface
- multiple inheritance
- Comparable interface and compareTo method
- Collections and Arrays class
- find a triple
- Linked list
- Static methods
- final keywords
- inner classes
- static arrays vs dynamic arrays
- linked list from scratch
- Java LinkedList
- Generics
- Sets and Maps