• Nenhum resultado encontrado

Uso do Scratch no ensino de programação

N/A
N/A
Protected

Academic year: 2021

Share "Uso do Scratch no ensino de programação"

Copied!
71
0
0

Texto

(1)

Universidade de Trás-os-Montes e Alto Douro

Relatório de Estágio/Dissertação

Uso do Scratch no ensino de programação

Mestrado em Ensino de Informática

Pedro Miguel de Sousa Osório

Orientador: Professor Doutor Joaquim Bernardino de Oliveira Lopes Coorientador: Professor Doutor José Paulo Cravino

(2)

Universidade de Trás-os-Montes e Alto Douro

Relatório de Estágio/Dissertação

Uso do Scratch no ensino de programação

Mestrado em Ensino de Informática

Pedro Miguel de Sousa Osório

Orientador: Professor Doutor Joaquim Bernardino de Oliveira Lopes Coorientador: Professor Doutor José Paulo Cravino

(3)

I

Relatório de Estágio de Mestrado apresentado à Universidade de Trás-os-Montes e Alto Douro para cumprimento dos requisitos necessários à obtenção do grau de Mestre em Ensino de Informática

(4)
(5)

III

Agradecimentos

Ao Professor Doutor Joaquim Bernardino de Oliveira Lopes e ao Professor Doutor José Paulo Cravino pela sua orientação, total apoio, disponibilidade, pelo saber transmitido, pelas opiniões e críticas e por todas as palavras de incentivo. Obrigado por mostrarem na primeira pessoa tudo o que ensinaram sobre o que é ser bom professor.

Às três mulheres mais importantes da minha vida. A minha mãe, a minha mulher e a minha filha por todas e mais algumas razões.

Por último aos meus sócios e colegas pelo apoio e incentivo, assim como pelas horas que estive ausente e fizeram muito do meu trabalho.

(6)
(7)

V

Resumo

O presente trabalho parte de uma dificuldade sentida como profissional de ensinar programação para todos os alunos. Essa dificuldade, aliás, está plasmada no mito de que a programação é só para alguns. Existem, de facto, algumas dificuldades na aprendizagem de programação reportadas na literatura e percecionados pelos professores de informática. Em geral, com as abordagens tradicionais à programação existem, normalmente, dois extremos, os alunos que estão motivados e os que dizem que não têm capacidades.

A presente dissertação pretende abordar este problema. Far-se-á uma caracterização das razões destas dificuldades, a sua natureza e tipos, bem como as abordagens realizadas na tentativa de as superar, em particular aquelas que recorrem ao software Scratch.

Assim a dissertação divide-se em quatro partes. Na primeira parte, apresenta-se e enquadra-se o problema descrito e na segunda faz-se uma revisão de literatura sobre as dificuldades de aprendizagem na programação e sobre o uso do Scratch para o ensino de programação.

Na terceira parte, faz-se um relato da utilização do Scratch no ensino de programação. Esse relato centra-se na experiência de um formador antes e depois da utilização do Scratch como linguagem de programação. A partir desse relato faz-se uma reflexão dessa experiência, que servirá de base para a apresentação, na quarta parte, de uma proposta didática para ensino de programação.

A reflexão desta experiência descreve que a utilização do Scratch na introdução à programação veio aumentar os níveis de motivação por parte dos alunos, melhorou os resultados e proporcionou a concretização de projetos mais complexos.

Como resultado final deste trabalho foi elaborada uma ferramenta visual, um mapa mental, com os tópicos a ter em consideração na iniciação à programação. Destacando-se uma proposta didática com a utilização do Scratch e sugestões de ensino e aprendizagem.

(8)
(9)

VII

Abstract

The present work is based on a difficulty experienced as a professional in teaching programming to all students. Moreover, this difficulty is reflected in the myth that programming is only for some. There are, in fact, some difficulties in learning programming that are reported in the research literature and perceived by ICT teachers. Generally, with the traditional approaches to programming there are, normally, two sides, the students that are motivated and the ones that say that they are not capable.

The present dissertation intends to approach that problem. It includes a characterization of the reasons of those difficulties, their nature and types, as well as the approaches made in the attempt of overcoming them, in particular those which make use of

Scratch software.

Therefore, this dissertation is divided in four parts. The first, presents and frames the described problem. The second is a revision of the literature about the learning difficulties in programming and above all the use of Scratch to teach programming.

The third part is a description of the use of Scratch while teaching programming. That description is focused on the experience of a teacher before and after using Scratch as programming language. Starting from that description a reflection of that experience is done, and it will be the base for the presentation in the fourth part of a didactic proposal for teaching programming.

The reflection of this experience describes that the use of Scratch in the introduction of teaching programming has increased the levels of motivation on the part of the students, better results and has provided an accomplishment of more complex projects.

As a final result of this work, a visual tool, a mind map, was elaborated with the topics to be taken into account in the introduction to programming. Highlighting, a didactic proposal with the use of Scratch and suggestions of teaching and learning.

(10)
(11)

IX

Índice

Agradecimentos ... III Resumo ... V Abstract... VII Índice de Ilustrações ... XI Índice de Tabelas ... XI Glossário ... XII

1.Dificuldades de aprendizagem de programação no ensino não superior ... 1

1.1 Razões destas dificuldades ... 2

1.2 Abordagens tentadas para recuperá-las ... 3

1.3 Plano da dissertação ... 4

2.Abordagem teórica do problema ... 7

2.1 Ensino de programação ... 7

2.2 Aprender programação ... 9

2.3 A linguagem de programação Scratch ... 11

2.4 Estratégia de implementação Scratch ... 12

3.Relato do percurso profissional e das dificuldades de programação ... 15

3.1 Contextualização ... 15

3.2 Sinopse ... 15

3.3 Relato percurso profissional ... 18

3.3.1 Módulo de programação de alto nível ... 18

3.3.2 Aula aberta... 26

3.3.3 PAP ... 27

3.3.4 Scratch e PAP ... 27

4.Proposta didática ... 33

4.1 Fundamentos da proposta ... 33

(12)

X

4.1.2 Principais lições do percurso profissional no ensino da programação ... 36

4.2 Proposta curricular de ensino de programação usando Scratch ... 40

4.2.1 Planeamento e recursos ... 41

4.2.2 Principais aspetos a ter em consideração... 48

5.Considerações Finais ... 51

Referências ... 53

(13)

XI

Índice de Ilustrações

Ilustração 1 - Similaridade fluxograma e Scratch ... 38

Ilustração 2 - Espiral do pensamento criativo proposta por Resnick (2009) ... 47

Ilustração 3 - Mapa mental sobre a iniciação na programação ... 57

Índice de Tabelas

Tabela 1 - Cronograma das ações com o Scratch ... 18

Tabela 2 - Referencial dos módulos de PSI 2º ano do TGPSI ... 19

Tabela 3 - Referencial dos módulos de AC 1º ano do TEAC ... 20

Tabela 4 - Distribuição dos tópicos e carga horária do módulo de programação ... 42

Tabela 5 - Tabela de especificação formativa para a aula 2 ... 44

(14)

XII

Glossário

AC – Automação e Computadores CC – Ciências da computação

Escopal – Escola Profissional de Lamego

ESTGL – Escola Superior de Tecnologia e Gestão de Lamego FCT – Formação em Contexto de Trabalho

LP – Linguagem de Programação

MIT – Massachusetts Institute of Technology PAP – Prova de Aptidão Professional

PSI - Programação e Sistemas de Informação S4A – Scratch for Arduino

TEAC - Técnico de Eletrónica, Automação e Computadores

TGPSI - Técnico de Gestão e Programação de Sistemas Informáticos TIC – Tecnologias de Informação e Comunicação

(15)

Capítulo 1 – Dificuldades de aprendizagem de programação no ensino não superior

1

1.Dificuldades de aprendizagem de programação no ensino não superior

O ensino de programação de computadores continua a apresentar muitos desafios, apesar de muitos anos de pesquisa nesta área, cerca de 50. Segundo Jenkins (2002) aprender a programar envolve diversos conhecimentos e habilidades, sendo considerada uma tarefa difícil.

A crescente necessidade de profissionais na área de computação não está a ser correspondida com o número de inscrições, existe o mito de que é uma área muito difícil.

A aprendizagem de programação, efetivamente, para alguns alunos, é uma tarefa árdua. Existem dois grupos heterogéneos de alunos, os que gostam, participam e têm bons resultados e os alunos que dizem não gostar e perdem o foco da matéria (Leither & Lewis, 1978), estes, normalmente, têm maus resultados. Como a programação é uma matéria sequencial, onde é necessário dominar os aspetos anteriores para aplicar os seguintes, a perda de foco implica um esforço muito grande para quem quiser voltar a acompanhar o ritmo da matéria.

Dentro do grupo daqueles que experienciam grandes dificuldades, alguns conseguem “dar um salto quântico” e avançar na disciplina. Mesmo sem se saber, muitas vezes, as condições precursoras desse salto, verifica-se que a maioria dos alunos que persiste na aprendizagem de programação acaba por alcançar sucesso.

Programar envolve uma diversidade de conhecimentos e competências. De uma forma geral, programar é visto como uma resolução de problemas, que pode ser decomposto em quatro etapas: perceber o problema, planear uma solução, implementar um plano e realizar testes ao resultado obtido (Ambrósio, et al., 2011).

(16)

Capítulo 1 – Dificuldades de aprendizagem de programação no ensino não superior

2

1.1 Razões destas dificuldades

Aprender a programar é uma tarefa muito difícil que envolve vários conhecimentos e habilidades. A programação é uma atividade altamente complexa, que envolve sub-tarefas ligadas e diferentes domínios de conhecimento e a uma variedade de processos cognitivos (Pea, 1984).

Os objetivos das disciplinas de introdução à programação começam por ensinar aos alunos os conceitos básicos de programação, para que estes consigam implementar soluções para problemas, utilizando para tal uma linguagem de programação. Na prática, verifica-se que, mesmo entendendo o problema, e tendo capacidade de resolver uma instância deste, os alunos têm uma grande dificuldade em construir um algoritmo que possa depois ser traduzido para uma linguagem de programação e implemente uma solução generalista para problemas similares (Ambrósio, et al. , 2011).

A maioria dos alunos, com fraco rendimento, transita automaticamente da leitura do problema para a implementação do código, abdicando de todo o processo de construção de um algoritmo. A dificuldade está na compreensão, na transição da linguagem para o código, basicamente no raciocínio que é necessário efetuar (Winslow, 1996). Normalmente contentam-se em ter uma ideia inicial e logo passam a implementá-la por tentativa e erro sem construírem uma visão global da solução.

Numa contextualização do aluno atual, temos um indivíduo com acesso à internet, sendo este acesso diário. Com o progresso das tecnologias, em particular dos smartphones, a maioria dos alunos faz-se acompanhar de um equipamento destes. Além do acesso à internet estes equipamentos permitem descarregar e instalar aplicações de forma grátis de uma enorme base de dados. Existem milhões de aplicações para os mais variados fins, estas têm um design cuidado e são muito intuitivas.

Uma das razões de os alunos perderem a motivação é desconhecerem a aplicabilidade da matéria. O feedback da aplicação de programação é também um dos responsáveis por esta perda de interesse. É necessário apreender muitas regras e conceitos, assim como escrever muitas linhas de código, para no final, o resultado aparecer numa linha de texto, no formato de uma palavra ou de um número.

(17)

Capítulo 1 – Dificuldades de aprendizagem de programação no ensino não superior

3

1.2 Abordagens tentadas para recuperá-las

Acredita-se que os processos mentais que os alunos utilizam na resolução de problemas matemáticos e de laboratório são semelhantes aos necessários para a programação. Alguns autores verificaram uma correlação entre o desempenho dos alunos e um prévio conhecimento matemático e de ciências (Wilson & Shrock, 2006) (Byrne & Lyons, 2001).

A influência do estilo de aprendizagem do aluno nos resultados de disciplinas de introdução à programação tem sido ambígua (Byrne & Lyons, 2001). Cada aluno tem uma abordagem preferencial que se pode traduzir num dos quatro estilos de aprendizagem: convergente, divergente, assimilador ou acumulador (Kolb, 1985).

Segundo, Ambrósio, et al. (2011), existem dois fatores, ou habilidades cognitivas, essenciais na melhor ou pior aprendizagem de programação. A primeira refere-se à capacidade de sair de uma análise mais holística dos problemas do quotidiano e fazer uma leitura mais analítica dos mesmos, realizando, mesmo, um planeamento sequencial. A segunda habilidade é a capacidade de abstração. A necessidade de gerar soluções mais genéricas prende-se com a capacidade de abstração. Ao tentar encontrar uma solução para um determinado problema, o aluno não fica ligado a dados específicos, mas procura abstrair da solução todo o processo de forma a poder ser aplicado no futuro a outras instâncias.

O processo de programação, em traços gerais, necessita de capacidade de raciocínio e algum nível de criatividade. Por exemplo, para programar jogos de computador, o raciocínio está envolvido na estruturação do jogo e a criatividade no design para que este seja maís atrativo.

Um exercício desafiante é ler programas elaborados por outras pessoas. Obriga a ler a lógica que orientou o raciocínio da outra pessoa, permitindo adquirir mais competências.

Outras estratégias são a divisão do problema em partes menores e a utilização de ferramentas visuais, como por exemplo, os fluxogramas.

O Scratch é uma aplicação de programação de alto nível, basicamente, arrastam-se blocos que só encaixam em locais compatíveis. Desta forma elimina-se uma série de regras e de definições relacionadas com a linguagem de programação. Um aluno sem conhecimentos de programação, no Scratch, facilmente constrói o seu primeiro programa e rapidamente

(18)

Capítulo 1 – Dificuldades de aprendizagem de programação no ensino não superior

4

obtém o feedback daquilo que programou. Este aluno consegue fazer aplicações com alguma complexidade, como colocar um objeto a movimentar-se, emitir sons e mesmo interagir com este através do rato ou teclado. Uma aplicação deste género numa linguagem de programação tradicional só seria possível depois de alguns anos de teoria e de experiência.

Depois de começar a utilizar o Scratch como ferramenta principal neste módulo os resultados são muito animadores. Por um lado aumentou o número de alunos ensináveis e por outro lado com o mesmo número de horas as aplicações resultantes dos projetos têm muita mais complexidade.

1.3 Plano da dissertação

O plano para a elaboração da dissertação divide-se em cinco capítulos principais. No primeiro, pretende-se identificar as dificuldades de programação do ensino de informática no ensino não superior e desmitificar a ideia que a programação é só para alguns, assente no mito de que algumas pessoas nasceram com aptidões próprias para programar. Ainda neste capítulo, quais as razões para estas dificuldades e que abordagens foram tentadas no sentido de as recuperar.

No capítulo seguinte, uma abordagem mais teórica sobre o problema, com uma revisão da literatura sobre o uso do Scratch no ensino de programação, uma fundamentação mais aprofundada das dificuldades referidas no anterior capítulo e das razões que as propiciam. O

Scratch é uma aplicação multifacetada, pode ser utilizado para a implementação de um

simples algoritmo, como devolver a soma de dois números, da mesma forma, que pode ser utilizado para a elaboração de um jogo com alguns componentes multimédia já de alguma complexidade, mesmo, sem deixar transparecer essa complexidade para o programador. Neste sentido, pretende-se uma abordagem das potencialidades do Scratch no uso quotidiano no sentido do desenvolvimento profissional. O Scratch como ferramenta pedagógica para o ensino da programação pela abstração da sintaxe da linguagem de programação, pela sua simplicidade de implementação e pelo feedback imediato dos algoritmos implementados.

(19)

Capítulo 1 – Dificuldades de aprendizagem de programação no ensino não superior

5

O terceiro capítulo prende-se com um relato e reflexão da experiência do uso do

Scratch no ensino de programação por parte do autor desde 2013. Antes deste relato, será

apresentada uma sinopse da relação com o Scratch.

Tendo como base os capítulos anteriores, no capítulo quatro, será apresentada uma proposta didática para o ensino de programação utilizando o Scratch.

(20)
(21)

Capítulo 2 – Abordagem teórica do problema

7

2.Abordagem teórica do problema

Os métodos de ensino têm sido tema de várias discussões devido ao processo de transformação que a educação está a atravessar. O saber e o fazer são reconhecidas como ações importantes na aprendizagem, saindo um pouco dos modelos tradicionais é introduzida uma nova dimensão relevante para a educação, o brincar (Thomas & Brown, 2011). O fluxo de aprendizagem que se cria pelas experiências proporcionadas pelas novas tecnologias estimula a novas descobertas. Ainda segundo Thomas e Brown, a internet, uma rede de informação praticamente infinita, impulsionou o aparecimento de uma nova cultura de aprendizagem. Pode-se aprender sobre tudo, e existem possibilidades ilimitadas de novas experiências e consecutivamente novas descobertas.

Na tentativa de se alcançar um modelo de ensino capaz de ir ao encontro dos interesses dos alunos e ao mesmo tempo incentivar uma reforma na forma de pensar, muitas intervenções pedagógicas têm procurado incorporar as tecnologias na educação. Esta procura também se tem verificado relativamente ao ensino de programação (Scaico, et al., 2013).

2.1 Ensino de programação

No ensino de programação, reconhece-se a diferença entre saber programar e ser capaz de ensinar alguém a programar (Scaico, et al., 2013). Ainda segundo Saeli et al., interessa referir que o cenário de uma sala de aula é um ambiente muito complexo, onde muitos processos e ações estão a ocorrer ao mesmo tempo, este é influenciado pelo respetivo estilo de aprendizagem dos alunos. Neste contexto são descritas quatro dificuldades que podem perturbar a ação de ensinar e aprender programação.

Essas dificuldades são: entender a utilidade de programação e os seus benefícios; compreender as propriedades gerais de uma máquina (neste caso, um computador) que o aluno pretende controlar; aprender uma nova notação nas duas vertentes de sintaxe e

(22)

Capítulo 2 – Abordagem teórica do problema

8

semântica de uma linguagem de programação; adquirir competências necessárias à implementação, como: especificar, codificar, depurar e testar o código (Saeli, et al. , 2011).

As abordagens de ensino pretendem prevenir estas dificuldades e ao mesmo tempo manter um nível de motivação nos alunos de forma a se manterem interessados e participativos nas ações de programação (Scaico, et al., 2013).

Sobre este tema, um fator importante é a escolha da linguagem de programação para a introdução desta temática. Já que aprender a programar não é uma tarefa simples e a iniciação dos jovens a partir de abordagens equívocas poderá provocar o efeito contrário ao pretendido (Scaico, et al., 2013).

O Python é uma linguagem de programação com uma sintaxe simples, os seus blocos são delimitados por indentação1 e devolve feedback imediato (Lima, 2011). Ensinar e

compreender Python torna-se mais fácil e permite que a sintaxe não seja um impeditivo para que os iniciantes construam algoritmos (Grandell, et al. , 2006). Marques et al. (2011) depois da sua experiência com uma oficina de programação com Python com alunos do secundário mostra que a utilização de jogos como base dos projetos da disciplina foi um fator motivacional. Porém, Rapkiewicz et al. (2006) afirma que o Python ainda é uma linguagem de programação complicada para iniciantes, o que pode interferir na motivação dos alunos.

Papert (1991) argumenta que as linguagens de programação devem ter “low floor”, fácil de iniciar, “high ceiling”, oportunidade de ir aumentando a complexidade dos projetos com o tempo, e “wide walls”, possam suportar vários tipos de projetos indo de acordo com o interesse das pessoas.

O Scratch é uma ferramenta que tem sido utilizada em experiências inovadoras de aprendizagem. Vários trabalhos relatam como esta linguagem, diferente das convencionais, pode ser utiliza de forma criativa com o intuito de captar e manter a motivação dos formandos (Calder, 2010) (Young-Jin, 2011).

Segundo vários estudos, a aprendizagem segundo a teoria construtivista tem devolvido bons resultados. Os alunos vão aprender a resolver problemas à medida que estes vão

1 Recuo de um texto em relação à sua margem. Em programação é o termo aplicado ao código fonte de

(23)

Capítulo 2 – Abordagem teórica do problema

9

surgindo em diversas situações, da mesma forma que vão desenvolvendo habilidades cognitivas, como raciocínio causal e metacognição (Lye & Koh, 2014).

Ainda segundo Lye & Koh (2014), o programa final deve ser dividido em programas mais pequenos e fáceis de implementar.

O professor deve questionar o processo de resolução do problema, questões como: “Porque colocou este comando aqui?” e “Qual o propósito desta instrução?”. Como demonstração o professor deve resolver o problema e explicar a sua forma de pensar, o chamado pensar alto, para que demonstrar a sua forma de pensar (Jonassen, 2011).

Segundo Gomes et al. (2008), os professores não diversificam as suas estratégias de forma a ir ao encontro da grande diversidade de pensamentos, compreensões, ritmos e estilos de aprendizagem de cada turma. A juntar às anteriores, cada vez as turmas são maiores e os tempos letivos mais apertados, o que não permitem um ensino muito personalizado. O ensino deveria ser centrado no aluno.

Normalmente ensinam-se os detalhes sintáticos de uma linguagem de programação, antes dos alunos perceberem a finalidade de aprender a programar. A preocupação principal deveria ser o desenvolvimento de aptidões na resolução de problemas e depois surgiria uma linguagem de programação como veículo para concretizar essa resolução. Esta é uma abordagem top-down (Gomes, et al. , 2008).

2.2 Aprender programação

Saindo da perspetiva do professor e da linguagem de programação, vários estudos revelam que algumas técnicas de aprendizagem têm surtido bons resultados.

O método de estudo deve ser revisto. Os alunos estão habituados a ser bem-sucedidos com estudos baseados em leituras sucessivas, memorização de matéria e uma mecanização de procedimentos. A programação impõe um estudo bastante diferente, exigindo uma prática intensiva, assim como uma verdadeira compreensão dos assuntos e reflexão. Programar exige muito trabalho fora das aulas (Gomes, et al. , 2008).

(24)

Capítulo 2 – Abordagem teórica do problema

10

Alguns estudos investigam os fatores que podem caracterizar um bom programador, enquanto outros procuram explicar a forma como os alunos aprendem. As conclusões de alguns destes estudos revelam que, quando têm tempo suficiente, seguem na direção certa e utilizam instruções claras, estes alunos são bem-sucedidos em programação (Sheard, et al. , 2009).

Neste tema podemos referir algumas conclusões para os alunos terem melhores resultados e um maior sucesso. Assim é fundamental, os alunos utilizarem metacognição e estratégias de gestão de recursos, nomeadamente de modo a terem a perceção daquilo que aprenderam. A capacidade de abstração é também muito importante e aumenta com o progresso da programação.

É necessário colocar o problema no papel, só mentalmente não é possível. Para isso podem ser utilizadas ferramentas visuais, como fluxogramas. Parece ser vantajoso esquematizar o problema, assim como a utilização de modelos. Alunos que utilizam modelos mentais na resolução de problemas têm mais facilidade de sucesso (Ambrósio, et al. , 2011).

No topo da resolução de problemas e na construção de programas, os alunos devem utilizar a reflexão. Esta reflexão vai auxiliar na metacognição dos alunos. A reflexão deve ser relativa ao código que criaram, mas também uma autorreflexão daquilo que aprenderam (Lye & Koh, 2014).

O teste e reflexão sobre um problema e a sua solução são muitas vezes esquecidos pelos alunos. Geralmente, os alunos fazem testes da solução construída de forma muito superficial, ou nem fazem estes testes (Gomes, et al. , 2008).

É mais difícil ler programas elaborados por outros, do que escrever novos programas. A leitura anterior é mais difícil, pois exige a compreensão da lógica que orientou o pensamento da primeira pessoa, chamada lógica ao contrário, temos o resultado e vamos perceber como foi conseguido. Esta técnica permite obter maiores competências de programação (Ambrósio, et al. , 2011).

Bons programadores também são bons investigadores de erros. O aluno percorrer as linhas de código encarnando o papel do computador é um bom exercício (Cristovão, 2008).

(25)

Capítulo 2 – Abordagem teórica do problema

11

2.3 A linguagem de programação Scratch

Os programadores noviços, que se estão a iniciar em programação, encontram na sintaxe da linguagem de programação um primeiro obstáculo. É necessário simplificar as sintaxes das linguagens de forma a estas ficarem mais próximas da linguagem natural.

O ambiente da ferramenta Scratch, através de um conceito inovador de programação orientada ao design, traz uma linguagem que privilegia a Computação Criativa2 (Scaico, et al.,

2013).

Com esta ferramenta os alunos estão constantemente a reavaliar as suas opções, a explorar novos caminhos e a imaginar novas possibilidades. Caracterizada por criar um laço interativo, experimenta e lúdico (Resnick & Rosenbaum, Designing for Tinkerability, 2013).

O Scratch é uma linguagem de sintaxe simples, construída por blocos que se encaixam uns nos outros como uma construção Lego. Os projetos podem ainda ser partilhados na comunidade, surgindo daí todo um trabalho colaborativo (Maloney, et al. , 2010).

Não ter de se preocupar com questões acessórias à programação, como o caso de problemas de sintaxe, os alunos podem concentrar-se mais na elaboração do algoritmo, caso contrário poderia ser um fator desmotivador para os aprendizes. O Scratch também é mais adequado pois permite a utilização do idioma nativo do país, no nosso caso o português (Scaico, et al., 2013). O fato do Scratch estar traduzido em múltiplas línguas também facilita o trabalho colaborativo e a partilha internacional (Resnick, et al., 2009).

Desde o seu lançamento público em Maio de 2007, o sítio do Scratch (http://scratch.mit.edu) tornou-se numa comunidade online muito ativa, onde as pessoas partilham, discutem e alteram projetos. Esta comunidade tem uma coleção de projetos muito variados, desde jogos, aplicações interativas, aplicações científicas, como simuladores, visitas virtuais, cartões de aniversário, danças e tutoriais. Todos estes programas são criados com

Scratch (Resnick, et al., 2009).

2 Termo utilizado para reconhecer que as práticas e os conhecimentos que os alunos precisam de

(26)

Capítulo 2 – Abordagem teórica do problema

12

Esta é uma comunidade de aprendizagem criativa com 16.266.327 projetos partilhados (MIT Media Lab, s.d.). Para muitos programadores, a oportunidade de colocar os seus projetos à frente de uma audiência tão grande, assim como poder receber feedback e conselhos de outros membros da comunidade, é um fator motivacional muito grande. A grande biblioteca de projetos serve também de inspiração, ao explorar podem tirar novas ideias e aprender diferentes técnicas (Resnick, et al., 2009).

Com a criação de projetos e a partilha na comunidade, os alunos assimilam vários conceitos matemáticos e informáticos importantes, desenvolvem o pensamento criativo e sistemático e aprendem a trabalhar de forma colaborativa. Todas estas características são essenciais para este século, para sobreviver na era da informação numa sociedade global. É necessário preparar estas novas gerações de forma criativa e sistemática, para que facilmente possam expressar as suas ideias através do computador (Resnick, et al., 2009).

2.4 Estratégia de implementação Scratch

A proposta passa pela utilização do Scratch como linguagem de programação, como ferramenta lúdica utilizada para os alunos da disciplina que vai iniciar a introdução à programação. Esta proposta, à semelhança de Bittencourt et al. (2013), pretende a implementação de um projeto final, um jogo. Ao mesmo tempo, os alunos vão explorando os conceitos necessários à sua implementação, de forma intuitiva.

Como estratégia metodológica, ainda segundo os mesmos autores, temos a utilização de desafios que podem não estar restritos a um único projeto, ou tipo de projeto, as suas soluções podem ser representadas pela elaboração de jogos, animações ou outro projetos.

Os alunos ao explorar temas e projetos cuja natureza vá ao encontro dos seus interesses são capazes de expressar melhor os resultados da sua aprendizagem (Papert, Mindstorms: Children, Computers and Powerful Ideas, 1980).

Os materiais criados devem ir ao encontro da teoria construtivista cujo princípio mais importante é o de aprender fazendo (Papert & Harel, 1991). Desta forma não segue um manual convencional, mas um quadro de referência com os conteúdos e competências a

(27)

Capítulo 2 – Abordagem teórica do problema

13

adquirir. O professor vai fazer a gestão do que deve ensinar e dos desafios que vai lançar para que os alunos atinjam as soluções por si, autonomamente.

(28)
(29)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

15

3.Relato do percurso profissional e das dificuldades de programação

Num pequeno texto vou relatar a minha história com o Scratch. Inicialmente será descrita uma sinopse dos acontecimentos, segue-se um relato com uma descrição mais detalhada de determinados momentos chave nesta relação e por fim uma reflexão.

3.1 Contextualização

Ministro formação na Escola Profissional de Lamego (Escopal) desde 2007. São diversos os cursos lecionados: Automação, Eletrónica, Computadores e Sistemas de Informação. Para cada curso existem diferentes disciplinas na área técnica, das quais algumas são de programação. Desde 2007 que realizo formação em disciplinas de programação, com experiências e níveis variados, dependendo da linguagem utilizada, baixo ou alto nível, e da experiência dos formandos, pois todos os anos do curso têm disciplinas de programação.

3.2 Sinopse

Sou leitor assíduo do sítio http://pplware.sapo.pt, um blog de tecnologia que tem sempre as últimas novidades sobre o tema. O Pplware é o mais relevante canal de tecnologia português e um dos mais preponderantes no mundo da língua portuguesa (PPLWARE.COM, LDA, 2005). Numa das pesquisas sobre novidades, foi encontrado um post sobre um computador pequeno, capaz de correr um sistema operativo de 32 bits, como uma distribuição

Linux. No dia 4-1-2013 comprei um exemplar, um Raspberry Pi.

Quando o minicomputador chegou, foram destinados alguns dias a analisar o equipamento. O sistema operativo recomendado, que se colocava num cartão de memória, era o Raspbian, uma versão Linux otimizada para o equipamento. Das primeiras vezes que liguei

(30)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

16

o equipamento, duas aplicações chamaram à atenção, eram as únicas com atalhos no ambiente de trabalho.

A primeira foi uma consola de Python, pois já tinha ouvido falar desta linguagem de programação, mas nunca tinha experimentado. A segunda foi um ícone com um gato. Este foi o primeiro contacto com o Scratch, ainda sem saber verdadeiramente para que servia. Ambas as aplicações me aguçaram a curiosidade e serviram de ponto de partida para querer saber mais sobre ambas.

“Programadora de jogos mais nova do mundo tem apenas 7 anos” (PPLWARE.COM, LDA, 2013), mais uma notícia no Pplware, cerca de um mês depois de ter o Raspberry Pi. Nos comentários alguém referia que tinha uma turma do 2º ano e todos programavam em

Scratch. Começou a pesquisar tutoriais e pouco tempo depois estava a mostrar aos alunos de

um módulo de programação, a facilidade com que se podia programar um gato. Podia programar os seus movimentos, aspeto e sons. Os alunos acharam muito interessante e procuraram uma versão para Windows.

Em janeiro de 2014, a Escopal recebeu um convite da Escola Superior de tecnologia e Gestão de Lamego (ESTGL) para uma aula aberta intitulada "Scratch - nova linguagem gráfica de programação". A atividade correu muito bem e os formandos presentes ficaram muito entusiasmados, por um lado, com as potencialidades desta ferramenta de programação e por outro pela facilidade com que se podia desenvolver uma aplicação. Nesta aula aberta ficámos a conhecer um pouco da história do Scratch, algumas das suas variantes, como por exemplo, o projeto SapoKids e a comunidade Scratch online do Massachusetts Institute of Technology (MIT). No final da aula fomos informados de um concurso que iria eleger a melhor aplicação em Scratch.

Os alunos gostaram muito da apresentação e interessaram-se bastante por esta forma de programar, de tal forma que alguns vieram a utilizar o Scratch como ferramenta para desenvolverem a sua Prova de Aptidão Profissional (PAP).

Do meu ponto de vista, a parte mais importante desta aula foi a descoberta da comunidade Scratch online. Esta além de disponibilizar um espaço para armazenar e desenvolver aplicações online, bastando um simples browser, também permitia a partilha das aplicações por toda a comunidade e da mesma forma o acesso às aplicações dos restantes

(31)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

17

utilizadores. Esta interação e partilha de experiências permitem uma aprendizagem acompanhada e colaborativa.

Foi o ponto de partida para começar a utilizar o Scratch no módulo de programação do primeiro ano do curso de Técnico de Eletrónica, Automação e Computadores (TEAC). O nome do módulo era Programação de Alto Nível. Inicialmente utilizava a linguagem Python, neste ano comecei a introduzir o Scratch e a repetir os exercícios nas duas linguagens. Nos dois anos seguintes, para este módulo, utilizei só o Scratch como ferramenta de programação.

O resultado de toda esta experiência é muito positivo. O Scratch passou a ser a ferramenta utilizada na introdução à programação. Os formandos, cada ano que passa, conseguem surpreender mais, quer pela criatividade das aplicações, quer pelo sucesso em realizar aplicações de maior complexidade. O jogo da memória é um bom exemplo disso, como será explicado em mais detalhe no relato.

O próximo passo será a utilização do ambiente de programação do Scratch noutras áreas. Um exemplo é o projeto Scratch for Arduino (S4A). O S4A é uma modificação do

Scratch que permite programar a plataforma de hardware de código livre, o Arduino, de

forma simples (Citilab, s.d.). Desta forma vai permitir a integração do Scratch noutras disciplinas de hardware.

A sequência das ações descrita anteriormente, é resumida no cronograma que se apresenta na tabela 1.

(32)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

18

Tabela 1 - Cronograma das ações com o Scratch

Data Acontecimento

04-01-2013 Compra Raspberry Pi.

Aplicação Scratch com um gato.

18-02-2013 Pplware - Programadora de jogos mais nova do mundo tem apenas

7 anos.

Colocar o gato a mexer. Mostrar aos alunos.

29-01-2014 Aula aberta "Scratch - nova linguagem gráfica de programação" – ESTGL

Algumas variantes, aumentou o interesse por parte dos formandos.

Site e vários exemplos.

05-02-2014 a 02-04-2014

Utilização do Scratch no módulo de programação juntamente com

Python.

21-05-2014 Convite para júri do concurso Scratch Lamego. 13-02-2015 a

26-05-2015

Utilização do Scratch no módulo de programação. 20-06-2015 Alguns alunos elaboraram PAP’s no Scratch

Tetris, Flappy bird e Sudoku

27-01-2016 a 10-03-2016

Módulo de programação de alto nível com Scratch. Projeto com o jogo da memória.

3.3 Relato percurso profissional

O relato pretende elucidar o leitor de alguns acontecimentos da Sinopse em mais detalhe e sem a perspetiva temporal associada, permitindo assim ao autor por exemplo relacionar acontecimentos, sem que estes tenham acontecido em simultâneo. De forma ao texto não ficar muito extenso e facilitar a leitura, este vai ser dividido em alguns subcapítulos.

3.3.1 Módulo de programação de alto nível

Em setembro de 2007 foi o ano do meu ingresso no corpo de docentes da Escola Profissional de Lamego (ESCOPAL). Uma das disciplinas atribuídas foi Programação e

(33)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

19

Sistemas de Informação (PSI) do segundo ano do curso de Técnico de Gestão e Programação de Sistemas Informáticos (TGPSI). Tinha vários módulos de programação, como se pode ver na tabela 2 retirada do referencial de formação (Cabral, et al. , 2005a).

Tabela 2 - Referencial dos módulos de PSI 2º ano do TGPSI

Número Designação Horas

6 Estruturas de Dados Dinâmicas 36

7 Tratamento de Ficheiros 30

8 Conceitos Avançados de Programação 18

9 Introdução à Programação Orientada a Objetos 36

10 Programação Orientada a Objetos 36

Tive alguma dificuldade em fazer entender estes conceitos. A principal razão prendia-se com o facto de os alunos não dominarem a sintaxe da linguagem. Enquanto estava a tentar lecionar a matéria do módulo tinha constantemente que fazer referência às regras de sintaxe da linguagem de programação. Neste caso estava a utilizar o Java.

Desde o início que sempre lecionei disciplinas de programação, em particular ao TGPSI, que era o único curso que existia na escola. As dificuldades dos alunos nestes módulos arrastavam-se de ano para ano. Apesar de lecionar muitos módulos de programação ao TGPSI, não houve a oportunidade de lecionar módulos de introdução à programação, onde os formandos tivessem o primeiro contacto neste mundo.

Em setembro de 2012 abriu o curso de Técnico de Eletrónica, Automação e Computadores. As componentes principais eram a Eletrónica e Automação ao contrário do TGPSI que era Gestão e Programação. Mesmo assim o curso contava com uma componente relacionada com computadores. Foi com este curso que surgiu a oportunidade de lecionar o primeiro contacto com a programação. Desde que o curso abriu, tem havido turmas todos os anos e tenho sido o docente da disciplina de Automação e Computadores (AC) das turmas do primeiro ano.

A disciplina de Automação e Computadores leciona as duas vertentes existentes no seu nome, por um lado, a Automação e por outro Computadores. Os dois primeiros módulos são referentes à Automação e os dois seguintes são referentes a Computadores, como se pode ver na tabela 3. Assim o módulo 3 é uma introdução ao hardware e o módulo 4 será o módulo

(34)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

20

abordado nesta descrição que é o módulo de introdução à programação com o nome de Programação de Alto Nível (Cabral, et al. , 2005b).

Tabela 3 - Referencial dos módulos de AC 1º ano do TEAC

Número Designação Horas

1 Eletrónica Aplicada 24

2 Introdução aos Autómatos Programáveis 36

3 Introdução ao Hardware 18

4 Programação de Alto Nível 36

O módulo 4 Programação de Alto Nível tem uma duração de 36 horas, tem carácter teórico-prático, por isso deverá decorrer, em parte, em ambiente laboratorial e pretende-se obter conhecimentos de programação de uma linguagem de alto nível.

Os objetivos de aprendizagem deste módulo são: adquirir fundamentos de programação, fazer programas simples propostos numa linguagem de alto nível e planear e programar aplicações de média complexidade numa linguagem de alto nível.

Relativamente ao âmbito dos conteúdos: Fundamentos de programação; Variáveis, Constantes e Tipos de dados; Procedimentos; Funções; Estruturas de decisão; Estruturas de ciclos; Interface gráfica e Acesso a base de dados.

Desde 2012 já passaram quatro turmas pelo primeiro ano e consequentemente pelo módulo 4. Para uma melhor organização e identificação turmas vou-me referir às mesmas pelo ano de início. Assim a primeira turma é de 2012 e a última é de 2015.

A caracterização destas turmas não diverge muito, desta forma destacam-se as diferenças e referem-se as similaridades. A turma de 2012 era constituída por 23 formandos, sendo apenas um do sexo feminino. No geral, eram alunos que apresentavam resultados médios, treze valores, nos outros módulos e disciplinas. A turma de 2013 era constituída por 21 formandos todos do sexo masculino. No geral eram também alunos com resultados médios. A turma de 2014 era constituída por 12 formandos, todos eles do sexo masculino. Esta turma partilhava as aulas da área sociocultural e científica com outros 12 formandos do curso de TGPSI. Estes formandos apresentavam melhores resultados do que os anteriores, contudo havia alguns, ainda, com piores resultados. A turma de 2015 era muito semelhante à

(35)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

21

de 2014, a destacar a presença de um formando do sexo feminino. Em termos de resultados também eram muito semelhantes aos anteriores.

No geral as turmas eram heterogéneas, havia dois grupos distintos, os que apresentavam notas médias ou boas, dependendo da turma, e os que apresentavam notas piores. Sendo que dentro de cada um destes grupos, com mais relevo no grupo dos piores resultados, havia alguma homogeneidade, como se houvesse dois tipos de alunos. Outra semelhança prende-se com o facto de haver no máximo um formando do sexo feminino. Os alunos no geral eram muito desmotivados e mostravam pouca capacidade de iniciativa e pouca autonomia. Gostavam de trabalhos de grupo, embora não fizessem uma boa gestão do tempo, assim como não cumpriam os prazos estipulados.

As turmas de 2012 e 2013 eram maiores, mais barulhentas e mais propícias a distrações. Os alunos destas turmas eram desinteressados e alheavam-se com muita facilidade, eram raros os momentos em que estavam concentrados. As turmas seguintes apresentavam algumas diferenças relativamente às anteriores nestas características. Tinham um bom comportamento, eram participativos e colocavam dúvidas.

Durante estes quatro anos, o método de ensino foi muito semelhante, as ferramentas utilizadas é que divergiram. O módulo era dividido em três partes. A primeira parte abordava os fundamentos de programação, a segunda a elaboração de aplicações simples para aplicar os conteúdos seguintes e, por fim, a última parte envolvia mais iniciativa e autonomia dos formandos na aplicação dos conhecimentos num projeto com média complexidade. Este projeto era realizado em grupos de dois.

Nos fundamentos de programação os formandos ficavam a conhecer o ciclo de vida de uma aplicação, desde a análise de requisitos ao teste do sistema. Também ficavam a conhecer o conceito de algoritmo e algumas ferramentas para traduzir os mesmos para uma linguagem mais próxima da linguagem de programação.

Esta parte foi lecionada de forma muito semelhante para todas as turmas. Os exemplos utilizados, inicialmente, eram exemplos do dia-a-dia, por exemplo, algoritmo para fazer uma sandes, para ir para a escola ou para tomar o pequeno-almoço. Algumas dificuldades começam a surgir quando é necessário criar um algoritmo para um problema matemático, como calcular a média de dois números. Os formandos têm muita dificuldade de abstração.

(36)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

22

Resolvem com facilidade uma instância da aplicação, mas não conseguem construir a solução mais genérica final.

Este primeiro contacto com estas ferramentas visuais foi muito importante e as turmas reagiram de forma muito semelhante. As diferenças surgem nas ferramentas utilizadas nas partes seguintes.

3.3.1.1 Turma 2012

Na sequência da compra do Raspberry Pi e do primeiro contacto com o Python, realizei algumas pesquisas sobre esta linguagem de programação. É uma linguagem de alto nível, ao ponto de os comandos serem muito diretos como se estivéssemos a falar para o computador. Por exemplo, para imprimir uma variável basta o comando “print(a)”, sendo “a” a variável a imprimir. Python é uma linguagem de programação que permite trabalhar mais rápido e integrar os seus sistemas de forma mais eficiente. É muito fácil iniciar a programação em Python, desde os iniciantes em programação aos experientes noutras linguagens (PYTHON, 2001).

Após as aulas de fundamentos de programação, os formandos estavam motivados e participativos nos exercícios propostos nas aulas. Quando houve necessidade de transição para a linguagem de programação Python, estes apresentaram muitas dificuldades em transpor os exercícios dos fluxogramas e pseudocódigo para esta linguagem. As dificuldades prendiam-se com a sintaxe da nova linguagem de programação e da necessidade de abstração para a elaboração das soluções finais.

Os formandos tinham alguma facilidade em experimentar os exercícios resolvidos facultados pelo Formador, mas quando chamados a resolver problemas muito semelhantes não tinham capacidade para o fazer. Os conteúdos tinham sido assimilados, mas não conseguiam aplicá-los de forma correta.

Os projetos finais realizados pelos grupos de alunos desta turma eram muito fracos e sem grande complexidade. Estes eram projetos de aplicações que funcionavam em linha de comandos, sem nenhum design nem elementos multimédia.

(37)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

23

3.3.1.2 Turma 2013

O primeiro contacto com o Scratch marca, desde logo, diferença relativamente a outras linguagens de programação. Os alunos com poucos cliques conseguem obter resultados, que de outra forma levariam várias semanas a produzir. Em pouco tempo, como 5 minutos, o Sprite, normalmente um gato, já se está a mover e a produzir sons. Depois desse contacto inicial, o apetite de querer fazer mais e melhor aumenta drasticamente.

Foi com esta ideia que, na transição dos fundamentos de programação para as aplicações simples e os conteúdos de programação, neste ano utilizei o Scratch como aplicação intermédia entre os fluxogramas e o Python. Desta forma para a elaboração de uma aplicação, primeiro era construído o algoritmo com um fluxograma, seguidamente e dada alguma similaridade entre os blocos do fluxograma e os blocos de programação do Scratch, era implementada a solução em Scratch. Depois do algoritmo construído e testado com o

Scratch, este era implementado em Python para que os formandos aprendessem um pouco da

sintaxe desta linguagem.

Com a utilização do Scratch os projetos finais melhoraram significativamente, quer em termos de design e elementos multimédia, assim como o aumento da complexidade das aplicações.

A grande desvantagem desta implementação com esta turma foi a falta de tempo, pois para o mesmo exercício, na segunda parte, havia duas implementações em duas linguagens distintas. Por outro lado, os formandos, dada a facilidade de implementação do Scratch, começaram a questionar a utilidade de conhecer uma sintaxe mais complexa como a de

Python, que apesar de simples exige sempre assimilar uma série de regras e de conceitos.

3.3.1.3 Turmas 2014 e 2015

Os resultados e as conclusões obtidos pelas turmas foram muito semelhantes, desta forma optei por juntar a informação.

Depois de alguma experiência como formador de programação, cheguei à conclusão que não há uma linguagem de programação perfeita. Cada uma tem as suas vantagens e

(38)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

24

desvantagens. Desta forma o objetivo principal deste módulo 4 de programação, sendo este o primeiro do curso e havendo poucos mais módulos de programação, não é a aprendizagem de uma sintaxe, mas a assimilação dos fundamentos de programação. De que interessa conhecermos de cor todos os comandos de uma determinada linguagem se não conseguimos resolver um simples problema com ela.

No seguimento do parágrafo anterior, percebi que se abdicasse da sintaxe de uma linguagem mais complexa poderia tirar mais proveito ao explorar melhor o Scratch e as suas potencialidades. Nestas duas últimas turmas, a transição foi feita dos algoritmos em fluxogramas só para o Scratch.

Os resultados foram muito superiores. Por um lado, os formandos só necessitavam conhecer a sintaxe intuitiva do Scratch, por outro, houve mais tempo para explorar os problemas clássicos associados aos conteúdos de programação a serem lecionados. Além de melhores resultados, a motivação dos formandos aumentou, assim como a iniciativa e autonomia. Após o primeiro contacto com o Scratch, os formandos de forma autónoma exploravam aplicações novas e tentavam construir as suas próprias soluções. Os jogos são as aplicações que eles mais gostam de programar.

A comunidade Scratch permite a partilha das aplicações que cada elemento constrói. Estamos a falar de uma comunidade de aprendizagem criativa que conta com mais de 15.000.000 de aplicações (Grupo Lifelong Kindergarten do MIT Media Lab, s.d.).

Com a ajuda desta comunidade, sabia que a complexidade do projeto final podia aumentar. Desta forma propus aos grupos a elaboração do jogo da memória. Este trabalho foi lançado logo após os fundamentos de programação, para os grupos terem tempo de trabalhar e poderem achar similaridades entre os conteúdos de programação e o algoritmo que teriam de implementar.

O jogo da memória consiste num determinado número de cartas voltadas para baixo, por exemplo seis, em que temos de encontrar os pares corretos ao clicar nas cartas. Ao clicar na primeira esta vira-se e espera que se escolha uma segunda carta. Se a segunda carta for igual à primeira, o par desaparece, caso contrário, as cartas voltam a ficar voltadas para baixo. Este jogo, além da complexidade da jogabilidade e de todos os conteúdos que se podem utilizar, tem ainda uma forte componente multimédia.

(39)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

25

Foi necessário dividir o problema em várias etapas. Na primeira etapa era necessário construir as cartas e fazer com que estas se voltassem quando alguém clicava nelas. De seguida foi necessário controlar a jogabilidade, para impedir que fossem viradas mais do que duas cartas de cada vez e para fazer com que estas se voltassem para baixo, no caso de a segunda ser diferente da primeira. Na terceira etapa foi necessário implementar um score do jogo e apresentar uma mensagem quando o jogo fosse concluído. Por último houve a necessidade de distribuir as cartas de forma aleatória, sob pena de o jogo só ter interesse na primeira vez que fosse jogado, pois de seguida já era conhecida a posição das cartas.

A primeira etapa foi implementada com sucesso pela maioria dos grupos e sem grande ajuda. Para as etapas seguintes, os formandos fizeram-se valer da ajuda da comunidade. É necessário perceber que para entender aplicações construídas por outros, temos de “entrar” na cabeça dessa pessoa e descobrir o que pretendiam ao usar determinado comando. Cada problema não tem só um algoritmo para ser solucionado, decerto existem uns melhores que outros, mas o mesmo problema pode ser resolvido de diferentes formas. Depois de perceber a lógica da implementação que foram consultar ainda necessitam de adaptar o algoritmo à sua própria solução que pretendem implementar. No final da implementação, cada grupo teve de entender vários algoritmos e colocá-los a funcionar na mesma aplicação.

A grande vantagem da utilização do Scratch além dos melhores resultados, dos alunos mais motivados, com mais iniciativa e autónomos, prende-se com os resultados do projeto final.

No geral todos os grupos conseguiram concretizar o jogo. A turma de 2015 teve mais grupos a conseguir completar todas as etapas relativamente à turma anterior. Salientar que este é o primeiro módulo de programação com cerca de 36 horas e é muito gratificante verificar que com esta ferramenta os formandos conseguiram atingir um objetivo tão complexo como este.

Utilizando uma linguagem de programação tradicional como o Java utilizado no curso de TGPSI na disciplina de PSI, eram necessários vários módulos para que houvesse bagagem para a realização de um jogo desta complexidade. Possivelmente só depois do módulo 11, sendo que nesta disciplina todos os módulos anteriores são de programação.

(40)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

26 3.3.2 Aula aberta

A aula aberta na ESTGL foi frequentada pelos formandos do terceiro ano do curso de TEAC. Nesta altura, já tinham sido entregues os planos para a PAP e consecutivamente escolhido o tema sobre o qual incidiria o projeto.

O tema principal da aula foi o Scratch, as suas potencialidades e funcionalidades. A aula foi, essencialmente, de um cariz prático, em que o Formador, depois de apresentar a matéria, demonstrava aos formandos exemplos de como realizar as referidas tarefas.

Os objetivos da aula passavam pela apresentação do Scratch, como ferramenta de programação e elaboração de aplicações multimédia, em particular animações e jogos. Apresentação da comunidade online Scratch e todas as suas vantagens para quem estava a iniciar quer na programação quer nesta linguagem em particular. Mostrar algumas variantes ao Scratch, outras aplicações que se baseavam neste ou pelo menos utilizavam o mesmo método de programação, como o S4A, SapoKids e outros.

Ainda foi divulgado o blog do Clube de Scratch de Lamego, atualmente é composto por docentes da ESTGL, da área de informática, matemática, comunicação e multimédia, mas contam em breve poder incluir docentes dos agrupamentos de escolas da região do Douro, alunos do ensino superior e alunos de outros níveis de ensino. O projeto conta com o apoio da Câmara Municipal de Lamego (Docentes ESTGL, 2014). Neste blog foi lançado um desafio aos formandos para participarem no concurso Scratch.

Os formandos mostraram-se muito interessados e participativos, apesar de já ter feito uma apresentação semelhante em contexto de sala de aula, com a maioria. Antes da aula aberta, pouco depois de adquirir o Raspberry Pi levei-o para a escola com o intuito de mostrar a todos os alunos. O mesmo voltou a acontecer depois de o autor perceber para que servia e como funcionava o Scratch. Este foi apresentado a todas as turmas da área, sem exceção. Fiquei com alguma admiração, relativamente à reação dos formandos na aula aberta, pois parece que tinham descoberto uma ferramenta totalmente nova, com muitas potencialidades e que lhes poderia ser muito útil. Talvez uma nova forma de se expressarem ou de conseguirem realizar os seus projetos.

O interesse e participação, por parte dos formandos foram excelentes e desencadeou uma série de novos acontecimentos. Alguns formandos começaram a desenvolver alguns

(41)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

27

jogos e aplicações de forma autónoma e por iniciativa própria com o principal intuito de participar no concurso. Por outro lado, outros experimentavam as potencialidades da aplicação e exploravam os conceitos abordados na aula.

3.3.3 PAP

Os cursos profissionais têm no seu plano de estudos uma prova final de consolidação das aprendizagens. O nome da prova é PAP – Prova de Aptidão Profissional. Esta prova é de carácter obrigatório e para a conclusão do curso é necessária aprovação na mesma. Tem ainda um grande peso na média final do curso pois faz parte da fórmula, juntamente com a Formação em Contexto de Trabalho (FCT) e a média de todas as disciplinas.

A PAP consiste na realização de um projeto durante o terceiro e último ano do curso. Este projeto deverá abordar algumas das temáticas do curso e deve ter a complexidade necessária para comprovar a aptidão profissional dos formandos. No final do ano a PAP será apresentada perante um júri.

O júri da PAP é constituído por formadores da escola: Formador Orientador que acompanhou e orientou o projeto ao longo do ano, Diretor de Curso, Orientador Educativo e Diretor Pedagógico. Também é constituído por personalidades exteriores e normalmente desconhecidas dos formandos, como representante das empresas onde foram realizadas as FCT, representante sindical da área e uma personalidade de reconhecido mérito.

3.3.4 Scratch e PAP

No seguimento dos dois subcapítulos anteriores, o maior fruto da aula aberta foi a associação que alguns alunos fizeram entre o Scratch e a PAP.

O Scratch era a aplicação do momento, alguns formandos tinham-se proposto a realizar um jogo como tema da elaboração do projeto da PAP. Já em meados de Janeiro de 2015, sensivelmente a um terço do ano letivo, ainda não tinha optado por uma linguagem de

(42)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

28

programação e nem sequer faziam ideia de como realizar um jogo. A aula do Scratch veio dar-lhes novas ideias e ferramentas para abordarem o problema.

Estes formandos, no total três, optaram por realizar os jogos no Scratch devido à facilidade de programação, às potencialidades multimédia e à comunidade a que podiam recorrer quando as coisas não estivessem a decorrer da melhor forma.

O formador orientador é o formador responsável pelo acompanhamento e avaliação das primeiras fases do projeto, sendo a última avaliação do encargo do Júri da PAP, descrito anteriormente. Fui o formador orientador de um destes formandos que tinham escolhido a elaboração de um jogo com o Scratch. Para a PAP havia encontros com os formandos todas as semanas, em que estavam presentes os formadores da área técnica. Desta forma, os alunos podiam tirar ideias não só com os seus formadores orientadores, como com qualquer outro formador orientador. Tive a oportunidade de acompanhar, também, o trabalho dos outros dois formandos que optaram por elaborar jogos com o Scratch, mesmo sem responsabilidades de maior. Foi muito interessante ver a motivação com que trabalhavam, da mesma forma o empenho com que ultrapassavam os problemas que, entretanto, iam surgindo.

Os jogos em causa revelavam muita complexidade, especialmente, tendo em conta a experiência dos formandos. Como se tratava de um curso de Eletrónica, Automação e Computadores, a componente principal não era a programação e apenas algumas disciplinas tinham abordado o tema de forma muito superficial.

Os dois formandos que não eram meus orientandos tinham características muito semelhantes, como alunos e como pessoas. Dois formandos do sexo masculino com idades entre os dezasseis e dezoito anos. Ambos com médias superiores a treze valores nos primeiros quatro módulos antes do módulo de programação. Verificou-se também que ambos subiram a nota no módulo 4 de programação. Salientar que nesta altura ainda não utilizava o Scratch como ferramenta principal. Eram dois alunos muito bem comportados, aplicados, participativos e disponíveis. Contudo, tinham alguma falta de iniciativa e autonomia, assim como algumas dificuldades de atenção e concentração. Um dos formandos propôs-se a realizar uma versão do jogo de Tetris e outro, uma versão do Flappy Bird. Eram dois grandes desafios, que sem muito trabalho, motivação e concentração seriam impossíveis de alcançar.

Logo na primeira semana ambos construíram uma parte do grafismo e colocaram umas peças a deslocar-se no palco do jogo. Cada dia que passava a motivação aumentava com o

(43)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

29

intuito de resolver um problema novo ou simplesmente implementar uma nova funcionalidade. Foram lançados alguns desafios em temos de gestão da jogabilidade, como a implementação de um Score, o surgimento aleatório das peças, a transposição de níveis e um botão de pausa. Todos estes foram alcançados por ambos. Apenas o desafio era lançado, não demorava uma semana para a funcionalidade estar implementada.

Um terceiro formando, o meu orientando, também do sexo masculino com cerca de dezassete anos, propôs-se a realizar um jogo semelhante ao Sudoku. Este formando, ao contrário dos outros dois, tinha um bom raciocínio lógico e boas notas a matemática. Na restante caracterização era muito semelhante aos outros dois. Apresentava, ainda, mais falta de iniciativa e de autonomia, assim como maiores dificuldades de atenção e concentração. Este distraía-se com o parceiro do lado, fosse ele quem fosse, com muita facilidade. Com média de treze nos quatro primeiros módulos da disciplina de programação do primeiro ano, este formando, ao contrário do que se esperava, devido ao melhor raciocínio lógico dedutivo e as notas de matemática, tirou doze no módulo de programação.

Apesar de alguma inércia em começar a trabalhar, quando já perto do final do ano letivo descobriu as potencialidades do Scratch ainda conseguiu uma versão do jogo a funcionar. Faltaram algumas preocupações com o design e a implementação de algumas funcionalidades, como aleatoriedade dos jogos, pois cada vez que se iniciava era o mesmo jogo. Decerto que se este formando tem estabelecido contacto mais cedo com o Scratch e se tem empenhado um pouco mais teria melhores resultados na sua PAP.

A maioria dos formandos realizou trabalhos de hardware, mas interessa relatar estas primeiras experiências destes formandos com o Scratch. Houve, ainda, um quarto aluno a realizar um projeto de software, mas em termos de complexidade e elementos multimédia ficou muito aquém dos que escolheram a aplicação Scratch.

Estendendo esta comparação com os colegas do curso de Programação e Sistemas de Informação, um curso essencialmente de informática, de anos anteriores é difícil encontrar projetos do mesmo nível de apresentação, complexidade e interação que estes jogos no

Scratch. Na sua maioria, eram páginas da internet.

No ano seguinte, 2016, dos novos formandos do terceiro ano, que agora iriam realizar a PAP, apenas três optaram por projetos em software. Estes optaram por realizar aplicações para smartphones através do App Inventor.

(44)

Capítulo 3 – Relato do percurso profissional e das dificuldades de programação

30

O MIT App Inventor é uma plataforma de iniciação à programação e criação de aplicações para iniciantes que transforma linguagens complexas escritas em linhas de código num esquema de blocos que se arrastam e largam de forma a encaixarem uns nos outros e formar o código. A interface gráfica muito simples permite que os menos experientes, mesmo os que estão a iniciar, criem aplicações completas em pouco tempo. O conceito por detrás do esquema de blocos é muito semelhante ao utilizado pelo Scratch.

Esta plataforma conta com um editor online para a elaboração de aplicações. Tem um conjunto de tutoriais sobre os blocos mais básicos e exemplos de utilização. Dispões de um fórum de discussão e de um blog com notícias. As aplicações podem ser testadas num emulador de telemóveis, podem ser publicadas na Google Play Store e podem ser testadas diretamente num smartphone através da instalação de uma aplicação que permite, depois da leitura de um código de barras para a identificação da aplicação testar as aplicações diretamente no dispositivo.

Embora os formandos, desta vez, não tenham utilizado diretamente o Scratch, construíram aplicações com o mesmo conceito de programação, em termos de facilidade de implementação, potencialidades multimédia e programação de interface mais complexa, como a utilização do hardware do telemóvel, como sensores, câmara, tátil, colunas. Assim como partilharam de uma comunidade para trocar ideias e tirar dúvidas. Outra vantagem foi o

feedback imediato, ao testar a aplicação diretamente no smartphone, conseguem perceber de

imediato o resultado final.

O resultado não foi o melhor, pois os formandos não se interessaram em trabalhar atempadamente. Esta turma foi um pouco atípica, apesar de terem melhores notas, no geral houve pouca iniciativa de trabalho e pouca autonomia em tentar desenvolver uma aplicação. Os temas das aplicações também eram muito genéricos e os formandos não conseguiram disseminar as ideias inicias de forma a dividir o problema em partes menores para que eles percebessem o que tinham de fazer. O resultado final, no geral, foram aplicações muito pobres em design e sem complexidade de implementação.

Um formando pretendia realizar um software de faturação, uma aplicação que permitisse faturar diretamente do telemóvel. Outro pretendia elaborar uma aplicação para a escola com notícias e algumas funcionalidades de gestão, como tirar senhas para o almoço. O

Referências

Documentos relacionados

Características • Compatível com rede 10/100Mbps Ethernet e IPv4/6 • Compatível com PowerShield 3 e TeleNetGuard • SNMP com RFC1628 para conexão PowerNETGuard e NMS • SNMP

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

Este trabalho busca reconhecer as fragilidades e potencialidades do uso de produtos de sensoriamento remoto derivados do Satélite de Recursos Terrestres Sino-Brasileiro

escola, em risco ou em perigo se manterem presenciais, ou para eventuais outros alunos que, por razões diversas, tenham de permanecer na escola, os professores tutores, nos

atribuições que lhe confere o Estatuto da UERR, torna pública a Convocação para Matrícula dos Aprovados no Processo Seletivo para seleção de candidatos ao

Salientamos, também, que a própria Constituição Federal prevê que “fundado nos princípios da dignidade da pessoa humana e da paternidade responsável, o

Neste contexto, abordamos o uso do software Scratch no ensino e aprendizagem de matemática, que com sua linguagem gráfica de programação permite a criação de projetos interativos

Os pilares do Capitalismo Consciente Integração de stakeholders Liderança Consciente Propósito elevado e valores centrais Cultura e Gestão conscientes Um