0% found this document useful (0 votes)
196 views27 pages

Computational Thinking

The document discusses computational thinking as a set of mental skills for designing algorithms to solve problems using computers and for explaining the world through information processing. It covers the history of computational thinking from early mathematical algorithms to modern computer science and different models of computation like Turing machines and neural networks. The document argues that computational thinking has evolved from being embedded in specific fields to becoming a central part of the new profession of computer science focused on using information machines to automate tasks.

Uploaded by

Bianca Gabriela
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)
196 views27 pages

Computational Thinking

The document discusses computational thinking as a set of mental skills for designing algorithms to solve problems using computers and for explaining the world through information processing. It covers the history of computational thinking from early mathematical algorithms to modern computer science and different models of computation like Turing machines and neural networks. The document argues that computational thinking has evolved from being embedded in specific fields to becoming a central part of the new profession of computer science focused on using information machines to automate tasks.

Uploaded by

Bianca Gabriela
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/ 27

Computational Thinking

A fundamental component for


education and practice in computing

Wagner Meira Jr.


Universidade Federal de Minas Gerais

Based on the book "Computational Thinking" from


Peter J. Denning and Matti Tedre
Background
● BSc, Computer Science, UFMG, 1990
● MSc, Computer Science, UFMG, 1993
● PhD, Computer Science, Rochester, 1997
Computer Science BSc, UFMG, Class of 1990
Algorithms and Computing

An algorithm is a set of rules for getting a specific output from a specific input.
Each step must be so precisely defined that it can be translated into computer
language and executed by machine. (Donald Knuth)

● The magic is nothing more than a machine executing large numbers of very
simple computations very fast.
● Programs are the bridge: algorithms encoded in special-purpose languages
that translate to machine instructions that control a computer.
● Some problems are impossible for computers. By understanding the limits of
computing, we can avoid the trap of looking to computing technology to solve
such problems.
● Understanding users and designing systems specifically to them turn out to
be one of the great challenges of modern computing.
Computational Thinking

Set of mental skills and practices for:

● Designing computations that get computers to do jobs for us, and


● Explaining and interpreting the world as a complex of information processes.
● Wishful thinking:
○ CT is not a set of concepts for programming. CT comprises ways of thinking and practicing
that are sharpened and honed through practice.
○ Computational thinkers need to develop enough experience and skill to know when jobs are
impossible or intractable, and look for good heuristics to solve them.
○ A common mistake is to think that learning how to program will enable you to solve problems
in any field that uses computation. You will need to learn something about the other field too.
○ Another common issue is to believe that computers are no essential do CT - that we can think
about how to solve problems with algorithms and not be concerned with the computers that
run the algorithms.
Computational Thinking
Computational Thinking and Computers

Facts about computers:

● A computer cannot think or create.


● The programmers/developers are the source of the intelligence.
● The computer amplifies their intelligence, but has none of its own.

Our brains do not naturally think computationally. Keep your perspective on:

● the capabilities of computers and algorithms to do jobs;


● the need to learn something about the target application domain;
● the dependency of computations on computers; and
● the lack of intelligence in the machine.
History of Computational Thinking
● Computer: term originally identifies a mathematically trained
expert who performed complex calculations as teams; one
who computes (circa 1600s).
● Computing is an ancient human practice. Egyptians and
Babylonians recorded general procedures for solving
mathematical problems.
○ The term algorithm comes from the Persian
mathematician al-Khwarizmi, who formulated
mathematical procedures and gave examples such as
GCD.
○ Over the centuries, mathematicians recorded
procedures for ever more advanced calculations,
moving from basic algebra and geometry, to
advanced calculus.
■ Pascal designed and built an arithmetic
machine in 1600s that was able to add and
subtract. Multiplication depends on a human
operator repeating additions.
■ Babbage designed a machine that is able to
calculate tables of numbers such as logarithms
(1819).
History of Computational Thinking

● By formalizing computing procedures,


mathematicians made their expertise
available to non-experts who had to follow
directions of carrying out simple arithmetic
operations.
○ Inventors sought machines that would
automate computation for the purposes
of greater speed and fewer errors, but
new errors arose as software became
complex.
○ Software came as a need to more easily
change a machine's function.
● The demand for computational thinkers
justified the computer science as new field,
which inherits the responsibility for defining
and teaching CT.
○ CT became a third pillar of science,
alongside theory and experiment.
CT Dimensions

● Methods: Methods for computing and reasoning that non-experts could put to
work simply by following directions.
● Machines: Automation was motivated by greater speed of calculation and
reduction of human errors in calculations. Eventually, such machines became
electronic computers.
● Education: Computational thinking and its practice were hosted by Computer
Science Departments around the world.
● Software Engineering: Built to overcome rampant problems with errors and
unreliability in software, especially large software systems.
● Design: Designers bring sensibilities and responsiveness to concerns,
interests, practices, and history in user communities.
● Computational science: Novel area that brings computing into science, not
only to support the traditions of theory and experiment, but also to offer
revolutionary new ways of interpreting natural processes and conducting
scientific investigations.
Methods

Mathematical methods:

- Euclid: GCD calculation


- Eratosthenes: Sieve for determining primes
- Series' calculations
- Newton and Leibniz: Calculus as a strategy to approximate objects through
infinite series
- Gauss: Gaussian elimination to solve systems of linear equations

All these methods capture, as a set of steps, the procedure for complex
calculations.
Locality of Reference

Locality of reference is the tendency of a program to access the same set of


memory locations repetitively over a short period of time.

● Temporal locality refers to the reuse of specific data, and/or resources,


within a relatively small time duration.
● Spatial locality refers to the use of data elements within relatively close
storage locations.

Locality is a type of predictable behavior that occurs in computer systems.


Systems that exhibit strong locality of reference are great candidates for
performance optimization through the use of techniques such as the caching,
prefetching for memory and advanced branch predictors at the pipelining stage of
a processor core.
Locality of Reference in Practice
How to exploit the locality of reference?

Memory Hierarchy
Computing Machines

The intolerable labour and fatiguing monotony of a continued repetition of similar


arithmetical calculations, first excited the desire, and afterwards suggested the
idea, of a machine, which, by the aid of gravity or any other moving power, should
become a substitute for one of the lowest operations of human intellect. (Babbage,
1832).

Current computers are the dream in terms of automating tasks and freeing them
from human errors, but as the systems became large and complex, guarantee that
they are error-free became unfeasible. Why?
Charles Babbage

Two main achievements:

1. Difference engine automated the


calculation of mathematical tables (1820).
2. Analytical engine, a general purpose
computer (1840).
a. Ada Lovelace was the first "programmer", which
was called "science of operations", which may
include symbols.
b. Features: digital representation, programming,
control structures,arithmetic logic unit, and
microprogramming
Turing Machine

A Turing machine is a mathematical model of computation that defines an abstract


machine, which manipulates symbols on a strip of tape according to a table of
rules. Despite the model's simplicity, given any computer algorithm, a Turing
machine capable of simulating that algorithm's logic can be constructed.
Von Neuman Architecture

Machine separated into 3 components:

1. CPU - Central Processing Unit


2. Memory - Storage
3. I/O Unit - Input Output Unit

Became the standard for commercial


computer architecture until now.
Beyond Von Neumann Architecture

1. Neural Networks
a. Inspired on the human brain
b. Programming vs. Learning
i. Programming:
1. Sorting cards: There are several ways of sorting them,
2. The sorting strategies rely on clear criteria and procedures
ii. Learning:
1. Detecting spam: There is not general algorithm.
2. We do have several examples of both spam and legitimate messages.
3. Model learns from the data
c. Models are not easy to understand
2. Quantum Computing
a. QC represent bits with electron spins and connections with quantum effects such as
entanglement
b. QC can perform some computations much faster than traditional computing
Computational Thinking Evolution

Until 1940s, CT was embedded in the tacit knowledge and state-of-the-art


practices of many fields

After 1940s, CT becomes the centerpiece of a new profession that designed


information machines to do jobs humans never thought were possible.

Algorithm thinking differs from mathematical thinking in several aspects:

● how it reduces complex problems to interconnected simple ones


● emphasizes information structures
● pays attention to actions that alter states of data
● formulates symbolic representations of reality
Computing as a Science

The question "What can be automated?" is one of the most inspiring and
philosophical questions of contemporary civilization. (George Forsythe, 1969)

Computing is a knowledge area blending engineering, science and mathematics.

Timeline:

● Pre-computer era (-1940s)


● Phenomena surrounding computers (1940s-1970s)
● Programming as art and science (1970s)
● Computing as automation (1980s)
● Computing as pervasive information processes (1990s-)
Phenomena surrounding computers

ENIAC (Electronic Numerical


Integrator and Computer) was the
first programmable, electronic,
general-purpose digital computer.
It was Turing-complete, and able
to solve "a large class of
numerical problems" through
reprogramming.

The Hidden Figures movie depicts


the transition from human
computers to electronic ones, and
how mathematical skills helped
forging the first generation of
programmers.
Programming as art and science

Starting with Fortran,


several languages (and
their compilers) were
built, as well as the
theory and technologies
for creating and
managing databases,
among others.
Computing as automation
Computing as automation
Computing as pervasive information processes
Lessons

1. CT is an addition, not a replacement.


2. CT is an old, well studied, and diverse topic.
3. The speed of computers is the main enabler of the computing revolution.
4. Advanced CT is domain dependent.
5. CT has changed the tools, methods, and epistemology of science.
6. The public face of CT is that of elementary CT.
7. Beginner and professional CT together comprise a rich tapestry of
computational thought.
8. Change is an inseparable part of CT.
Computational Thinking
A fundamental component for
education and practice in computing

Wagner Meira Jr.


Universidade Federal de Minas Gerais

Based on the book "Computational Thinking" from


Peter J. Denning and Matti Tedre

You might also like