Imagine que você quer organizar uma lista de leitura: quais livros já foram lidos, quais ainda não começaram, como salvar o progresso e retomá-lo na próxima vez?
Ao lidar com um único livro, algumas linhas de código parecem suficientes. Acrescente dez livros e será preciso armazenar vários registros; para filtrar os itens não lidos, é preciso explicitar a regra de decisão; e só ao fechar o programa você descobre que as alterações feitas não foram salvas.
Uma necessidade muito pequena já traz à tona várias questões centrais da programação. O curso AI001 "Introdução à Programação em Python", da EvoClass, organiza dez aulas em torno dessas capacidades básicas, partindo da sintaxe e do fluxo de controle e avançando gradualmente para listas, funções, dicionários, módulos e leitura e gravação de arquivos.
Como o programa sabe o que fazer em seguida
Ao ver uma lista, uma pessoa costuma decidir naturalmente quais itens tratar primeiro. Um programa, porém, precisa de condições e passos explícitos.
Em Lesson 2: Controle de fluxo e lógica, o curso parte da execução sequencial e avança para a avaliação de condições, expressões booleanas e escolhas com múltiplos ramos, destacando também os blocos de código delimitados pela indentação.
Voltando à lista de leitura, é possível começar com uma única pergunta: o status de determinado registro é "não lido"? A partir da resposta, decide-se manter ou ignorar o item, e a mesma regra é aplicada aos demais registros.
Nesta etapa, vale praticar a transformação de requisitos vagos em critérios explícitos. Por exemplo, "encontrar itens úteis" ainda é amplo demais, enquanto "manter os itens com status não lido" já pode ser convertido em uma regra verificável.
Quando os dados aumentam, pense primeiro em como armazená-los
Quando os itens deixam de ser apenas um, a forma de organizar os dados começa a influenciar a maneira de escrever o programa.
A Lesson 3: Usando listas discute coleções ordenadas, índices, fatias (slices), além de adicionar e remover elementos. Um conjunto de títulos de livros pode ser colocado em uma lista e processado item a item com um laço.
Mas um livro também pode incluir autor, status de leitura e data do registro. Nesse caso, lembrar apenas pela posição "o que é o segundo item" tende a dificultar alterações posteriores. A Lesson 8: Usando dicionários introduz chaves e valores, dando nomes explícitos aos campos.
Colocar um dicionário em cada item da lista é uma das formas de organização que este exercício pode experimentar. Trata-se apenas de uma sugestão de estudo, cujo objetivo é perceber que a escolha da estrutura de dados torna algumas operações mais diretas e também influencia como outras pessoas entendem o programa.
Como reduzir a cópia ao repetir a mesma tarefa
Se a regra de filtragem for copiada ao exibir na tela, exportar a lista e contar os itens, qualquer mudança no critério exigirá verificar vários lugares ao mesmo tempo.
A Lesson 5: Reutilizando código com funções aborda definição de funções, parâmetros, chamadas e valores de retorno, discutindo como organizar uma operação relacionada em uma unidade reutilizável.
A operação de filtragem da lista de leitura pode se tornar um exercício: receber um conjunto de registros e retornar os resultados que atendem ao critério. Quem a chama fica responsável por exibir ou salvar, enquanto a filtragem mantém sua responsabilidade bem definida.
Uma vez definidos o nome, a entrada e a saída da função, a verificação também se torna mais concreta. O que retornar quando não há registros? O que acontece quando todos os livros já foram lidos? Essas questões de fronteira costumam ajudar mais a compreender o programa do que uma execução bem-sucedida do código.
Como preservar os resultados depois de fechar o programa
Dados mantidos em variáveis durante a execução não se tornam automaticamente registros que continuarão existindo na próxima vez que o programa for aberto.
A Lesson 9: Entrada e saída de arquivos leva o aprendizado para fora do programa: ler e escrever texto, gerenciar recursos de arquivos e entrar em contato com formatos de dados comuns, como CSV e JSON.
A lista de leitura pode continuar sendo aprimorada por esse caminho: primeiro ler a partir do arquivo, depois processar os registros e, por fim, gravar os resultados que precisam ser preservados. Na gravação, também é preciso distinguir sobrescrita e acréscimo, para que a próxima execução não altere dados que se pretendia manter.
Esta lista é uma proposta didática que encadeia conhecimentos, não um projeto completo já oferecido pelo curso, nem um teste de software realizado neste artigo. Seu valor está em fazer cada novo conceito responder a uma necessidade concreta, em vez de tratar os pontos de sintaxe como uma lista de itens isolados.
Na página do curso AI001, é possível aprender gradualmente desde o básico ou retornar aos capítulos correspondentes com suas próprias pequenas tarefas. No fim, aquelas poucas linhas de código que funcionam podem se transformar em uma ferramenta que você entende, consegue modificar e pode continuar usando na próxima vez.
Este artigo foi elaborado com base no catálogo e nos materiais didáticos atuais do curso EvoClass; os links das aulas apontam para materiais em inglês. A lista de leitura é uma sugestão de estudo; este artigo não executou experimentos do curso nem promete que a conclusão do curso entrega software de produção. As condições de acesso completo e de uso dos recursos de programação estão sujeitas às indicações da página.