Theory of computation Flashcards

1
Q

what is an algorithm

A

a sequence of steps that can be followed to complete a task that always terminates

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

what is abstraction

A

the process of simplifying complex systems by hiding unecessary details and focusing oin the essential features

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

What is representational abstraction?

A

Representational abstraction is when a representation is created by removing unnecessary details, making it simpler to work with.

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

What is abstraction by generalisation or categorisation?

A

Abstraction by generalisation or categorisation groups objects by common characteristics, creating a hierarchical structure based on relationships such as “is a kind of.”

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

What is information hiding?

A

Information hiding is the process of concealing details that do not contribute to the essential characteristics of an object, ensuring that only relevant information is exposed.

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

What is procedural abstraction?

A

Procedural abstraction is the concept of representing a computational method or procedure by hiding the details of the actual values used in computation. It focuses on the computational pattern rather than specific data.

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

What is functional abstraction?

A

Functional abstraction involves hiding the particular computation method to define a function that performs a general operation, regardless of the specific method used.

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

How does functional abstraction differ from procedural abstraction?

A

Procedural abstraction hides the details of a procedure, while functional abstraction focuses on the general behavior of a function without concern for the specific computational method.

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

What is data abstraction?

A

Data abstraction involves hiding the details of how data is represented, allowing for the creation of new data objects from previously defined types without knowing how they are implemented.

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

Can you give an example of data abstraction?

A

An example is a stack, which can be implemented using an array and a pointer for the top of the stack. Users interact with the stack abstractly without needing to know how it’s implemented.

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

What is problem abstraction or reduction?

A

roblem abstraction or reduction involves simplifying a problem by removing unnecessary details, transforming it into a simpler problem that can be solved with existing solutions.

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

How does problem abstraction help in problem-solving?

A

It makes complex problems manageable by focusing only on the critical aspects, which can then be solved using known methods or algorithms.

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

What is procedural decomposition?

A

Procedural decomposition involves breaking a problem into smaller, manageable sub-problems, each of which accomplishes an identifiable task.

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

How can decomposition help in problem-solving?

A

It simplifies complex problems by dividing them into smaller, more specific tasks, which are easier to understand and solve individually.

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

What is composition in computing?

A

Composition refers to combining smaller procedures or data objects to create more complex, compound procedures or data structures.

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

What is automation in computer science?

A

Automation in computer science involves turning abstract models of real-world phenomena into actionable processes by creating algorithms, implementing them in code, and executing the models.

17
Q

How does automation relate to solving problems in computer science?

A

Automation helps solve problems by converting abstract models of real-world scenarios into algorithms, data structures, and executable code, making it possible to perform tasks efficiently.

18
Q

Why is automation important in computer science?

A

It enables the creation of systems that can perform tasks autonomously, saving time, reducing errors, and improving accuracy in solving problems.