info.eiah
INTRODUÇÃO

Desde a edição do livro Mindstorms [START_REF] Papert | Mindstorms: children, computers, and powerful ideas[END_REF], uma vaga de fundo tem vindo a utilizar a programação de computadores na educação. Não para ensinar a programação pela programação, mas como forma estimulante de explorar ideias e testar conceitos.

Esta vaga de fundo tem vindo a desenvolver o chamado ensino construcionista, apoiado no que se chamou "Filosofia Logo" [START_REF] Papert | Introduction: What is Logo? And Who Needs It?[END_REF].

A filosofia Logo e o construcionismo apoiam-se fortemente na teoria construtivista de Jean Piaget (o que não é de espantar, já que Papert trabalhou com Piaget na Suíça), pese as necessárias diferenças que apresentam. Contudo, o aspecto essencial é que o construcionismo de Papert inclui uma área de conteúdo negligenciada no ensino tradicional. Como tal, o construcionismo não se apresenta só como uma possibilidade pedagógica, mas também como "uma decisão acerca daquilo que os cidadão de hoje e de amanhã precisam de saber" (Papert, 1999, tradução livre).

COMPETÊNCIAS NOVAS PARA UM MUNDO NOVO

"aprendemos melhor fazendo (...) mas aprendemos ainda melhor, se além de fazermos, falarmos e pensarmos sobre o que fizemos." (Papert, 1999, tradução livre) O construcionismo pressupõe que no passado o mundo pouco mudava entre o nosso nascimento e a nossa morte. Mas que hoje todos enfrentamos mais mudanças no mundo, em poucos anos, do que aquelas de dantes ocorriam ao longo de uma vida.

Como tal, necessitamos de competências fortes de adaptação. Competências que nos permitam participar na construção do que é novo, mas compreendendo essa participação, ou seja, compreendendo o que está em jogo. E que sem elas, há um risco permanente de ter de encarar a vida sob constante dependência.

No âmbito do ensino construcionista, defende-se a importância de aprender com um bom aprendiz. Papert já em 1980 falava da "mathophobia", o medo de aprender 1 , e da necessidade de "aprender a aprender", dando um nome a esta competência: matética, uma palavra que formou a partir da raiz grega mathein, "aprender" [START_REF] Papert | Mindstorms: children, computers, and powerful ideas[END_REF].

Em termos de implementação do ensino construcionista, o nome advém de se colocar a ênfase na importância de utilizar no processo de ensino-aprendizagem a realização de construções fora da nossa mente, como forma de apoiar a construção mental de conceitos. Estas construções exteriores podem ser a construção de uma casa, a montagem de um carro ou de um robô, a escrita de uma história, a produção de uma peça de teatro... ou a programação de um jogo de computador. O argumento essencial da abordagem construcionista é que as construções fora da nossa mente têm de passar no teste da realidade: não é um total faz-de-conta, como numa mera imaginação. No mundo real, se algo não funciona é preciso pensar, compreender e ultrapassar os obstáculos. É por isso que esta abordagem está tão ligada à utilização de programação de computadores: é que a programação, utilizada de forma pedagógica, cria um ambiente rico em situações que desafiam tanto o aluno como o professor/educador.

Deixe-se então claro que a programação de computadores não é um objectivo.

É um meio para promover uma pedagogia activa e inteligente.

VERTENTES DE PROGRAMAÇÃO PARA CRIANÇAS

Em termos de implementação, refira-se brevemente que desde 1980 muitas têm sido as alternativas para efectuar programação de computadores com crianças. A mais divulgada e popular é representada pela linguagem Logo [START_REF] Papert | Mindstorms: children, computers, and powerful ideas[END_REF][START_REF] Papert | Introduction: What is Logo? And Who Needs It?[END_REF]. Nesta linguagem, embora se possam fazer todo o tipo de programas, ganhou particular impacte a facilidade com que se elaboram regras gráficas, através de comandos simples, como os apresentados na Figura 1, do lado esquerdo ("Para frente", "Direita"...).

Além do Logo, muitas outras formas de programação visual para crianças foram desenvolvidas. A mesma imagem apresenta, do lado direito, o produto StageCast Creator, com a definição de uma regra para o movimento de uma abelha [START_REF] Stagecast | StageCast Creator[END_REF]. Na base da imagem, apresentam-se algumas "pedras de regras" utilizadas pelo produto português Floresta Mágica [START_REF] Cnotinfor | Floresta Mágica[END_REF]. A lista de produtos existentes é grande e diversificada, sendo uma área que continua a desenvolver-se, mesmo em termos comerciais. 

INFÂNCIA

Pese embora a variedade de produtos para programação infantil, a maioria defronta-se com duas limitações de peso, para utilização no jardim-de-infância:

-grande dependência da palavra escrita ou de esquemas simbólicos abstractos;

-necessidade de controlo preciso do rato.

Repare-se que mesmo que se troque o rato por outro dispositivo apontador, o problema não reside no instrumento em si, mas antes na exigência de um domínio da motricidade fina bastante avançado, geralmente a um nível superior ao encontrado na maioria das crianças que frequentam os jardins-de-infância, com pouca ou nenhuma experiência de utilização do computador. A investigação apresentada neste artigo podia, por estes motivos utilizar apenas dois tipos de ferramentas de programação:

-programação "física", por recurso a objectos físicos grandes, manipuláveis directamente com as mãos das crianças;

-programação "animada", efectuada no ecrã do computador por manipulação virtual de objectos igualmente grandes, com existência num mundo virtual, passível de alguma associação ao mundo real.

Neste artigo apresentamos os resultados de investigação na segunda área. Quanto às actividades de robótica educativa, ver [START_REF] João-Monteiro | A Robot in Kindergarten[END_REF].

PROGRAMAÇÃO ANIMADA: TOONTALK Para as experiências com programação animada, recorremos ao sistema ToonTalk, onde o próprio código-fonte é animado [START_REF] Kahn | ToonTalk™ -An animated programming environment for children[END_REF]. Neste ambiente, a criança voa sobre uma cidade, num helicóptero controlado por ela, podendo pousá-lo e entrar nas casas. Dentro de cada uma, pode-se ajoelhar e manipular vários objectos de programação e ferramentas de controlo (vd. Figura 2): bomba de dar ar, para aumentar ou diminuir; aspirador para eliminar; varinha mágica para copiar.

Entre os vários motivos que levaram à escolha desta aplicação, destaca-se a facilidade de manipulação, pois tanto o cursor (a mão presente na figura) como os objectos são de grandes dimensões, o que facilita o controlo por parte de crianças pequenas (a análise completa encontra-se em [START_REF] Morgado | Working in ToonTalk with 4-and 5-year olds", comunicação no seminário "Playground -novos ambientes de aprendizagem[END_REF].

TÓPICOS PARA UTILIZAÇÃO EM JARDIM-DE-INFÂNCIA

As actividades de programação de computadores que temos vindo a desenvolver com crianças de jardim-de-infância (3 a 5 anos), iniciaram-se em Maio de 2000, tendo-se desenrolado em 5 enquadramentos distintos (Morgado et al., 2003b) As primeiras actividades permitiram determinar a viabilidade da ferramenta de programação escolhida e a duração aceitável para cada sessão [START_REF] Morgado | Working in ToonTalk with 4-and 5-year olds", comunicação no seminário "Playground -novos ambientes de aprendizagem[END_REF].

As actividades posteriores permitiram desenvolver uma percepção das principais dificuldades das crianças envolvidas nas actividades, bem como experimentar estratégias com vista a ultrapassá-las (Morgado et al. 2003 a).

Com base na experiência adquirida, enquadramos as actividades e problemas em cinco tipologias, que são abordadas nas secções seguintes. Numa segunda fase, as actividades incorporam já competências de programação.

TIPOLOGIAS DE UTILIZAÇÃO 1: ESPAÇO DE EXPRESSIVIDADE

Frequentemente, trata-se de competências de organização de elementos. Estas podem ir desde vulgares actividades de organização temática (por ex., decidindo que imagens ficam à esquerda da casa ou à direita, dentro ou fora, etc.), até casos mais elaborados.

Os dois temas mais importantes, nesta tipologia, são: a manipulação de vectores, realizada através de caixas que se podem juntar umas às outras (Figura 7); e a organização hierárquica de informações, sob a forma de árvore hierárquica. Este tema pode ser trabalhado através de cadernos de arquivo, que podem ter dentro deles outros cadernos (Figura 8), mas também através de caixas colocadas dentro de outras caixas ou, ainda, de imagens colocadas dentro de outras imagens. Nestas actividades, a criança é envolvida na análise de relações causa-efeito. O que se pretende, no âmbito do desenvolvimento de competências de programação, é levar a criança a conhecer formas de aproveitar e combinar os comportamentos apresentados pelos objectos, para alcançar objectivos mais complexos: planear.

TIPOLOGIAS DE UTILIZAÇÃO 3: EXPLORAÇÃO DE COMPORTAMENTOS

Os comportamentos podem ser extremamente simples ou bastante complexos. No caso do ToonTalk, pode ser algo tão simples como a já referida acção de dar algo a um pássaro. Mas se a criança tiver previamente feito cópias do ninho do pássaro, o comportamento torna-se mais complexo: o pássaro desmultiplica-se, para levar a todos os ninhos cópias do objecto que lhe foi transmitido (Figura 9). Este comportamento pode ser aproveitado de várias formas:

-para criar rapidamente um número grande de cópias de vários objectos; -para efectuar actividades de distribuição de objectos por vários locais.

Outros tipos de actividades frequentes nesta tipologia são: a construção de casas (combinação dos seguintes objectos: camião, robô, caixa), a destruição de casas (utilização da bomba dentro de uma casa), a comparação de números com balanças, etc.

De forma mais complexa, antevê-se a possibilidade de explorar a combinação de comportamentos complexos desenvolvidos no Institute of Education (Londres, Reino Unido), no âmbito do projecto Playground [START_REF] Playground | Sítio Web do projecto de investigação Playground[END_REF]. Trata-se de imagens (que, no ambiente do ToonTalk são objectos manipuláveis, onde se podem programar comportamentos distintos), com propriedades combináveis, como sejam: "ando para a esquerda"; "rebento quando choco nalguma coisa"; "sigo as setas do teclado".

TIPOLOGIAS DE UTILIZAÇÃO 4: PROGRAMAR = MOSTRAR COMO SE FAZ

O conceito-base da programação explícita, em ToonTalk, é que programar consiste em demonstrar a um robô os passos necessários para efectuar a acção pretendida, a partir de uma situação inicial (Figura 10). Constatou-se a dificuldade que até mesmo adultos enfrentam na organização do raciocínio segundo estes parâmetros. Esta constatação verificou-se quer durante as actividades que envolveram animadores de informática (2002/2003), quer nas próprias aulas teórico-práticas da disciplina de Informática no Ensino, da Licenciatura em Educação de Infância da Universidade de Trás-os-Montes e Alto Douro (anos lectivos de 2001/2002, 2002/2003, 2003/2004). Por este motivo, foi preparada uma estratégia interrogativa (Morgado et al., 2003), visando apoiar quer os adultos, quer as crianças, na elaboração do raciocínio de programação (Tabela 1). Se o robô não tiver sido bem programado ou se a relação com outros objectos não for a desejada, há que debater os motivos e as soluções possíveis.

Depuração.

TIPOLOGIAS DE UTILIZAÇÃO 5: COMBINAÇÃO DE PROGRAMAS

Uma fase posterior de actividades, mais avançada, alcança-se quando as crianças começam a utilizar vários robôs (ou objectos com comportamentos) em conjunto, encadeando acções. Em termos matemáticos, este tipo de encadeamento designa-se por "funções de alta ordem " (Mitchell, 2003: pp. 182-190). A nosso ver, este apoio traduz-se na necessidade de lhes facilitar uma percepção sobre temas fundamentais da programação, de forma integrada. Uma analogia, para clarificar esta ideia: considerem-se os casos de educação por recurso ao meio natural e à matemática. Em todos eles, não basta expor os educadores aos conceitos teóricos destas áreas para se obterem boas actividades educativas. É necessário expô-los aos conceitos fundamentais destas áreas, sem dúvida, mas também adaptar as próprias áreas à realidade dos contextos de educação de infância.

Da mesma forma, é necessário que a programação não fique entregue à aprendizagem mais ou menos casuística e desconexa de conceitos, mas antes que seja apresentada de forma coerente, permitindo distinguir conceitos fundamentais, em vez de ter apenas a esperança que estes nasçam naturalmente de um caos de pequenos saberes.

É também preciso adaptar a programação aos problemas e necessidades dos educadores, cuidando destes dois aspectos:

-apresentação do tema (programação) sob o prisma educativo, não sob o prisma técnico;

-utilizar abundantemente exemplos que liguem a programação a actividades cuja integração no jardim-de-infância seja de constatação óbvia.

CONCLUSÕES

A programação de computadores possui um potencial enorme para a exploração cognitiva de conceitos e situações, também na faixa etária dos jardins-de-infância portugueses (3 a 5 anos). A utilização desta técnica é possibilitada através de novidades tecnológicas na área, que permitem a programação sem recurso a leitura nem a escrita.

Contudo, o aproveitamento desta técnica por parte dos educadores não é frequente sem cuidar de dois aspectos fundamentais: a percepção da área de saber envolvida, para lhes permitir distinguir competências-chave e conceitos fundamentais de meros truques ou saberes específicos da tecnologia utilizada; e a noção clara de como se pode integrar a técnica no dia-a-dia do jardim-de-infância, envolvendo-a em actividades variadas, ricas em conteúdo, em lugar de apenas ficar isolada numa área abstracta e solitária. NOTAS 1.

Papert pretendeu, com este nome, ligar "fobia" e "math" (em inglês a forma abreviada de "matemática"; no contexto da obra, uma referência ao radical grego mathén, "aprender", usado na palavra "matética"). Há um conflito de nomes e de conceitos em termos de psicologia/psiquiatria: "mathophobia" (amatofobia) refere-se ao medo do pó e o medo de aprender é "sophophobia" (sofofobia). Dado o sucesso editorial da obra de Papert, é contudo habitual encontrar-se nos textos educativos o conceito "mathophobia" designando o medo de aprender, até porque Papert o utiliza para referir uma característica cultural generalizada, não um problema patológico. Em português, o problema não se coloca, pois as formas possíveis, "matefobia", "matofobia" e "matiofobia", não têm outro significado.

  explorar a possibilidade de utilizar a programação de computadores no jardim-de-infância, no âmbito da metodologia construcionista desenvolvida por Seymour Papert. Para o efeito, recorremos à linguagem ToonTalk, que permite a realização de programação de computadores sob a forma de animação, dispensando a leitura e a escrita. Este artigo dá conta das estratégias que utilizámos e das constatações que efectuámos por observação e experimentação.

Figura 1 -

 1 Figura 1 -Tipos de programação para crianças PROBLEMAS NA UTILIZAÇÃO DE PROGRAMAÇÃO NO JARDIM-DE-

Figura 2 -

 2 Figura 2 -Aspecto do ambiente de programação do ToonTalk

Figura 3 -Figura

 3 Figura 3 -"Missa de pássaros", João, 5 anos, Jardim-de-Infância das Árvores, 2001

Figura 9 -

 9 Figura 9 -Carla, 3 anos, Jardim-de-Infância de São Pedro Parque, 2001 Frequentemente, a 2ª fase é complementada ou alternada com outro género de actividades, enquadradas nesta tipologia 3. Consiste em explorar objectos do ambiente de programação, que possuem comportamentos automáticos. Por ex.: no ToonTalk, ao dar qualquer objecto rectangular a um pássaro, este transporta-o até ao seu ninho.

Figura 10 -

 10 Figura 10 -Maria, 5 anos, Jardim-de-Infância das Árvores, 2001. Nesta actividade, as crianças são confrontadas com a necessidade de ponderar a sequência geral das actividades presentes na definição clássica de programação (Blackwell, 2002): definir requisitos; efectuar a especificação; conceber o programa; comunicar o programa ao computador; e antecipar ou interpretar desvios relativamente ao pretendido -depuração (debugging).

Figura 11 -

 11 Figura 11 -Joana e Ana, 4 anos, Jardim-de-Infância de São Pedro Parque, 2001.

Figura 12 -

 12 Figura 12 -Rui (5 anos) na casa nova, onde o robô dele pôs a prenda na paredeUm exemplo concreto, verificado com crianças de jardim-de-infância: após programar um robô, para que colocasse uma "prenda" na parede da casa, duas crianças programaram outro robô para construir casas (algo que anteriormente já tinham tido a experiência de fazer). Finalmente, combinaram os dois, conseguindo assim criar casas onde fica automaticamente na parede a prenda que se dá a cada novo robô (Figura 12).

Figura 13 -

 13 Figura 13 -Armário e guarda-fatos com objectos

  

Tabela 1 -Estratégia concebida para programação de robôs no ToonTalk

  

	Passo	Pergunta	Objectivo
	1º	Que queres fazer?	Estabelecer um objectivo (definir requisitos).
	2º	De que precisas?	Definir que objectos são necessários e arrumá-los numa caixa (efectuar a especificação).
	3º	Como é que fazes?	Usar os objectos para fazer o que se pretende (conceber o programa).
	4º	Consegues ensinar um robô a fazer isso?	Mostrar a um robô como se fazem as acções (comunicar o programa ao computador).
	(a) O robô aprendeu bem?	Reforçar a necessidade de testar as acções programadas.
	5º		
	(b) O que foi que correu mal?