You are on page 1of 12

Revista Brasileira de Informtica na Educao, Volume 21, Nmero 2, 2013

Ensino de Programao no Ensino Mdio: Uma Abordagem Orientada ao Design com a linguagem Scratch
Teaching Programming in High School: an approach guided by design with Scratch
language
Pasqueline Dantas Scaico
Universidade Federal da Paraba
pasqueline@dce.ufpb.br

Anderson Alves de Lima


Universidade Federal da Paraba
anderson.alves@dce.ufpb.br

Jefferson Barbosa Belo da Silva


Universidade Federal da Paraba
jefferson.bello@dce.ufpb.br

Silvia Azevedo
Universidade Federal da Paraba
silvia.azevedo@dce.ufpb.br

Luiz Fernando Paiva


Universidade Federal da Paraba
fernando.paiva@dce.ufpb.br

Ewerton Henning Raposo


Universidade Federal da Paraba
ewerton.raposo@dce.ufpb.br

Yugo Alencar
Universidade Federal da Paraba
yugo.alencar@dce.ufpb.br

Joo Paulo Mendes


Universidade Federal da Paraba
paulo.mendes@dce.ufpb.br

Alexandre Scaico
Universidade Federal da Paraba
alexandre@dce.ufpb.br

Resumo

Programao algo extremamente importante e no deveria ser ensinada apenas para estudantes de Computao. Inmeros fatores apontam a relevncia de desenvolver competncias relacionadas programao com estudantes em idade escolar, que podem resultar em habilidades
uteis para a resoluo de problemas e a fluncia no uso de tecnologias. Este trabalho apresenta
a experincia obtida com um projeto que vem introduzindo o ensino de programao para alunos do ensino mdio de escolas pblicas, atravs de uma abordagem de ensino que estimula a
criatividade e o poder de explorao que os jovens possuem. O artigo relata uma olimpada de
programao, atividade realizada para motivar os alunos, que serviu como ferramenta de avaliao.
Palavras-Chave: Ensino de programao orientado ao design, Scratch.

Abstract Programming is extremely important and is an ability that should be taught not only to computer science students. Several aspects have shown the relevance of developing skills related to
programming with students at school level, which may result in useful abilities regarding the
resolution of problems and fluency in the use of technologies. This work presents an experience
report regarding the results of a project to introduce programming to high school students from
public schools, through a pedagogic approach that stimulates the creativity and exploration.
This article describes a programming contest that was developed to motivate students and was
used to evaluation.
Keywords: Teaching programming guided by design, Scratch.

Recebido: 20 de Abril de 2013 / Aceito: 26 Junho de 2013


DOI: 10.5753/RBIE.2013.21.02.92

Scaico et al.

1. Introduo
A Computao evoluiu nas ltimas dcadas e concentrou esforos em diversas reas de pesquisas que tornaram as tecnologias cada vez mais confiveis e presentes
no cotidiano das pessoas. Este panorama apresenta a
Computao como uma rea com grande potencial para
gerar novos campos de atuao e, consequentemente,
mais postos de trabalho. A Association for Computing
Machinery (ACM) prev que 120.000 empregos sejam
abertos anualmente at 2020 apenas nos Estados Unidos e
tambm que a escassez de graduados em Cincia da
Computao (CC) aponta um cenrio que pode ser um
dos problemas mais graves enfrentados pela indstria de
tecnologia [1].
Muitos estudos mostram que o desinteresse por parte
dos estudantes por temas ligados CC reforado pela
existncia de esteretipos e de informaes imprecisas.
Uma das causas desse comportamento pode ser atribudo
ao fato de que, como a educao em Cincia da Computao no um componente explorado nos currculos
escolares, muitos estudantes possuem ideias incorretas e
atitudes negativas sobre a rea, percebendo como chatas e
entediantes as carreiras neste campo.
Aprender a programar extremamente importante. O
desenvolvimento de algoritmos o eixo central para
todas as reas relacionadas com a Computao, todavia,
no deveria ser objeto de interesse apenas de estudantes
de Computao. Inmeros fatores apontam a relevncia
de desenvolver nos estudantes em idade escolar competncias para a programao de computadores.
Em primeiro lugar, este tipo de educao permite o
desenvolvimento de diversas capacidades que contribuem
para melhorar o raciocnio lgico dos estudantes. Programar envolve a habilidade de desenvolver uma soluo
para um problema, que se for grande requerer o exerccio de outras habilidades (como dividir o problema em
subproblemas e criar uma soluo central). Alm disso,
mais aproximao com essa rea pode gerar uma influncia importante para a escolha das carreiras dos adolescentes, que por vezes realizada com base em informaes
imprecisas, o que os levam frustrao e, consequentemente, evaso dos cursos superiores.
Outra razo para ensinar programao na escola que
tal proximidade pode contribuir para acertar a viso e as
atitudes dos estudantes com relao finalidade e o uso
das tecnologias que habitualmente manuseiam. Sobre este
assunto, Mitchel Resnick [2] traz uma reflexo interessante quando menciona que existe uma viso equivocada
sobre a capacidade dos nativos digitais em relao ao uso
de tecnologias. Para ele, os jovens gastam grande parte
do seu tempo consumindo tecnologias (seja atravs das
redes sociais ou dos jogos) mas isso no os tornam fluen-

Programao no Ensino Mdio: Uma Abordagem


de Ensino Orientado ao Design com Scratch

tes em tecnologia. Eles acabam desenvolvendo a capacidade de serem bons consumidores de informaes, produzidas e filtradas atravs da tecnologia, mas no aprendem a produzir conhecimento novo, no sendo, portanto,
indivduos capazes de entender o potencial de criao
existente atravs dos recursos tecnolgicos que a esto.
Resnick chama ateno para a necessidade de repensar
quais as competncias realmente deveriam ser desenvolvidas nas escolas, para que em um futuro prximo se
torne possvel ensinar aos jovens a capacidade de criar e
de se expressar, o que os preparar para a fluncia em
tecnologias. Ensinar os jovens a programar pode ser um
ponto de partida desse processo.
Grande organizaes tm reconhecido a importncia
de ensinar programao na educao bsica. O Google
tem investido muito em programas e projetos que esto
lotados na diviso Google na Educao, desenvolvidos
para incentivar a introduo dos conceitos da CC e estimular a prtica do pensamento computacional com estudantes do ensino mdio. Os projetos Computer Science
on Air1 e Computer Science for High School2 so duas
dessas iniciativas. Outras aes vm surgindo na Web,
como o caso do Codeacademy3, CoderDojo4, Girls who
Code5 e Black Girls Code6, e tm popularizado as discusses em torno da necessidade de introduzir tais contedos
no cotidiano dos adolescentes.
Muitos governos, a exemplo de pases como a Estnia, que implantou um programa para o ensino de programao para alunos com idade a partir dos seis anos[3],
os Estados Unidos [4] e a Nova Zelndia [5], tm se
preocupado em formar essas competncias porque entendem que isso gerar impactos nas suas economias e na
capacidade que seus cidados tero para se adaptar s
mudanas.
Dessa maneira, discutir este tema de extrema importncia. Todavia, introduzir este assunto merece muito
esforo de planejamento, j que aprender a programar
no uma tarefa simples e a iniciao dos jovens a partir
de abordagens equivocadas poder gerar o efeito contrrio ao que se pretende.
Programar requer o domnio de um conjunto amplo de
habilidades tcnicas, tais como: o conhecimento de linguagens de programao, de ambientes para a construo
do cdigo, de embasamento matemtico, e de outras
capacidades que esto mais relacionadas a aspectos cognitivos e psicolgicos, a exemplo da habilidade de representar bem o problema e saber decomp-lo, de construir o
seu significado, de criar modelos mentais que auxiliem a
1

https://sites.google.com/site/eduonair/
http://cs4hs.com
3
http://www.codecademy.com
4
http://coderdojo.com/
5
http://www.girlswhocode.com/
6
http://www.blackgirlscode.com
2

93

Scaico et al.

busca da soluo, de abstrair conceitos e reconhecer padres [6] [18]. Apesar de parecer difcil, experincias de
sucesso mostram que pode ser possvel introduzir o ensino de programao com estudantes em idade escolar,
desde que estratgias e ferramentas adequadas sejam
utilizadas.
Primordialmente, o ensino de programao para novatos deve ser acompanhado de uma metodologia que mantenha os estudantes engajados e motivados para que as
dificuldades sejam superadas e eles continuem interessados em aprender. Neste contexto, alm do procedimento
metodolgico, a utilizao apropriada de uma linguagem
de programao pode minimizar a insero de erros no
cdigo, que so provenientes da inabilidade inicial dos
novatos com a sintaxe, aspecto que pode contribuir para
reduzir a ocorrncia de situaes que deixam os novatos
desmotivados. Eliminar essas barreiras significa contribuir para que os alunos mantenham o esforo concentrado
na construo dos algoritmos.
Ento, reconhecendo a importncia de ensinar programao no ensino mdio atravs de um ambiente que
possibilite experincias interessantes de aprendizagem,
desenvolveu-se um projeto para introduzir o ensino de
programao em escolas pblicas localizadas no interior
da Paraba.
Este trabalho apresenta o relato dessa experincia que
vem obtendo resultados positivos, tanto por utilizar uma
abordagem que concentrou os esforos no apenas em
ensinar uma linguagem de programao, quanto em estabelecer situaes em que os alunos pudessem se interessar pela explorao de novos assuntos e reconhecer o
poder de criao disponvel atravs das tecnologias. Uma
das principais aes do projeto culminou em uma olmpiada de programao interna, que apresentou resultados
inspiradores.
Este trabalho est organizado da seguinte maneira: a
Seo 2 apresenta um panorama geral sobre o ensino de
programao na educao bsica e procura explicar a
motivao para a escolha da linguagem de programao
utilizada. A Seo 3 descreve a metodologia que conduziu o planejamento e execuo das atividades do projeto.
A Seo 4 descreve em detalhes uma das principais aes
do projeto: uma olimpada de programao que explorou
diversas capacidades dos alunos, que serviu para validar a
metodologia de ensino utilizada e funcionou como um
mecanismo de avaliao. Por fim, a Seo 5 apresenta as
consideraes finais e o estado atual do trabalho.

2. Referencial Terico
2.1 Ensino de programao
A importncia da disponibilidade e do uso de tecnologias para a gerao atual dos estudantes um fato.

94

RBIE V.21 N.2 2013

Outro fato tambm que possivelmente eles se envolvero com empregos que nem sequer existem hoje. Este
cenrio enfatiza a necessidade de oferecer uma educao
que proporcione aos jovens, e aos futuros adultos, a habilidade de trabalhar com diferentes instrumentos produzidos pela Computao e de explor-los a seu favor no
apenas no campo da diverso e do entretenimento.
Alguns pases vm reconhecendo a necessidade de
atualizar os seus sistemas educacionais no que se refere
educao em Computao. Nos Estados Unidos, o modelo que est sendo adotado chama ateno para contedos
que permitem o alcance da chamada Educao Imperativa, que aquela onde mais importante do que aprender
temas ligados tecnologia est a capacidade de desenvolver nos estudantes o pensamento computacional e a
sua autonomia para a resoluo de problemas [4].
Na academia, muitas revises da literatura evidenciam
a necessidade de ampliar os esforos dos pesquisadores
no que se refere ao conhecimento que se possui sobre o
porqu de ensinar Computao nas escolas, de como os
contedos deveriam ser ensinados, que tpicos deveriam
ser lecionados e para quem esta educao poderia ser
significativa.
Em se tratando disso, muito interesse cerca um tpico
especfico: o ensino de programao, principalmente
porque se reconhece a diferena entre saber programar e
ser capaz de ensinar algum a programar. Saeli [7] ressalta que o cenrio de uma sala de aula um ambiente complexo, onde muitos processos e aes esto acontecendo
simultaneamente, e que influenciado pelo estilo de
aprendizagem dos alunos. Tratando desse aspecto, o autor
identifica cinco dificuldades frequentes que podem provocar distrbios na ao de ensinar e de aprender programao, os quais esto relacionadas a aspectos tcnicos
e motivacionais dos estudantes no que se refere a:
x Entender a utilidade da programao e os seus benefcios.
x Compreender as propriedades gerais de uma mquina (um computador, no caso) que o aluno est
aprendendo a controlar.
x Aprender uma nova notao, que pode provocar
problemas relacionados aos aspectos de sintaxe e
semntica das linguagens de programao.
x Entender o uso correto das estruturas de programao.
x Atingir proficincia nas habilidades necessrias
implementao, sejam elas: especificar, codificar,
depurar e testar o cdigo.
Algumas abordagens de ensino tm sido discutidas na
tentativa no apenas de prevenir dificuldades e mau en-

Scaico et al.

Programao no Ensino Mdio: Uma Abordagem


de Ensino Orientado ao Design com Scratch

tendimentos que os estudantes venham possuir, mas tambm de estabelecer um nvel de motivao nos estudantes
de forma efetiva e engajadora.

de tais fontes, os impactos na aprendizagem de estudantes


brasileiros que poderiam ser gerados com o ensino de
programao.

Em um nvel global, muitos trabalhos relacionados ao


ensino de programao com estudantes em idade escolar
j foram relatados. Futschek e Moschitz[8] relata as suas
experincias com o uso de estratgias de ensino de programao para crianas, que so baseadas em objetos
tangveis, as quais se mostraram capazes de diminuir a
abstrao para determinadas explicaes e de estabelecer
um ambiente motivador. J Major et al [9] discorre sobre
a sua experincia pedaggica atravs da utilizao de
uma ferramenta de ensino de programao baseada em
um simulador de robs.

Ento, as experincias relatadas neste trabalho so pioneiras entre as iniciativas que dizem respeito ao ensino
de programao orientado ao design para o ensino mdio
pblico do Brasil, principalmente porque a abordagem
utilizada procurou explorar este paradigma de ensino, que
apresenta a programao com uma habilidade possvel,
til e que pode ser divertida para qualquer estudante. Em
funo de se ter utilizado a linguagem Scratch no projeto,
ela descrita na Seo 2.2

Sobre este tema, outro fator bastante discutido a


adoo da linguagem de programao em cursos introdutrios. Muitos trabalhos apresentam linguagens de programao como Python sendo usadas nesses cursos, isto
porque ela possui a sintaxe simples, blocos delimitados
por endentao e feedbacks imediatos, conforme menciona [10]. Grandell [11] afirma que ensinar e compreender
Python torna-se mais fcil e permite que a sintaxe no
seja mais uma barreira para que os aprendizes construam
os algoritmos. Marques et al [12] cita sua experincia ao
conduzir uma oficina de introduo programao com
Python para alunos do ensino mdio, em que diversos
jogos foram codificados e mostra que o uso de jogos
como base dos projetos da disciplina foi um fator motivacional. Porm, Rapkiewicz et al [13] afirma que Python
ainda uma linguagem complexa para os iniciantes,
mesmo sendo mais simples que diversas outras linguagens, o que pode interferir na construo de projetos de
programao que sistematizem o engajamento dos estudantes.
No mundo inteiro, uma linguagem que tem sido utilizada para prover experincias inovadoras de aprendizagem a linguagem Scratch. Os trabalhos de [14] e [15]
relatam como essa linguagem, que diferente das linguagens convencionais, pode ser utilizada de maneira muito
criativa para atingir o envolvimento dos estudantes.
No Brasil, poucos trabalhos relatam experincias obtidas com aes que conseguiram estabelecer cursos de
programao cujo objetivo central era o de ensinar uma
linguagem de programao atravs de estratgias pedaggicas que abrissem espao para a criatividade dos participantes, e que pudesse funcionar como um recurso de
apoio para a melhoria do raciocnio lgico e a aquisio
de novos conhecimento.
Dessa maneira, as diversas experincias relatadas
apresentam resultados do uso da linguagem Scratch em
ambientes escolares de outros pases, que possuem as
mais diferentes abordagens para explorar a CC nos seus
currculos, fato este que dificulta entender, apenas atravs

2. 2 A linguagem Scratch
A educao est passando por um processo de transformaes e muitas discusses tm surgido em torno dos
mtodos de ensino. Thomas e Brown [16], ao se deslocarem dos modelos tradicionais pedaggicos, reconhecem o
saber e o fazer como aes importantes para a aprendizagem, mas introduzem o brincar como uma nova dimenso
relevante para a educao.
As novas tecnologias, por sua vez, estabelecem espaos que permitem que o fluxo de aprendizagem se crie
por meio da experimentao, que estimula as descobertas.
Assim, o saber, o fazer e o brincar so comportamentos
que interagem naturalmente naqueles espaos. Thomas e
Brown tambm apontam a existncia de uma nova cultura
de aprendizagem que tem se firmado atravs de uma rede
de informaes que praticamente infinita, pela qual
pode se aprender sobre tudo, e onde, a partir de um espao limitado e com regras, existem possibilidades ilimitadas de experimentao.
Muitas intervenes pedaggicas tm procurado incorporar o uso de tecnologias na educao na tentativa de
se apropriar de um modelo de ensino capaz de se alinhar
aos interesses dos alunos e que seja capaz de promover
uma reforma na forma de pensamento. Essa busca tambm tem acontecido atravs do ensino de Computao.
Aprender uma linguagem de programao uma tarefa desafiadora. Todavia, tornar o ensino de programao
mais acessvel para um maior nmero de indivduos
algo importante porque capaz de estimular muitas capacidades cognitivas e para que aquele que aprende possa
aplicar as tcnicas utilizadas na programao na resoluo de diversos outros tipos de problemas, nas mais distintas profisses.
Segundo Kelleher e Pausch [18], desde o incio dos
anos 1960, pesquisadores tentam desenvolver linguagens
de programao e ambientes com a inteno de tornar a
programao acessvel para um nmero maior de pessoas.
A principal dificuldade encontrada pelos programadores
iniciantes a questo da sintaxe, pois eles precisam com-

95

Scaico et al.

preender a linguagem que o computador entende e tambm o idioma, j que nem todas as sintaxes das linguagens de programao possuem a clareza suficiente para
que um novato entenda a funcionalidade e o uso dos seus
comandos. Esses autores tambm afirmam que preciso
simplificar a sintaxe das linguagens, para que estas fiquem mais prximas da linguagem natural.
O ambiente Scratch traz uma linguagem que contribui
para a aprendizagem de programao atravs de um conceito inovador de desenvolvimento de cdigo orientado
ao design, que privilegia a Computao Criativa, expresso que utilizada para reconhecer que o conhecimento e
as prticas que os jovens precisam adquirir para criar
software devem ser provenientes dos seus interesses
pessoais. A linguagem tambm foi projetada para estimular o uso de uma abordagem de aprendizagem que caracterizada por um estilo de engajamento iterativo, experimental e ldico, em que os estudantes esto constantemente reavaliando suas decises, explorando novos caminhos e imaginando novas possibilidades [17].
O Scratch uma linguagem de sintaxe simples, orientada a blocos de montar, que produzem projetos que
podem ser compartilhados com a comunidade de desenvolvedores e que, consequentemente, podem ser melhorados por outras pessoas [19]. Apenas para efeito de ilustrao do potencial pedaggico dessa linguagem, no que
se refere apenas ao uso da sua sintaxe, a Figura 1 apre-

RBIE V.21 N.2 2013

sentada para ilustrar as diferenas existentes na construo de uma estrutura de repetio nas linguagens Scratch,
Python e Pascal.
Ao analisar o trecho de cdigo (Figura 1), percebe-se
que o fato dos comandos Scratch se basearem em uma
estrutura de blocos de montar, o aluno pode concentrar
seu esforo na busca pela construo do algoritmo, o que
nem sempre o caso das outras duas linguagens, cuja
sintaxe para o comando de repetio, por exemplo, requer
uma srie de detalhes que podem dificultar o processo de
compilar o algoritmo.
Assim, possvel supor que uma parte do esforo esteja na correo da sintaxe e no na lgica de programao, o que pode ser um fator desmotivador para o aprendiz. Especialmente para a realidade das escolas pblicas
brasileiras, o Scratch tambm bem mais adequado pelo
fato de possibilitar o uso do idioma nativo do pas, o
portugus.
Dessa maneira, pode-se dizer que o carter mais didtico do Scratch projeta no aluno a possibilidade de ele se
concentrar no exerccio do pensamento algortmico e na
criatividade durante a construo das solues. No ter
que se preocupar com questes que so importantes, mas
acessrias programao, como o caso da correo de
problemas de sintaxe, algo que instiga o aluno iniciante
a se empenhar mais na criao dos cdigos.

Figure 1: Apresentao de comando de repetio nas linguagens Scratch (esquerda), Python (centro) e Pascal(direita)

As aplicaes construdas atravs do Scratch tambm


podem interagir com o mundo real, atravs das informaes que podem ser obtidas atravs de uma cmera ou de
um microfone. Assim, o comportamento que pode ser
produzido algo semelhante ao que acontece nos jogos
do Microsoft Kinect. Quando um jovem cria um projeto
dessa natureza ele aprende a escrever cdigo, mas mais
importante que ele est escrevendo cdigo para aprender, porque esta uma situao que abre espao para
muitas experincias de aprendizagem.
Dessa maneira, o potencial do Scratch est alm de
ser uma simples linguagem de programao porque
uma ferramenta de capaz de provocar a criatividade e o

96

poder de explorao do programador e, principalmente,


de criar situaes capazes de lhes explicar o funcionamento das suas estruturas de uma maneira que lhe faa
sentido. Por estas razes, Scratch foi a linguagem de
programao utilizada no curso aqui descrito e cuja metodologia est detalhada na Seo 3.

3. A metodologia utilizada
O trabalho descrito neste artigo o desdobramento de
um projeto que vem sendo desenvolvido desde 2011 em
escolas pblicas no interior da Paraba, que tem como
objetivo introduzir o pensamento computacional e algortmico em escolas de ensino mdio [20].

Scaico et al.

Antes de iniciarem o curso de programao, os estudantes participaram de diversas atividades que trataram
de temas relacionados tecnologia e que estimularam o
pensamento computacional atravs de competies de
equipe, a partir de atividades desplugadas [22]. Apesar
desse contato, os estudantes no possuam qualquer experincia prtica com assuntos mais tcnicos da Computao. Dessa maneira, a metodologia utilizada para introduzir o ensino de programao procurou estimul-los a
desenvolver pequenos softwares, como jogos simples e
animaes.
Foram utilizados alguns princpios de uma abordagem
de ensino de programao que se baseia no conceito de
design, que enfatiza:
x O poder de concepo do estudante, que o expe a
situaes que exigem a produo de novas ideias a
partir de um processo criativo, e no apenas a utilizao (ou interao) de ideias previamente criadas por outras pessoas.
x A personalizao dos elementos que sero construdos, na qual o estudante cria algo que pessoalmente significativo e relevante.
x A necessidade de colaborao, que se manifesta
atravs do trabalho em equipe e da discusso das
ideias e solues, e
x O poder da reflexo, no qual o estudante estimulado a rever e repensar as prticas criativas na elaborao dos seus algoritmos.
Para assegurar que os estudantes teriam a ateno necessria em sala de aula, formaram-se quatro turmas
contendo cada uma delas oito alunos, que ficaram sob a
responsabilidade de uma dupla de professores. vlido
mencionar que os professores eram estudantes do curso
de Licenciatura em Computao da Universidade Federal
da Paraba, que estavam sendo supervisionados por um
professor orientador. O pblico-alvo da primeira turma
do curso de introduo programao com Scratch foi
um grupo de 32 alunos com idade de 15 a 19 anos.
O curso foi elaborado com carga horria de 20 horas
(que foi distribuda ao longo de dez semanas, sendo,
portanto, duas horas de aulas semanais). O objetivo principal da disciplina foi o de apresentar aos estudantes as
principais estruturas de uma linguagem de programao e
de praticar tcnicas utilizadas na construo de algoritmos, como o caso do uso da abstrao, depurao de
erros, testes e melhoria de algoritmos simples. O planejamento das aulas e exerccios manteve constantemente o
cuidado em preservar os nveis cognitivos definidos pela
Taxonomia de Bloom. O trabalho de Jesus e Raabe [21],
que trata da interpretao dessa Taxonomia para o contexto do ensino introdutrio de programao, foi bastante
inspirador para a produo de exerccios e de materiais

Programao no Ensino Mdio: Uma Abordagem


de Ensino Orientado ao Design com Scratch

que estimulassem corretamente as atividades dos estudantes em sala de aula, respeitando seus passos de aprendizagem.
Cada aula terica foi seguida de duas aulas prticas,
onde os estudantes foram estimulados a praticar os comandos do Scratch, a desenvolver capacidades relacionadas descoberta de erros nos cdigos, ao trabalho colaborativo (completar cdigos parcialmente implementados) e
a criar projetos usando a sua criatividade, percebendo e se
expressando atravs da construo de animaes sobre
aquilo o que estava sua volta.
Apesar da existncia de quatro turmas com professores diferentes, a produo dos planos de curso aconteceu
atravs de um processo iterativo-incremental, resultante
da troca de experincias dos professores que relatavam o
contato semanal com suas turmas. Dessa maneira, foi
possvel ajustar os planos de forma que todos seguissem
o mesmo planejamento.
Em relao avaliao das turmas, o mesmo ocorreu
e os exerccios de fixao foram repetidos entre as turmas
para que se pudesse identificar as disparidades de aprendizagem entre elas. Um ambiente colaborativo foi estabelecido atravs de uma lista de discusso para que as experincias fossem trocadas semanalmente entre os professores e criou-se um repositrio de contedo, que pde ser
acessado atravs de uma conta do Dropbox.
Ainda para efeito de avaliao de aprendizagem e
tambm, como parte da metodologia que buscou engajar
os alunos, foi organizada uma olimpada de programao,
detalhada na Seo 4.

4. A Olimpada Interna de Programao


com Scratch (OIPS)
O objetivo da OIPS foi estabelecer um ambiente motivacional entre os estudantes que compunham diferentes
turmas e divulgar a existncia de algumas competies
nacionais, lhes informando sobre alguns eventos nos
quais eles poderiam participar mesmo ainda cursando o
ensino mdio, como o caso da Olimpada Brasileira de
Informtica (OBI).
A OIPS tambm foi uma oportunidade de identificar
resultados preliminares de aprendizagem dos alunos e as
suas principais dificuldades. Logo, como a competio
foi planejada para funcionar como um mecanismo de
avaliao, buscou-se identificar que possveis habilidades
poderiam estar sendo desenvolvidas com os estudantes.
Para tanto, procurou-se estabelecer desafios que explorassem a capacidade dos alunos em: utilizar corretamente
as estruturas existentes em uma linguagem de programao, no caso, no Scratch; identificao de erros no cdigo
(depurao), leitura e interpretao de cdigos de tercei-

97

Scaico et al.

RBIE V.21 N.2 2013

ros e codificao em pares, o que ocorreu a partir de


trechos de cdigos inicialmente implementados pela
equipe.
A olimpada foi realizada em uma nica modalidade
e os alunos competiram individualmente. O ambiente
utilizado no momento da OIPS reproduziu um cenrio
comum de uma maratona de programao. A prova foi
composta por cinco questes, as quais possuam diferentes nveis de dificuldade tcnicas, desde desafios simples
de lgica at implementaes completas que exigiam
raciocnio elaborado e criatividade. Cada questo teve seu
peso definido em funo da sua complexidade. A competio teve durao de trs horas e contou com a participao de 25 estudantes.
Para que seja possvel entender como diferentes
habilidades e tcnicas de programao puderam ser exigidas na OIPS, e como elas foram o reflexo do que aconteceu ao longo das aulas do curso descrevemos em detalhes cada questo utilizada na competio nas subsees
que seguem.

4.1 Questo 1: Ordenao de instrues


A ideia da questo Ordenando as instrues foi
baseada em uma estratgia utilizada para produo de
questes para o ensino fundamental, onde o professor
apresenta um conjunto de palavras desordenado para os
alunos, os quais devem criar frases com sentido real
usando o conjunto fornecido.
Usando uma analogia desse tipo de questo, foram
fornecidos vrios fragmentos de programao para os
participantes. As estruturas utilizadas foram explicadas
durante as aulas, mas foram empregadas erroneamente no
cdigo fornecido na competio.
Esta questo exigia que o aluno identificasse que
comandos eram imperativos para a correta implementao do cdigo e tambm que ordenasse os comandos de
forma que o cdigo passasse a executar uma ao com
sentido (Figura 2). O intuito desse desafio foi o de avaliar
o grau de abstrao dos alunos com relao ao que era
necessrio para a soluo do problema, que uma atitude
fundamental para a formao de um bom programador.

Figure 2: Cdigo utilizado na questo Ordenao de instrues

Para executar a questo, um conjunto de regras foi definido: i. s estava permitido utilizar cdigos que faziam
parte dos comandos distribudos, ii. nem todos os comandos fornecidos eram necessrios para a construo da
soluo e iii. a ordenao dos comandos no era nica,
visto que existia mais de uma maneira de implementar
um determinado algoritmo.
Para a pontuao da questo, durante a construo do
algoritmo era essencial que o mesmo fosse o mais limpo
possvel. Os alunos aplicaram conceitos trabalhados durante as aulas que tratavam (de maneira muito superficial)
do assunto melhoria de algoritmos, mas que despertavam
a importncia deste assunto para a Cincia da Computao. A avaliao da questo foi realizada atravs da criatividade utilizava durante a codificao, se a soluo
fornecida obedecera ao esperado e se o cdigo produzido
utilizara apenas os comandos necessrios.

4.2 Questo 2: Reproduza a animao


Para resolver esta questo o competidor teve acesso a
um vdeo contendo uma animao implementada no
Scratch. Depois, solicitou-se que o aluno reproduzisse
essa animao utilizando estruturas e comandos existentes no ambiente de programao. Dessa maneira, o conceito de uma especificao pde ser utilizado com os
alunos de maneira ldica.
Esse desafio teve como objetivo apurar a capacidade
dos alunos em seguir uma especificao, identificar,
analisar e implementar uma soluo para um problema
com um resultado pr-definido, capacidade essa muito
exigida em olmpiadas de programao. A animao
continha caractersticas importantes que deveriam ser
bem analisadas para a sua correta codificao, tais como:
uso de estruturas de repetio e o sincronismo no dilogo
existente entre seus os personagens.
Definiu-se que esta questo possua nvel intermedi-

98

Programao no Ensino Mdio: Uma Abordagem


de Ensino Orientado ao Design com Scratch

Scaico et al.

rio de dificuldade e para a sua anlise considerou-se se a


soluo fornecida contivera ou no todos os detalhes
necessrios para a correta reproduo do vdeo fornecido
aos competidores.

4.3 Questo 3: Jogo de toca


O jogo de toca uma brincadeira infantil muito conhecida. De modo geral, o jogo consiste em dois tipos de
jogadores: um personagem, que o capturador e busca
outros participantes do jogo, que devem evitar ser capturados. Na Olimpada do Scratch foi solicitado que os
alunos programassem parte desse jogo como um desafio
para a competio. O objetivo principal dessa questo foi
avaliar o conhecimento dos competidores em relao aos
comandos relacionados s estruturas de controle do
Scratch e os de aparncia.
Foi disponibilizado para cada competidor um trecho
de cdigo do jogo, restando a ele apenas completar o
comportamento que faltava. No cdigo fornecido j estava implementada a movimentao de um personagem, a
fuga do outro personagem e o sistema de pontuao,
responsvel pela alterao do placar.

estrutura condicional que permitiria a reao dos personagens conforme as regras que foram estipuladas no
incio do jogo:
i. Quando a pontuao do jogador fosse zero um
personagem deveria emitir uma mensagem informando que o jogo estaria comeando.
ii. Quando o placar atingisse 10 pontos o valor deveria ser informado e lanada uma mensagem incentivando o jogador continuar a jogar.
iii. Aos 15 pontos ele deveria emitir um aviso informando que o jogo estava finalizado, fazendo com
que outro personagem sumisse.
A Figura 3 ilustra um cdigo implementado por um
dos participantes da competio. importante que se
perceba que ele utilizou inmeras estruturas de controle e
repetio, assim como o uso do conceito de variveis.
Essa questo foi classificada com nvel de dificuldade
intermedirio. A avaliao da mesma ocorreu atravs da
anlise da criatividade durante a codificao do competidor e se o seu cdigo criado atendera s condies exigidas.

Esperava-se dos competidores que eles montassem a

Figure3: Trecho de cdigo implementado por um participante da OIPS

99

Scaico et al.

4.4 Questo 4: O fantstico sapo mgico


A questo o fantstico sapo mgico foi apresentada
aos alunos como sendo um sapo inteligente, capaz de
realizar algumas operaes bsicas matemticas: soma,
subtrao, diviso, multiplicao e raiz quadrada. A cada
competidor foi fornecido o cdigo que realizava quatro
dessas operaes (Figura 4). A questo exigia que o participante fosse capaz de depurar o cdigo, descobrir que
operao no estava implementada e fornecer a implementao faltante.

RBIE V.21 N.2 2013

der cada parte do cdigo. Ento o aluno s completava a


questo se conseguisse fosse capaz de identificar que a
operao de soma estava faltando e que a completasse
corretamente. A Figura 5 mostra um cdigo implementado por um dos participantes da competio.
A atividade foi classificada com nvel de dificuldade
avanado. Em relao ao julgamento de desempenho,
este foi analisado ao se verificar se os alunos identificaram, compreenderam e resolveram o erro inserido no
desafio.

4.5 Questo 5: Seja criativo


Este quesito tinha como ideia principal a liberdade de
criao. Com base nesse princpio esta questo era a
oportunidade dos alunos demonstrarem o quanto conseguiram aprender durante o curso. Tendo como regra fundamental utilizar sua criatividade, era exigido do aluno
que o mesmo reproduzisse alguma lembrana, desejo ou
que imaginasse alguma histria e reproduzisse com a
maior quantidade de detalhes possvel atravs de tcnicas
e comandos aprendidos no curso.
Esta questo foi classificada com nvel de dificuldade
avanado. Por ser uma questo muito aberta, onde o aluno poderia seguir qualquer caminho, foi necessrio estabelecer alguns critrios para sua avaliao. Buscou-se
avaliar os competidores segundo os seguintes critrios:
controle dos elementos de repetio e de controle, destreza com os movimentos, mudana de trajes, sincronia nos
dilogos, uso correto das cores, associao da histria
com o plano de fundo, criao de objetos e/ou personagens, utilizao dos personagens disponveis no ambiente
e originalidade.

4.6 Desempenho dos participantes na OIPS

Figure 4: Trecho de cdigo da questo o fantstico sapo mgico

Como foi mencionado, alm de servir como um elemento motivacional, a competio objetivou avaliar se a
metodologia utilizada havia sido homognea para todas
as turmas do curso. A anlise do desempenho dos participantes para os quatro primeiros desafios revelou os dados
que esto apresentados na Tabela 1.
Questo

Concludo

Parcialmente

No concludo

88%

12%

0%

100%

0%

0%

75%

25%

0%

88%

12%

0%

Figure 5: Cdigo de uma soma implementado por um participante


Tabela 1: Desempenho dos participantes em 4 questes da competio

Para que a questo fosse realizada com sucesso era


necessrio que o aluno tivesse um bom conhecimento dos
comandos de controle, sensores, operadores e variveis e
o mais importante: que os alunos soubessem ler e enten-

100

Pode-se observar que praticamente todos os alunos


conseguiram atingir os mesmos resultados para todas as
questes, o que validou a metodologia de trabalho utilizada, no que se refere ao seu carter pedaggico. Ainda

Programao no Ensino Mdio: Uma Abordagem


de Ensino Orientado ao Design com Scratch

Scaico et al.

de acordo com a tabela pode-se observar que cerca de


90% dos competidores conseguiu concluir satisfatoriamente quatro dos cinco desafios propostos. Nenhum
competidor deixou alguma questo sem implementar. O
desenvolvimento de boas prticas de programao, como
o caso da leitura e interpretao de cdigo alheio, de
depurao e correo de erros, alm da implementao de
algoritmos simples, durante as aulas foram os subsdios
para este resultado.
Como a Questo 5 (Seja Criativo) abriu diversas possibilidades de implementao, para a avaliao dessa
questo foram definidos critrios que permitiram caracterizar as estruturas mais comuns nas respostas fornecidas
pelos participantes, bem como, o uso da criatividade a
partir dos recursos disponveis no ambiente, como o
caso dos controles para movimentao e aparncia dos
personagens.
A Tabela 2 ilustra uma possvel distribuio para o
desempenho dos participantes. A coluna X representa a
no utilizao de um determinado componente na soluo
implementada. A coluna K, por sua vez, representa o
outro extremo, que a utilizao avanada desse componente.
Critrios de uso

Elementos de Repetio

0%

25%

50%

25%

Domnio Condicional

24%

38%

0%

38%

Mudana de Trajes

12%

25%

38%

25%

0%

25%

63%

12%

Controle no Dilogo

0%

50%

38%

12%

Cores

12%

25%

63%

0%

Associao da histria com o


plano de fundo utilizado

12%

38%

50%

0%

Originalidade ao
utilizar objetos

12%

50%

38%

0%

Utilizao de Sprites

0%

63%

25%

12%

Criatividade

12%

50%

13%

25%

MDIA

8,4%

38,9%

37,8%

14,9%

Destrezas
vimentos

com

os

mo-

criar

Tabela 2. Desempenho dos participantes na questo Seja criativo, onde:


X representa um recurso que no foi utilizado; Y representa um recurso
foi utilizado de forma bsica; Z representa um recurso que foi utilizado
de forma intermediria e K um recuso utilizado de forma avanada.

mentar o comportamento que desejavam. Os itens que causaram maiores penalidades na avaliao estavam relacionados ao uso da criatividade e da originalidade das solues.
Comportamento este que reproduz o pouco contato que os
estudantes possuem com o hbito de criar novas coisas
sozinhos, muito provavelmente.
Finalizada a competio, a equipe solicitou que os competidores relatassem a viso que possuam sobre a Computao antes de participarem do curso. As respostas mais
comum relacionaram-se viso que eles possuam sobre a
programao ser uma tarefa extremamente difcil e entediante. Quando perguntados sobre a motivao de continuar
aprendendo a programar, 80% disseram desejar continuar
aprendendo outras linguagens de programao.
O questionrio tambm conseguiu refletir que o conhecimento tcnico que os alunos adquiriram em relao s
estruturas mais comuns, presentes na maior parte dos algoritmos, como o caso de variveis, funes, dispositivos de
entrada e sada, laos e controle, pde ser suficiente para
que eles pudessem aprender novas linguagens de programao no futuro.

5. Consideraes finais e estado atual do


trabalho
Iniciar estudantes em programao deve ser um processo
que transfira emoes positivas para o aprendiz, para que
lhes seja possvel construir a autossuficincia ideal para
lidar com os diferentes problemas que surgiro quando
estiverem escrevendo algoritmos. Este um aspecto de
extrema importncia, principalmente, quando se trata de
ensinar aos jovens as habilidades de programao.
Assim, como mencionado neste artigo, a presena de
bons programadores no suficiente para despertar o interesse de novatos em programao. necessrio entender
como utilizar mecanismos que possam engajar os alunos
para que o fluxo de aprendizagem seja mantido e eles possam enxergar o potencial das tecnologias a partir de uma
nova perspectiva. E mais, que possam se enxergar capazes
de criar novas coisas a partir da fluncia em tecnologias.
O projeto demonstrou que apesar das inmeras deficincias que os estudantes possuam e que estavam relacionadas
escrita, leitura e fundamentao lgico-matemtica, foi
possvel ensinar e aprender os conceitos bsicos de programao, ao passo que se aprendia tambm sobre o mundo
atravs da prpria programao.

Em relao experincia com os participantes desse


projeto, percebe-se que eles esto se apropriando das inforEm se tratando de aspectos mais tcnicos, percebe-se a maes necessrias para entender o que acontece em um
partir dessa tabela que a maioria dos participantes conseguiu curso superior na rea de Computao. Tecnicamente, o
utilizar corretamente as estruturas do Scratch para imple- conhecimento adquirido pelos estudantes lhes permitiu

101

Scaico et al.

entender as diversas variveis que influenciam a construo


de algoritmos e os modelos de trabalho, que muitas vezes
exigem que o programador trabalhe em cdigos construdos
por outras pessoas, que contm erros, que por sua vez, precisam ser corrigidos. Assim, pde-se tratar de forma superficial, mas bastante eficiente, os meandros que existem no
desenvolvimento de um produto de software. Procurou-se
explicar aos estudantes que diferentes linguagens de programao existiam para diferentes propsitos.

RBIE V.21 N.2 2013

graders-to-code/Acessadoem 02 de fevereiro de
2013.
[4]

A. Tucker.Model Curriculum for K12 Computer Science. Final Report of the ACM K12 Task
Force Curriculum Committee. Association for
Computing Machinery (ACM),October, 2004.

[5]

Bell T., Andreae P., Robins A. Computer science


in NZ high schools: the first year of the new
standards. In SIGCSE '12: Proceedings of the
43rd ACM technical symposium on Computer
Science Education, pages 343-348, 2012.

[6]

L. A. Sudol. Deepening Students Understanding


of Algorithms: Effects of Problem Context and
Feedback Regarding Algorithmic Abstraction.
Doctoral dissertation, Carnegie MellonUniversity, june, 2011.

[7]

Este projeto representa uma mudana na cultura de algumas escolas e o fortalecimento da formao dos estudantes da Licenciatura em Computao, que perceberam este
projeto como um espao frtil e promissor para a gerao de
novos conhecimentos e oportunidades de empreender na
educao.

M.Saeli, J. Perreneti, W. M.G. Jochems, B.


Zwane-waneveld. A Pedagogical Content
Knowledgein programming education for secondary school: Perspective. In ICER11 proceedings of the 7th international workshop on Computing Education Research. Volume 10 (1): 145146, 2011.

[8]

Atualmente, a 3a edio do curso introdutrio de programao com Scratch est sendo iniciada, assim como, a 2a
edio do curso intermedirio de programao com Python.
Dois estudantes da escola que participaram das aes aqui
relatadas prestaram vestibular para o curso de Licenciatura
em Cincia da Computao e foram aprovados. O desempenho desses alunos na disciplina Introduo programao
est sendo monitorado pela coordenao de curso.

G. Futschek, J. Moschitz: Learning AlgorithmicThinking with Tangible Objects Eases Transition to Computer Programming. In ISSEP
2011: 155-164. 5th International Conference on
Informatics in Schools: Situation, Evolution and
Perspectives, Bratislava, Slovakia, October 2629, 2011.

[9]

L. Major, T. Kyriacou, P. Brereton. Experiences


of prospective high school teacher susing a programming teaching tool. In Koli Calling11Proceedingsofthe 11th Kol iCalling International Conference on Computing Education
Research, 126-131. 2011.

[10]

Lima Ribeiro et. al. (2011). LEW: Laboratrio


de Engenharia Web para ensino, pesquisa e
extenso. In: II Encontro Nacional de Informtica e Educao, Campus Cascavel - PR.

[11]

L. Grandell, M. Peltomaki, R. Back, T. Salakoski. Why complicate things? Introducing programming in high school using Python. In
ACE06 proceeding of the 8th Australasian Conference on Computing Education. Volume 52:
71-80, 2006.

[12]

D. L. Marques, L. F. S. Santos, M. A. de A.
Silva et al. Atraindo Alunos do Ensino Mdio
para a Computao: Uma Experincia Prtica de
Introduo Programao utilizando Jogos e

Muitos outros estudantes das escolas tm se interessado


em aprender a programar, at porque uma novidade no
colgio que estimula curiosidade dos pares. Percebe-se
tambm a aptido de alguns alunos que participaram do
curso e que tm mostrado grande potencial como programadores em espaos de aprendizagem, como o caso do curso
intermedirio que aborda a linguagem Python. Provavelmente, as informaes que receberam lhe sero uteis para
ponderar a escolha por um curso superior. Por outro lado, h
o caso dos alunos que perceberam que as atividades existentes na Computao so diferentes daquilo que imaginavam.
Esses tambm esto sendo estimulados a conhecer outras
reas para que a escolha da sua profisso acontea de maneira mais consciente.

Referncias
[1]

A National Talent Strategy. Ideas for securing


U.S competitiveness and economy growth. Microsoft Report. September, 2012.

[2]

M. Resnick.Mother's Day, Warrior Cats, and


Digital Fluency: Stories from the Scratch Online
Community. In Proceedings of the Constructionism 2012 Conference: Theory, Practice and
Impact, 52-58. Greece, 2012.

[3]

P. Olson. Why Estonia Has Started Teaching Its


First-Graders To Code. Disponvel em:
http://www.forbes.com/sites/parmyolson/2012/0
9/06/why-estonia-has-started-teaching-its-first-

102

Scaico et al.

Programao no Ensino Mdio: Uma Abordagem


de Ensino Orientado ao Design com Scratch

Python. In XXII Simpsio Brasileiro de Informtica na Educao- XVII Workshop de Informtica na Escola, Aracaju, 1138 1147, 2011.
[13]

C. E. Rapkiewicz, G. Falkembach, L. Seixas et


al. Estratgicas pedaggicas no ensino de algoritmos e programao associadas ao uso de jogos
educacionais. In RENOTE Novas Tecnologias
da Educao, v.4, n 2, 2006.

[14]

N. Calder. Using Scratch: An Integrated Problem-Solving Approach to Mathematical Thinking. In Australian Primary Mathematics Classroom, v15 n4 p9-14. 2010.

[15]

L. Young-Jin. Scratch: Multimedia Programming Environment for Young Gifted Learners.


In Gifted Child Today, Volume 34(2): 26-31.
2011.

[16]

D. Thomas, J. S. Brown. A New Culture of


Learning: Cultivating the Imagination for a
World of Constant Change. Createspace Independente Publishing Platform. 2011.

[17]

M. Resnick, E. Rosenbaum. Designing for Tinkerability. Design, Make, Play: Growing the Next
Generation of STEM Innovators, 163-181.
Routledge. 2013.

[18]

C. Kelleher, R. Pausch. Lowering the Barriers to


Programming: A Taxonomy of Programming
Environments and Languages for Novice Programmers. In ACM Computing Surveys, v. 37,
n. 2, 83137, 2005.

[19]

J. Maloney, M. Resnick, N. Rusk, B. Silverman,


E. Eastmond. The Scratch Programming Language and Environment. In ACM Transactions
on Computing Education (TOCE), vol. 10, no.
4,November. 2010.

[20]

P. D. Scaico, E. F. Corlett, L. F. Paiva et al.


Relato da Utilizao de uma Metodologia de
Trabalho para o Ensino de Cincia da Computao no Ensino Mdio. In Anais do Congresso
Brasileiro de Informtica na Educao XVIII
Workshop de Informtica na Educao, ISSN:
2316-6541, Rio de Janeiro, 2012.

[21]

E. A. Jesus, A. L. A. Raabe. Interpretaes da


Taxonomia de Bloom no Contexto da Programao Introdutria. In Anais do XX Simpsio Brasileiro de Informtica na Educao. Santa Catarina, 2009.

[22]

Bell, T., Whitten, I., Fellows, M (2007) Computer Science Unplugged. Canterbury University.
Disponvel
em
Nova
Zelndia.
http://csunplugged.org.

103

You might also like