Abstraction: Difference between revisions

From Computer Science Wiki
(Created page with "<center> <blockquote style="padding: 5px; background-color: #FFF8DC; border: solid thin gray;"> File:Exclamation.png This is an '''important concept'''. You should ful...")
 
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
<center>
[[File:binary.png|frame|right|This is a basic concept in computer science]]
<blockquote style="padding: 5px; background-color: #FFF8DC; border: solid thin gray;">
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:Exclamation.png]] This is an '''important concept'''. You should fully understand this.  
 
</blockquote>
[[File:Abstract heart.png|350px]]
</center>
 
== Identifying examples of abstraction ==


[[File:binary.png|frame|right|This is a basic concept in computer science]]
[[File:Screen Shot 2017-08-05 at 06.29.05.png|300px]]


ASCII  abbreviated from American Standard Code for Information Interchange is a character-encoding scheme. ASCII codes represent text in computers, communications equipment, and other devices that use text. Most modern character-encoding schemes are based on ASCII, though they support many additional characters. ASCII was the most common character encoding on the World Wide Web until December 2007, when it was surpassed by UTF-8, which is fully backward compatible to ASCII.<ref>https://en.wikipedia.org/wiki/ASCII</ref>


'''Anytime you see a simple interface covering a more complex system''', you should think "abstraction".


== ASCII ==
* A car is a very complex machine but the interface is simple (a steering wheel, a gas pedal and a gear shift)
This is one of the better videos I've seen on ascii. Content gratefully used with permission :  <ref>http://cs50.tv/2015/fall/#license,psets</ref>
* 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 ==


<html>
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.  
<iframe width="560" height="315" src="https://www.youtube.com/embed/UPlR4eMMCmI" frameborder="0" allowfullscreen></iframe>
</html>


== Do you understand this topic? ==
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.


* What is ascii?
== Construct an abstraction ==


== Do you have an advanced understanding about this topic? ==
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.


* convert number to ASCII and vice-versa
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.


== See Also ==
== 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>


* [[Binary]]
* 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

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.[1]

Abstract heart.png

Identifying examples of abstraction[edit]

Screen Shot 2017-08-05 at 06.29.05.png


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]

  1. https://en.wikipedia.org/wiki/Abstraction_(software_engineering)
  2. IB Diploma Programme Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.