Este repositório foi pensado para quem está tendo um primeiro contato com pensamento computacional (ou apenas com lógica de programação), mas ainda não tem experiência com linguagens de programação.
Também pode ser usado por quem está iniciando em programação e já teve primeiros contatos com alguma linguagem de programação, mas quer melhorar sua capacidade de resolver problemas e entender melhor os fundamentos da lógica de programação.
Este repositório contém uma série de problemas a serem resolvidos computacionalmente.
Para isto, você deve trabalhar três habilidades fundamentais:
- Abstrair e modelar problemas
- Propor soluções algorítmicas
- Implementar e avaliar as soluções propostas
A primeira habilidade envolve a capacidade analítica de enxergar os aspectos mais importantes do problema.
Assim como na matemática, a melhor forma de aprimorar esta habilidade é resolvendo um grande número de problemas e aprendendo a enxergar seus padrões.
A segunda habilidade envolve a capacidade de compreender lógica de programação e como utilizá-la para propor uma solução para o problema.
Neste repositório, a cada problema apresentado, você deverá propor uma solução abstrata que posteriormente possa ser implementada usando programação visual ou textual.
Atenção: para desenvolver esta habilidade, utilizaremos o conceito de computação desplugada. Isto significa que você deverá propor a solução sem o auxílio do computador, apenas com caneta e papel 😏
A terceira habilidade envolve a capacidade de traduzir a solução abstrata proposta em uma implementação concreta que o computador possa executar.
Aqui, você tem duas opções como plataforma de implementação e avaliação:
- Usar programação visual com blocos através do Blocky, executando seu código online ou no seu computador
Se você quer usar o Blockly mas nunca programou com blocos, complete primeiro os níveis de programação visual do curso de Introdução acelerada à ciência da computação do site Code.org.
- Usar a linguagem de programação de sua escolha
Se você tem interesse de usar Python mas nunca programou nessa linguagem, dê uma olhada nesse repositório 🙃
A capacidade de avaliar a solução proposta e sua implementação é importante porque, em caso de erro, você deverá conseguir identificar como voltar às etapas anteriores e corrigir o que estiver errado.
Este repositório de problemas é mantido de forma contínua e incremental.
Os problemas abaixo estão agrupados pelas habilidades específicas que eles mais trabalham, ainda que possam exigir outras habilidades complementares.
- 01 - Algoritmos e programação estruturada
- 02 - Repetição e formas de representação
- 03 - Coleções de dados
O foco destes problemas está na capacidade de propor soluções baseadas em estruturas de decisão, servindo como uma introdução ao conceito de algoritmos e de programação estruturada.
Estes problemas focam na capacidade de identificar o tipo de repetição adequado para a resolução de determinados problemas, além de trabalhar a habilidade de entender algoritmos sob diferentes formas de representação.
Nestes problemas, o foco está na capacidade de entender como dados podem ser organizados em coleções e como processá-los para extrair informações.
Este material é usado na 2a unidade da disciplina Pensamento Computacional do Instituto Metrópole Digital da Universidade Federal do Rio Grande do Norte.
- Autor: Leonardo Bezerra