Mostrar mensagens com a etiqueta pensamento computacional. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta pensamento computacional. Mostrar todas as mensagens

quinta-feira, 31 de agosto de 2023

Uma resposta e uma pergunta

Vi recentemente naquela plataforma anteriormente conhecida como Twitter esta afirmação
Não sei como se designa... X-eet?
Não resisti a ir verificar, e mais, a ver se haveria outra coincidência para além da trivial unidade.
Não sei se existe uma demonstração, mas explorei até à soma dos primeiros 100000 quadrados, e não encontrei outra
Programazinho em Python
Ocorreu-me contudo uma pergunta a que não sei responder: será possível encaixar estes 24 quadrados, com lados de 1 a 24, num quadrado maior com lado 70? 

segunda-feira, 15 de fevereiro de 2021

Análise de dados e visualização de informação

A pandemia fez-nos pensar que os números muitas vezes representam realidades que nos afectam e evidenciou a importância da visualização de dados  e da comunicação gráfica no mundo de hoje.
Neste primeiro gráfico, representa-se o número de casos e de óbitos CoVid-19 em Portugal dia a dia, desde o dia 2 de Março de 2020, bem como as suas médias móveis de 7 dias.

Dados cronológicos

Os números diários apresentam grandes variações, o que se compreende pela possibilidade de alguns registos não ocorrerem no próprio dia do acontecimento, mas as médias móveis de 7 dias são bastante mais regulares. Ao considerar as médias ao longo de uma semana completa, retiram-se os efeitos dos dias da semana não serem todos iguais do ponto de vista do registo.
As médias de sete dias também permitem melhor identificar os máximos e os mínimos das ocorrências.
Um pormenor importante consiste em saber se os sete dias que são considerados na média são o dia actual e os seis anteriores ou o dia actual, os três anteriores, e os três seguintes.
Normalmente, nestes casos, consideram-se apenas ou dias anteriores, o que quer dizer que há um atraso de 3 dias no cálculo dos valores da média. [alguns leitores recordarão o que são filtros de fase zero e de fase linear, e a noção de atraso de grupo]
Há outra forma de visualizar estes dados, através da trajectória no plano de um ponto com coordenadas (casos, óbitos), e passando a variável cronológica a ser um parâmetro da trajectória.

Trajectórias (casos, óbitos)

Os dias estão numerados desde o dia 2 de Março de 2020 (dia 1) até ao dia 350 (14 de Fevereiro de 2021).
Nesta visualização, inspirada no espaço das fases dos sistemas dinâmicos (posição, velocidade), intui-se que o sistema mostra uma certa "inércia", isto é, que há uma trajectória que não poderá ser modificada de uma forma abrupta sem uma causa externa muito forte.
Aquela seta cor de laranja procura evidenciar que a variação diária da média móvel de 7 dias será 1/7 da variação dos valores entre o dia em causa e o dia homólogo da semana anterior:
     mm7(n) = [x(n)+x(n-1)+x(n-2)+x(n-3)+x(n-4)+x(n-5)+x(n-6)]/7
     mm7(n) = mm7(n-1)+[x(n)-x(n-7)]/7.
[alguns leitores recordarão aqui que os filtros de média podem ser realizados de uma forma recursiva ou não recursiva]
A capacidade de compreender informação apresentada de uma forma gráfica é uma das dimensões do pensamento computacional, e excede muito a representação de variáveis, ou de conjuntos de variáveis função da mesma variável independente.
Os que gostam de usar a linguagem Python podem olhar para esta galeria da biblioteca seaborn.

domingo, 13 de dezembro de 2020

Saber é... saber perguntar

Pensamento computacional é um misto de muitas atitudes, que basicamente se reduzem a pensarmos sempre em como ensinaríamos um computador (uma máquina programável) a encontrar as respostas às nossas perguntas, sejam elas quais forem.
Um computador não faz perguntas, ajuda-nos a encontrar respostas.
O Google não ensina, ajuda-nos a aprender.
Mas perguntar ao Google é difícil, há quem encontre as respostas à primeira tentativa e há quem nunca as encontre. Pensamento computacional ajuda...


Só sabemos verdadeiramente um assunto quando somos capazes de formular perguntas, por mais complexo e trabalhoso que seja o caminho para encontrar a resposta.


Os humanos comunicam com as máquinas (que alguns criaram) usando linguagens (que outros criaram) e partilhando conceitos.
Portanto, "convencer" uma máquina a dar-nos uma resposta obriga a saber formular a pergunta e a traduzí-la numa linguagem que a máquina entenda, tirando partido das características mais próprias das máquinas, não se importa de realizar tarefas repetitivas, não se cansa, não inventa...
Tratar uma máquina como uma máquina, é uma das dimensões fundamentais do pensamento computacional.

quarta-feira, 26 de dezembro de 2018

Permutações

Perguntava o Público na semana passada: se colocarmos por ordem alfabética todas as "palavras" de sete letras que se podem obter permutando as sete letras da palavra SETÚBAL, qual será a palavra que aparece na posição 2018ª?
O número total de permutações é 7! = 7x6! = 7x720 = 5040, e agora temos de imaginar como se colocam por ordem alfabética e qual surgirá na posição 2018.
Colocando as sete letras por ordem alfabética, obtemos ABELSTÚ, o que quer dizer que das 5040 palavras, as primeiras 720 começam por A, as 720 seguintes, nas posições 721 a 1440, começam por B, as seguintes, nas posições 1441 a 2160, começam por E, etc. 2018 fica neste grupo, logo a palavra procurada começa por E.
A seguir, podemos procurar a segunda letra, dividindo este grupo em 6 grupos de comprimento 120, uma vez que 6! = 6x5! = 6x120, depois o grupo em que 2018 recair em 5 grupos de comprimento 24, etc.
Deixando um bocadinho de mistério para o leitor, a figura seguinte esquematiza todo o raciocínio, e dá o resultado: ETÚABSL.


Evidentemente que um computador resolve isto à força e com uma perna às costas:


É só experimentar.
Mas a ideia geral é que perante cada problema cada um deve olhar para os recursos (de conhecimentos e de computação) de que dispõe e procurar uma forma de o resolver.
Ou esperar pelo Público da próxima semana...

quinta-feira, 15 de setembro de 2016

Criar "novos" "hábitos"

Li recentemente no Google Research Blog uma entrada sobre pensamento computacional como a capacidade de olhar para a realidade de uma forma objectiva, compreender a capacidade da mente humana para criar ideias, dispositivos, construções e algoritmos complexos, passar de meros utilizadores para criadores de ferramentas, informáticas ou não.
Começando pelos conceitos chave do pensamento computacional
os autores mostram como estes conceitos ajudam a cada um adquirir competências essenciais à vida de hoje que, com a prática desde a idade escolar, se podem tornar "hábitos" de análise que abrem novas perspectivas de interacção com a realidade e com a inovação e a criatividade.
Essa disposição para olhar para a realidade como ela efectivamente é, simples e complexa, perfeita e imperfeita, previsível e imprevisível, vai ser cada vez mais indispensável.
Esta figura resume as ideias chave do artigo
Sermos capazes de lidar com a complexidade, de aceitar a ambiguidade, de ser persistentes perante os problemas mais difíceis, de entender que há problemas abertos, de trabalhar com os outros, de conhecer as forças e fraquezas próprias, são hoje atitudes essenciais.
Passa por aqui o nosso futuro, e desde a idade escolar.

domingo, 19 de abril de 2015

O problema do teste de Singapura

De repente, não se fala de outra coisa...
Num exame para miúdos de 14 anos, em Singapura, saiu o seguinte problema:


Albert e Bernard ficaram amigos de Cheryl, e querem saber a data do seu aniversário. A Cheryl faz uma lista de 10 datas possíveis

Maio: 15, 16, 19
Junho: 17, 18
Julho: 14, 16
Agosto: 14, 15, 17

e diz, separadamente, a Albert o mês do seu aniversário e a Bernard o dia.
Albert diz: não sei qual é o dia, mas sei que o Bernard também não sabe.
Bernard diz: inicialmente, não sabia, mas agora já sei.
Albert conclui: então também sei!
Qual é a data de aniversário de Cheryl?

(solução segue dentro de momentos...)

Vamos então a isso!
Albert diz: não sei qual é o dia, mas sei que o Bernard também não sabe.
Albert sabe o mês. Se o mês fosse Maio ou Junho, não podia ser peremptório relativamente ao facto de Bernard também não saber, pois em Maio há o dia 19 e em Junho o dia 18, que só ocorrem nesses meses. Então o mês é Julho ou Agosto.
Bernard diz: inicialmente, não sabia, mas agora já sei.
Bernard sabe o dia. Se fosse 14, não podia saber a data, pois podia ser em Julho ou Agosto. Assim, é 16 de Julho ou 15 ou 17 de Agosto.
Albert conclui: então também sei!
Albert sabe o mês! Então o dia é 16 de Julho, pois se fosse um dia de Agosto ainda restariam duas possibilidades para a data!

sábado, 18 de abril de 2015

Torre de Hanói

Um problema que muitas vezes se usa para ilustrar o poder da recursividade é o da torre de Hanói.
Segundo a lenda, numa cidade no centro do mundo, um monge realiza a tarefa de mover 64 discos de um pilar para outro, usando apenas um pilar auxiliar, e de acordo com duas regras simples: só pode mover um disco de cada vez e nunca pode colocar um disco sobre outro de menor diâmetro. Quando terminar a tarefa, será o fim do mundo...


Este problema pode ser analisado sob o prisma da recursividade. Realmente, se soubermos resolver o problema para n-1 discos, sabemos facilmente resolvê-lo para n discos!
Como? Aplicando a solução para os n-1 discos duas vezes: primeiro, movendo todos os discos menos o de maior diâmetro para o pilar auxiliar, em seguinda movendo o disco de maior diâmetro para o pilar de destino, e finalmente movendo os n-1 discos que estão no pilar auxiliar para  o pilar de destino...
E já está? Estaria se soubéssemos efectivamente mover os n-1 discos. E se não soubermos? Segundo a mesma lógica, bastaria saber mover n-2 discos, etc.
Repetindo o raciocínio, devemos chegar ao ponto em que basta saber mover 2 discos, e isso sabemos facilmente, com 3 movimentos: mover o disco de menor diâmetro para o pilar auxiliar, mover o disco de maior diâmetro para o pilar de destino, e finalmente mover disco de menor diâmetro do pilar auxiliar para o pilar de destino.
E quantos movimentos serão necessários para mover os 64 discos? Se representarmos por mov(n) o número de movimentos necessários para transportar n discos, ter-se-á:

mov(2) = 3
mov(3) = mov(2) + 1 + mov(2) = 3 + 1 + 3 = 7
mov(4) = mov(3) + 1 + mov(3) = 7 + 1 + 7 = 15 = 2^4 - 1
mov(5) = mov(4) + 1 + mov(4) = 15 + 1 + 15 = 31 = 2^5 - 1
...
mov(64) = 2^64 -1

o que dá exactamente 18 446 744 073 709 551 615 movimentos! Se o monge conseguisse realizar um movimento por segundo, demoraria aproximadamente 5849 milhões de séculos para concluir a tarefa...
Ora aqui está outro belo tema para uma página Web a desenvolver por alunos do 7º ano do nosso ensino secundário.

Recursividade

A recursividade, a capacidade de formular de forma recursiva a solução de um problema, é uma das dimensões do chamado pensamento computacional.
Sempre que se fala de recursividade, costuma usar-se a função factorial para a ilustrar.
Realmente, como fact(n) = n x fact(n-1), acrescentando uma condição de paragem, fact(1) = 1, temos a função factorial definida de uma forma recursiva:

def fact(n):
    if (n <= 1):
        return 1
    else:
        return n * fact(n - 1)

Encontrei recentemente uma ideia muito interessante para ilustrar a recursividade, sem recorrer a estes conceitos de programação.
Imagine o leitor que está sentado numa fila de um anfiteatro, a assistir a um espectáculo, e pretende saber qual é o número da fila em que está sentado.

Image result for anfiteatro

Uma solução será perguntar a um espectador sentado na fila à sua frente em que fila está, e somar 1 à resposta obtida. Se este espectador não souber, ele próprio pode proceder de modo idêntico relativamente ao espectador da fila seguinte, e assim sucessivamente, até um saber a resposta (eventualmente um espectador sentado na primeira fila!). Nesse momento, o problema fica resolvido.

E que tal desafiar um grupo de alunos de TIC, 7º ano de escolaridade, a entender este conceito e explicá-lo numa página Web de sua autoria? Também é assim que se desenvolve o pensamento computacional...

sexta-feira, 30 de janeiro de 2015

PACC

O selecionador nacional convocou 17 jogadores para o próximo jogo de futebol. Destes 17 jogadores, 6 ficarão no banco como suplentes. Supondo que o selecionador pode escolher os seis suplentes sem qualquer critério que restrinja a sua escolha, poderemos afirmar que o número de grupos diferentes de jogadores suplentes (A) não se relaciona com o número de grupos diferentes de jogadores efetivos. (B) é superior ao número de grupos diferentes de jogadores efetivos. (C) é igual ao número de grupos diferentes de jogadores efetivos. (D) é inferior ao número de grupos diferentes de jogadores efetivos.
Aqui está um exemplo de uma pergunta mal escolhida e mal formulada.
Imagem retirada de aqui.
Na cabeça do autor da pergunta está aquela ideia simples de que C(n, m) = C(n, n - m), isto é, de que o número de combinações possíveis de m elementos retirados de um conjunto de n é exactamente igual ao número de combinações dos n - m não retirados: C(17, 6) = C(17, 11). Qualquer treinador de futebol sabe: retirados os suplentes, ficam os efectivos.
O problema é que no futebol os jogadores ocupam posições no campo, isto é, com 11 jogadores é possível fazer mais que uma equipa, trocando-os de posição. Não se trata de combinações, mas de arranjos! E na verdade A(17, 11) é maior que A(17, 6), pelo que, nesta óptica, a resposta certa seria a resposta (D), e não a resposta (C) como o IAVE propõe.
Ao perguntar o número de grupos, fica a dúvida. Grupo, é uma palavra dúbia, neste contexto. A sugestão de que se trata de futebol, e não corta-mato, por exemplo, sugere que a posição conta.
E isto não pode acontecer. E não é exemplo de pensamento computacional.
Tivesse eu realizado a prova e respondido (D), não me calava...

domingo, 14 de dezembro de 2014

Miguel Zapata-Ros

Miguel Zapata-Ros, professor, educador, mestre, dos MOOC, e do pensamento computacional, está a publicar no seu blogue Pensamiento computacional y alfabetización digital / Computational thinking and computer literacy uma série de artigos sobre as dimensões do pensamento computacional absolutamente incontornável para quem se interessa por estes problemas.


Os primeiros artigos versam os tópicos

  1. Porquê
  2. Problema
  3. Definição
  4. Domínio teórico
  5. Recursividade
  6. Iteração
  7. Tentativa-erro,

e a sua leitura é obrigatória, pelos conteúdos, pelo alinhamento de tópicos, pelas referências bibliográficas, pelos contributos que incorpora.
Daqui saúdo o Professor Miguel Zapata-Ros pelo seu trabalho notável.

segunda-feira, 8 de dezembro de 2014

A hora do código

A Khan Academy desafia os estudantes, os Pais e os professores a aprender a programar, seja a desenhar, através de páginas Web, ou da criação de bases de dados.

 Khan Academy

Desenho e páginas Web para os miúdos de 8 anos, bases de dados para os miúdos de 12 anos.
Criar espaço para o pensamento computacional, sem confundir com processamento de texto, folhas de cálculo, ou apresentações, ferramentas informáticas transversais, da vida corrente, presentes em todos os computadores, é absolutamente fundamental.
Apesar dos pequenos passos que têm sido dados, enquanto não se trabalhar a sério na formação de professores capazes de motivar os nossos miúdos para a descoberta do computador como ferramenta ao seu serviço, como máquina que podem programar para a execução de tarefas repetitivas ou complexas, ou para a realização de experiências de simulação, por exemplo, continuaremos a divergir do que está a acontecer em tantos outros países.

domingo, 29 de junho de 2014

Pencil Code

Pencil Code, by the Pencil Code Foundation, é uma aplicação para experimentar online pequenos programas que considero excelente para quem está a dar os primeiros passos na direcção de uma visão moderna da programação.
Baseia-se na ideia de um lápis que se desloca de acordo com o código.


Este código, por exemplo, ordena ao lápis para se mover à velocidade 20, escrever a verde, e repetir 4 vezes o seguinte par de instruções: andar 100 unidades para a frente, e rodar -90º (90º para a esquerda)


O resultado é um quadrado como o do exemplo anterior. Pode-se experimentar aqui.

quinta-feira, 26 de junho de 2014

Programar sem computadores 2

Agora que fizemos o primeiro programa, é altura de começar a pensar se as instruções que propusemos para mover o executante no tabuleiro gigante são as mais convenientes

Bom Jesus

Código:
origem: ir para a casa central e olhar para o Bom Jesus
fn: andar para a frente n casas
d: rodar 90º para a direita
p: parar
rn: repetir n vezes o que se segue


Olhemos para a instrução d: rodar 90º para a direita. E se quisessemos rodar 90º para a esquerda? Realmente, podíamos. Se rodarmos uma segunda vez para a direita, ficamos virados para trás, e se rodarmos uma terceira vez, ficamos virados para a esquerda.

Este programa funciona, e desenha um quadrado de lado 3
origem
r4
  f3
  d

  d
  d
p


Bom Jesus

Contudo não é muito elegante. Podemos talvez acrescentar uma instrução
e: rodar 90º para a esquerda,
ou, melhor, modificar a instrução
d: rodar 90º para a direita
para aceitar um parâmetro, ângulo, ficando
dn: rodar n graus para a direita

Rodar 90º para a esquerda é rodar -90º para a direita
origem
r4
  f3
  d-90

p

E aqui temos um programa bem mais compacto, como todo o código deve ser.

quinta-feira, 12 de junho de 2014

Programar sem computadores 1

Estamos a pensar em actividades para a CodeWeek. Os exercícios mais simples vão-se desenrolar num tabuleiro gigante com 11x11 casas e um conjunto de instruções (código) muito simples

Bom Jesus

Código:
origem: ir para a casa central e olhar para o Bom Jesus
fn: andar para a frente n casas
d: rodar 90º para a direita
p: parar


Um programa é um conjunto de instruções usando as palavras do código:
origem
f3
d
f3
d
f3
d
f3
d
p


Este programa conduz o executante exactamente à posição inicial, depois de desenhar um quadrado. Certo?

Bom Jesus

Certo, mas porque não acrescentar ao código uma instrução de repetição? Por exemplo,
rn: repetir n vezes o que se segue

Então, o mesmo programa poderia ficar
origem
r4
  f3
  d
p


Este programa, que é bem mais compacto e elegante, produz o mesmo resultado, não é?
Começamos a perceber o que é codificar...

quarta-feira, 11 de junho de 2014

CodeWeek

De 11 a 17 de Outubro de 2014 decorre em toda a Europa a CodeWeek, um conjunto de eventos onde novos e velhos, aprendizes e mestres, vão experimentar formas de ensinar e aprender a usar computadores no seu dia a dia.
No âmbito desta iniciativa, estamos a organizar na Católica Braga um evento a que chamamos "Programar sem computadores", em que vamos brincar à programação com os mais novos, através de um conjunto de acividades divertidas em que todos poderão desempenhar os papéis de programador ou de computador, isto é, daquele que escreve os programas ou daquele que os executa.
O nosso espaço, o nosso dispositivo de entrada saída, o nosso écrã, será todo o campus da FaCiS,


onde os participantes se movimentarão na execução ou na criação de "programas" que proponham movimentos ou interacções com outros objectos existentes.
Estamos na fase de preparação do projecto, e aceitamos todas as sugestões que nos queiram fazer no sentido de valorizar o evento.
Falem-nos!

segunda-feira, 14 de abril de 2014

Pós-graduação

É oficial.
Estão abertas as pré-inscrições para a primeira edição da pós-graduação em Pensamento Computacional e Ensino de Informática, na Católica Braga
O desafio está lançado.
Venham aprender conosco!

sábado, 12 de abril de 2014

Um exercício de pensamento computacional (2/2)

Retomamos aquele exercício de "somados somos um quadrado perfeito", para apresentar um pequeno programa capaz de explorar o espaço de soluções, 25! como sabemos, de uma forma organizada e com um esforço mínimo.
Este programa faz isto mesmo:
Começando com as 25 bolas, a operação realiza-se em 24 passos, em cada um dos quais se tenta acrescentar mais uma bola a cada fila de bolas já colocadas. Se não for possível, essa fila é abandonada.
Aqui estão as 20 soluções encontradas:
Tal como previmos, metade dessas soluções começa pelo número 18 e outra metade termina pelo número 18, uma vez que o número 18 só faz parelha com o número 7.

quarta-feira, 2 de abril de 2014

Pensamento computacional e ensino de Informática

Muitos professores de Informática não tiveram a formação necessária para trabalhar, e muito menos para ensinar a trabalhar, com as ferramentas informáticas do mundo de hoje, para compreender o mundo da Informática em toda a sua extensão, para perceber o papel da Informática na economia, para despertar nos jovens o gosto pelas questões informáticas.
Esta transformação de mentalidades é muito complexa, não se consegue com um simples clique, exige um enorme esforço de "desaprender", de ver a realidade de uma forma diferente, com um certo distanciamento, como algo com que temos de interagir todos os dias, e de que a tecnologia é apenas uma parte.
Basta olharmos para o modo intuitivo como jovens interagem com os telemóveis, com os jogos, com as bilheteiras automáticas, com uma quantidade de dispositivos à nossa volta, para o percebermos.
Por onde começar, então?
Não é fácil elaborar uma proposta segura. Pode ver-se o que outros fazem, pode olhar-se para as aplicações informáticas que nascem todos os dias, pode partir-se da nossa própria experiência, mas haverá sempre alguma incerteza.
Na Inglaterra, a iniciativa Computing at School tem vindo a dar muitas pistas, a Universidade de Manchester tem uma oferta de cursos para professores nesta área, e muitos outros existem, de que já falamos ou iremos falar.
Na minha opinião, um curso desta natureza poderia ser constituído por quatro módulos básicos,

  • Python (programação sem enfeites),
  • Informação, Computação e Redes (do bit à nuvem),
  • Visualização e Análise de Dados e Redes,
  • Projecto (Raspberry Pi/Android/iOS/Gephi),

ao longo de um semestre, que, uma vez concluídos com sucesso,  dariam a cada um uma base sólida para olhar para a Informática de uma outra forma e para abraçar novos desafios.
É só uma ideia. Alguém quer experimentar?
Reacções são bem vindas...

sábado, 29 de março de 2014

Um exercício de pensamento computacional (1/2)

Um dos meus desafios dos tempos de hoje consiste em ajudar a preparar uma nova geração de professores de Informática para as tarefas que lhes irão ser exigidas no futuro, num futuro em que já se percebeu que a Informática é uma disciplina estruturante do pensamento, em que todos teremos de estar mais preparados para ler a realidade de uma forma crítica, para identificar os problemas e o seu grau de complexidade, e para formular soluções, eventualmente com o recurso a computadores ou outras máquinas programáveis.
Na minha aula de ontem, propus aos alunos que olhassem para um problema que encontrei recentemente nas páginas do Público:
Cada aluno tinha um computador à sua frente.
Este problema, aparentemente simples, levanta muitas questões muito interessantes para quem, como eu, gosta de ver como as pessoas tentam atacar estas situações. Exemplos de reacções iniciais:
i) não saber o que são quadrados perfeitos,
ii) não perceber o enunciado e começar a atirar coisas para o ar, completamente disparatadas,
iii) perceber problemas diferentes, sem qualquer sentido, que me abstenho de reproduzir.
Curiosamente, ninguém se interrogou sobre se o problema teria solução, se haveria muitas, se seria trivial ou muito complicado, isto é, ninguém olhou criticamente para o probema.
A título de provocação, sugeri um problema "mais simples", só com os números de 1 a 5, e aí foi mais fácil concluir que neste caso não haveria nenhuma solução, pois os números 1 e 3 têm de ficar encostados, bem como os números 4 e 5, mas não há mais nenhum par de números cuja soma seja um quadrado perfeito:
Esta análise permitiu entre outras coisas concluir que com os números de 1 a 25, terá de haver um mínimo de 24 pares de números cuja soma é um quadrado perfeito. E haverá?
Com alguma relutância (estas coisas ou se praticam ou...) conseguimos produzir e executar um pequeno programa em Python que lista todos os pares de números entre 1 e 25 cuja soma é um quadrado perfeito:
São 32. Serão suficientes? Continuaremos.

quinta-feira, 27 de março de 2014

Google Exploring Computational Thinking

Pensamento computacional é uma competência essencial para os nossos jovens, mas muito poucos professores estarão preparados para fazer despertar nas suas mentes esta maneira de olhar para a realidade, de detectar as abstracções, os automatismos, os algoritmos, os padrões que nela se escondem.
Nós, os professores, que aprendemos uma certa Informática, temos normalmente dificuldade em dar o primeiro passo no sentido da descoberta destes jogos escondidos, destes segredos, destas pequenas coisas que começamos a verificar que interessam as mentes curiosas da gente mais nova, habituada a viver e sobreviver neste mundo complexo que estamos a criar, em que o pensamento, o pensamento crítico, a compreensão dos mecanismos com que nos defrontamos no dia a dia, fazem a diferença.
No entanto, todos os dias lidamos com situações que permitem levar à descoberta de formas simples de pensar, de formas estruturadas de organizar o pensamento.
Seja escolher a melhor maneira de arrumar as peças Lego em caixas de forma a simplificar a procura duma determinada peça, seja escolher o melhor percurso para recolher um pequeno número de produtos nas prateleiras de um supermercado, seja encontrar estratégias para fazer a gestão das filas das caixas, o dia a dia é a melhor fonte para descobrir o pensamento computacional.
A Google, sempre a Google, disponibiliza uma série de ideias, projectos e recursos num sítio a que chamou Exploring Computational Thinking, e que recomendo vivamente.