Thinking abstractly Flashcards
Elements of computational thinking
What is abstraction?
Abstraction is a representation of reality, hiding non-essential detail and focusing on key elements of a problem.
What are the examples of abstraction?
- Variables
- Objects
- Layers
- Data models
- Data structures
- Entity-relationship diagrams
Define computational thinking.
A set of problem-solving methods that express problems and solutions in ways that a computer could execute.
What is data abstraction?
Using a data structure without being concerned about how it is implemented.
What is generalisation in the context of abstraction?
Grouping together items with similar features that are relevant to the problem, allowing for reuse of approaches to solutions.
True or False: All high-level coding is an abstraction.
True
What does abstraction enable programmers to focus on?
The important aspects of a problem rather than unnecessary detail.
What is layering in programming?
Organising programs into separate functional components that interact in a hierarchical way.
What is a data model?
An abstract model that organises elements of data and how they relate to one another and to real-world entities.
What is an entity-relationship diagram?
A graphical model to represent the relationships between different entities.
What is the purpose of generalisation?
Solving new problems based on previous problems with existing solutions.
Fill in the blank: An object in programming is an _______.
[abstract data type]
What factors should be considered when devising an abstract model for a computer program?
- Can the problem be solved using a computer program?
- What are the key features of the problem?
- How will it be used?
- Who will be using it?
- What is the skill set of the target user group?
- What features are required by the target audience for the program?
How does thinking ahead in computing help programmers?
It provides insights into planning inputs and outputs for software functionality.
What is an example of abstraction in TCP/IP layers?
Each layer does not need to know how the others work and can be developed independently.