Programming
In object-oriented way
Programming is hard.
I need
serious
math skills
I’m a woman /
too old /
humanitarian
Syntax
is too
complex
Studying at
University is
crucial
Programming is hard?
I need
serious
math skills
I’m a woman /
too old /
humanitarian
Syntax
is too
complex
Studying at
University is
crucial
Statistics
13.90%
82.80%
2.60% 0.70%
Market Share
iOS
Android
Windows Phone
BlackBerry
• Objective-C
• Java
• .Net (C#, Visual Basic)
Object-oriented programming
Representing
real world entities
by using objects, classes,
and basic paradigm
Concepts:
Objects and classes
• Objects have states and behaviors
• Classes = structure for objects
Bank account
Owner: person
Amount: double
State: condition
suspend ()
deposit (sum: double)
withdraw (sum: double)
Class
Attributes
Operations
Concepts:
Inheritance
• Key point: reusable code
• Provides strong logic and
structure
Concepts:
Abstraction
• Key point: reducing
complexity
• Provides simplified model of
complex reality
Concepts:
Polymorphism
• Key point: changing
behavior without changing
code
Concepts:
Encapsulation
• Key point: internal structure
is constant
• Provides easier
implementation
From easy to hard
What can you do?
1
2
3
How to learn more
Step 1: Choose language
(maybe, C# )
Step 2: Bing it!
Step 3: Create your piece of art
Thanks.
Questions?

Object-oriented programming

Editor's Notes

  • #3 Presume Math: only simple algebra is needed, tons of solutions can help in implementing complicated formulas University: kind and enthusiastic programmers help to learn it online, learning courses, open sources, community Syntax: no necessity to learn it by heart. 1 – you have access to all references, 2 – you will write the same things million times Woman thing: Ada Lovelace! Programming doesn’t require any specific skills or opportunities (doesn’t depend on gender, age, background) You are developing, i.e. creating new things, spawning stuff from where there was no stuff before. That is the craft, the art. It's inventing things. The manuals for creating can never be complete, they will always only be indicative, guiding, but never give you the exact path, because in the end, what you are doing has not been done before. Not exactly, anyway. Developing software, especially complex software, is bound to result in problems, frustration, and the need to think in new ways. Problem solving is the core of the craft, and you need to embrace that it's there, and also accept that you'll never know what form the problem come in. You might want all problems to be algorithmic, but the reality just doesn't work that way - it's just too chaotic and unpredictable. Reality is not elegant or simple. Sometimes documentation is wrong. Sometimes, you run into a weird hardware bug. Sometimes, you spend hours looking for a spelling error that was staring you in the face all the time. That is just the way it is. It is the craft.
  • #4 You are developing, i.e. creating new things, spawning stuff from where there was no stuff before. That is the craft, the art. It's inventing things. The manuals for creating can never be complete, they will always only be indicative, guiding, but never give you the exact path, because in the end, what you are doing has not been done before. Not exactly, anyway. Developing software, especially complex software, is bound to result in problems, frustration, and the need to think in new ways. Problem solving is the core of the craft, and you need to embrace that it's there, and also accept that you'll never know what form the problem come in. You might want all problems to be algorithmic, but the reality just doesn't work that way - it's just too chaotic and unpredictable. Reality is not elegant or simple. Sometimes documentation is wrong. Sometimes, you run into a weird hardware bug. Sometimes, you spend hours looking for a spelling error that was staring you in the face all the time. That is just the way it is. It is the craft. … Let’s talk about programming
  • #5 …What exactly is this object-oriented programming? http://www.informit.com/articles/article.aspx?p=2036576
  • #6 Reducing complexity by hiding details beneath the surface
  • #7 Objects exchange messages, the process works like commands/operations performing
  • #8 Child-class can redefine methods Inherits data types and logical structure
  • #9 Ignoring irrelevant properties and features… relevant to given projects (reusing)
  • #10 Mix related types, create hybrids Implement more abstract methods which can be specified later according to needs
  • #11 All fields, properties are private, local, safe. U can access them only by sending the message (running method) In computer networking, encapsulation is a method of designing modular communication protocols in which logically separate functions in the network are abstracted from their underlying structures by inclusion or information hiding within higher level objects. https://en.wikipedia.org/wiki/Encapsulation_(networking)