Novas metodologias para o aprendizado de programação de computadores.

Teatro Programadora-Computador
A primeira vez que ouvi a expressão “teatralização do conhecimento” foi em Recife, em 2007, no sotaque misturado de espanhol com francês “teatralizacion do conocimento” de Etienne Delacroix, artista-físico-filósofo belga que trabalha com reciclagem de computadores para aprendizagem e ensino de arte-computação.
Os encontros com Etienne tiveram um impacto tão grande em mim que até hoje reverberam em idéias e reflexões. Uma dessas idéias consiste no Teatro Programadora-Computador, conceito base para compreensão de dois novos métodos de ensino que apresentaremos aqui: codesenhos e variáveis de brinquedo.
Programar consiste em escrever um texto (programa) com uma seqüência de instruções de cálculo que será lida e executada por um computador, que nada mais é do que uma máquina de calcular programável. O Teatro Programadora-Computador parte da noção de que no gesto da programação, a programadora vive uma espécie de monólogo no qual interpreta pelo menos três papeis:
- a programadora: escreve o texto (programa) que será lido e executado;
- o computador: lê e executa o texto escrito;
- o usuário: no caso de programas interativos, é a pessoa que utilizará o programa.
Em outras palavras: a programadora, enquanto está programando, precisa necessariamente imaginar como aquele texto que está escrevendo será lido e executado pelo computador e como o usuário irá interagir com os resultados e demandas de informação geradas pelo computador durante a execução daquele programa.
O Teatro Programadora-Computador consiste numa forma de aprendizado de programação na qual esse monólogo da programadora é vivenciado como uma peça, por pelo menos duas pessoas. Uma pessoa interpreta o papel da programadora e outra, o do computador.
Provavelmente seja mais didático que, no começo da vivência, a pessoa com menos experiência em programação interprete o papel do computador, e a outra mais experiente interprete o papel da programadora, explicando o que o computador deve fazer quando não souber o que quer dizer aquele código escrito pela mesma.

Plano Cartesiano Humano
Em julho de 2011, começamos a construir um projeto de pesquisa e extensão na UFRB (Universidade Federal do Recôncavo Baiano) chamado “Arte-Computação nas Escolas”. Em abril de 2013, finalmente iniciamos os encontros com os estudantes das escolas. Nessa mesma época, o estudante de Ciências Sociais Alder Augusto entrou no grupo e sugeriu uma forma mais estruturada de fazermos os encontros, dividindo-os sempre em três etapas: uma dinâmica de introdução, uma prática de contato direto com o conteúdo de programação e uma dinâmica de conclusão.
No início, as dinâmicas de introdução e conclusão foram conduzidas por Alder, que geralmente utiliza o corpo e o contato físico entre os participantes como, por exemplo, fazendo uma roda e segurando as mãos uns dos outros.
Essas vivências me deram a ideia de tentar atacar a dificuldade dos estudantes em entender o plano cartesiano, criando uma nova dinâmica que utilizasse seus corpos. A essa ideia demos o nome de Plano Cartesiano Humano, que consiste em desenhar uma tela do computador no chão usando fita crepe, em forma de grade, com pixels grandes o suficiente para que uma pessoa caiba dentro. No eixo X posiciona-se uma fila de participantes e no eixo Y, outra fila. As pessoas ficam segurando números correspondentes às coordenadas da posições em que estão.
Isso feito, criamos então exercícios que simulam funções de desenho do Processing – linguagem de programação de fácil aprendizado –, como point(), line() e ellipse(). Nesse caso, pensando num Teatro Programadora-Computador, a programadora escreveria o código num quadro branco portátil e o computador faria o desenho utilizando o próprio corpo, posicionando-se no plano cartesiano. Em nossa dinâmica o computador são várias pessoas, uma vez que, para fazermos determinados desenhos que não são apenas pontos, é necessário mais de um participante.

Primeira experiência com plano cartesiano humano no pátio da UFRB, 24 de maio de 2013.
Codesenhos = Códigos + Desenhos
Os Codesenhos são misturas de códigos e desenhos, ou seja, são textos em uma linguagem de programação qualquer, com desenhos entre os códigos. Seu principal objetivo é facilitar e tornar mais divertido e lúdico o aprendizado das estruturas de programação utilizadas nas linguagens.
A ideia surgiu em 2011, influenciada por conversas minhas com Glerm Soares, artista-programador de Curitiba, que imaginou encontros em que desenvolvedores sejam convidados para programar usando apenas lápis e papel – nada de computadores; e por trabalhos de Fernando Rabelo, artista-programador mineiro-baiano que criou uma história em quadrinhos na qual inseriu trechos de linguagem de programação.
No caso dos Codesenhos, o Teatro Programadora-Computador pode se dar da seguinte forma:
- A programadora (pessoa interpretando quem programa) “codesenha”, isto é, escreve um código usando desenhos e entrega para o computador (pessoa interpretando a máquina);
- O computador tenta ler o Codesenho e dizer o que entendeu, podendo perguntar à programadora sobre o significado de algum símbolo ou desenho específico;
- A programadora pode comentar sobre a interpretação do computador e esclarecer qual seria o significado daquele Codesenho se os códigos fossem lidos por um computador eletrônico “de verdade”.

Um exemplo já “clássico” de codesenho, utilizando a metáfora da chuva.
Variáveis de Brinquedo
Um dos conceitos fundamentais da programação é o de variáveis. Variáveis são símbolos que representam um espaço da memória do computador, que o programa usa para guardar dados temporariamente. Essa “porção” de memória seria o equivalente a um papelzinho onde anotamos um número de telefone para não esquecer, utilizamos para ler o número e o descartamos logo depois. (Muitas vezes utilizamos a palma da mão para isso, mas nesse caso não vale a pena descartar, pois uma mão não é tão fácil de achar por aí como um pedaço de papel.)
O tipo de valor que a programadora quer guardar determina o tipo de variável que ela deve utilizar. Por exemplo, imaginemos um programa que possibilita ao usuário desenhar na tela do computador movimentando o mouse. Com certeza, em algum trecho deste programa, a programadora deverá utilizar uma variável que guarde a posição vertical do mouse, isto é, sua posição no eixo Y da tela. No caso da linguagem Processing, esse valor pode ser obtido através da variável mouseY.
O tipo desta variável é inteiro, pois ela guarda a posição vertical em pixels (pontinhos quadrados na tela do computador), que são sempre contados por números inteiros, pois não faz sentido “meio pixel”, já que um pixel é a menor unidade possível na tela.
O nome e o tipo da variável mouseY já foi definido pelos criadores do Processing. Ou seja, mouseY já tem o seu nome e tipo declarados pela linguagem, restando para quem está programando apenas consultar seu conteúdo, fazendo uma leitura dessa variável. Além disso, o valor em pixels da posição vertical do mouse já é automaticamente atribuído, ou seja, modificado, alterado, atualizado nessa variável, sempre que o usuário movimenta o mouse.
A declaração, atribuição e leitura de uma variável são as três operações básicas necessárias para a compreensão do conceito. Para entendermos melhor, suponha que a programadora necessite guardar, em algum momento de seu programa, um valor mais específico, como por exemplo, em nosso programa de desenho, a grossura em pixels do traço do pincel virtual. Não existe a priori no Processing uma variável com o nome grossura. Nesse caso, necessitamos declarar essa variável através da instrução int grossura; que significa: crie uma variável do tipo inteiro com o nome “grossura”. Para mudar seu valor, devemos fazer uma operação de atribuição. A alteração do valor da grossura do pincel para 3 pixels, por exemplo, pode ser feita através da instrução grossura = 3, que significa: atribua o valor 3 à variável grossura. Depois disso, em qualquer momento do programa que necessitarmos saber a espessura do pincel, basta fazermos a leitura dessa variável.
Por exigir um poder de abstração e imaginação, as variáveis são muito difíceis de se compreender de imediato. Talvez possamos diminuir essa dificuldade aproximando o conceito de variáveis a uma realidade mais física, palpável, tangível, ainda que exigindo muito da imaginação, porém associando-a a outros estímulos, outros sentidos, como o tato, por exemplo. Com isso em mente, chegamos à idéia das Variáveis de Brinquedo, que são objetos físicos construídos artesanalmente com materiais comuns do dia a dia como caixa de ovos, feijão, zipers, réguas e interruptores.
Acima apresentamos três diferentes tipos de variáveis: int ou inteiro, float ou de ponto flutuante (números decimais, “quebrados”) e boolean ou valor verdade (apenas “verdadeiro” ou “falso”).

Variáveis de brinquedo do tipo int (inteiro), float (decimal) e boolean (verdadeiro ou falso).
O Teatro Programadora-Computador pode utilizar as Variáveis de Brinquedo da seguinte forma:
- A programadora escreve num papel um trecho de código, como por exemplo uma declaração de variável: float x; que significa “declare uma variável do tipo ponto flutuante com o nome x”;
- O computador deve ler o código e executá-lo utilizando os brinquedos de variáveis como metáfora da memória do computador. Isso pode ser feito através da orientação da programadora, que de preferência deve ser mais experiente. No caso da instrução acima, o computador deve pegar a variável de brinquedo para pontos flutuantes, que é um ziper colado a uma régua, escrever “x” em um papelzinho, colocá-lo dentro da etiqueta da variável e colocar a posição do ziper indicando o valor 0 (pois, por padrão, toda variável de ponto flutuante inicia o programa zerada).
As propostas apresentadas neste artigo ainda foram pouco testadas. Pelo que já experimentamos até agora, elas têm se mostrado interessantes, mas ainda estão longe de atrair os adolescentes da maneira como sonhamos. De qualquer forma, são os primeiros passos de uma caminhada que estamos trilhando com muita vontade e força no projeto Arte-Computação nas Escolas em São Félix e Cachoeira (Bahia) e que, em breve, poderá ser acompanhado no endereço http://artecomputacao.org.
Publicaremos, também em 2015, um portal para troca livre de codesenhos no endereço http://codesenhos.org (ambos ainda não publicados).
Registramos aqui na Facta essas ideias como propostas para quem quiser experimentar, avaliar e modificar à vontade.
Para contribuições, entrem em contato comigo através do email jandila arroba gmail ponto com.
Nota do Autor:
O Arte-Computação nas Escolas existe gracas à iniciativa e dedicação dos seguintes estudantes da UFRB que participam ou participaram do projeto: Alder Augusto, Aline Brune, Cauê Nascimento, Darlan D’ouro, Diogo Navarro, Fagner Fernandes, Flávia Pedroso, Israel Cerqueira, Leonardo Pessoa, Lilian Balbino, Regiane Coelho e Tais Lima Gonçalves.