Abstraction: Difference between revisions
Mr. MacKenty (talk | contribs) No edit summary |
Mr. MacKenty (talk | contribs) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
< | [[File:binary.png|frame|right|This is a basic concept in computer science]] | ||
In software engineering and computer science, abstraction is a technique for arranging complexity of computer systems. It works by establishing a level of complexity on which a person interacts with the system, suppressing the more complex details below the current level.<ref>https://en.wikipedia.org/wiki/Abstraction_(software_engineering)</ref> | |||
[[File:Abstract heart.png|350px]] | |||
== Identifying examples of abstraction == | |||
[[File:Screen Shot 2017-08-05 at 06.29.05.png|300px]] | |||
'''Anytime you see a simple interface covering a more complex system''', you should think "abstraction". | |||
* A car is a very complex machine but the interface is simple (a steering wheel, a gas pedal and a gear shift) | |||
* A video game controller only has a few buttons, but underneath the controller is complex control mechanism | |||
* A programming language can be fairly simple, but it translates the instructions you write into machine code, which is impossibly complex | |||
== Explain why abstraction is required == | |||
You must decide '''at what level should I abstract a problem and solution'''. Abstraction is required because life is complex. We need to simplify complex systems so people can understand and use them. | |||
For example, a student is building a software program to help students pick the right college. The student uses SAT scores to determine a good match. The student has '''abstracted''' complexity when it comes to choosing a college. There are actually many factors in choosing a college, but the student has chosen to focus on SAT scores. | |||
== Construct an abstraction == | |||
I want to launch a missile, loaded with 10,000 liters of peanut butter, at my friend because it would be funny. There are hundreds of important variables associated with launching, flying, and hitting a target in this example. Please think for a moment how we could construct an abstraction. | |||
We could create a giant red button with the words "launch peanut butter missile at friend" which would launch the missile. However once this button was pushed a VERY COMPLEX process would begin to launch the missile. In this example, the button is an abstraction of a missile launch. | |||
== Distinguish between a real-world entity and its abstraction == | |||
Please refer to the missile example above. | |||
== | == Standards == | ||
These standards are used from the IB Computer Science Subject Guide<ref>IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.</ref> | |||
* Identify examples of abstraction | |||
* Explain why abstraction is required in the derivation of computational solutions for a specified situation | |||
* Construct an abstraction from a specified situation | |||
* Distinguish between a real-world entity and its abstraction | |||
== References == | == References == |
Latest revision as of 09:46, 20 February 2019
In software engineering and computer science, abstraction is a technique for arranging complexity of computer systems. It works by establishing a level of complexity on which a person interacts with the system, suppressing the more complex details below the current level.[1]
Identifying examples of abstraction[edit]
Anytime you see a simple interface covering a more complex system, you should think "abstraction".
- A car is a very complex machine but the interface is simple (a steering wheel, a gas pedal and a gear shift)
- A video game controller only has a few buttons, but underneath the controller is complex control mechanism
- A programming language can be fairly simple, but it translates the instructions you write into machine code, which is impossibly complex
Explain why abstraction is required[edit]
You must decide at what level should I abstract a problem and solution. Abstraction is required because life is complex. We need to simplify complex systems so people can understand and use them.
For example, a student is building a software program to help students pick the right college. The student uses SAT scores to determine a good match. The student has abstracted complexity when it comes to choosing a college. There are actually many factors in choosing a college, but the student has chosen to focus on SAT scores.
Construct an abstraction[edit]
I want to launch a missile, loaded with 10,000 liters of peanut butter, at my friend because it would be funny. There are hundreds of important variables associated with launching, flying, and hitting a target in this example. Please think for a moment how we could construct an abstraction.
We could create a giant red button with the words "launch peanut butter missile at friend" which would launch the missile. However once this button was pushed a VERY COMPLEX process would begin to launch the missile. In this example, the button is an abstraction of a missile launch.
Distinguish between a real-world entity and its abstraction[edit]
Please refer to the missile example above.
Standards[edit]
These standards are used from the IB Computer Science Subject Guide[2]
- Identify examples of abstraction
- Explain why abstraction is required in the derivation of computational solutions for a specified situation
- Construct an abstraction from a specified situation
- Distinguish between a real-world entity and its abstraction
References[edit]
- ↑ https://en.wikipedia.org/wiki/Abstraction_(software_engineering)
- ↑ IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.