This document discusses object-oriented programming paradigms and characteristics. It begins by stating that most will work in IT and knowing OO paradigms can help careers. It then discusses the key characteristics of OO paradigms - abstraction, encapsulation, inheritance, and polymorphism. Examples are given to explain each characteristic from programming and modeling perspectives. The document concludes that a strong OO model reinforces the weak model using these four key characteristics.
a brief overview of common programming paradigms with examples and discussion of functional programming principles. The purpose is to let the developers consider these programing ways very different to which they are used to, thus helping them think of solutions in unique ways.
This presentation will introduce you to programming languages that support different programming paradigms and to give you the knowledge of basic concepts and techniques that will allow them to differentiate between various programming paradigms.
a brief overview of common programming paradigms with examples and discussion of functional programming principles. The purpose is to let the developers consider these programing ways very different to which they are used to, thus helping them think of solutions in unique ways.
This presentation will introduce you to programming languages that support different programming paradigms and to give you the knowledge of basic concepts and techniques that will allow them to differentiate between various programming paradigms.
Course: Programming Languages and Paradigms:
This introduces concepts related to programming languate design: abstraction, a bit of history, the syntax, semantics and pragmatics of programming languages, languages as abstraction, thought shaper, simplifier and law enforcer.program verification, denotational and operational semantics
To make this comparison we need to first consider the problem that both approaches help us to solve. When programming any system you are essentially dealing with data and the code that changes that data. These two fundamental aspects of programming are handled quite differently in procedural systems compared with object oriented systems, and these differences require different strategies in how we think about writing code.
Object-oriented programming (OOP) with Complete understanding modulesDurgesh Singh
Object-oriented programming (OOP) is the core ingredient of the .NET framework. OOP is so important that, before embarking on the road to .NET, you must understand its basic principles and terminology to write even a simple program. The fundamental idea behind OOP is to combine into a single unit both data and the methods that operate on that data; such units are called an object. All OOP languages provide mechanisms that help you implement the object-oriented model. They are encapsulation, inheritance, polymorphism and reusability. Let's now take a brief look at these concepts.
Introduction to Prolog (PROramming in LOGic)Ahmed Gad
As part of artificial intelligence course given in faculty of computers and information, Prolog was the first tool to make intelligent decisions like making relations between different objects.
Prolog has a strong history in AI starting in 1972 as a logic programming language that solves problems by logic.
Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics. Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of relations, represented as facts and rules. A computation is initiated by running a query over these relations. The language was first conceived by a group around Alain Colmerauer in Marseille, France, in the early 1970s and the first Prolog system was developed in 1972 by Colmerauer with Philippe Roussel. Prolog was one of the first logic programming languages, and remains the most popular among such languages today, with several free and commercial implementations available. The language has been used for theorem proving, expert systems, type inference systems, and automated planning, as well as its original intended field of use, natural language processing. Modern Prolog environments support creating graphical user interfaces, as well as administrative and networked applications. Prolog is well-suited for specific tasks that benefit from rule-based logical queries such as searching databases, voice control systems, and filling templates.
Find me on:
AFCIT
http://www.afcit.xyz
YouTube
https://www.youtube.com/channel/UCuewOYbBXH5gwhfOrQOZOdw
Google Plus
https://plus.google.com/u/0/+AhmedGadIT
SlideShare
https://www.slideshare.net/AhmedGadFCIT
LinkedIn
https://www.linkedin.com/in/ahmedfgad/
ResearchGate
https://www.researchgate.net/profile/Ahmed_Gad13
Academia
https://www.academia.edu/
Google Scholar
https://scholar.google.com.eg/citations?user=r07tjocAAAAJ&hl=en
Mendelay
https://www.mendeley.com/profiles/ahmed-gad12/
ORCID
https://orcid.org/0000-0003-1978-8574
StackOverFlow
http://stackoverflow.com/users/5426539/ahmed-gad
Twitter
https://twitter.com/ahmedfgad
Facebook
https://www.facebook.com/ahmed.f.gadd
Pinterest
https://www.pinterest.com/ahmedfgad/
C++ is a middle-level programming language developed by Bjarne Stroustrup starting in 1979 at Bell Labs. C++ runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX
Most C++ compilers don't care what extension you give your source code, but if you don't specify otherwise, many will use .cpp by default
Most frequently used and free available compiler is GNU C/C++ compiler, otherwise you can have compilers either from HP or Solaris if you have respective Operating Systems.
The slide talks about the aspect in binding and scope that programmer of modern language might not be fully aware, but good to know nontheless. Concept of scope and binding makes some programming language special case behavior more explainable and rememberable.
An overview of object oriented programming , definitions of class and objects, Encapsulation, data abstraction, inheritance, polymorphism and an easy coding example in C++. This presentation includes visual aids to make the concepts easier to understand.
Course: Programming Languages and Paradigms:
A brief introduction to imperative programming principles: history, von neumann, BNF, variables (r-values, l-values), modifiable data structures, order of evaluation, static and dynamic scopes, referencing environments, call by value, control flow (sequencing, selection, iteration), ...
Course: Programming Languages and Paradigms:
This introduces concepts related to programming languate design: abstraction, a bit of history, the syntax, semantics and pragmatics of programming languages, languages as abstraction, thought shaper, simplifier and law enforcer.program verification, denotational and operational semantics
To make this comparison we need to first consider the problem that both approaches help us to solve. When programming any system you are essentially dealing with data and the code that changes that data. These two fundamental aspects of programming are handled quite differently in procedural systems compared with object oriented systems, and these differences require different strategies in how we think about writing code.
Object-oriented programming (OOP) with Complete understanding modulesDurgesh Singh
Object-oriented programming (OOP) is the core ingredient of the .NET framework. OOP is so important that, before embarking on the road to .NET, you must understand its basic principles and terminology to write even a simple program. The fundamental idea behind OOP is to combine into a single unit both data and the methods that operate on that data; such units are called an object. All OOP languages provide mechanisms that help you implement the object-oriented model. They are encapsulation, inheritance, polymorphism and reusability. Let's now take a brief look at these concepts.
Introduction to Prolog (PROramming in LOGic)Ahmed Gad
As part of artificial intelligence course given in faculty of computers and information, Prolog was the first tool to make intelligent decisions like making relations between different objects.
Prolog has a strong history in AI starting in 1972 as a logic programming language that solves problems by logic.
Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics. Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of relations, represented as facts and rules. A computation is initiated by running a query over these relations. The language was first conceived by a group around Alain Colmerauer in Marseille, France, in the early 1970s and the first Prolog system was developed in 1972 by Colmerauer with Philippe Roussel. Prolog was one of the first logic programming languages, and remains the most popular among such languages today, with several free and commercial implementations available. The language has been used for theorem proving, expert systems, type inference systems, and automated planning, as well as its original intended field of use, natural language processing. Modern Prolog environments support creating graphical user interfaces, as well as administrative and networked applications. Prolog is well-suited for specific tasks that benefit from rule-based logical queries such as searching databases, voice control systems, and filling templates.
Find me on:
AFCIT
http://www.afcit.xyz
YouTube
https://www.youtube.com/channel/UCuewOYbBXH5gwhfOrQOZOdw
Google Plus
https://plus.google.com/u/0/+AhmedGadIT
SlideShare
https://www.slideshare.net/AhmedGadFCIT
LinkedIn
https://www.linkedin.com/in/ahmedfgad/
ResearchGate
https://www.researchgate.net/profile/Ahmed_Gad13
Academia
https://www.academia.edu/
Google Scholar
https://scholar.google.com.eg/citations?user=r07tjocAAAAJ&hl=en
Mendelay
https://www.mendeley.com/profiles/ahmed-gad12/
ORCID
https://orcid.org/0000-0003-1978-8574
StackOverFlow
http://stackoverflow.com/users/5426539/ahmed-gad
Twitter
https://twitter.com/ahmedfgad
Facebook
https://www.facebook.com/ahmed.f.gadd
Pinterest
https://www.pinterest.com/ahmedfgad/
C++ is a middle-level programming language developed by Bjarne Stroustrup starting in 1979 at Bell Labs. C++ runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX
Most C++ compilers don't care what extension you give your source code, but if you don't specify otherwise, many will use .cpp by default
Most frequently used and free available compiler is GNU C/C++ compiler, otherwise you can have compilers either from HP or Solaris if you have respective Operating Systems.
The slide talks about the aspect in binding and scope that programmer of modern language might not be fully aware, but good to know nontheless. Concept of scope and binding makes some programming language special case behavior more explainable and rememberable.
An overview of object oriented programming , definitions of class and objects, Encapsulation, data abstraction, inheritance, polymorphism and an easy coding example in C++. This presentation includes visual aids to make the concepts easier to understand.
Course: Programming Languages and Paradigms:
A brief introduction to imperative programming principles: history, von neumann, BNF, variables (r-values, l-values), modifiable data structures, order of evaluation, static and dynamic scopes, referencing environments, call by value, control flow (sequencing, selection, iteration), ...
Talks about different programming paradigms, their strengths & weakness, evolution of programming paradigms and some real life application of how companies have gained competitive advantage by using right paradigm to solve their problems.
What is Programming Paradigm
Types of Programming Paradigm
What is web programming
How does it work
What are web programming languages
Module of Web Programming
HTML
CSS
JAVASCRIPT
PHP
ASP .NET
RUBY ON RAILS
JAVA
PYTHON
Functional Programming for OO Programmers (part 1)Calvin Cheng
The Why and Benefits of Functional Programming paradigm. Part 2 with source code can be found here: http://www.slideshare.net/calvinchengx/functional-programming-for-oo-programmers-part-2
Related source code https://github.com/calvinchengx/learnhaskell
This slide about presentation of Object Oriented Programing or OOP contains Fundamental of OOP
Encapsulation
Inheritance
Abstract Class
Association
Polymorphism
Interface
Exceptional Handling
and more.
Introduction of object oriented analysis & design by sarmad balochSarmad Baloch
Introduction of Object oriented Analysis & Design by SARMAD BALOCH
I AM SARMAD KHOSA
BSIT (5TH A)
(ISP)
FACEBOOK PAGLE::
https://www.facebook.com/LAUGHINGHLAUGHTER/
YOUTUBE CHANNEL:::
https://www.youtube.com/channel/UCUjaIeS-DHI9xv-ZnBpx2hQ
Boost Your Base Bootcamp - [Online & Offline] In BanglaStack Learner
Boost Your Base Bootcamp
Stack School:
https://courses.stackschool.co/courses/boost-your-base-bootcamp
"Boost Your Base Bootcamp[ Online + Offline ]", In this long course we will introduce you to C Programming Language, Java, Data Structures and Algorithms, Design Patterns and Problem Solving. At the end of the Bootcamp, you will find yourself in a place where you can engage yourself in any field of the IT world.
50+ Weeks, 100+ Classes - A Long Journey to Become A Programmer
অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং, ডাটা স্ট্রাকচারস এবং অ্যালগোরিদম
আইটি জগতে নিজেকে যোগ্য করে গড়ে তোলার জন্য আপনার দরকার প্রোগ্রামিং এবং কম্পিউটার সাইন্সের দক্ষতা। এই দীর্ঘ কোর্সে আমরা আপনাকে সি প্রোগ্রামিং ল্যাংগুয়েজ, জাভা, ডাটা স্ট্রাকচার এবং অ্যালগোরিদম, ডিজাইন প্যাটার্ন এবং প্রব্লেম সল্ভিং এর সাথে পরিচয় করাবো। হাতে কলমে শেখানোর সাথে সাথে ইন্ডিভিজুয়াল এবং গ্রুপ প্রোজেক্টের মাধ্যমে আপনাকে দক্ষ করে গোড়ে তোলার চেষ্টা করা হবে এই সুবিশাল কোর্সে। এই কোর্স শেষে আপনি নিজেকে এমন একটি জায়গায় আবিষ্কার করবেন যেখান থেকে আপনি আইটি জগতের যেকোনো ফিল্ডে নিজেকে জড়িত করতে পারবেন। আপনার প্রোগ্রামিং এর ভিত্তি তৈরির কাজ করবে এই বুটক্যাম্পটি।
This is a presentation I did for the new interns at Duo Software which I highlight the pros and cons of being creative and following widely used best practices in software development
Course material from my Object-Oriented Development course. This presentation covers all the key concepts and terminology needed for success in object-oriented development.
(More info and video at fsharpforfunandprofit.com/fourfromforty)
The 1970's were a golden age for new programming languages, but do they have any relevance to programming today? Can we still learn from them?
In this talk, we'll look at four languages designed over forty years ago -- SQL, Prolog, ML, and Smalltalk -- and discuss their philosophy and approach to programming, which is very different from most popular languages today.
We'll come away with some practical principles that are still very applicable to modern development. And you might discover your new favorite programming paradigm!
Intro to Object Oriented Programming with Java Hitesh-Java
In this core java training session, you will learn Object Oriented Programming. Topics covered in this session are:
• Object Oriented Programming Concepts
• Introduction to OO Analysis and Design
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
35. 23 Characteristics of OO They might look the similar, but they are not. Father Son Modeling the Similarity
36. Characteristics of OO Programming Point of View Student Professor name gender address phoneNumber matricNo name gender address phoneNumber staffID driveVehicle() driveVehicle()
37. Characteristics of OO Student Professor name gender address phoneNumber matrixNo name gender address phoneNumber staffID driveVehicle() driveVehicle() A Better Solution
38. Characteristics of OO Inheritance is used to express“is a” relationship. Student Professor Person Base Class (Generalization) matricNo staffID name gender address … … driveVehicle() Derived Class (Specialization)
39. 27 Characteristics of OO If you ask different animal to “speak”, they responds in their own way. Same Function Different Behavior
40. Characteristics of OO Programming Point of View computeSalary() computeSalary() computeSalary() 28 accountant.computeSalary() CEO. computeSalary() programmer. computeSalary()
41. Characteristics of OO 29 Polymorphism treats each instance of different classes the same way within a system. Employee.computeSalary() computeSalary() computeSalary() computeSalary()
42. Characteristics of OO We can use Inheritanceto apply polymorphism. Employee computeSalary () Employee object = new CEO(); object.computeSalary(); computeSalary() computeSalary() computeSalary()
43. Characteristics of OO Polymorphism reduce development effort with the help of dynamic binding property. Employee computeSalary () //people is a list that contains some Accountant, CEO and Programmer objects. for (Employee p :people){ p.computeSalary(); } computeSalary() computeSalary() computeSalary()
An OO paradigm view everything in this world as objects. Like on Earth, we have objects of human, animal and building.
Deals with what a class know or does… it includes the responsibilities, attributes and methodsThe Vet see the different part of the cats in terms of structure things like what it likes to do or likes to eat does not matterThe old lady see the cat as her pet will more likely be interested in what the cat like to eat but not the different parts of the cat body
Deals with what a class know or does… it includes the responsibilities, attributes and methodsThe Vet see the different part of the cats in terms of structure things like what it likes to do or likes to eat does not matterThe old lady see the cat as her pet will more likely be interested in what the cat like to eat but not the different parts of the cat body
Deals with what a class know or does… it includes the responsibilities, attributes and methodsThe Vet see the different part of the cats in terms of structure things like what it likes to do or likes to eat does not matterThe old lady see the cat as her pet will more likely be interested in what the cat like to eat but not the different parts of the cat body
Programming Example-> Keypad -> Example contain alphabet, numeric, operator, function-> NUMPAD -> ATM need only number only there for only takes in Numeric
Abstraction tells us that we need this function for the object. Encapsulation deals with how you intend to modularize the features. It deals with how the functions is being compartmentalize. It like a black box what is being done is not known to the rest of the system
PublicPrivate
Public attributes like studentID and telNum can be edited directly. However the will be
Inheritance [XT]A mechanism that reuse existing code and extend to new classesGiven this 2 classes, they have similar properties between them.No doubt, we can develop both classes independently can get them running (probably can just create a student class first, then copy the code and modify a bit for the creation of Professor class)However, if u made an error on driveVehicle method, got to modify code on both sideCan only inherit protect and public attributes and methods but not private ones. A subclass does not inherit the private members of its parent class. However, if the superclass has public or protected methods for accessing its private fields, these can also be used by the subclass.
Inheritance [XT]A mechanism that reuse existing code and extend to new classesGiven this 2 classes, they have similar properties between them.No doubt, we can develop both classes independently can get them running (probably can just create a student class first, then copy the code and modify a bit for the creation of Professor class)However, if u made an error on driveVehicle method, got to modify code on both sideCan only inherit protect and public attributes and methods but not private ones. A subclass does not inherit the private members of its parent class. However, if the superclass has public or protected methods for accessing its private fields, these can also be used by the subclass.
Inheritance Approach:Encapsulate the similar properties into another class “Person” can let “Student” class and “Professor” extends from it.Student “is a” person. Professor “is a” person.All the properties and behaviors of the base class Person, are inherited.Base Class: Person, Derived Class: Student, ProfessorAnother way to look at this UML is Student and professor is a specialization of Person ClassAnd Person class is a generalization of student class or professor class.
method
Each job profession in a company have different salaries (each have their own calculation of pay per month, per year etc).If you want to call the computeSalary() of a CEO, you would have to specifically call from each individual class:
With polymorphism, each classes are treated the same way.The programmer no need to be concerned about the precise type of the class but just to call the method work() on a generalized class. The OO system will then determine its class type at runtime, and invoke the correct work() accordingly.
Generalize the 3 classes into one abstract class, containing the abstract method work().Since person is the base class, the variable object of type person and be store with type engineer, accountant and professor subsequently.Programmer does not have to know exact class type when coding. It will be determined at run-time.
When we have a list that contains different objects of different professions, we can loop through the list and call the work method directly without the need to check the type of the object. At run-time, the object will be connected to the appropriated method and this is known as dynamic bindingSignificantly reduces the development effort.
Store derived class in base class and call the common method. At runtime, the system will locate the actual implementation of method at corresponding class.computeDiscount method is used to calculate the percentage of discount for each item given a promotional event e.g. Great Singapore Sales, year end sales.The discount can be of storewide discount => method in ItemThe discount can be of different type discount, e.g. 10% for all hardwares => the method in the hardware class overrides the computeDiscount at ItemThe discount can be of same type but different kind, e.g. 10% for all software only=> the method in the Software class overrides the computeDiscount at Multimedia.