Pensamento Computacional: uma competência para o futuro
O pensamento computacional exige um conjunto de competências que podem ser agregadas em quatro grandes classes: abstracção, decomposição, reconhecimento de padrões e algoritmos.
Nas áreas técnicas, que vão desde a Engenharia à Economia, passando pela Medicina e outras ciências, é reconhecida a importância do pensamento matemático e, em várias delas, do conhecimento de ciências fundamentais como a Física ou a Química. Por essa razão, todas as formações nestas áreas incluem uma sólida componente matemática complementada, em muitos casos, por formação fundamental em Física, Química e Biologia. A importância da formação fundamental nestas áreas é reconhecida nos currículos do ensino básico, secundário e superior, e também pelos empregadores das empresas mais competitivas, que reconhecem a superior flexibilidade e adaptabilidade dos graduados com sólida formação de base.
Tanto a Matemática como a Física são ciências bem estabelecidas, cujas bases fundamentais, que servem de base aos currículos, são conhecidas desde há séculos, graças às contribuições fundamentais de tantos, entre os quais Galileu, Newton, Einstein, Pitágoras, Euler e Gauss, para citar apenas alguns. Por essa razão, existe um consenso bastante alargado sobre as matérias que devem fazem parte da formação fundamental de um engenheiro, biólogo, médico ou economista.
Porém, na segunda metade do século XX, desenvolveram-se de forma muito rápida as ciências da computação, que conduziram à informática e às actuais tecnologias de informação e comunicação. Estas áreas exigem um conjunto de conhecimentos que não se limitam à Matemática e à Física, mas que são tanto ou mais fundamentais para qualquer profissional. O valor económico na sociedade actual não depende apenas da capacidade de transformar matérias-primas em produtos acabados, nem de gerir os processos industriais e os serviços, sejam eles médicos, comerciais, legais ou outros. Cada vez mais é criado um maior valor acrescentado manipulando, tratando e disponibilizando informação. Para grandes empresas como a Amazon, a Google, a Uber, a Novartis ou a Merck, é agora mais importante deter controlo sobre a informação e o conhecimento do que sobre recursos físicos, sejam eles lojas, fábricas ou armazéns.
Por esta razão, a educação dos nossos jovens passa, cada vez mais, por uma sólida formação de base em áreas que lhes permitam manipular informação e transformá-la em produtos e soluções. Para além da Física, da Matemática e das outras ciências básicas, que continuam a ser indispensáveis, esta formação deve cobrir de forma profunda e sistemática a área que se designa por pensamento computacional.
O que é, exactamente, o pensamento computacional? Ao contrário do que se possa pensar, pensamento computacional não é equivalente a saber programar. É uma ideia comum pensar que tudo o que está envolvido na área da informática é programar. Nada mais errado. Saber programar, só por si, não cria a capacidade para endereçar os desafios da sociedade da informação. O pensamento computacional é mais profundo, mais sistemático e de natureza mais fundamental. Não depende dos computadores, nem de nenhuma tecnologia específica, tal como a matemática não depende de se ter um ábaco ou uma máquina de calcular. Exige o domínio de um conjunto de competências que não são abordadas pelo nosso sistema de ensino. O pensamento computacional, absolutamente necessário para que seja possível manipular e usar efectivamente informação, exige um conjunto de competências muito diversas que, no entanto, podem ser agregadas em quatro grandes classes: abstracção, decomposição, reconhecimento de padrões e algoritmos.
A primeira competência, a abstracção, refere-se à capacidade para analisar um problema concreto e criar a abstracção adequada para modelar computacionalmente o problema. Por exemplo, uma rede de conhecimentos interpessoais (vulgo rede social) é adequadamente modelada por uma construção matemática que se chama um grafo. Um grafo tem um nó para cada pessoa e um ramo, que liga dois nós, para cada relação entre duas pessoas que se conhecem. Muita da informação usada por empresas que controlam redes sociais, como por exemplo o Facebook, é obtida trabalhando este grafo, que é uma abstracção das relações que interligam pessoas numa sociedade. Saber modelar e manipular estas abstracções é uma competência fundamental numa sociedade onde a informação é cada vez mais importante e os problemas mais complexos.
A segunda competência, a decomposição, refere-se à capacidade de decompor um problema num conjunto de componentes ou desafios, que possam ser modelados e tratados de forma independente. Esta capacidade para decompor um problema complexo em subproblemas que possam ser analisados e endereçados separadamente é útil em muitas áreas profissionais, mas é fundamental quando se pretende criar de forma eficiente um novo produto ou solução, com valor económico.
A terceira competência, o reconhecimento de padrões, é cada vez mais essencial numa sociedade competitiva. Um empreendedor que pretende criar uma empresa deve reconhecer, a partir de necessidades concretas, um padrão unificador que permita criar um produto ou um serviço que tenha o potencial para crescer e se desenvolver. Toda a área da inteligência artificial moderna é baseada exactamente em métodos de reconhecimento de padrões, que permitem criar sistemas que não tenham a rigidez de muitos dos anteriores sistemas. Um carro autónomo aprende a conduzir porque foi possível identificar um conjunto de padrões nos seus sensores que conduzem às acções correctas (travar, acelerar, virar) para cada padrão identificado. O reconhecimento de padrões é uma competência complexa, que o cérebro humano domina com naturalidade, mas que é importante formalizar e aprender, porque virá a ser progressivamente integrado em praticamente todos os futuros produtos e serviços.
Finalmente, a quarta e última competência é a capacidade para projectar um algoritmo e determinar a sua complexidade. Um algoritmo é uma sequência de passos elementares, não ambígua e perfeitamente definida, que permite a um computador (ou a outro agente) levar a cabo uma determinada tarefa. Por exemplo, o método para somar dois números que todos aprendemos na escola primária é um algoritmo, que nos permite levar a cabo uma tarefa complexa, usando uma sequência de passos simples. A complexidade desta sequência de passos determina se uma dada solução é ou não exequível, se o sistema final é ou não viável. Quando se pretende que um algoritmo seja executado num computador, é necessário traduzir esse algoritmo para uma linguagem de programação. Este passo poderá ser feito por especialistas da área da informática, mas a definição do algoritmo depende da área de aplicação. Em muitos casos, um algoritmo nem será executado por um computador, poderá ser simplesmente um procedimento a ser seguido por outros agentes.
Todas estas competências são fundamentais para quem pretende desenvolver actividades nas áreas das tecnologias de informação e comunicação, cada vez mais determinantes em termos económicos. Mas são também essenciais para quem propõe leis, define procedimentos, segue protocolos ou cria regras. Quantas leis são de difícil interpretação porque não houve uma adequada abstracção dos objectivos, porque não se identificaram os padrões dos casos concretos que se pretendiam resolver, ou porque propõem procedimentos difíceis de implementar? Quantos desastres não poderiam ter sido evitados se os procedimentos (os algoritmos!) tivessem sido devidamente planeados e documentados?
O pensamento computacional, que noutros países, como por exemplo o Reino Unido, integra os currículos dos ensinos básico e secundário, não faz ainda parte do que é ensinado aos nossos jovens. É fundamental alterar este estado de coisas, para que a sociedade portuguesa do futuro seja educada, competitiva e resiliente.