0% found this document useful (0 votes)
34 views1 page

2.1 Elements of Computational Thinking.280155520

This document discusses various concepts related to abstraction in computing including: - Abstraction removes unnecessary detail and represents key elements of a problem, considering what information is relevant. - Higher layers of abstraction are closer to the user interface while lower levels interact with the computer. - Abstraction simplifies real world items into computer structures like variables and databases to model their key characteristics and actions. - Creating an abstraction involves determining what problem needs solving, who the users are, and how the model will be used and its key elements.

Uploaded by

Mark Robson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views1 page

2.1 Elements of Computational Thinking.280155520

This document discusses various concepts related to abstraction in computing including: - Abstraction removes unnecessary detail and represents key elements of a problem, considering what information is relevant. - Higher layers of abstraction are closer to the user interface while lower levels interact with the computer. - Abstraction simplifies real world items into computer structures like variables and databases to model their key characteristics and actions. - Creating an abstraction involves determining what problem needs solving, who the users are, and how the model will be used and its key elements.

Uploaded by

Mark Robson
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

Preconditions Abstraction Abstraction and Reality Creating an Abstraction Abstraction by

• Things which are needed • Removing unnecessary • Abstraction is more simplified than reality. Model Generalisation
before the program can detail. • Real world items are simplified into computer • What problem needs to be • Similar elements of
run. • Representing the key structures such as a table, variable or solved? a problem may be
• The code expects the elements of the database. • Who will use the model? grouped together.
information passed to it to problem. • Objects used in object oriented programming • How will the model be • This allows
meet certain criteria. • Must consider what can be an abstraction of real world entities. used? common problems
• The code may test for these information is actually • Attributes can represent the characteristics of a • Which are the key elements to be categorised.
when it is run. relevant to the problem real world object. of the problem for the • They can then be
• They may instead be at hand. • Methods can represent the actions a real world people using the model and solved with a
included within • Complex problems can object may perform. how they will use it? common solution.
documentation. be split into several
• Including this information layers of abstraction. Decisions Affecting Program Flow Procedural Abstraction
within documentation • Higher layers are • There may be many routes through a program. • Allows a programmer to use a function without
reduces the complexity of closer to the user, • Decisions by the user will affect the route understanding the detail of its implementation.
the program and makes it possibly providing a taken. • Used with data structures and in decomposition.
easier to use. user interface. • It is important to identify places where the user • Models the purpose of a subroutine without
• Preconditions make it • Lower levels interact will need to make a decision and plan for the considering how it does what it does.
easier to reuse subroutines. with the computer. decisions they may make.

Unit 2.1 Elements of Computational Thinking


Inputs and Outputs Decision Making Caching (ALEVEL ONLY) Data Abstraction Working Concurrently
• An input is any data required to solve the • There are many • Values or information can be • Programmers may use complex data structures without Concurrent Thinking
problem. decisions involved with stored in memory after use. needing to understand how they are implemented in detail. • Considering more than one task at the
• These may be entered by the user, or making and designing • This makes it quicker to retrieve • How data is being stored and filtered. same time.
obtained from hardware such as a sensor. programs. them if they are needed again. • All the tasks need not be actively worked
• Outputs are the solutions to the problem • It is important to • Web pages are also cached in Problem Decomposition on at the same time.
which are returned. consider these this way to improve load times • Breaking down a large problem into smaller parts. • Giving parts of your time to different tasks
• They can only be produced once the decisions carefully. and reduce bandwidth usage. • These smaller parts are easier to solve. throughout the day.
input has been processed. • Often, the available • Prefetching uses an algorithm to • The smaller parts are easy to divide among a team. • Parts of multiple problems are often related,
• It is important to consider the methods choices for a decision predict which instructions may be • Top down design, also called stepwise refinement is often allowing them to be solved concurrently.
used to capture data from the user and to may be limited, needed next and store them in used to do this. Concurrent Processing
present it back to them. simplifying the decision. cache before they are needed. • This technique divides a problem into levels of complexity. • Parallel processing is where multiple
• Think about the data structures used. • Identifying the • This reduces the need to wait for • Problems are broken down over and over until each problem processors are used to complete the same
• Think about the devices used. decisions which need an instruction to be loaded. is a single task. task more quickly.
• Think about what outputs are needed to be made allows • The accuracy of the algorithm’s • Each task can then be solved with a single subroutine. • Concurrent processing is where a single
first. information to be predictions influences the • Subroutines can be tested and developed separately. processor works on multiple tasks at the
• Use this information to consider what gathered on potential effectiveness of this technique. • Consider how each subroutine is implemented. same time.
inputs are needed to produce the choices. • A large cache can take a long • The subroutines need to be joined to form the whole solution. • This gives the appearance the tasks are
required output. • In flow charts, decisions time to search. • Start with the lowest level components and work up. concurrently completed, but in reality they
are represented by • Caching and prefetching can be • Some tasks may be solved with an existing module or library. are completed one after the other in quick
diamonds. difficult to implement. succession.
Reusable Program Components Advantages of Concurrent Processing
• Common functions can be packaged The Need for Abstraction The Order of Steps Conditions • More tasks can be completed in a given
into a library. • Allows those who are not experts in a field to use • It is important to consider the order in which Affecting a Decision time.
• This makes it easier to reuse them systems by hiding more complex information which operations are performed. • Effectiveness • Other tasks can be completed whilst
throughout a project. is irrelevant to using the system. • Certain inputs may be required before processing. • Convenience awaiting a user decision meaning less time
• Abstract data structures, subroutines • Allows more efficient design by encouraging focus • Inputs may need to be validated, this must occur • Cost is wasted.
and classes can all be reused in this on the core elements of a problem. after the input is received and before it is • Efficiency Disadvantages of Concurrent Processing
way. • Reduces the time spent on a project. processed. • Relevance • Can take longer to complete a large
• Decomposition is used to indicate • Prevents a project becoming too large or complex. • It may be possible for several subroutines to be • Available skills and number of tasks since processes cannot be
where components of an existing • Low-level programming languages directly interact executed at the same time. resources completed at once.
program can be reused. with hardware but are hard to write so high-level • Also consider how subroutines interact with one • All these conditions • Some processor time is used to switch
• Reusable components have already languages abstract the machine code that is another. are important. between and coordinate processes,
been tested and so are more reliable. executed when a program is run. • Code should be written to prevent operations • Some may be more reducing overall throughput.
• They make development less time • The TCP/IP model is an example of abstraction in occurring in an order which would cause an error or important to a • Not all tasks are suited to being completed
consuming and therefore less costly. networking. prevent the program from functioning as intended. particular decision. in this way.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy