Você está na página 1de 18

8CMP002 - Pensamento Computacional

Aula 001 - Introdução


A longa busca pelo pensamento computacional

• Tedre, Denning; The Long Quest for Computational Thinking;


Koli Calling 2016, november 24 – 27, 2016, Koli, Finland.
• DOI: http://dx.doi.org/10.1145/2999541.2999542
Pensamento computacional – Como começou

• Alan Perlis – Década de 50 destacou o valor da codificação


como uma ferramenta mental ferramenta para entender todos
os tipos de problemas.
• 1960: Argumentou que o valor dos computadores está menos
relacionado ao seu uso como instrumentos e mais sobre como
cultivar um certo estilo de raciocinar sobre problemas e
projetar soluções.
• Algoritmização: Conceito que quantifica a computação.
• Análise criativa da maneira como as coisas são feitas e todos
deveriam aprender cedo ou tarde.
• Década de 70: Pesquisadores de computação trabalharam
para criar um campo único, separado da matemática.
Rigoroso o suficiente para garantir um lugar na Universidade
(evitavam assuntos tecnológicos, dando preferência para
disciplinas teóricas).
Mais história - Edsger W. Dijkstra (1930-2002)

• Singularidade da computação vem do pensamento


algorítmico que foi caracterizado por:
• Domínio da linguagem natural, a fim de preencher a
lacuna entre problemas expressos informalmente e
soluções formais,
• Capacidade de inventar seus próprios formalismos e
conceitos ao resolver problemas
• Agilidade para alternar entre níveis semânticos –
uma espécie de “lente” de zoom mental
Mais história - Knuth

• Procurou a essência do pensamento algorítmico em textos de


matemática que discutiam “tipos de pensamento” e comparou
aqueles com padrões de raciocínio usados por computadores.
• Ele descobriu que a representação da realidade, redução a
problemas mais simples, raciocínio abstrato, informações
estruturas de informação e atenção aos algoritmos eram
comuns no pensamento algorítmico, mas incomum em
matemática.
• Encontrou dois padrões de pensamento usados pela ciência da
computação cientistas que não foram empregados por
matemáticos: complexos qualidade e causalidade -
considerando a complexidade ou economia de processar e
projetar procedimentos imperativos que criam ação no
mundo.
Final dos anos 70

• Algoritmos são o assunto central da ciência da computação.


• Programar ou projetar algoritmos são os pontos centrais e
tornaram-se populares.
• As pessoas da área tinham interesses diferentes, desde
programação e algoritmos para sistemas e experimentação.
• “Brain Drain” ou dreno cerebral → Pesquisadores que
poderiam projetar e construir sistemas de computação
migraram das universidades para as indústrias.
• Feldman report – Relatório concluiu que esta migração era
real e havia a necessidade de reverter a deterioração dos
departamentos de computação pela criação de programas
específicos de experimentação de sistemas.
Década de 80

• Departamentos de computação dos EUA elaboraram o seu


próprio relatório sobre o problema e sobre quanto custaria
equipar o experimento laboratórios mentais de um
departamento de CC.
• Projeto CSNET: Transferir a tecnologia da internet do projeto
ARPANET para uma rede de pesquisa em ciência da
computação.
• 1989 – Relatório da ACM e IEEE: Computação como uma
disciplina - Argumentou que a computação era um campo que
englobava teoria, abstração e design – tudo computacional,
desde algoritmos até arquitetura estruturas, design e redes.
Parte 2 - Jeanette M. Wing – 2006 – Computational Thinking

• Artigo: Computational Thinking


• Revista: Communcations of ACM
• Data: Março, 2006.
• Editora: Association for Computing Machinery
• Resumo: “Pensamento computacional: Representa uma
atitude e um conjunto de habilidades universalmente
aplicáveis que todos, não apenas os cientistas da computação,
estariam ansiosos para aprender e usar.”
Questões iniciais

• O pensamento computacional baseia-se no poder e


limites dos processos computacionais, com humanos
ou máquinas executando.
• Os métodos computacionais e modelos nos dão a
coragem para resolver problemas e projetar sistema
que ninguém seria capaz de desenvolver por si só.
• Confronta o enigma da inteligência da máquina:
• O que os humanos podem fazer melhor do que
dos computadores?
• No que as máquinas são melhores que os
humanos?
• O que é computável?
Sobre o pensamento computacional

• É uma habilidade fundamental para todos, não apenas para


cientistas de computação.
• É imprescindível que adicionemos o pensamento
computacional como um conteúdo a ser apresentado para
as crianças.
• A computação e os computadores facilitam a disseminação do
pensamento computacional.
• Envolve resolver problemas, projetar sistemas e compreender
o comportamento, recorrendo aos conceitos fundamentais
para ciência da computação.
• Inclui uma gama de ferramentas mentais que mostram a
amplitude do campo da ciência da computação.
Mais perguntas

• Tendo um problema específico, nos perguntamos:


• Quão difícil é resolver?
• Qual a melhor maneira de resolver?
• A ciência da computação tem bases teóricas sólidas
para responder a essas questões com precisão.
Sobre o pensamento computacional

• Permite reformular um problema aparentemente


difícil em um que se saiba resolver, usando a
redução, incorporação, transformação ou simulação.
• É pensar de forma recursiva.
• Processamento paralelo.
• É interpretar o código como se fossem dados e vice
versa.
• Reconhecer o custo e o poder do endereçamento e a
chamada de procedimento.
• Avaliar um programa não apenas pela correção e
eficiência, mas também pela estética e design de
sistema para simplicidade e elegância.
Sobre o pensamento computacional

• Usar a abstração e a decomposição para atacar um


problema ou projetar um sistema complexo.
• É sobre escolher uma representação apropriada para
um problema ou modelar relevantes aspectos de um
problema para torna-lo mais tratável.
• Envolve a descrição de um sistema de forma sucinta
e declarativa, baseando-se em propriedades que
permanecem constantes.
• É ter a confiança que podemos usar, modificar e
influenciar de forma segura sistemas complexos sem
entender cada detalhe.
... E muito mais! ...
Exemplos práticos

• Quando você prepara a mochila do seu filho: prefetching e


caching.
• Quando seu filho perde um brinquedo. Você sugere para ele
refazer os passos: backtracking.
• Quando você faz uma receita de bolo: Algoritmos.
• A fila do supermercado: modelagem de desempenho para
sistemas multi-servidor.
• Quando você vai separar as roupas para lavar: ordenação.
• No final das contas, o pensamento computacional está no seu
dia a dia, sem que você perceba.
Influência em outras áreas

• Machine learning transformou a estatística.


• Aprendizagem estatística está sendo usada para problemas
em escala em tamanhos inimagináveis.
• Departamentos de estatística estão contratando cientistas
de computação.
• A biologia tem na computação uma ferramenta cada vez
mais presente: Não só na busca de sequencias genéticas,
mas também na classificação de bactérias e muitas outras
funções.

Você também pode gostar