This document Contains the summary for 2.1 which contains the different elements for computational thinking, which are:
Thinking Abstractly
Thinking Ahead
Thinking Procedurally
Thinking Logically
Thinking Concurrently
Thinking Abstractly:
The nature of abstraction:
Abstraction is an important principle in Computer Science and is a critical part of computational
thinking. It’s the process of removing excessive details to arrive at a representation of a problem
that consists of only the key features. Abstraction often involves analysing what is relevant to a given
scenario and simplifying the problem based on the information. This is called representational
abstraction.
Another form of abstraction involves grouping together through similarities within a problem to
identify what kind of problem it is. This is called abstraction by generalisation and allows certain
problems to be categorized as being of a certain particular type. This is a common solution that can
be used to solve the problems.
Data abstraction is a subcategory of abstraction in which details about how data is being stored,
they’re hidden. As a result, programmers can, make use of abstract data structures, such as stacks
and queues without concerning themselves with how these structures are implemented.
Programmers can also perform functions, such as pushing and popping items to and from a stack
without having any knowledge about the code used to implement this functionality. This is called
procedural abstraction and is also used in decomposition. 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.
Very large, complex problems make use of multiple levels of abstraction, where each level performs
a different role. The highest levels of abstraction are closest to the user and are usually responsible
for providing an interface for the user to interact with hardware, whereas the lowest levels of
abstraction are responsible for actually performing these tasks through the execution of machine
code.
The need for abstraction:
At its core, abstraction allows non-experts to make use of a range of systems or models by hiding
information that is too complex or irrelevant to the system’s purpose.
Abstraction enables for non-efficient design during software development, as programmers can
focus on elements that need to be built into the software rather than worrying about unnecessary
details. This then reduces the time needed to be spent on the project. Removing wasteful details
early on also prevents the programs from getting unnecessarily large.
Layers of abstraction are used within networking and programming languages. Programming
languages can be separated out into a spectrum of high and low-level languages. Low-level
languages, such as assembly code and machine code directly interact with computer systems but are
more difficult to write. Programming using machine code requires understanding the functions
specified binary codes perform and although assembly code is easier to memorise, it still requires
programmers to know the mnemonics associated with the instruction set specific to the processor.
High=level languages provide an abstraction for the machine code that is executed when a program
is run. This makes the process of developing programs easier, as syntax in high-level languages
parallels natural language and is considerably easier to learn and use compared to low-level
languages. This has also made coding accessible to non-specialists.
The Transmission Control Protocol/Internet Protocol model is an abstraction
for how networks function separated into 4 layers of abstraction,
, application, transport, internet, and link. Each layer deals with a different part of the communication
process, and separating these stages out makes them simpler to understand. Each doesn’t need to
know how other layers work. Outgoing communications is visualised as going down these layers,
while incoming information can be imagined as going up these layers. However, it’s also important
to ensure compatibility between these layers, so standards must be agreed in advance. The
Transmission Control Protocol/Internet Protocol model uses a set of protocols which means that
each layer can be dealt with individually with details about other layers being hidden.
The Difference between abstraction and reality:
Abstraction is a simplified representation of reality. Real-world entities either may be represented
using computational structures such as tables and databases. Real-world values are often stored as
variables.
Object-oriented programming makes use of objects which are also an abstraction for real world
entities. In object-oriented programming, 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.
Devise an abstract model for a variety of situation:
When devising an abstract model given a scenario, you must consider:
What is the problem that needs to be solved by the model?
Can the problem be solved computationally? What are the key features of the problem?
how will the model be used?
What sort of format the model needs to be displayed in? consider factors such as
convenience, affordability, and ease of access.
Who will the model be used by?
How many people will be using the model? What level of expertise do they have in the
subject/discipline associated with the problem?
Which parts of the problem are relevant based on the target audience and the purpose of
the model?
Removes sections that are not relevant to the problem that needs solving. Removing details
that will confuse the audience.
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller michaellawther. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for £6.49. You're not tied to anything after your purchase.