Já li diversos textos que comparam a criação e execução de um algoritmo como uma receita culinária. É uma analogia comum, já que preparar um prato ou bolo envolve a execução de passos claramente definidos para se chegar a um resultado. Eu mesmo já usei essa comparação em sala de aula (além do exercício de trocar a lâmpada, que todos os meus alunos conhecem). Entretanto Beecher (2017), apresenta algumas particularidades em relação a algoritmos, que devem ser observadas por quem deseja aprender um pouco mais sobre o assunto que compartilho aqui:
Um algoritmo é uma coleção de etapas individuais: uma receita se encaixa bem nessa analogia, como por exemplo: separe duas xícaras de trigo ou duas colheres de manteiga.
Definir com precisão: toda receita deve ser precisa. Você não vê uma receita que pede para colocar um pouco de trigo. É sempre uma xícara, uma colher, 50 gramas, ou algo do tipo. O algoritmo segundo Beecher(2017) deve sem também preciso, caso contrário pode trazer mais de uma interpretação e ser ambíguo.
O algoritmo é uma sequência e esta sequência deve ser seguida à risca, pois caso contrário o resultado não será o esperado. O mesmo vale para uma receita: você não coloca primeiro a massa do bolo na assadeira para depois bater os ingredientes.
Toda receita tem estados, ou seja, o momento em que ela está no momento. No caso de um bolo, os ingredientes foram misturados e estão num estado. Ao passar para a assadeira e colocar no forno seu estado muda. O bolo cresce e assa. Em algoritmos isso acontece, pois a cada etapa executada o cenário muda apresentando um momento em particular. Com isso pode-se dizer que obtemos um instantâneo daquele momento, uma foto, uma visão, sendo que elas são consideradas uma de cada vez, descartando ou esquecendo a etapa anterior. Caso você queira que o algoritmo recupere a etapa anterior, os valores gerados pelos estados devem ser guardados em variáveis e o algoritmo deve ser instruído para fazer isso. Essa é uma forma de saber como estava o cenário anterior. No caso da receita a única forma de ter isso seria você tirar uma foto da cozinha a cada momento.

BEECHER, K. Computational Thinking, A beginner’s guide to problem – solving and programming. BCS Learning & Development Ltd. Swindon, UK. 2017.