Módulo 0: para dar os primeiros passos
A primeira aula do curso de CS50 é justamente uma introdução ao mundo da computação.
Ao invés de uma exposição direta e rápida das principais ideias, um instigante passeio por conceitos-chave para entender como funciona a computação, sem dar sequer um clique em um computador.
Em um teatro de Harvard, o carismático professor David Malan usa algumas lâmpadas, uma lista telefônica, um quadro e slides na discussão e resolução de problemas. Através disso, são apresentados ideias basilares como números binários, algoritmos, input-output, performance, loop, entre outras.
Imagem: Input-Output, a lógica básica de qualquer programa. Fonte: Materiais do curso CS50
O foco é entender como e para que cada coisa funciona, mais do que fazer um programa que funcione as pressas. Me lembrou as reflexões do meu amigo - e muitas vezes guia no mundo da programação - Brenno Costa sobre como mais importante que dominar de cara linguagem de programação X ou Y, é necessário entender as ideias, os paradigmas da computação.
Um exemplo dessa perspectiva é quando Malan e os alunos montam estratégias em um quadro (e testam na prática!) sobre qual o modo mais rápido de se encontrar o número de uma pessoa na lista telefônica, e terminam escrevendo e refatorando um algoritmo para resolução de problema e discutindo questões de economia de recursos e performance.
Imagem: David Malan rasgando a lista telefônica no durante o teste dos algoritmos. Fonte: Instagram do curso CS50
A parte final da aula é o ensejo para o exercício da semana, produzir um programa (um jogo ou animação) utilizando o Scratch. É uma ferramenta lúdica e gratuita de programação desenvolvida no MIT em que você pode criar jogos, histórias, músicas e afins utilizando blocos que se encaixam. Apesar do visual “infantil” ele tem todas as estruturas de condicionais, loops, variáveis, etc. presente em qualquer linguagem de programação e permite criar coisas bem legais. Vale uma pesquisada nisso!
No meu caso, desenvolvi um pequeno jogo em que você é um cachorro que conhece um gato e disputa com ele no par ou ímpar. Apesar do plot parecer bobo, me levou umas 4 ou 5 horas para desenvolver a lógica da conversa e do jogo em si, encaixar a música de fundo e o som de cada um dos personagens.
O resultado está aqui abaixo. Boa diversão com o par ou ímpar (e se quiser também fazendo seu próprio jogo no Scratch)!