Introdução ao Python com algoritmos evolutivos

Objetivo

O objetivo deste workshop é introduzir as pessoas à programação. Mas em vez de introduzir os conceitos de programação "a seco", uso algoritmos evolutivos como motivação para os conceitos ensinados.

Durante o workshop vamos pegar em "robots" de limpeza que passeiam aleatoriamente:

Gif with a robot randomly walking around a rectangular grid

e vamos tentar usar as ideias de Darwin e da sua teoria da evolução para criar robots que limpem melhor, tais como este aqui:

Gif with a robot walking around a rectangular grid without overlapping its path too much

Quando o workshop acabar o participante terá em seu poder um programa que implementa um algoritmo genético elementar que permite que um robot como o da primeira imagem evolua e se transforme num robot como o da segunda imagem.

O código usado no workshop pode ser encontrado neste repositório.