Cs abstraction definitions Flashcards

You may prefer our related Brainscape-certified flashcards:
1
Q

What is Abstraction?

A

Abstraction is a way of separating the logical and physical aspects of a problem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why do we need abstraction?

A

Details that do not contribute to the essential characteristics of a problem are left out.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Computational Thinking?

A

The ability to think logically about a problem and apply techniques for solving it

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a decomposition?

A

breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what is an algorithm?

A

a list set of instructions used to solve problems or perform tasks, based on the understanding of available alternatives.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How does abstraction help in user interface (UI) design?

A

Abstraction simplifies complex operations into intuitive actions for users, such as clicking a button to perform a task, without showing the underlying code or processes involved.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is an example of abstraction in hardware?

A

In hardware, a CPU’s instruction set is an abstraction. Programmers write assembly code based on this set, without needing to understand the physical operations within the CPU.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is abstraction in computer science?

A

Abstraction is the process of simplifying complex systems by focusing on the important details and ignoring unnecessary complexity.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Why is abstraction important in programming?

A

Abstraction helps manage complexity, making it easier to understand, design, and develop large systems by hiding unnecessary details.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is procedural abstraction?

A

Procedural abstraction refers to using procedures (or functions) to encapsulate sequences of instructions, allowing programmers to focus on what the procedure does rather than how it does it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is data abstraction?

A

Data abstraction is the process of handling data in a way that separates its logical representation from its physical implementation, such as through abstract data types like stacks or queues.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is the difference between abstraction and decomposition?

A

Abstraction focuses on reducing complexity by hiding details, while decomposition involves breaking a problem down into smaller, more manageable parts.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How does abstraction help with program maintenance?

A

By separating higher-level ideas from detailed implementations, abstraction makes it easier to modify or update parts of a program without affecting other areas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is an example of abstraction in everyday life?

A

A map is an example of abstraction—it shows only important information like roads and landmarks while omitting irrelevant details like trees or street vendors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is an abstract data type (ADT)?

A

An ADT is a model for a certain kind of data structure that defines its behavior (such as operations and allowed actions) without specifying how it’s implemented.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is an example of an abstract data type?

A

A stack is an ADT where data is added and removed using “push” and “pop” operations, following the Last In, First Out (LIFO) principle, without specifying the internal data storage method.

17
Q

How does abstraction support code reuse?

A

Abstraction allows common functionality to be encapsulated in reusable components or functions, reducing the need to duplicate code and making it easier to maintain.

18
Q

What is abstraction by generalization?

A

Abstraction by generalization involves identifying common characteristics among different objects or processes and grouping them under a generalized concept.

19
Q

How does object-oriented programming (OOP) utilize abstraction?

A

OOP uses abstraction by defining objects with attributes and methods, focusing on what the object represents and what it can do, rather than how it works internally.

20
Q

What is an interface in programming, and how does it relate to abstraction?

A

An interface is a defined set of methods that a class must implement, allowing programmers to work with objects at a higher level of abstraction without knowing their internal workings.

21
Q

What is the role of abstraction in algorithm design?

A

Abstraction in algorithm design involves focusing on the high-level steps needed to solve a problem, while ignoring the specific implementation details at first.

22
Q

How does abstraction help in creating models of real-world systems?

A

Abstraction allows programmers to create simplified models of real-world systems by focusing on essential elements and omitting unnecessary details that don’t affect the model’s functionality.

23
Q

What is the difference between abstraction and encapsulation?

A

Abstraction hides complexity by focusing on the essential aspects of an object or system, while encapsulation hides the internal state of an object and restricts access to it through defined methods.

24
Q

How does abstraction help with algorithm efficiency?

A

By focusing on the high-level design of an algorithm and ignoring implementation details, abstraction allows programmers to choose more efficient approaches and optimize performance.

25
Q

What is abstraction in terms of software layers?

A

Software is often divided into layers of abstraction, where each layer provides services to the layer above it, allowing developers to work at different levels of detail and focus on specific functionalities.