2.1 Computational thinking Flashcards
Abstraction
Simplifying a problem by only taking into consideration the necessary details required to obtain a solution leaving a representation without any unecessary details
Data abstraction
details about how data is being stored are hidden
Graph theory
A branch of paths that can be used to abstractly represent problems using a collection of nodes connected by edges
Caching
The temporary storage of data by the system in cache or memory for the benefit of faster retrieval if it is needed again in future
Inputs
Any information relevant to the problem that is required by the system for processing
Outputs
The result returned by a system for a given input after running the entire process or part of a process
Preconditions
A perquisite or state of a system and its surroundings required to run a use case and return a valid solution
Reusable program components
Components that have already been written, debugged and tested that can be transplanted into new systems to save development time in project completion
Procedural abstraction
Achieving a task by relying on a procedure of sequential steps
Components of a problem
The smaller, simpler series of tasks and sub-procedures a problem can be broken down into to be completed modularly
Flowcharts
A representation of the flow of a program that includes all the points where a decision needs to be taken in order to obtain a solution
Logical conditions
Conditions which may depend on one or more variables used to determine the next step whenever a system has to make a decision. They are typically implemented using control structures such as sequences selections and iterations
Concurrent processing
Processing where the system appears to perform multiple tasks simultaneously
What is abstraction by generalisation
grouping together similarities within a problem to
identify what kind of problem it is where a common solution can be used to solve these problems
How does procedural abstraction work
It models what a subroutine does without considering how this is done.
Once a procedure has been coded, it can be reused as a black-box
What do large problems make use of in relation to abstraction
multiple levels of abstraction, where each level
performs a different role
What are the highest levels of abstraction when multiple are used
closest to the user and are
usually responsible for providing an interface for the user to interact with hardware
What are the hlowest levels of abstraction when multiple are used
e lowest levels of abstraction are responsible for actually performing these
tasks through the execution of machine code.
TCP ip model abstraction
abstraction for how networks function,
separated into four layers of abstraction
Do each layer in the TCP IP model need to know how the others work
No
Outgoing and ingoing TCP IP model
Outgoing go down from application and incoming goes up from link
OOP abstraction
Object-oriented programming makes use of objects, which
are also an abstraction for real-world entities
What does abstraction consider in OOP
abstraction considers the
functionality, interface and properties of entities. Attributes
are an abstraction for the characteristics of an object while
methods are an abstraction for the actions a real-world object is able to perform
What is the purpose of thinking ahead?
To make programs easy and intuitive for users to use
Inputs?
Any data that is required to solve a problem, usually entered into the system by the user
Outputs?
The results that are passed back once the inputs have been processed and the problem solved