Abstraction: Difference between revisions

From Computer Science Wiki
No edit summary
No edit summary
Line 18: Line 18:
* A programming language can be fairly simple, but it translates the instructions you write into machine code, which is impossibly complex
* 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 score 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.
== Distinguish between a real-world entity and its abstraction ==
Please refer to the missile example above.


== Do you understand this? ==
== Do you understand this? ==

Revision as of 15:57, 26 July 2017

Exclamation.png This is an important concept. You should fully understand this.

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]

Identifying examples of abstraction[edit]

(awaiting permission to post material)

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 score 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.

Distinguish between a real-world entity and its abstraction[edit]

Please refer to the missile example above.

Do you understand this?[edit]

Standards[edit]

  • 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]