Pensamento computacional é uma abordagem para resolução de problemas usando ideias e conceitos da ciência da computação. As soluções são expressas de forma sistemática e precisa a ponto de poderem ser posteriormente implementadas com um computador, mas, em princípio, não estamos preocupados com a programação de computadores.

O pensar computacional envolve quebrar um problema em partes menores, procurar por padrões nestes subproblemas, descobrir quais informações são necessárias para resolver estes problemas menores e desenvolver uma solução passo-a-passo. Profissionais de diversas áreas pensam desta forma em suas áreas de atuação como médicos, empresários, gerentes de projeto, professores e até atletas. Entender o pensamento computacional vai ter dar uma base muito sólida para resolver problemas do mundo real e provavelmente será uma das habilidades mais importantes para ter sucesso no século 21.

Este não é um curso de programação, vocês terão diversas disciplinas focadas nisto. O intuito aqui é introduzir uma forma sistemática de pensar para você melhorar sua capacidade de resolver problemas, sejam eles relacionados a áreas técnicas ou não.

Wing06-ct.pdf

🧩 Decomposição

O primeiro fundamento do pensamento computacional é a decomposição, também conhecida como estratégia de "dividir para conquistar". Decomposição é o processo de analisar uma tarefa complexa e dividi-la em subproblemas menores. O princípio é baseado na intuição de que um problema pequeno é mais fácil de resolver do que um problema grande. Num segundo momento, juntamos as soluções menores para solucionar o problema grande.

🔏 Como escrever um livro sem mover um dedo…

cs4fnissue1-al_4_1.pdf

In the Blink of An Eye.pdf

Provavelmente a história mais marcante sobre o princípio da decomposição para resolver um problema seja o caso do jornalista francês Jean-Dominique Bauby. Em 08 de Dezembro de 1995, Bauby sofreu um acidente vascular cerebral e entrou em coma. Ele acordou 20 dias depois quando se descobriu que ele fora acometido pela Síndrome do Encarceramento. Essa é talvez a condição médica mais terrível que alguém pode sofrer, você permanece absolutamente consciente e com todas as suas faculdades mentais intactas, mas seu corpo é totalmente paralisado, com exceção dos olhos em alguns casos. No caso de Bauby, ele só conseguia piscar o olho esquerdo…

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/05c8af58-e7e9-4a1e-9021-73a5987706b4/bauby.jpg

Bauby resolveu que iria escrever um livro para contar sua história. Após ser apresentado por sua terapeuta a um novo sistema de comunicação que lhe permitia escrever com um ajudante, ele provavelmente pensou que um livro é uma sequência de capítulos, capítulos são sequências de parágrafos, parágrafos são sequências de palavras e palavras são sequências de letras. Se mesmo com a gigantesca limitação de movimentos que o acaso lhe impôs talvez pudesse escrever um livro.

No livro O Escafandro e a Borboleta (Le Scaphandre et le Papillon, Éditions Robert Laffont, 1997) ele conta que uma pessoa ficava de frente para ele e ia falando as letras do alfabeto, uma por vez. Assim que a pessoa fala a letra que ele desejava escrever, Bauby piscava o olho esquerdo para sinalizar que aquela letra deveria ser anotada. Não é um processo livre de erros, Bauby narra em seu livro diferentes personalidades de pessoas que o ajudaram nessa tarefa e consegue manter um senso de humor inacreditável para alguém naquela situação.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0c023391-8a2a-49bb-9c4f-ac7784bce141/Jean-Dominique_Bauby.jpg

Bauby percebeu que poderia melhorar aquele método reordenando o alfabeto para que as letras mais frequentes da língua francesa aparecessem no início da sequência. O livro foi escrito usando aproximadamente 200.000 piscadas. Uma palavra demorava, em média, 2 minutos para ser escrita e a tarefa demorou 2 meses para ser terminada trabalhando 3 horas por dia, 7 dias por semana, um exemplo tocante de como podemos dividir para conquistar.

📢 Quem precisa de teclado para programar?

Programar pode ser uma atividade muito estressante para nossos corpos. Um programador típico passa horas sentado operando o mouse e teclado. Emily Shea é uma engenheira de software que sofreu lesões provocadas por esforço repetitivo. Essa condição pode ser bastante dolorosa e pode levar não só a perda de produtividade, mas também passa a afetar todos os aspectos da vida do profissional. Diante disso, Emily desenvolveu um setup de reconhecimento de voz que ela usa para programar com muita proficiência. Nessa apresentação ela descreve detalhes do seu sistema, assista e veja como é impressionante a velocidade com que ela consegue produzir código sem tocar no teclado.

https://youtu.be/YKuRkGkf5HU

Esse sistema é muito interessante pois ele exemplifica o princípio da decomposição em dois momentos. Primeiro, um sistema de reconhecimento de voz automático moderno é baseado na seguinte estrutura: a voz é gravada e analisada por um sistema de extração de características. Essas características são informações como onde começa e termina cada palavra, letras soletradas individualmente, etc. O sistema tenta dividir um trecho de fala em informações mais simples que podem depois se utilizadas para decidir quais palavras foram pronunciadas.