2.1 Thinking Abstractly, ahead,logically, concurrently and Procedurally Flashcards
What are Computational tasks?
Problems that can be solved by a computer
What are the key parts of a computational task? (3 points)
*Involves data that can be stored using CRIBS.
*Involves processing numbers, text or Booleans.
*Creates measurable outcomes.
What is the definition of Thinking Abstractly? (2 points)
*Separating ideas from reality
*Removing unnecessary details from a problem
What are the advantages of thinking abstractly? (3 points)
*Focus on important factors
*Easier to spot patterns
*Simplify the complex world
What are the goals of Abstraction?
(3 points)
*Remove unnecessary details
*Identify concepts that can be represented as variables
*Create measurable scenarios
What is the definition of Thinking Ahead?
Considering issues you are likely to encounter in the future.
What are the key points in thinking ahead?
(4 points)
*Identifying inputs and outputs
*Determining preconditions
*Caching
*Reusable components
What is the definition of Caching?
Storing local versions of resources that need to be fetched
What is the definition of Preconditions?
Requirements set on the data that your program processes
What is the definition of Logic(Thinking logically)?
A formal method of examining or thinking about an idea
What are the strategies for thinking logically?
(3 points)
*Examine each line
*Trace tables
*Write, Write, Write
Specification:
Identify the points when a decision needs to be taken.
Determine logical conditions that affect the outcome of a decision.
Understand how decisions affect flow through a program.
What is the definition of Thinking concurrently?
Deciding which tasks can be completed at the same time.
What are the Advantages of thinking concurrently? (2 points)
*Makes use of parallel processing
*Multi task
What are the Disadvantages of thinking concurrently? (2 points)
*High overhead for simple tasks.
*Data collisions and errors.
What is the definition of Thinking Procedurally?
Decomposing a problem into a series of sub tasks and identifying the order of steps needed to solve it.