In computer science, abstraction is a technique for managing complexity of computer systems. It is the process of simplifying, condensing, and encapsulating and is an important problem solving skill.
Abstractions in hardware and software help to reduce complexity and make computer systems easier to use and understand. Computer programming languages contain constants and variables, both of which are abstractions.
Caption: : Computer languages have procedures that perform certain calculations for us.
Slide 3
Abstraction works by establishing a level of complexity on which a person interacts with the system, suppressing the more complex details below the current level.
In computer science, the programmer works with an idealized interface (usually well defined) and can add additional levels of functionality that would otherwise be too complex to handle.
Slide 4
For example, a programmer writing code that involves numerical operations may not be interested in the way numbers are represented in the underlying hardware (e.g. whether they're 16 bit or 32 bit integers), and where those details have been suppressed it can be said that they were abstracted away, leaving simply numbers with which the programmer can work.
In addition, a task of sending an email message across continents would be extremely complex if you start with a piece of optic cable and basic hardware components. By using layers of complexity that have been created to abstract away the physical cables, network layout and presenting the programmer with a virtual data channel, this task is manageable.
Slide 5
Using an interface to simplify a process
Software programs such as Microsoft Word and Adobe Photoshop often provide features that automatically convert a file to a new format, without the user having to know any of the details about individual formats.
Banks provide simple features to transfer funds from one account to another, while hiding the underlying communication and security needed to ensure the privacy of such transactions.
Video editing software provides features to combine video files, allowing the user to focus only on the task of transforming the video or photo, rather than on the lower level concepts of bit representation.
Slide 7
Consider developing a software-based "physics engine" that could be used to simulate the gravity and other physics laws in a simulation for a video game. In reality, objects moving through space are affected by resistance from wind/water in a very complex process.
A physics engine might simplify this down to a simple coefficient affecting your movement through water.
Move half speed in water moving against you and double speed in water moving with you.
Caption: : An avatar in a video game would move slower when against the flow of water and faster when walking with the flow of water.
Slide 8
Wind has a calculable effect on the trajectory of projectiles (e.g., a strong crosswind will push a golf ball of course) and when wind changes this effect becomes increasingly difficult to calculate.
Many games disregard this effect when calculating paths.
Note that reduction eliminates a number of complex calculations, but introduces a level of inaccuracy.
When we group information into chunks (such as objects in programming) we can manage many complicated pieces at once.
Java classes and objects help programmers write complex software.
Summary
Slide 10
Review
Abstraction occurs
A. in computer operations at the hardware, low-level only.
B. in computer operations at the application, high-level only.
C. primarily at the electrical hardware level
D. at every level and stage of operations
Slide 11
Answer & Explanation
Abstraction occurs at every level and stage of computer operations.
Slide 12
Review
An airplane simulation to train new pilots on typical take-offs and landings is designed specifically for cargo planes. Which variable does NOT need to be included?
A. Weight of the aircraft
B. Number of crew for the airplane
C. Where the cargo is located in the cargo hold
D. Number of monthly bird strikes for this type of aircraft
Slide 13
Answer & Explanation
The number of bird strikes are not needed to practice typical take-offs and landings.
Slide 14
Review
Before the world's largest ocean liner, the Queen Mary 2, started construction, a 15 foot model is used in a 600 meter water basin using sophisticated computer simulations. Which of the following is NOT a benefit of such simulations?
A. It assists in selecting the optimal hull design of the ship for all weather conditions.
B. It helps to determine the size of the crew necessary to manage all of the ship's needs.
C. It allows testing of dangerous water conditions without danger to people or ship.
D. It can save money by not using a faulty design that is very expensive to alter.
Slide 15
Answer & Explanation
The simulation would not help to determine the size of the crew necessary to manage all of the ship's needs.