Pensamento computacional

[Este é um post convidado, escrito por Marcos Henrique de P. D. da Silva, licenciado e mestrando em Matemática]

Enormes painéis cheios de luzes piscando e rolos de fita girando que são capazes de resolver os problemas de todos os seres humanos. É assim que os computadores do futuro eram mostrados na TV nos anos 60. Hoje rimos dessa visão, pois percebemos que o tamanho das máquinas e da população para quem elas resolvem os problemas, foi ficando cada vez menor. Mas nessa visão, regredimos no mais importante, que não é o tamanho das máquinas, mas para quem elas são úteis. Essa questão ficou obscura entre as ciências, havendo os adeptos a resolver os problemas da forma humana e os que se arriscavam nas “artes sombrias” de usar recursos computacionais; precisavam, nesta resolução, de muita cautela, pois para a sociedade o computador é um mistério e dele pode sair qualquer erro absurdo que um ser humano jamais cometeria.

Mas em 2006 uma mulher da ciência lançou uma pedra contra esse muro de medos sobre o uso de computadores fora das ciências computacionais. Seu nome é Jeannette M. Wing, e em março desse ano surge um conceito que define a parceria humano + computador: o Pensamento Computacional. Sua ideia é que o ser humano tem um pensamento flexível e criativo enquanto que o computador tem uma gigantesca memória e uma velocidade absurda; assim, se os dois trabalharem juntos, atingirão grandes resultados. Exemplo: um enxadrista profissional que enfrenta um computador que calcule as melhores jogadas acompanhado de um enxadrista amador. O profissional pode armar estratégias que enganariam o algoritmo da máquina, mas o amador será capaz de perceber e não cair nessas armadilhas, assim como o profissional pensará em mais jogadas que o amador, mas a máquina será capaz de calcular mais jogadas que o profissional e indicar as melhores pro amador.

Já se passaram 10 anos desde que essa definição apareceu, mas ainda é muito confundida com programar, construir algoritmos ou usar o computador. O Pensar Computacionalmente NÃO significa passar qualquer problema para o computador resolver, ou transformar seres humanos em computadores. O Pensar Computacionalmente significa receber um problema, pegar um copo de refrigerante, sentar no sofá e pensar, qual é a melhor maneira de resolvê-lo? Ele é um problema pequeno o bastante para eu fazer sem me levantar? Possuo algum software que posso utilizar de imediato pra resolvê-lo? Alguém que pode me auxiliar? Encontrarei esse problema tantas vezes que valha a pena aprender algo novo para resolvê-lo? E tantas outras perguntas que levem a um veredito de como o problema será resolvido.

Mas tomar essa decisão com sabedoria exige um conhecimento que abrange a matemática, a ciência da computação e a engenharia. Afinal, o computador não é uma caixa preta, ele possui limitações e não são todos os algoritmos que chegam numa solução antes que o universo imploda. Exemplo: calcular um termo da sequência de Fibonacci é simples: ela começa em 0 e 1, sendo o termo seguinte a soma dos dois termos anteriores, assim o 3o termo é 0+1=1, o 4o termo é 1+1=2, o 5o termo é 2+1=3, o 6o termo é 2+3=5 (acho que você já entendeu). Então, existem dois agoritmos simples para descobrir o 100o termo dessa sequência, um que faz o cálculo diretamente (o iterativo) e um que faz o cálculo retornando seu próprio processo (o recursivo). Um ser humano deve levar uns 20 minutos para calcular diretamente o 100o termo da sequência, um computador comum pelo método iterativo, menos de 1 segundo, um computador comum pelo método recursivo, mais de 100 anos (sim, você não leu errado). Ambos os algoritmos (iterativo e recursivo) são óbvios a qualquer estudante de computação e parece que funcionarão, mas o problema esta no computador ter uma velocidade absurda, porém não infinita. Ou seja, transformar um problema qualquer em um formato que o computador resolva, NÃO é Pensar  Computacionalmente. Pensar Computacionalmente é exatamente escolher o método mais eficaz (ao alcance da pessoa) para resolver um problema. Veja que no último exemplo, se a pessoa conhece apenas o método recursivo, pode valer mais a pena resolver manualmente ou estudar um método computacional mais eficiente do que esperar 100 anos.

Assim, se você não concorda com nenhuma palavra lida até agora, apague uma a uma das letras desse texto, quanto tempo você levará? Selecionar tudo e apagar deve ser bem mais rápido, mas não posso te obrigar a pensar computacionalmente, né? Mas se você acha que o computador é algo para todos, inclusive você, tente entender mais como ele funciona, conhecer suas limitações, suas potencialidades, ver o que outras pessoas já fizeram (afinal não é necessário inventar a roda sempre que quisermos andar de bicicleta), adaptar ideias interessantes para suas necessidades e quando possível, invente (e divirta-se). Saiba quando é preciso ser criativo e adaptável, e quando ser rápido e com muita memória. O Pensamento Computacional é para todos e a todo momento, só que sem os grandes painéis, as luzes piscando e os rolos de fita girando.

Anúncios

2 pensamentos sobre “Pensamento computacional

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s