Abstraction in Computer Science
150 likes | 671 Views
Abstraction in Computer Science. Abstraction. An abstraction is an intellectual device to simplify, for the user, by eliminating factors that are irrelevant to the key idea. Abstraction Example.
Abstraction in Computer Science
E N D
Presentation Transcript
Abstraction • An abstraction is an intellectual device to simplify, for the user, by eliminating factors that are irrelevant to the key idea.
Abstraction Example • Driving a car – An example that the march of technological progress is, at least in part, a march toward greater and greater abstraction.
Abstraction in Computer Science • Much of the activity of computer science is concerned with inventing abstractions that simplify thought processes and system development and data representation. • Abstraction enables the • ability to “forget the details” • ability to separate “what” from “how” • But there is still value in both understanding that various abstractions exist and some basic knowledge of those abstractions.
One Problem in CS • Programs are complex. • Windows XP: ~45 million lines of code • Mathematica: over 1.5 million Computer programming is easy, as long as the programs are small. What's hard isn't the programming, but the keeping track of details in a huge program. The solution is procedural abstraction .
Two Types of Abstraction in CS • Procedural Abstraction (blocks in Scratch/BYOB) • Function specification and parameterization • Data Abstraction (sprites, strings, numbers in Scratch/BYOB) • What you can do with the data is separated from how it is represented.
CS Abstraction Examples • A document in a word processor program. • Ordering concert tickets.
Why do we care? • Sometimes abstractions hide details that can cause users problems.