Scratch no Interactic: pistas para avançar na programação... PDF Versão para impressão Enviar por E-mail
Avaliação: / 3
FracoBom 
Quinta, 15 Setembro 2011 11:39

Aconteceu no Interactic (Grupo Scratch – Setembro 2011) um conjunto de reflexões muito interessantes e úteis, provocadas pela entrada do Professor José Carlos Leite Ramalho da Universidade do Minho: Scratch como despiste vocacional. (Aproveitem para se registar nesta rede de partilha, sempre enriquecedora!). O que se segue é uma cópia da entrada e dos comentários que se lhe seguiram. Para quem deseja mais do Scratch e quer ir mais longe, ou, simplesmente, para quem se interessa por estas questões, vale a pena ler! (Basta clicar em continuar...)

Antes, o professor José ramalho já havia publicado no Interactic um guião muito completo para um curso intensivo que pode ser consultado aqui. É preciso inscrição no portal Interactic para aceder. Dada a sua relevância como história, experiência e recurso, transcrevemos para aqui essa entrada:

Viva a todos.
Como o tempo é sempre escasso, resolvi partilhar de imediato a estrutura do curso que dei durante esta semana a miúdos entre os 10 e 12 anos. A metodologia usada foi criar "tensão constante" na aula através da dinamização de desafios de dificuldade crescente.

Aqui vai uma breve descrição:

1º dia - Quebra-gelo: breve explicação do ambiente e de alguns conceitos; descrição de alguns comandos de movimento e posicionamento; problema do dia: criação de polígonos com n lados; no fim da aula todos tinham uma aplicação que pedia ao utilizador o nº de lados desejado e que traçava no monitor esse polígono; conceitos envolvidos: noção de variável, optimização de tarefas reptitivas substituindo-as por estruturas cíclicas.

2º dia - Problema inicial: o computador pensa num número e o utilizador tenta adivinhá-lo, m cada tentativa o computador vai dizendo se o número é mais alto ou mais baixo, no fim é indicado o nº de tentativas que foi necessário; conceitos envolvidos: estruturas cíclicas e condicionais, e interacção com o utilizador; Segundo problema: colocar um bola à solta no monitor, traçando uma linha por onde passa, mudando a cor da linha sempre que toca na borda, ...; conceitos: caneta, efeitos visuais, movimento contínuo na área disponível.

3º dia - Tema do dia: interacção entre sprites; Problema inicial: colocar um sprite em movimento contínuo nos eixos ortogonais, mudando de direcção cada vez que o utilizador carrega na seta correspondente; Conceitos envolvidos: programação paralela de sensores, utilização de trajes; Segundo problema: colocar um sprite em movimento contínuo na horizontal na parte superior do monitor, sempre que uma dada tecla é pressionada este sprite deixa cair um objecto (um novo sprite que parte da posição em que estava o atirador e que cai na vertical), na parte inferior coloca-se outro sprite sensível às setas esquerda e direita que só se move na horizontal e que deve desviar-se dos sprites que são atirados.

4º dia - Objectivo: tornar mais sofisticados os projectos anteriores adicionando contadores de vidas, fazendo terminar as aplicações sob determinadas condições, utilizando cenários;
Primeiro problema do dia: jogo de ténis ou do bastão e da bola, coloca-se uma bola em movimento contínuo, coloca-se outro sprite (controlado pelo utilizador) que deve evitar que a bola bata numa das bordas, pode complicar-se colocando outro sprite controlado pelo computador ou por outro utilizador a tentar proteger outra das bordas; Segundo problema: jogo da perseguição, coloca-se um sprite em movimento contínuo nos eixos ortogonais sensível às mudanças de direcçaõ e coloca-se outro que o vai perseguir; Conceitos: programação do comportamento dum sprite face às acções dos outros sprites.

5º dia - Último dia: dedicado à consolidação dos conceitos mais complexos e à afinação e alguns projectos. Primeiro problema: Criar um sprite com a nossa cara que realiza a nossa apresentação pessoal usando algum movimento, som e efeitos, no fim o objectivo era juntar os vários sprites no cenário da aula construindo a apresentação do curso (é o que estou a finalizar). Problema final: o jogo das luzes do Pavilhão do Conhecimento, num cenário escuro vão aparecendo objectos luminosos (estrela, bola, ...) que ficam visíveis até serem clicados com o rato, aí desaparecem para voltarem a aparecer noutro local aleatório, vão-se contando até chegar a um limite que quando atingido faz terminar o jogo indicando quanto tempo o utilizador demorou a apagar as n luzes; Conceitos envolvidos: além dos já apreendidos, a utilização do temporizador.

Ficam aqui mais umas ideias e um resumo de guião para quem se quiser aventurar numa iniciativa destas. Foi uma verdadeira aventura mas muito recompensadora...

Até breve e Scratchem muito...

José Carlos Leite Ramalho:

Depois das férias deste Verão decidi partilhar algumas das minhas cogitações. O meu filho mais novo, agora com 12 anos, frequentou o curso de Scratch que leccionei há um ano atrás no Verão no Campus na Universidade do Minho. Nestas férias, não parava de me pedir que lhe desse novos desafios e a certa altura acabei propondo-lhe que se a vontade era tanta então que o fizéssemos a sério. O que eu queria dizer era que lhe iria colocar as primeiras baterias de exercícios que costumo leccionar na universidade para desenvolver a capacidade algorítmica dos alunos.

A minha surpresa foi que em vez de desanimar, o miúdo envolveu-se de tal maneira que percebeu a nível abstracto a manipulação de variáveis, manipulação de listas e a utilização de estruturas de controlo.

Das sessões com ele fiquei convicto de que se um dia ele quiser seguir um curso de informática sabe para o que vai e o que tem de enfrentar. Isto é importante porque cada vez constato mais que a grande maioria dos alunos que chegam a uma Engenharia Informática não sabem o que vão encontrar pela frente o que se materializa na grande taxa de insucesso que estes cursos têm principalmente no primeiro ano.

Se quiserem aqui fica a lista de exercícios que poderá ser aplicada a míudos a partir do 5º ano de escolaridade, divirtam-se e ajudem a evangelizar a programação (uma actividade fantástica para desenvolver a capacidade de abstracção):

  1. Pedir ao utilizador 2 números e calcular o seu produto sem recorrer à multiplicação (usar um iterador sobre a soma);
  2. Pedir ao utilizador 2 números e calcular a sua divisão inteira sem recorrer à divisão (usar um iterador sobre a diferença, indicar o resto e o quociente);
  3. Pedir ao utilizador um número N e calcular o somatório até N;
  4. Pedir ao utilizador um número N e calcular o somatório dos números pares até N;
  5. Pedir ao utilizador 3 números e indicar qual o maior recorrendo ao mínimo número de comparações;
  6. Pedir ao utilizador 2 números e calcular o mínimo múltiplo comum (analisar com os alunos primeiro qual o intervalo possível para a solução);
  7. Pedir ao utilizador um número e calcular a lista dos divisores desse número.
  8. Pedir ao utilizador um número e verificar se é primo.
  9. Pedir ao utilizador 2 números e calcular o máximo divisor comum.
  10. Pedir ao utilizador um número N, pedir ao utilizador que introduza N números, um de cada vez, e ir guardando os números introduzidos numa lista, e:

    • calcular o maior da lista;
    • calcular o menor da lista;
    • calcular o somatório da lista;
    • calcular a média da lista;
    • calcular o número de números superiores à média da lista.

 

Manuel Gomes:

Experiência muito interessante. Não tive tempo para me dedicar ao Scratch e por isso a pergunta vai nesse sentido. Normalmente leciono a disciplina de Matemática ao ensino secundário. Achas que vale a pena investir no conhecimento do scratch?

 

José Carlos Leite Ramalho:

Depende do objectivo final.

Para além de muitas outras a Matemática é uma disciplina que só tem a ganhar com o Scratch.

Porquê?

Para responder a esta questão basta observar os resultados da experiência que fiz com o meu filho que está agora a iniciar o 7º ano. Depois de ter programado, analisado e discutido os vários algoritmos comigo, tenho a certeza de que nunca vai esquecer como se calcula o máximo divisor comum (algoritmo de Euclides), como descobrir da forma mais rápida os divisores de um número, o mínimo múltiplo comum, a série de fibonacci (o irmão a frequentar o curso de composição musical estava a usar a série para compôr e procurava o padrão repetitivo da série, quando o vi fazer cálculos à mão desafiei o mais pequeno para pôr o Scratch a fazê-lo; o resultado foi um programa que calcula a lista dos módulos 12 da série de fibonacci, ...).

A partir de certa altura o pequeno programador já não se limitava aos problemas que lhe ia colocando, começou a ter iniciativa, experimentando outros algoritmos, procurando maneiras diferentes de fazer os mesmos cálculos e até me arranjou problemas novos inventados por ele para eu colocar aos meus alunos.

Os problemas que enumerei acima podem parecer algo básicos mas se pedir a um aluno do secundário para especificar um algoritmo para qualquer um deles vai verificar que terão enormes dificuldades. Para programar uma solução temos de tornar muito do conhecimento implícito que temos em explícito e este é um salto difícil de fazer, que necessita treino e onde a actividade de porgramação é o melhor veículo.

Espero ter conseguido motivá-lo para andar em frente.

José Portela:

Só para reafirmar que o que dizes é bem verdade. Utilizo o Scratch desde o seu lançamento pelo Media Lab com os meus alunos de Educação Básica na ESE de Viana numa unidade curricular (Tecnologias em Educação Matemática). No início os alunos estranhavam, achavam complexo, difícil, mas depois… Alguns criaram um grupo no facebook… outros desenvolveram jogos educacionais que mais tarde usaram na sua pratica de ensino supervisionada. Mas o mais interessante é ver as crianças ao fim de alguns minutos de tentativa e erro a criar e a manipular o Scratch sem qualquer problema. O que é natural, pois o cérebro foi 'feito' para isso mesmo, responder a desafios e estar permanentemente disponível para aprender, logo que lhe sejam dadas oportunidades.

Graciano Fangueiro da Silva Torr:

Parecemos estar em sintonia, principalmente no tema central das cogitações.

No ano passado tive a oportunidade de frequentar uma UC, na Universidade do Minho, na qual relacionamos as "Novas  Literacias" e o  Scratch à luz do enquadramento dado por  Prensky neste artigo: http://www.edutopia.org/programming-the-new-literacy

De seguida, e como este ano ia voltar a lecionar o 10º ano do Curso de Programação e Sistemas Informáticos (Curso Profissional), estava a ponderar recorrer ao Scratch para precisamente conseguir chegar mais rapidamente ao nível de abstração que a programação em linguagem C requer.

Depois deste testemunho, as minha dúvidas desapareceram. Vou mesmo recorrer ao Scratch :)

 

José Carlos Leite Ramalho:

Vais numa boa direcção.

Eu queria fazer isso mesmo nos primeiros anos das engenharias informáticas mas tenho um problema: tenho apenas um semestre, 12 a 15 semanas, para leccionar C e a algoritmia associada desde os problemas mais básicos, passando por problemas envolvendo estruturas estáticas e chegando às estruturas dinâmicas.

Se introduzisse o Scratch iria ajudar bastante os alunos com mais dificuldades mas teria de amputar o programa nalgumas secções e passaria um problema aos colegas que leccionam matérias relacionadas com programação nos anos seguintes.

É uma balança difícil de gerir... Nos EUA, por volta de 2004, fizeram um estudo estatístico e descobriram ou verificaram a enorme taxa de insucesso na área de programação no ensino universitário. Qual foi a solução? Reformularam todo o curriculum adoptando uma linguagem de programação parecida com o Scratch: o Alice (um Scratch para programadores hardcore). Para fazermos o mesmo teria de haver coragem e algum estudo de impacto que estas mudanças forçosamente trazem.

Isto tudo para dizer, força, o Scratch devia ser obrigatório como uma das primeiras linguagens de programação no ensino tecnológico.

Depois, em off, ainda se trocaram mais algumas reflexões sobre este assunto:

José Carlos Leite Ramalho:

Da minha experiência com miúdos do 2º ciclo eu diria que muito pode ser feito nestas idades. Quando ensino alguém a programar a primeira coisa que penso é "Como é que quero treinar esta pessoa a pensar?" e depois desenvolvo a minha estratégia a partir daí. Esta conversa toda porque cada vez me chegam mais alunos a dizer que sabem programar mas trazem daqueles vícios que arrepiam só de ver... Um exemplo de uma das minhas metodologias: nas primeiras semanas... só deixo os alunos usar uma estrutura cíclica, o ciclo enquanto, em Scratch é o "Repetir Até". Objectivo: que comecem a desenvolver uma lógica de controlo de fluxo apurada. Apliquei esta restrição ao meu filho nas últimas sessões. De início achou estranho mas depois começou a aperceber-se do salto que o obriguei a dar e começou a programar coisas bem mais complexas, sem pensar muito. (...)

A ideia não era subir a fasquia mas com um pequeno exemplo mostrar que mesmo uma linguagem simples como o Scratch pode ser usada para "educar" maneiras de pensar adicionando restrições: tentem fazer agora o mesmo com o mínimo de variáveis possível, usem apenas o Repetir Até como instrução de controlo cíclica, tentem fazer o mesmo programa com o mínimo de comparações possível, ... A isto chama-se optimização mas é muito importante e leva-nos a criar "receitas" para a resolução de problemas. E pode ser feito com todas as idades...

 

Partilhar/Guardar