Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e...

71
Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento de Informática e Matemática Aplicada Programa de Pós-Graduação em Sistemas e Computação Aprendizado Significativo Aplicado ao Ensino de Algoritmos Leônidas da Silva Barbosa Natal 23 de maio de 2011

Transcript of Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e...

Page 1: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Universidade Federal do Rio Grande do NorteCentro de Ciências Exatas e da Terra

Departamento de Informática e Matemática AplicadaPrograma de Pós-Graduação em Sistemas e Computação

Aprendizado Significativo Aplicado aoEnsino de Algoritmos

Leônidas da Silva Barbosa

Natal23 de maio de 2011

Page 2: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Universidade Federal do Rio Grande do NorteCentro de Ciências Exatas e da Terra

Departamento de Informática e Matemática AplicadaPrograma de Pós-Graduação em Sistemas e Computação

Aprendizado Significativo Aplicado aoEnsino de Algoritmos

Dissertação de mestrado submetida ao Pro-grama de Pós-Graduação em Sistemas e Com-putação do Departamento de Informática eMatemática Aplicada da Universidade Federaldo Rio Grande do Norte como parte dos re-quisitos para a obtenção do grau de Mestre emSistemas e Computação (MSc.).

Leônidas da Silva Barbosa

Prof. Dr. André Mauricio Cunha CamposOrientador

Natal, 23 de maio de 2011

Page 3: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Seção de Informação e Referência

Catalogação da Publição na Fonte. UFRN / Biblioteca Central Zila Mamede

BARBOSA, Leônidas da SilvaAprendizado Significativo Aplicado ao Ensino de Algoritmos / Leônidas da Silva Bar-bosa - Natal, RN, 201157 f. : il

Orientador: André Mauricio Cunha Campos

Dissertação (Mestrado) - Universidade Federal do Rio Grande do Norte. Centro deCiências Exatas e da Terra. Programa de Pós-graduação em Sistemas e Computação..

1. Ensino de Algoritmos – Dissertação. 2. Aprendizagem Significativa – Dissertação.3. Ferramenta de Apoio ao Ensino – Dissertação 4. Jogos Educativos – Dissertação.I. Campos, André Maurício Cunha. II Universidade Federal do Rio Grande do Norte.III Título.

RN/UF/BCZM CDU 519.254:37

i

Page 4: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Aprendizado Significativo Aplicado ao Ensino deAlgoritmos

Leônidas da Silva Barbosa

‘Esta dissertação de mestrado foi avaliada e considerada aprovada pelo Programa de Pós-Graduação em Sistemas e Computação do Departamento de Informática e Matemática Aplicadada Universidade Federal do Rio Grande do Norte.’

Prof. Dr. André Maurício Cunha CamposOrientador

Banca Examinadora:

Prof. Dr. André Maurício Cunha CamposPresidente

Profa. Dra. Ana Lúcia Sarmento Henrique

Profa. Dra. Apuena Vieira Gomes

Prof. Dr. Selan Rodrigues dos Santos

ii

Page 5: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Este trabalho é dedicado aos meus pais,

Iolanda Luzia e Luiz Osmar Barbosa, e

a Dona Terezinha dos Santos, minha

avó.

iii

Page 6: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

AGRADECIMENTOS

Começo estes agradecimentos primeiro pela luz maior, Deus, que em todos os momentos deminha jornada me deu forças para continuar e nunca desistir. A todos amigos invisíveis que comsua luz e apoio iluminaram os meus passos por vezes me sedendo um pouco de sua sabedoria.Quando em noites de loucura e desespero pude sentir a paz que tanto desejava para continuar.A Maria, que sempre passou em minha frente iluminando meus caminhos e decisões. A todosvocês amigos do outro lado, obrigado pela luz, força e paz. Valeu Jesus!!!

Não poderia deixar de agradecer a minha baixinha, minha Mãe, Iolanda Luzia, que diantede tantos sacrifícios me apoiou para chegar onde estou, gastando suas economias, se sacrifi-cando para que eu pudesse ter estudos e ser alguém melhor. Ao meu Pai Luiz Osmar, quemesmo não sendo um homem instruído nos estudos demonstrou, por vezes, que um diplomanão é nada além de um papel vazio, pois que a alma calejada na jornada é o verdadeiro prêmiotrazendo-nos experiências ao final. A minha Avó, Dona Terezinha dos Santos, que nos deixou,mas que me faz recordar suas ligações de parabéns e sua alegria sempre sorrindo diante de to-dos os obstáculos da vida. Meus irmãos que em silêncio me apoiavam. Impossível esqueceros amigos de curso e de mestrado que mesmo na correria me sediam sorrisos amigos, piadascretinas e muita amizade. A você Duenti Ziminhos, que me aturou diante dos meus 1 milhãode momentos de desespero, mesmo tendo os seus 1 milhão também. A todos os Duentis!!!. AoLucas Alves, que sempre me dizia ’vai dar tudo certo’, você amigo foi sem dúvida a bengala eo apoio amigo que tanto desejava.

Por fim e não menos importante ao meu orientador e amigo professor André Mauricio,que foi de especial importância na minha jornada. Agradeço de todo o coração a paciência,o altruísmo nos socorros prestados, o tempo cedido, as piadas, a tudo enfim. Obrigado pelaoportunidade sobretudo.

E claro, ao CNPQ que me financiou nesta jornada quase sem fim, obrigado.

iv

Page 7: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

“Mais sábio é aquele que sabe que não sabe.”(Sócrates)

v

Page 8: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Resumo

A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeirabarreira durante os cursos de computação. Estes, não habituados com as novas formas de pen-sar requeridas pela disciplina, bem como não possuindo certas habilidades necessárias nesta,encontram dificuldades que, por vezes, culminam na reprovação e evasão. Diante de tal proble-mática, neste trabalho, um levantamento sobre os problemas vivenciados pelos alunos foi rea-lizado, como forma de entender o problema e nortear as soluções buscadas na tentativa de re-solver ou amenizar as dificuldades encontradas pelos alunos. Aqui, foi descrita uma metodolo-gia a ser aplicada em sala de aula com base nos conceitos da teoria do Aprendizado Significativode David Ausubel. Além desta teoria, a ferramenta Takkou desenvolvida na UFRN foi utilizadacom a intenção de melhor incentivar os alunos no aprendizado de algoritmos e no exercício doraciocínio lógico. Por fim uma pequena avaliação comparativa entre a metodologia sugerida ea metodologia tradicional foi realizada, discutindo-se os resultados obtidos.

Área de Concentração: Ensino de Algoritmos.Palavras-chave: Ensino de Algoritmos; Aprendizagem Significativa; Ferramentas de Apoioao Ensino; Jogos Educativos.

vi

Page 9: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Abstract

The course of Algorithms and Programming reveals as real obstacle for many students du-

ring the computer courses. The students not familiar with new ways of thinking required by the

courses as well as not having certain skills required for this, encounter difficulties that some-

times result in the repetition and dropout. Faced with this problem, that survey on the problems

experienced by students was conducted as a way to understand the problem and to guide so-

lutions in trying to solve or assuage the difficulties experienced by students. In this paper a

methodology to be applied in a classroom based on the concepts of Meaningful Learning of

David Ausubel was described. In addition to this theory, a tool developed at UFRN, named

Takkou, was used with the intent to better motivate students in algorithms classes and to ex-

ercise logical reasoning. Finally a comparative evaluation of the suggested methodology and

traditional methodology was carried out, and results were discussed.

Area of Concentration: Teaching Algorithms.Keywords: Teaching Algorithms, Meaningful Learning, Support Tool Teaching, Educational

Games.

vii

Page 10: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Sumário

1 Introdução 11.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 O Ensino de Algoritmos 52.1 Algoritmos: o que são? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Levantamento sobre o Aproveitamento na Disciplina de Algoritmos . . . . . . 62.3 Discussões sobre o Aproveitamento na Disciplina de Algoritmos . . . . . . . . 11

3 Embasamento Teórico 133.1 Aprendizagem Significativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.1.1 Mapas Conceituais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.2 Aprendizagem Significativa e Algoritmos . . . . . . . . . . . . . . . . 21

3.2 Raciocínio Lógico e Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.1 Jogos e o Raciocínio Lógico . . . . . . . . . . . . . . . . . . . . . . . 23

4 Metodologia Proposta 264.1 Descrição geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2 Caso exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2.1 Abordagem de aula . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.3 Resultados preliminares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5 Uma Ferramenta de Apoio ao Ensino de Algoritmos 355.1 Ferramentas correlatas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.2 Takkou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.2.1 Proposta pedagógica da ferramenta . . . . . . . . . . . . . . . . . . . 425.2.2 Ambientes da Ferramenta . . . . . . . . . . . . . . . . . . . . . . . . 445.2.3 Tecnologias utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . 455.2.4 Método de uso proposto . . . . . . . . . . . . . . . . . . . . . . . . . 48

6 Considerações Finais 49

viii

Page 11: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

A Questionários 54

B Dados 56

ix

Page 12: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Lista de Figuras

2.1 Diagrama que descreve um algoritmo para lavar a louça. . . . . . . . . . . . . 62.2 Dados referentes à universidade I. . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Dados referentes à universidade II. . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Dados referentes à universidade III. . . . . . . . . . . . . . . . . . . . . . . . 102.5 Dados referentes à universidade IV. . . . . . . . . . . . . . . . . . . . . . . . . 102.6 Dados referentes à universidade V. . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1 Diagrama que resume como se dá o aprendizado significativo. . . . . . . . . . 153.2 Aprendizado significativo, o novo conceito é armazenado na estrutura cognitiva 163.3 Aprendizado mecânico, o novo conceito é armazenado de forma arbitrária . . . 163.4 Mapa conceitual sobre o conceito de variáveis . . . . . . . . . . . . . . . . . . 193.5 Klotski, jogo puzzle que vem no Linux/Ubuntu . . . . . . . . . . . . . . . . . . 25

4.1 Mapa conceitual exemplo para resolução de um problema algoritmicamente. . . 29

5.1 Ferramenta JavaTool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.2 Interface gráfica da ferramenta VisuAlg . . . . . . . . . . . . . . . . . . . . . 375.3 Ambiente de edição via código no CIFluxProg . . . . . . . . . . . . . . . . . . 385.4 Ambiente de criação de algoritmos via fluxograma . . . . . . . . . . . . . . . 385.5 Imagem do ambiente do Scratch . . . . . . . . . . . . . . . . . . . . . . . . . 395.6 Ambiente do Robomind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.7 Um dos puzzles criado por usuário. . . . . . . . . . . . . . . . . . . . . . . . . 405.8 Tela de menu do Light-Bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.9 Puzzle da categoria básica no Light-Bot . . . . . . . . . . . . . . . . . . . . . 415.10 Painel de instruções de comandos . . . . . . . . . . . . . . . . . . . . . . . . 435.11 Tela inicial do protótipo da ferramenta Takkou . . . . . . . . . . . . . . . . . . 445.12 Ambiente do desafio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455.13 Ambiente referente á criação de desafios pelo usuário. . . . . . . . . . . . . . . 465.14 Formato do arquivo JSON recuperado pela Takkou. . . . . . . . . . . . . . . . 475.15 Chamada da classe DataContractJsonSerializer . . . . . . . . . . . . . . . . . 475.16 Classe que define o “contrato” . . . . . . . . . . . . . . . . . . . . . . . . . . 47

A.1 Questionário aplicado para coleta de dados. . . . . . . . . . . . . . . . . . . . 54

x

Page 13: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

A.2 Questionário quantitativo aplicado para obter os resultados preliminares. . . . . 55

B.1 Dados cedidos pela universidade I. . . . . . . . . . . . . . . . . . . . . . . . . 56B.2 Dados cedidos pela universidade II. . . . . . . . . . . . . . . . . . . . . . . . 56B.3 Dados cedidos pela universidade III. . . . . . . . . . . . . . . . . . . . . . . . 57B.4 Dados cedidos pela universidade IV. . . . . . . . . . . . . . . . . . . . . . . . 57B.5 Dados cedidos pela universidade V. . . . . . . . . . . . . . . . . . . . . . . . . 57

xi

Page 14: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Lista de Tabelas

4.1 Tabela do conteúdo do curso de algoritmos e programação. . . . . . . . . . . . 29

xii

Page 15: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 1

Introdução

Desde o advento da criação do primeiro computador, a sociedade vive momentos de evoluçãotecnológica em diversas áreas. Foi, talvez, graças à criação do primeiro computador, o ENIAC,por John Presper Ecketer e John W. Mauchly, em 1946, que a revolução tecnológica teve o seuprocesso impulsionado. Diante de tal evolução, nas últimas décadas até os dias atuais, vê-se umalarga utilização de computadores em expressivas áreas da sociedade. Essa inclusão tecnológicacada vez mais incisiva fez, e faz, com que a área de computação, tecnologia da informação, sejahoje uma das áreas mais visadas para se trabalhar. É partindo dessa ótica que muitos jovensadentram nos cursos de computação, vislumbrados com os adjetivos e vantagens da área, equase sempre movidos pela vontade de construir jogos, são atraídos pela superficialidade com aqual os cursos de computação são descritos. Muitos desses jovens apenas ao entrarem no cursosuperior passam a conhecer melhor a área a qual se propuseram seguir. No decorrer do curso,na sua fase inicial, muitos calouros esbarram em disciplinas de base da grade de computação,revelando-se estas como verdadeiras “barreiras” para a continuidade do curso. Tais disciplinasexigem muitas vezes uma nova forma de pensar, requerem habilidades, que quase sempre nãoforam desenvolvidas no ensino médio levando o aprendiz a ter grandes dificuldades, o que irásem dúvida dificultar o seu desempenho durante o curso. De acordo com Rocha (1994), estasdificuldades se refletem em um grande número de evasão e reprovação correspondente a 60%.Além dos motivos já citados, é importante perguntar-se por quais outras razões esses númerossão tão expressivos. Por que isso acontece? E quais medidas pedagógicas tomar para que issonão ocorra? Afinal, em um curso de computação, tenta-se formar solucionadores de proble-mas, e, para tal formação, os conhecimentos de algoritmos e estruturas de dados, lógica deprogramação, são essenciais. Sem estes conhecimentos bem assimilados é impossível que bonsprofissionais saiam destas universidades, uma vez que estas disciplinas são a base de qualquercurso de computação.

Para responder a estes questionamentos é antes necessário uma investigação junto aos alunossobre suas maiores dificuldades, pois, entendendo melhor os obstáculos vivenciados por estes,torna-se mais fácil buscar soluções. Este trabalho foi buscar dados que esclarecessem o cenárioatual no que se refere à problemática do ensino e aprendizado de algoritmos, tornando pos-

Page 16: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 1. Introdução 2

sível um melhor direcionamento na busca e formulação de melhores soluções. Com base nestainvestigação foi utilizada uma teoria pedagógica no embasamento de uma nova metodologiaproposta para o ensino de algoritmos. Também foi utilizada uma ferramenta desenvolvida naUFRN, sob o comando do professor André Mauricio, contando com a participação dos alunosLeônidas S. Barbosa e Teresa Fernandes, para auxiliar o processo de ensino e aprendizado, us-ada principalmente como fator motivador no que concerne ao exercício do raciocínio lógico e aabstração de ‘algoritmos do cotidiano’.

1.1 Motivação

Há na literatura vários trabalhos que abordam a problemática do ensino de algoritmos pro-pondo a utilização e construção de ferramentas específicas para o ensino e aprendizagem desseconteúdo, (Amorim e Rezende, 1993; Borges, 2000; Brown, 1991; Cares, 2002), entre outros.Muito já foi discutido acerca de como solucionar os problemas encontrados diante dos númerosapresentados por Rocha (1994). Entretanto, o cenário atual não é tão diferente do cenário dealguns anos atrás.

Diante de inúmeras propostas alguns autores defendem que o baixo fator motivacional seriao grande responsável pela falta de estímulo dos ingressantes nos cursos de computação. Sendoa falta de estímulo um dos grandes responsáveis pelo mal desempenho dos alunos. Comosolução é por vezes proposto o uso de jogos no ensino. Babaik e Agrawal (2007), por exemplo,defendem que através do ensino de jogos os alunos conseguem aprender melhor os conceitosde programação, e estarão mais estimulados para entrar na área de computação. É através damotivação e do interesse em aprender técnicas usadas em jogos que os alunos se dedicariammais, e, dessa forma, os conceitos seriam melhor assimilados. Ainda segundo eles, a abor-dagem de ensino de programação de jogos é um atrativo a mais para que alunos recém-saídosdo ensino médio queiram prestar exame para um curso de computação, se sintam mais estimu-lados e aprendam melhor. Em Hu (2008), é discutido que a nova geração que entra atualmentenas universidades é de alunos ávidos por jogos, chamada por ela de “Geração Nintendo”. Estaé, segundo a autora, uma geração que adora jogos eletrônicos e, por este motivo, muitos de-les adentram os cursos superiores de computação esperando que sejam capazes de rapidamenteconstruir seus primeiros jogos. Entretanto, acabam frustados, porque as disciplinas mais moti-vadoras aparecem apenas do meio para o final do curso. Dentre as disciplinas iniciais, e por eles,não motivadoras, estaria a disciplina de algoritmos. Por não enxergarem motivação nesta dis-ciplina muitos alunos sucumbem ao desinteresse e desmotivação tornando o aprendizado maisdifícil, (Rodrigues, 2004). Além dos fatores de motivação citados pelos autores, este trabalhobuscou outros fatores importantes, levantando junto aos alunos suas maiores dificuldades na dis-ciplina de algoritmos e programação, dessa forma norteando a busca de uma melhor solução.

Portanto, os fatores que motivam este trabalho são: o alto índice de evasão e reprovação; abaixa motivação dos alunos; e por fim, as dificuldades levantadas junto aos alunos.

Page 17: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 1. Introdução 3

1.2 Objetivos

Diante dos números de evaão Rocha (1994), e das discussões sobre motivação trazidas por(Babaik e Agrawal, 2007; Hu, 2008) e principalmente sobre o levantamento feito com os alunose algumas universidades brasileiras que disponibilizaram dados referentes a evasão e reprovaçãoa ser abordado na seção 2.2, este trabalho traz como objetivo principal propor uma metodolo-gia que, sendo usada em sala de aula, possa amenizar todos estes problemas. Esta metodolo-gia se encontra embasada na teoria do Aprendizado Significativo, a qual traz uma abordagemdiferenciada ao processo de ensino-aprendizagem. Abaixo estão descritos os subobjetivos destetrabalho.

• Descrição e determinação da metodologia com base na teoria do Aprendizado Signi-ficativo, bem como nos vários fatores destacados no trabalho referentes a um melhoraproveitamento no ensino de algoritmos;

• Apresentar o protótipo da ferramenta Takkou, proposta com uma ferramenta a ser utilizadaem conjunto com a metodologia;

• Aplicação de uma ferramenta com características de jogo com o objetivo de exercitar eestimular o raciocínio lógico no aluno. A aplicação desta ferramenta deverá ser avaliadaquanto ao fator motivacional e habilidades desenvolvidas em resolver problemas;

• Colher e discutir os resultados obtidos conforme aplicação do que foi proposto aqui.

1.3 Organização do Trabalho

Nesta dissertação, há seis capítulos que se encontram organizados de acordo com o que éexposto a seguir.

• No capítulo 1, é realizada uma introdução para esclarecer ao leitor os rumos que serãotomados neste documento, mostrando de forma introdutória os aspectos motivacionaisdesta dissertação bem como os objetivos do trabalho;

• No capítulo 2, é dada ao leitor a descrição do tema principal abordado neste trabalho.Também são descritos os dados referentes ao levantamento investigativo realizado comos alunos, onde uma breve discussão é feita para direcionar na solução dos problemas;

• No capítulo 3, são apresentados os conceitos teóricos que embasam este trabalho;

• No capítulo 4, é apresentada a metodologia proposta, bem como um caso de uso. Alémde serem apresentados os resultados preliminares da avaliação do uso desta metodologia;

• No capítulo 5, é apresentada a ferramenta Takkou e os diversos trabalhos correlatos queserviram de referência para a criação desta ferramenta;

Page 18: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 1. Introdução 4

• No capítulo 6, são apresentadas as considerações finais deste trabalho;

• E, por fim, são apresentadas as referências bibliográficas deste trabalho seguido peloapêndice com os anexos que foram utilizados para colher os resultados da pesquisa sobreo ensino de algoritmos.

Page 19: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2

O Ensino de Algoritmos

O ensino de algoritmos é sem dúvida um dos mais importantes nos cursos de computação.A disciplina de algoritmos representa a alma da computação, pois verifica-se em quase todasas outras disciplinas da área. Sendo, portanto, uma das mais importantes disciplinas de basepara a formação dos alunos. Por este motivo, deve haver um grande empenho por parte dosprofessores e alunos para que o aproveitamento nesta disciplina seja o melhor possível.

Ensinar algoritmos relaciona-se imediatamente com a introdução do aluno em um mundonovo, o mundo das ciências da computação; com o exercício e desenvolvimento do raciocíniológico diante dos problemas apresentados; com a criação no dicionário pessoal do aprendiz denovos termos que serão utilizados para todo sua formação.

Neste capítulo serão apresentados e discutidos os dados levantados em pesquisa realizadajunto aos alunos de computação. Antes, porém, é necessário definir para o leigo o que é umalgoritmo e qual a importância deste na computação.

2.1 Algoritmos: o que são?

Há uma divergência na origem real do termo algoritmo. Alguns historiadores afirmamque este termo é datado do século IX, e teria sido batizado de acordo com uma das obrasde um matemático persa. A outra versão para origem é a de que o termo Algoritmo deriva dapalavra Al-goreten, que tem por definição um conceito na propriedade de cálculos matemáticos,(Tavares, 1998). Origem persa ou não, a disciplina de Algoritmos permeia as diversas áreas edisciplinas dos cursos de computação. Nestes, é comum a utilização da definição de algoritmos,de forma informal, como sendo uma receita de bolo. Diz-se comumente que, algoritmos des-crevem um conjunto de passos que levam à solução de determinado problema, tal qual a receitade bolo, que seguindo-se os passos leva a um produto final, o bolo. Há ainda a definição formalque diz: “um algoritmo é uma sequência finita de instruções bem definidas e não ambíguascada uma das quais pode ser executada mecanicamente num período de tempo finito e com umaquantidade de esforço finita”.

Page 20: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2. O Ensino de Algoritmos 6

A primeira definição é bastante utilizada, pois descreve o algoritmo como uma abstraçãodo cotidiano facilitando o entendimento por parte do aluno. Com o intuito de trazer ao alunoentendimento de que os algoritmos são algo próximo do seu dia-a-dia, neste trabalho traremoso conceito de ’algoritmos do cotidiano’. Um exemplo de algoritmo que se enquadra nessadefinição é o da Figura 2.1.

Figura 2.1: Diagrama que descreve um algoritmo para lavar a louça.

Dessa forma um algoritmo do cotidiano seria a descrição de alguma atividade exercida natu-ralmente na vida do indivíduo, como foi demonstrado na Figura 2.1. Para a computação, algo-ritmos são a descrição de um conjunto de passos que definem soluções de dados problemas. Eiso porquê desta disciplina ser tão importante na área por vezes mencionada.

2.2 Levantamento sobre o Aproveitamento na Disciplina deAlgoritmos

Com a finalidade de se entender quais as dificuldades dos alunos na disciplina de algorit-mos e programação, e direcionar este trabalho na busca de possíveis soluções para o problemaapresentado, foi realizado levantamento sobre o aproveitamento da disciplina de algoritmosatravés de um questionário aplicado a alunos de computação, Figura A.1. Além da aplicaçãodo questionário citado, foram colhidos dados de algumas universidades brasileiras, afim de seconfirmarem os números apresentados na literatura no que concerne a evasão e reprovação em

Page 21: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2. O Ensino de Algoritmos 7

disciplinas de Algoritmos e Programação. Durante o período de 20 de Setembro de 2010 até 30de Novembro do mesmo ano, foi aplicado um questionário online contendo cinco perguntas ref-erentes ao aproveitamento dos alunos na disciplina de algoritmos direcionado a alunos do cursode Ciências da Computção da UFRN. Um conjunto de 48 alunos responderam as perguntas.Destacam-se aqui algumas das respostas fornecidas pelos alunos referentes as duas primeirase principais perguntas. Tais respostas expõem o cenário atual no que se refere ao problema doaproveitamento da disciplina de algoritmos.

1. Quais são, ou quais foram as suas dificuldades na disciplina de algoritmos?

• “A principal dificuldade é entender a lógica de programação e aprender a organizaras ideias em forma de código.”

• “Ter que aprender um novo tipo de conteúdo nunca visto no ensino médio.”

• “A grande dificuldade foi em ter que aprender algoritmos mas não ter noção de comofazer, por não ter visto nada parecido antes de entrar na faculdade.”

• “Pensar logicamente, usar a cuca.”

• “Nunca ter visto nada semelhante no ensino médio e precisar aprender a expressarideias em linguagem de computador bastante limitada no início do aprendizado.”

• “Raciocínio Lógico. Acho q (sic) os professores nao trabalham a parte do raciocínio.Acho q deviam focar mais como ajudar o aluno a raciocionar e nao achar q todomundo eh sabido (sic).”

• “Compreender a utilização em casos práticos, situações de uso real.”

• “Alguns professores não estavam preocupados com quem não sabia/nunca tinhavisto isso e estava dando a disciplina normalmente.”

• “Desenvolver os algoritmos. Por exemplo, um while era fácil de entender, um iftambém, mas geralmente usar os dois em conjunto causava dúvidas.”

• “Entender como resolver problemas usando o raciocínio baseado em algoritmo, istoé, como organizar as instruções para ao fim resolver os problemas propostos.”

• “A falta de organização mental (do conteúdo da disciplina) e a má qualidade da aula,pois a professora só dizia o título do assunto e mandava os alunos procurarem nogoogle. Com isto eu não aprendi nem tenho uma boa base de algoritmo.”

• “A professora não explicava direito. Apenas jogava o conteúdo e mandava a gentedar conta. Para alguns professores devemos ser obrigatoriamente autodidatas. Aulasdesestimulantes. Ex.: a professora manda fazer um certo tipo de algoritmo, aí agente não sabe e pede ajuda e a professora simplesmente manda a gente fazer só, sevirar, pesquisar no google etc.”

• “Codificação para a linguagem C ou C++ ...”

Page 22: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2. O Ensino de Algoritmos 8

2. A que você acha que se deve(ram) esta(s) dificulda(des)?

• “Formação escolar que não estimula o raciocício lógico. Ensino superficial.”

• “Falta de aplicativos que auxiliem a visualizar a aplicação dos conceitos de algorit-mos em problemas reais, algo mais concreto.”

• “É que em algoritmo temos que imaginar o que acontece num programa, para umaluno que nunca viu qualquer linguagem de programação, fica muito perdido.”

• “ Isso com certeza se deve a forma de chegada a universidade, onde normalmenteas pessoas chegam sem nenhum preparo. Eu pelo menos nem sabia o que era algo-ritmo. As pessoas que vem do curso de Informática do CEFET (ensino médio) jáchegam com muita base, e, exceto estes e os que já adquiriram conhecimentos emoutras oportunidades, com certeza vem com dificuldade a disciplina de algoritmosde primeira.”

• “No meu caso em particular, foi devido a certa falta de estudo, num primeiro mo-mento. Mas dificuldades também se manifestam pelo sentimento de frustraçãoque muitos discentes sentem ao perceberem que muitos dos algoritmos ensinadosaparentemente não tem muita utilização prática.”

• “1. Falta do conhecimento de qual a lógica do funcionamento de algumas ferramen-tas. 2. Falta de um pessoa disponível no âmbito da Instituição para tirar as dúvidasque sempre surgem. 3. Considerando uma aprendizagem totalmente nova, sentifalta de uma ajuda para aprender o ABC da coisa.”

• “A complexidade da criação de algoritmos avançados e estruturas de dados associ-ada a uma péssima didática.”

Diante das respostas da primeira e segunda pergunta verificou-se que, um dos principaisproblemas enfrentados pelos alunos refere-se ao raciocínio lógico. Muitos alunos sentem difi-culdades em desenvolver este tipo de raciocínio tão exigido na disciplina de algoritmos. Essadificuldade torna o aprendizado deficiente quando não sanada. O segundo maior problemavivido pelos alunos compõe um conjunto de subproblemas, são eles: a falta de experiência ede habilidades exigidas não adquiridas no ensino médio; o descaso dos professores para comalunos nesta realidade, apresentando uma metodologia de ensino deficitária, pouco estimulante,e pouco preocupada com o conhecimento prévio do aluno; e, por fim, a falta de compreensãode como resolver problemas reais com algoritmos.

Para fins de referência, neste trabalho, serão utilizados os termos “problema do raciocíniológico” para o primeiro problema descrito e “problema do ensino” para o segundo. De acordocom as respostas listadas há ainda outros problemas que podem ser citados, porém de menorgravidade. Alguns alunos apontam que suas dificuldades se encontram na hora de transcreveros algoritmos para uma determinada linguagem de programação, outros apontam a grafia de

Page 23: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2. O Ensino de Algoritmos 9

termos em língua inglesa, usado para descrever os algoritmos, como a causa maior dos seusproblemas.

No referente ao questionamento sobre a importância da disciplina de algoritmos no cursode computação, verificou-se que a maioria dos alunos entrevistados atribuem à disciplina dealgoritmos muita importância. Este fato demonstra que os alunos estão cientes da importânciada disciplina, logo, entendem a princípio que, a disciplina é base necessária para ele no curso.

Na segunda etapa deste levantamento, foi solicitado a 12 universidades publicas brasileirasdados referentes ao número de evasão e reprovação na disciplina de algoritmos no curso deciências da computação. As universidades foram escolhidas por critério de importância nocenário nacional, entretanto, apenas cinco delas cederam os dados. Sendo quatro do nordeste euma do sul do país. Tais dados são importantes por mostrar a realidade atual, uma vez que, osnúmeros da literatura se encontram defasados, datados do ano de 1993. Através destes dadosforam criados gráficos das quatro instituições que os cederam. A finalidade da exposição destesé a de se ter o mapa relativo da situação atual do ensino de algoritmos. Com o intuito depreservar as instituições estas não serão nomeadas. Aqui serão denominadas como: I, II, III, IVe V. A seguir, são apresentados os gráficos de cada universidade, respectivamente. Os rótulosporcentagem por nota e porcentagem por evasão representam a porcentagem de reprovaçãoem cada uma destas situações. A título deste trabalho, evasão será condierada como reprovaçãopor falta ou desistência do curso. Já a porcentagem total pode ser percebida através do gráficocomo a soma das duas citadas.

Figura 2.2: Dados referentes à universidade I.

Figura 2.3: Dados referentes à universidade II.

Page 24: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2. O Ensino de Algoritmos 10

Figura 2.4: Dados referentes à universidade III.

Figura 2.5: Dados referentes à universidade IV.

Figura 2.6: Dados referentes à universidade V.

De acordo com os gráficos apresentados, foram calculadas médias do total de reprovadospor falta (evasão) e por nota. Estas médias foram calculadas com base no período apresentadono gráfico de cada universidade. A partir dessas médias, foi realizado o cálculo da média geral.Esses dados são apresentados a seguir.

• A universidade I apresentou as médias 24,33% para reprovação e 18,49% para evasão,resultando em um total de 42,82%;

• A universidade II apresentou as médias 40,85% para reprovação e 0% para evasão, resul-tando em 40,85% no total;

Page 25: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2. O Ensino de Algoritmos 11

• A universidade III apresentou as médias 16,4% para reprovação e 14,1% para evasão,resultando em 30,5% no total;

• A universidade IV apresentou as médias 12,61% para reprovação e 12,97% para evasão,resultando em 25,58% no total;

• Por fim, a universidade V apresentou as médias 17,46% para reprovação e 5,81% paraevasão, resultando em 23,27% no total.

A partir dos dados de cada universidade foi calculada a média geral de 33% de reprovaçãoe evasão na disciplina de algoritmos e programação. Salienta-se que, neste trabalho, estesnúmeros servem para estabelecer uma realidade relativa da situação atual da disciplina. Para queos dados fossem 100% precisos e absolutos, todas as universidades Brasileiras teriam que estálistadas nestas estatísticas, por este motivo, realidade relativa. Por fim, os dados apresentadosnesta seção serão utilizados como parâmetro motivador e esclarecedor da causa do problema,servindo, portanto, de dado argumentativo.

2.3 Discussões sobre o Aproveitamento na Disciplina de Al-goritmos

Como já foi citado neste trabalho, há muito se vem discutindo sobre o aproveitamento nadisciplina de algoritmos e programação. Inúmeros trabalhos surgiram propondo ferramentasvoltadas ao ensino de programação, bem como discussões sobre as causas que levam os alunosa um desempenho deficitário. Em Rapkiewicz et al. (2006), por exemplo, discute-se que um dosmotivos que levam o aluno a abandonar a disciplina é a falta de motivação. Esta, seria a respon-sável, segundo os autores, pela dificuldade dos alunos em desenvolver o raciocínio lógico para aconstrução dos algoritmos. No trabalho mencionado, é apresentada uma estratégia pedagógicaque utiliza jogos computacionais com o objetivo de amenizar os problemas citados. Já segundoRodrigues (2002), dois principais fatores remetem às dificuldades dos alunos: i) a dificuldadede adaptação de os alunos desenvolveram raciocínio lógico quando estão acostumados a deco-rar o conteúdo; ii) falta de motivação do aluno gerada pelo despreparo e o desânimo quando eleacredita que a disciplina constitui um obstáculo extremamente difícil de ser superado. Há aindaoutra questão, em Mckeown e Farrell (1999), os autores afirmam que nos cursos introdutóriosraramente o aluno aprende técnicas de resolução de problemas. O que resulta em dificuldadespor parte do aluno em utilizar suas habilidades prévias. Estas habilidades se resumem emanálise do problema e o pensar logicamente, o raciocínio lógico.

Em uma análise dos trabalhos citados pôde-se observar que, a maioria destes discutem sem-pre a mesma causa problema, ou seja, o problema do raciocínio lógico. Entretanto, em trabalhoscomo o de Jesus e Brito (2009), ressalta-se o segundo problema citado na seção 2.2 desta disser-tação, o problema do ensino. No trabalho citado, além das considerações similares aos trabalhos

Page 26: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 2. O Ensino de Algoritmos 12

anteriores, há uma discussão sobre o problema do ensino no que concerne ao docente e da faltade habilidades requeridas aos alunos. Naquele trabalho é discutido que a falta de habilidades emse interpretar problemas é uma das causas da deficiência dos alunos em algoritmos. Ocorre que,muitos alunos possuem sérias dificuldades em interpretar os problemas, identificar nos proble-mas propostos estruturas algoritmicas. Esse fato é nada mais que um problema de interpretaçãotextual, como afirma Paula et al (2009). Para estes, a falta de habilidade em interpretação detexto dificulta ao aluno a resolução de problemas da disciplina de algoritmos. Além disso,muitas vezes, segundo Jesus e Brito (2009), é observado que essa deficiência não é percebidapelos professores, que de acordo com Borges (2000), se atêm ao ensino instrucionista, ou modotradicional, não conseguindo facilmente motivar os alunos a se interessar pela disciplina. Issoacontece, entre outras razões, por não deixar clara para os alunos a importância de certos con-teúdos para sua formação. As observações feitas pelos autores não datam de hoje, em Taylor(1977), já era constatada a dificuldade de aprendizagem nesta disciplina, onde o autor, atravésda experiência de um sistema icônico para o ensino de programação estruturada, pôde constataristo. São, portanto, problemas antigos que, com certa frequência são discutidos na literatura,mas que ainda não foram de fato sanados.

De acordo com o que foi discutido nos trabalhos citados, verificou-se uma convergênciado levantamento realizado na seção 2.2 com o que é abordado nesta seção. Com base nestefator, este trabalho segue duas vertentes como forma de abordar o problema do aproveitamentoe ensino de algoritmos, sendo elas: i) a aplicação de uma metodologia diferenciada com baseem uma teoria pedagógica, teoria do Aprendizado Significativo, de David Ausubel; ii) e umaabordagem motivacional através do uso de uma ferramenta com características de jogo paraestimular, exercitar e ajudar a desenvolver o raciocínio lógico do aluno.

Page 27: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3

Embasamento Teórico

Neste capítulo, são abordados conceitos que serviram para embasar e estruturar as soluçõespropostas por este trabalho.

O primeiro destes conceitos é a teoria do Aprendizado Significativo, de David Ausubel.Este conceito é importante para este trabalho por apresentar uma abordagem diferenciada noque concerne à estrutura pedagógica do que aqui é chamado de metodologia tradicional. Se-gundo Aviz (2007), o ensino tradicional que apenas transmite conhecimento, não desenvolvecapacidades cognitivas no aluno, pelo contrário, torna-o num objeto de ensino e instrução, viratreinamento. Para este trabalho, a metodologia centrada no instrucionismo1, como fala o autoranteriormente citado, é denominada de metodologia tradicional.

A disciplina de algoritmos e programação apresenta característica puramente instrucionista,uma vez que, compõe um conjunto de conceitos passados em forma de instruções que, em es-tágios futuros, são processadas por meio de um computador. Entretanto, é esta uma disciplinacomo todas as outras em que, abordagens diferentes das instrucionistas podem e devem ser re-alizadas. A proposta em se utilizar a teoria do Aprendizado Significativo neste trabalho surgiupor haver nos alunos a deficiência de abstrair situações de uso real dos conceitos de algorit-mos. Entretanto, a priori, a teoria de Ausubel não trata o aprendizado significativo como oaprendizado de signos mapeados no espaço do mundo real. O termo “significativo” na teoriapode ser traduzido como importância. É pois a teoria de aprendizagem que busca trabalhar osconceitos de forma significativamente mais importante para o indivíduo.

Um dos desafios deste trabalho foi mapear os conceitos de Ausubel para uma abordagempedagógica que sanasse o problema dos alunos em não encontrarem ligação direta de algoritmoscom qualquer outra ação, senão as de instruções mecânicas em computadores. Fato este, quetransforma o aprendizado de algoritmos mecânico e puramente instrucionista.

Nas seções a seguir, será apresentada a teoria de David Ausubel e os seus principais con-ceitos na formulação da metodologia a ser aplicada para fins de avaliação neste trabalho. Porfim, será realizada uma breve discussão a respeito do desenvolvimento do raciocínio lógico e a

1Passagem de conceitos de forma expositiva sem um aprofundamento no nível de abstração destes conceitos.Em resumo, o instrucionismo limita o aluno a apenas receber as informações e utilizá-las conforme foram passadas.

Page 28: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 14

utilização de jogos neste contexto.

3.1 Aprendizagem Significativa

David Ausubel é o nome do teórico que em 1963 fundamentou a teoria da AprendizagemSignificativa. Esta é tanto cognitivista quanto construtivista, cognitivista por tentar explicaro processo de cognição, e construtivista por assumir que o processo de apreensão do conheci-mento é evolutivo, processo este que é construído sobre o conhecimento atual em etapas préviasjá acabadas (Rosa, 2008).

O Aprendizado Significativo surgiu como um dos conceitos principais da teoria de DavidAusubel. Nela, o aprendizado do aluno está relacionado com os conceitos que ele já conhece, ouseja, seu conhecimento prévio. Para Ausubel, estes conhecimentos prévios são definidos comoconceito subsunçor. Subsunçores são aspectos relevantes ou ideias âncoras que, quando intera-gem com o conhecimento recém adquirido, dão um significado para o mesmo. São, portanto,conceitos chave mais gerais e inter-relacionados com os outros. Um exemplo do que poderiaser chamado de subsunçor na disciplina de algoritmos é em termos de abordagem do conceitode variáveis. Por exemplo, variável é um conceito maior que determina um certo elementoutilizável pelo programa . Tendo o aluno, este conceito já estruturado na sua estrutura cognitivaum novo conceito que seria facilmente ligado ao conceito subsunçor variável seria o conceitode tipo. O tipo de variável é um conceito menos geral e subordinado, de certo modo, ao seusubsunçor variável, da mesma forma que o próprio conceito de variável é subordinada a umconceito maior, ou seu subsunçor, o conceito de registro de memória no computador. Portanto,subsunçores são ideias mais abrangentes que se interligam com os conceitos encontrados abaixoou acima dele na hierarquia cognitiva já presente no aluno, ou que estará sendo construída amedida que as informações são adquiridas. O que o aprendizado significativo tenta fazer éprovocar no aprendiz o surgimento de subsunçores que deem ancoragem aos conceitos que elesirão adquirir. À medida que um novo conceito é assimilado, se este não possui um subsunçorpróprio, pode ser ligado a outro subsunçor em sua estrutura com a mera finalidade de facilitarlhe o aprendizado, pois à medida que as informações vão sendo adquiridas e organizadas ossubsunçores próprios irão surgindo e se organizando, diferenciando-se e especializando-se. Emsíntese, o aprendizado significativo produz modificações constantes na estrutura cognitiva doaprendiz; modificações realizadas sobre o que ele já conhece produzindo uma melhor fixaçãodos conceitos facilitando e tornando o aprendizado mais proveitoso. A Figura 3.1 descreve ateoria em forma de diagrama.

Segundo Lemos (2006), neste processo de interação, processo que não deve ser interpre-tado como uma simples ligação, os subsunçores modificam-se tornando-se progressivamentemais diferenciados, elaborados e estáveis. Subsunçores diferenciados são aqueles onde apósterminada experiência em um assunto, estes passam a ser próprios deste assunto, se diferen-ciando dos demais e tornando-se, então, um subsunçor próprio. Já um subsunçor elaborado é

Page 29: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 15

Figura 3.1: Diagrama que resume como se dá o aprendizado significativo.

aquele que possui uma estrutura mais rígida de acordo com os conceitos ao qual ele se refere,é um subsunçor com mais características ou informações associadas a um assunto. Por fim,um subsunçor estável é aquele em que, pelo número de experiências e associações já realizadascom ele, este já se adaptou o suficiente para que não precise modificar sua estrutura novamente.Assim, tornando-se um subsunçor natural da estrutura cognitiva do individuo. Quanto maisestáveis e organizados estes estiverem na estrutura cognitiva do individuo, maior será a possi-bilidade de se perceber novas informações. Para Ausubel (1968), essa interação constitui umaexperiência consciente, claramente articulada e precisamente diferenciada, que emerge quandosinais, símbolos, conceitos e proposições potencialmente significativos são relacionados à es-trutura cognitiva. A partir disto, percebe-se que, os símbolos, signos, podem ser utilizadospara se obter um melhor aprendizado, neste caso o aprendizado significativo. Entretanto, paraque isso ocorra, a utilização destes deve ter um objetivo claro não se tornando, apenas, de uso

Page 30: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 16

arbitrário. Para isso, o material simbólico deve ser potencialmente significativo e isso ocorrequando estes símbolos podem ser relacionados de forma substantiva através dos subsunçores.O uso de símbolos potencialmente significativos tendem a se converter em conteúdo cognitivo,que é diferenciado para cada individuo de acordo com sua estrutura cognitiva.

Quando, na estrutura cognitiva do individuo, não há subsunçores diferenciados e estáveispara subsumir a nova informação, o individuo a armazenará de forma literal não substantiva, ouseja, realizará aprendizagem mecânica. A aprendizagem que faz uso da metodologia tradicionalmuitas vezes torna o aprendizado mecânico, este, segundo Ausubel, é caracterizado como sendoa aprendizagem de novos conceitos, em que há pouca ou nenhuma interação entre os conceitosrelevantes existentes na estrutura cognitiva do aluno. Ocorrendo, assim, o armazenamento ar-bitrário da informação, Figura 3.3. Já através do aprendizado significativo, tende-se a interligarmelhor os conceitos novos aos já existentes por meio de subsunçores, dessa forma, estes concei-tos não são armazenados sem ligação, o que dificultaria a associação do aluno com aquilo queele já conhece, Figura 3.2.

Figura 3.2: Aprendizado significativo, onovo conceito é armazenado na estruturacognitiva. Fonte: Rosa (2008).

Figura 3.3: Aprendizado mecânico, o novoconceito é armazenado de forma arbitrária.Fonte: Rosa (2008).

No contexto de ensino de algoritmos, percebe-se que o uso de símbolos como fator deabstração é, por vezes, utilizado com o intuito de tornar a assimilação do aluno mais simples.Este trabalho defende que sejam utilizados mais deste potencial simbólico disponibilizado pelaprópria disciplina. Dessa forma, através do uso dessa abordagem, de forma significativa, pode-se claramente sanar uma das grandes dificuldades dos alunos, a de que estes não conseguemver onde e por que devem utilizar algoritmos. Ao se agregar o ensino de algoritmos a umametodologia de ensino como a de Ausubel, voltada muito para a sala de aula, tenta-se contornarcertos obstáculos vividos pelos alunos, e, por sua vez, tornar esta disciplina e o seu conteúdomais atrativa e significativa. Viu-se que o uso de símbolos e signos podem ser empregados paraa abordagem ausubeliana em algoritmos e partindo dos problemas explanados em capítulo ante-rior acredita-se que o uso de uma abordagem significativa possa trazer benefícios. Além disso,um outro ponto importante é que, através da teoria de Ausubel cria-se uma maior preocupaçãocom a interação professor-aluno, fazendo-se constante e necessária a troca de informações rele-vantes.

Page 31: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 17

Dentre as características que determinam o ensino significativo, segundo a teoria de Ausubel,temos, segundo Peliazzari et al (2002) dois pontos importantes, um referente ao aluno e outrodiretamente ligado ao papel do professor.

• O aluno precisa ter disposição para aprender: se o aluno apenas memoriza o con-teúdo de forma arbitrariamente e literalmente, logo o aprendizado será mecânico, não iráocorrer ligação de conceitos e subsunçores. Um claro exemplo dessa atitude é quando osalunos retêm a informação apenas com a finalidade de resolver questões de uma prova.Ocorrendo por vezes o esquecimento dos assuntos memorizados após a prova. Portanto,o aluno deve ser provocado em cada aula a aprender significativamente. Isso pode seralcançando se o professor fizer uso tanto do um material bem elaborado no sentindo sig-nificativo da teoria de Ausubel, quanto de artifícios didáticos que façam o aluno enxergarnos símbolos passados relevâncias na sua estrutura cognitiva. Em outras palavras, quefaçam o aluno referenciar conceitos e símbolos a um subsunçor, garantindo o aprendizadosignificativo;

• O conteúdo deve ser potencialmente significativo: deve haver um significado lógicoe psicológico. O significado lógico depende somente da natureza do conteúdo, e o psi-cológico é uma experiência individual, pois cada aluno faz uma filtragem dos conteúdosque têm significado ou não para eles. Em outras palavras, o significado lógico seria aqueleque faz sentido para o aluno. Já o psicológico, aquele que possui importância para este.Para que o significado psicológico surta efeito, o material deve provocar na estrutura cog-nitiva do aluno a ligação dos conceitos a subsunçores, próprios ou não. Já o lógico podeser provado por meio dos símbolos e referências a outros símbolos e conceitos. Exem-plos de como isto pode ser feito são: em se explicar ao aluno que laços de controle sãoanálogos a escolhas do dia a dia, se provoca no aluno o significado psicológico do queseria aquele novo conceito e para que ele serviria, uma vez que, este ao se deparar comum conceito novo pôde relacioná-lo a algo que ele já conhecia, o conceito de decisão.Por sua vez, o significado lógico é alcançado quando do uso de símbolos, exemplos comoque ônibus tomar para ir a escola, por exemplo. Nesse ponto, o conceito de decisão é tidocomo um subsunçor, e o de estrutura de controle se liga em primeiro momento a este,mesmo que fora dos domínios dos computadores.

Este trabalho é inspirado na teoria de Ausubel como forma de se utilizar das ferramentasadequadas que esta dispõe, para sanar os problemas encontrados no ensino de algoritmos. Comofora discutido no capítulo 2, um dos problemas que o aluno vivencia é a falta de clareza quantoao uso dos conceitos de algoritmos, esta se agrava a medida que o aluno não possui nenhumconhecimento daquele domínio. Com o auxílio da teoria de Ausubel, viu-se que é possívelprovocar no aluno o surgimento de ideias chaves e através delas se fazer uma interligação entreos vários conceitos que a possam referenciar. Com isso o aprendiz, mesmo que, a princípio,

Page 32: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 18

não compreenda o uso daqueles conceitos, poderá ter os conceitos apreendidos e ligados a algoque para ele traz alguma importância, deixando em primeira análise o conceito ligado a umsubsunçor não próprio, para no futuro ligá-lo a um adequado.

Aplicando a teoria do aprendizado significativo ao ensino de algoritmos, intenta-se fazercom que os aprendizes consigam: 1) entender de forma mais clara como podem utilizar osconceitos de algoritmos; 2) perceber que estes conceitos não se encontram apenas no mundocomputacional, mas no dia a dia comum, e, dessa forma, fazer com que estes conceitos fiquemretidos por mais tempo, uma vez que estariam ligados a atividades comuns, e, por isso, serãomais facilmente recordados. Em outras palavras, o que se pretende aqui é que o aprendizadosignificativo se dê a contento, ou seja, que haja ligação clara dos conceitos aos subsunçores,fazendo com que estes conceitos fiquem retidos por mais tempo; 3) Aumentar a capacidadede abstração, e por fim; 4) melhorar a sua relação com a disciplina tornando o aprendizadomais significativo para estes. Além dos pontos citados, visa-se também buscar um métododiferenciado de ensinar algoritmos. A metodologia tradicional se atém a preocupar-se com oque o professor quer que o aluno aprenda, e dessa forma, passa os conceitos sem antes perce-ber se os alunos possuem conhecimentos que facilitem essa assimilação ou não. Na teoria deAusubel, através do uso de mapas conceituais pode-se explorar o potencial dos alunos e adequara metodologia para se alcançar uma aprendizagem mais significativo. É nesse ponto que umadiverge da outra, a primeira mostrando-se mais preocupada com o objetivo final, e a segundacom o processo como um todo com a finalidade de se poder chegar ao objetivo final de formamais satisfatória.

3.1.1 Mapas Conceituais

Segundo Ausubel, em (Moreira e Masini, 2006), o desenvolvimento de conceitos é facilitadoquando os elementos mais gerais, mais inclusivos de um determinado conceito são introduzi-dos primeiro, e posteriormente esse conceito é progressivamente diferenciado, em termos dedetalhe e especificidade. Ainda segundo o teórico, o princípio denominado de “diferenciaçãoprogressiva” deve ser levado em conta ao programar o conteúdo a ser ministrado. Em termosgerais, o autor se refere ao fato das ideias mais gerais e mais inclusivas da disciplina devem serapresentadas no início para serem progressivamente diferenciadas. Um modo de organizar oconteúdo a ser ministrado de forma progressivamente diferenciada é através da modelagem demapas conceituais.

Mapas conceituais, definido de modo simples, são apenas diagramas que representam liga-ções entre conceitos, Figura 3.4. Porém, em um sentido mais especifico, pode-se afirmar quemapas conceituais representam estes conceitos e suas relações de modo hierárquico. Quandoeste é apresentado em duas dimensões tem-se a representação hierárquica no sentido vertical ehorizontal. A importância do uso desta ferramenta, se assim pode-se chamar, dá-se do uso quedela pode ser feito para apresentar conceitos e subconceitos em uma dada disciplina, demons-

Page 33: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 19

trando suas relações de formar visualmente clara. Entretanto, não se deve apenas usar os mapasconceituais passando-se conceitos no sentido “cima-baixo”, ou seja, professor-aluno. Pode-seexplorar o uso desta ferramenta como forma de conhecer a “bagagem” trazida pelo aluno àqueladisciplina. Em outras palavras, com o uso de mapas conceituais o professor pode pedir para queo aluno apresente de forma estruturada o que ele entende de tais conceitos, ou de um conceitomaior, quebrando este conceito maior em subconceitos e o organizando através do mapa deforma hierarquizada.

Figura 3.4: Mapa conceitual sobre o conceito de variáveis. Fonte: Cunha et al (2004).

Segundo Novak (1977), uso de mapa conceitual na sua abordagem, como forma de mostraros conceitos de dada disciplina e suas relações, não deve se dar apenas de modo unidirecional,do conceito mais abrangente para o de menor abrangência, mas sim em todas as direções pos-síveis. Deve-se subir e descer no mapa conceitual, não se deve apenas partir do conceito maisgeral para os demais, mas sim demonstrar a relação que estes possuem com o conceito maisabrangente, o do topo do mapa. Essa abordagem intenta atingir o que Ausubel denominou de“reconciliação integrativa”. É o estabelecimento de relações entre ideias, conceitos, proposiçõesjá estabelecidos na estrutura cognitiva, relação entre subsunçores. Na reconciliação integrativaelementos existentes na estrutura cognitiva com determinado grau de clareza, estabilidade ediferenciação são percebidos como relacionados, adquirem novos significados e levam a umareorganização da estrutura cognitiva (Moreira, 1997).

Page 34: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 20

Do ponto de vista instrucional, no referente à forma como os conceitos são abordados, pode-se mencionar as possíveis vantagens do uso de mapas conceituais, segundo Moreira e Masini(2006):

1. enfatizar a estrutura conceitual de uma disciplina, bem como o papel dos sistemas con-ceituais no seu desenvolvimento;

2. mostrar que conceitos de uma dada disciplina diferem quanto ao grau de inclusividade,abordando estes conceitos em ordem hierárquica de inclusividade que facilite a apren-dizagem e a retenção destes;

3. prover uma visão integrada do assunto e uma modalidade de “listagem” do que foi abor-dado nos materiais de aula.

Além das vantagens citadas os autores ainda enfatizam as possíveis desvantagens:

1. se o mapa não possuir significado para os alunos, eles poderão encará-lo como algo maisa ser memorizado;

2. os mapas podem ser muito complexos ou confusos, o que dificulta a aprendizagem e arelação, ao contrário do objetivo deste, que é facilitar;

3. os alunos podem inibir suas habilidades para construir seus próprios mapas, em funçãodo fato de que já recebem as estruturas de mapas prontos propostos pelo professor, que édemonstrado segundo a própria percepção e preferência do professor.

Entretanto, algumas das desvantagens citadas podem ser contornadas. Para tal, basta queos mapas e sua finalidade seja explicada, e que durante o curso sejam introduzidos quando osalunos já estiverem alguma familiaridade com o assunto. Outro ponto a ser ressaltado, é o deque o professor sempre que criar um mapa deve ter em mente o compromisso entre ser claro eser completo (Moreira e Masini, 2006).

Neste trabalho, busca-se usar mapas conceituais como uma forma de conhecer melhor osdomínios do aluno. Essa abordagem vai de encontro a um dos problemas expostos no capítulo2, que alguns alunos não possuem conhecimentos prévios de algoritmos, não são bons resolve-dores de problemas e, por isso, apresentam dificuldades no aprendizado. Através do uso demapas conceituais intenta-se descobrir como o aluno enxerga o conceito de problemas e o usode algoritmos em sua resolução através das instruções e conceitos como: laços, condicionaisvariáveis, etc. Essa abordagem, em uma primeira análise, auxilia o professor a entender melhorquais as dificuldades que o aluno poderá vim a enfrentar. Esse conhecimento irá facilitar aoprofessor se colocar diante de tais dificuldades buscando o melhor meio para amenizá-las, auxi-liando em um melhor aproveitamento na disciplina pelos alunos. É dada, pois, a vantagem aoprofessor de conhecer, de modificar ou adequar, a metodologia para um melhor aproveitamento

Page 35: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 21

na disciplina, no caso particular deste trabalho, algoritmos. Já em uma segunda análise, dá aoprofessor uma nova ferramenta que pode ser usada para demonstrar aos alunos as relações entreproblemas de diversos tipos e os conceitos algoritmos. Além disso, serve para o professor comoum modo diferente de se explanar, resolver um determinado problema de algoritmos, expondode forma clara todos os conceitos utilizados na resolução destes e a participação de cada umdeles no processo. Este tipo de abordagem sana a falta de entendimento dos alunos sobre comose resolver um problema de forma algorítmica. Assim, o problema do não entendimento, ou afalta de relação clara do uso de algoritmos para solucionar problemas e os seus conceitos possuiuma abordagem nova que procura resolvê-lo.

3.1.2 Aprendizagem Significativa e Algoritmos

O ensino de algoritmos em termos de um aprendizado significativo é encontrado na literaturaabordado de duas maneiras. Na primeira, o termo significativo, ou aprendizado significativo,é utilizado no sentido de um aprendizado real, ou seja, quantitativamente satisfatória. Já, nosegundo, remete aos conceitos da teoria de David Ausubel. Para fins deste trabalho focamos nasegunda maneira.

Em Pimentel e Omar (2008), foi abordado a teoria do aprendizado significativo como formade facilitar a explanação do conteúdo de algoritmos de forma significativa. Para tal, foramutilizados mapas conceituais que, dessa forma, demonstravam como os conceitos menores emaiores estavam relacionados. Mapas conceituais como já foi citado, possibilitam que os con-ceitos da teoria de Ausubel sejam postos em prática de forma visual facilitando o surgimentode subsunçores na estrutura cognitiva do aprendiz.

No trabalho de Aviz (2007), mais uma vez, são utilizados os mapas conceituais. Nestetrabalho, são tomadas duas abordagens. A primeira faz uso de mapas conceituais como formado professor organizar melhor o conteúdo da disciplina de algoritmos de modo que o apren-dizado seja significativo de acordo com a teoria de Ausubel, ou seja, nessa abordagem há umapreocupação na apresentação do material de modo que o aluno se sinta provocado a aprendersignificativamente. Na segunda abordagem, o professor utiliza o mapa conceitual como ferra-menta para explorar o que o aluno aprendeu sobre algoritmos e resolução de problemas. Dessaforma o professor passa a perceber se o aprendiz está assimilando o conteúdo bem ou não. Paratal, o aluno cria os mapas que representam os conceitos dados em aula. Através dessa abor-dagem, o professor passa a conhecer as dificuldades do aluno, e, partindo desse ponto, podemodificar sua metodologia ou procurar exemplos melhores que facilitem ao aluno a assimilaçãodos conteúdos.

Como foi observado nos trabalhos citados, a teoria de Ausubel utilizada no ensino de algo-ritmo é comumente acompanhada do uso de mapas conceituais. Esta abordagem se caracterizapor ser mais fácil de se abranger os conceitos de Ausubel. Enquanto a teoria fala de conceitosde, subsunçores e como os conceitos devem ser passados a fim de um aprendizado significa-

Page 36: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 22

tivo, os mapas trabalham na construção do material significativo, ponto importante da teoriade Ausubel. Além desse uso, os mapas conceituais podem ser utilizados para acompanhar oaprendizado do aluno. Neste ponto, temos uma maior interação aluno-professor, e por sua vez,um maior feedback no ensino da disciplina.

A abordagem tomada neste trabalho segue por dois caminhos. O primeiro é através do usode mapas conceituais como forma de melhor acompanhar o que o aluno conhece, aprendeue está aprendendo. E também na formulação de material potencialmente significativo. O se-gundo, diz respeito à tentativa de provocar no aluno o surgimento de subsunçores via mapasconceituais e a clara demonstração da ligação entre os conceitos da disciplina. E por via da uti-lização de símbolos potencialmente significativos para que o aluno, ao ser provocado, faça claraligação daquele conceito aos símbolos que ele achar adequado. Com isso, o aluno garante queo conceito será retido em sua estrutura cognitiva, mesmo que inicialmente, por um subsunçornão próprio, mas no futuro por um próprio. Como exemplo da segunda abordagem pode-se uti-lizar o analogia do elevador: um switch case2, nada mais é que um elevador, pois um elevador

é uma ferramenta que, a partir de uma dada opção, leva o seu usuário a algum dos andares

disponíveis. Tal analogia pode ser utilizada para provocar no aluno a referência simbólica doconceito switch case a algo do mundo real, algo para ele significativo. Mesmo que de forma in-gênua, essa provocação tende a esclarecer o aluno daquele conceito em uma possível utilizaçãoreal.

Portanto, o ensino de algoritmos atrelado ao aprendizado significativo pode ser utilizadode forma a contribuir para uma melhora no ensino. Sendo, pois, este um dos objetivos destetrabalho, avaliar até que ponto tal abordagem é vantajosa, resulta em bons resultados, ou não.

3.2 Raciocínio Lógico e Algoritmos

Interpretar problemas e buscar através de lógica algorìtmica uma solução é uma das maisimportantes habilidades requiridas aos alunos de computação. Em Dijkstra (1982), é ressaltadoque programar, mais que outra atividade, envolve a habilidade de raciocinar. Em outras palavras,o raciocínio lógico quando bem utilizado é a chave na resolução de problemas comumentepropostos em disciplinas de algoritmos. A ausência de habilidade tão requerida traz para oaluno grandes dificuldades a serem transpostas nas disciplinas de algoritmos e programação.Eles aprendem de forma correta os conceitos de algoritmos, porém, quando defrontados comproblemas que exigem uma solução algorítmica não conseguem reproduzir o conhecimentoadquirido. Estes alunos não estão acostumados a utilizar o raciocínio lógico3 na resolução deste

2Switch case é uma estrutura de controle de algumas linguagens de programação. Esta estrutura funciona coma passagem de uma parâmetro, opção. Dependendo desta opção o algoritmo executa ou não determinada ação.

3Ao procurarmos a solução de um problema quando dispomos de dados como um ponto de partida e temosum objetivo a estimularmos, mas não sabemos como chegar a esse objetivo temos um problema. Mas se de-pois de examinarmos os dados chegamos a uma conclusão que aceitamos como certa, concluímos que estivemosraciocinando. Se a conclusão decorre dos dados, o raciocínio é dito lógico.

Page 37: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 23

tipo de problema, fato já constatado no capítulo 2 deste documento.O único caminho para adquirir essa habilidade é o exercício. Se há no aluno dificuldades em

arranjar as ideias e variáveis em busca de soluções, este deve ater-se ao teste, ao exercício. En-tretanto, muitos alunos temem o exercício, deixando de desenvolver esta habilidade pelo medode errar. O medo de errar é mais um dos fatores que desmotivam o aluno em algoritmos. Parasanar este medo frequentemente são introduzidas ferramentas que ajudem o aluno a exercitaro raciocínio lógico sem a preocupação com o errar. Ferramentas como o jogo Magu (Rap-kiewicz et al., 2006) que se destaca por ajudar no exercício das habilidades do aluno através deproblemas apresentados como um puzzle, outras como o jogo online Robozzle, ajudam o alunolivrando-o do medo do erro. É graças ao fator lúdico despreocupado destas ferramentas que oaluno se sente mais à vontade para tentar, sem haver, necessariamente, a cobrança inquisidorada sala de aula.

É, portanto, de grande importância o uso de jogos nesse cenário. Jogos que desafiem emotivem os alunos, mas que ao passo de tudo isso exercite no que concerne ao raciocíniológico. Afinal, é, também, um dos problemas do ensino de algoritmos a pouca motivação dealguns alunos, sendo a utilização de jogos e ferramentas um modo de viabilizar uma solução aoproblema.

3.2.1 Jogos e o Raciocínio Lógico

Os jogos lúdicos tornaram-se uma poderosa ferramenta no ensino de várias disciplinas. Umadas disciplinas em que o jogo é bastante utilizada é a matemática. Através de jogos matemáticoso envolvimento do aluno com conceitos desta disciplina torna-se mais proveitoso, atraindo oaluno e demonstrando para este o uso real de conceitos da matemática em inúmeros casos. Nãoé á toa que há em inúmeras instituições de ensino laboratórios voltados a práticas matemáticapor meio de jogos. É por meio de jogos que vários conceitos são demonstrados tornando oaprendizado do aluno mais significativo, uma vez que este consegue enxergar um referencialno mundo real dos conceitos matemáticos, sejam em formas geométricas ou nos jogos. Alémdisso, são, também, estes jogos ótimo meio de ensinar o aluno a pensar logicamente. Eis, então,a importância dos jogos lúdicos no ensino, pois agregam mais valores ao conteúdo didáticoforçando os alunos a vivenciarem de uma melhor forma o seu aprendizado.

Em termos de jogos virtuais, uma categoria de jogo chama bastante atenção no que concerneao exercício do raciocínio lógico, jogos denominados de puzzles4. Um exemplo de jogo nessacategoria é o jogo da Figura 3.5. Em Faria et al (2009), ressalta-se a importância do estudo dejogos desta categoria no que se refere ao exercício da lógica. Os autores ainda deixam claroque, jogos virtuais voltados para a categoria puzzle têm como característica principal, além da

4Termo em inglês para designar jogos de desafios, quebra-cabeça. É um gênero de jogo eletrônico que sefoca em solucionar quebra- cabeças. Os tipos de quebra-cabeças a serem resolvidos podem testar diversas habili-dades do jogador, como lógica, estratégia, reconhecimento de padrões, solução de sequências e ter que completarpalavras.

Page 38: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 24

finalidade primária de entretenimento, o desenvolvimento do raciocínio e da lógica no jogador.E este é o ponto em que se ressalta a importância deste tipo de jogo no incentivo ao ensinode algoritmos. Quase todo problema de algoritmo requer que o aluno pense o suficiente atéque se ache uma solução. Porém, em muitos casos a abordagem comumente utilizada em salade aula não desafia o aluno com incentivos, apenas desafiando-o de forma inexpressiva atravésde exercícios. Não se desqualifica o uso de exercício com essa colocação, mas ressalta-se aimportância da utilização de uma abordagem mais atrativa aos alunos, haja visto problemaslevantados em capítulos anteriores.

Neste trabalho, acredita-se que o uso de uma ferramenta, ou jogo na categoria dos puzzles, sedirecionado ao ensino de algoritmos, poderá ajudar o aluno a melhor desenvolver as habilidadestão requeridas a todo bom programador, sendo o bom uso do raciocínio lógico a mais importantedelas.

Dois bons exemplos de jogos que podem ser aplicados ao ensino de algoritmos são o Robo-Light e o Robozzle, que serão apresentados no próximo capítulo. Ambos são jogos muitosemelhantes abordando de forma indireta o uso de conceitos algoritmos em seus ambientes.Além de jogos puramente ditos, há algumas ferramentas de auxílio ao ensino de algoritmos quetrazem nas suas abordagem algo de puzzle. Este é o caso do Magu citado na seção anterior.

A abordagem de ferramentas que se apresentam como puzzle representam um adendo às es-tratégias utilizadas para alcançar melhor aproveitamento na disciplina de algoritmos. E sobre-tudo mostra-se promissora por abordar de forma lúdica e atrativa tais conceitos, diferenciando-se de outras abordagens. Ressalta-se ainda que, o uso de tais jogos ou ferramentas, não intentamtornar o ensino da disciplina discutida aqui um playground, mas abordar os conceitos desta dis-ciplina de uma forma diferenciada e, sobretudo, fortalecer o exercício do uso do raciocíniológico de forma descontraída, com menos seriedade a do que é que é dada à resolução de prob-lemas com o mesmo intuito. Visa-se o mesmo objetivo, que o aluno alcance uma melhorasignificativa de suas habilidades, desta vez, através de um método diferenciado.

Page 39: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 3. Embasamento Teórico 25

Figura 3.5: Klotski, jogo puzzle que vem no Linux/Ubuntu. O objetivo é mover a peça com os“furos” para os pinos verdes movendo as outras peças do caminho.

Page 40: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4

Metodologia Proposta

Em virtude dos problemas levantados neste trabalho, bem como na literatura corrente, inspi-rado na teoria de David Ausubel e em uma abordagem motivadora, propõe-se uma metodologiadiferenciada em termos do que é hoje empregado em sala de aula. Esta metodologia intentasolucionar ou amenizar os problemas do ensino e aprendizado de algoritmos. Como foi citadono capítulo 2, há dois problemas tidos como principais, o problema do raciocínio lógico e odo ensino. Por apresentarem cada um suas particularidades, a abordagem tomada na metodolo-gia deste trabalho segue por dois caminhos. Quando da referência aos conceitos da teoria deAusubel, aborda-se o problema de ensino propondo uma metodologia que siga determinadascaracterísticas para que esta seja potencialmente significativa. No referente ao problema do en-sino do raciocínio lógico, é proposta uma metodologia que visa, através de uma ferramenta, aux-iliar ao aluno por meio de exercícios o aprimoramento de suas habilidades concernentes ao usoe exercício do raciocínio lógico. Desta forma, tomadas em conjunto, compõe uma metodologiacom o objetivo de sanar os problemas por vezes já citados.

4.1 Descrição geral

A metodologia sugerida está dividida em duas partes. A primeira, referente ao conteúdoprático didático inspirada nos conceitos da teoria de Ausubel. E a segunda em termos da práticade exercícios que facilitam o aprendizado e treinam a habilidade do raciocínio lógico.

1. Conteúdo prático didático:

• Elaboração do material: o material, como discutido em Ausubel, deverá ser poten-cialmente significativo, ou seja, deve haver uma maior preocupação com a orde-nação dos conceitos mais abrangentes aos menos abrangentes. Esta postura visamelhorar o surgimento de subsunçores na estrutura cognitiva dos alunos. O mate-rial deverá sempre que possível relacionar os conceitos já ministrados com os novosconceitos de modo a esclarecer suas dependências, complementos e usos em con-junto. Isto deve ser feito através de mapas conceituais como forma de favorecer a

Page 41: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 27

diferenciação progressiva. Um exemplo dessa abordagem é o conceito de problemadeve sempre ser exposto antes de qualquer conceito de algoritmos. Seguido dosconceitos de solução onde deverão está os conceitos, ou ferramentas, de algoritmos.A Figura 4.1 dá uma ideia do que foi explanando neste tópico;

• Conhecendo o que o aluno já conhece: em uma primeira explanação é necessárioinvestigar a estrutura cognitiva do aluno com o intuito de conhecer a sua “bagagem”em algoritmos, mesmo que esta seja nula. Essa abordagem deverá ser realizadaatravés de mapas conceituais. Estes abrangem de forma geral os conceitos que oaluno conhece e expõem visualmente a estrutura cognitiva do aluno no domíniosolicitado. Para tal, o professor deverá sugerir ao aluno que crie um mapa conceitualsolucionando um determinado problema, como por exemplo trocar uma lâmpadadada determinada situação. Feito isso o professor terá em mãos a realidade em quese encontra cada aluno, tornando-o mais apto a modificar suas aulas ou postura paraum melhor ensino-aprendizado;

• Abordagem simbólica: com o intuito de suscitar no aluno as referências váriasaos conceitos ministrados, o professor deverá fazer uso constante de símbolos queremetam ao mundo real, não somente da área da computação, para que o alunopossa visualizar que os conceitos de algoritmos se encontram em toda parte; mesmoque inicialmente na sua estrutura cognitiva não surja de imediato ligação nenhumacom os conceitos de algoritmos e os do mundo real. Essa provocação deverá serconstante, pois fará o aluno enxergar além do mundo da computação trazendo paraele um incentivo a mais. Entretanto, os símbolos devem ser utilizados de forma aprovocar sua estrutura cognitiva, ou seja, devem ser utilizados símbolos potencial-mente significativos para isso, não se deve usar de qualquer símbolo arbitrário, poisassim o objetivo dessa abordagem não seria alcançado;

• Fazendo o aluno entender as ligações entre os conceitos: os alunos deverão serdesafiados com problemas do mundo real e estes deverão descrever suas soluçõesatravés de mapas conceituais em primeira instância e, por fim, descrevê-lo algorit-camente. Com essa abordagem o professor consegue enxergar de pronto como osalunos estruturam os conceitos aprendidos para solucionar os problemas. Os proble-mas sendo os do mundo real, tais como, chegar na rua A saindo da rua B segundo omapa H, são utilizados para provocar no aluno a ligação do que ele conhece com onovo conteúdo aprendido. Esta constante identificação da relação entre os conceitosfacilita o que Ausubel chamou de reconciliação integrativa;

• Avaliação qualitativa: após todo o conteúdo ministrado, pedir para que os alunoscriem um mapa conceitual geral de todos os conceitos aprendidos. Antes, porém,criar exercícios que abranjam problemas explorando o máximo de conceitos algo-ritmicos e pedir para que os alunos solucionem, primeiro através de um mapa con-

Page 42: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 28

ceitual e, por fim, via algoritmo e suas instruções. O mapa conceitual deve estarbem explicado. Dessa forma, o professor enxergará o que foi bem aprendido ou nãopor cada aluno. Podendo, assim, ajudá-los de forma direcionada.

2. Conteúdo prático via ferramenta:

• Explorando a ferramenta: através da ferramenta Takkou, ou outra de preferência doprofessor, mas que se assemelhe a deste trabalho, pedir para que o aluno explore aferramenta. Após esta atividade, pedir para que o aluno solucione alguns puzzles.Aqui, ao contrário da abordagem por meio de mapas conceituais, o aluno estaráapto a trabalhar com código, porém, de uma forma diferente da habitual como serádiscutido no capítulo sobre a ferramenta Takkou;

• Exercitando o raciocínio em duas vias: ao aluno deverá ser solicitado a criar um de-terminado problema e o modele na ferramenta. Ao modelar o problema o aluno dev-erá ter em mente a solução do mesmo, deste modo, este irá exercitar o seu raciocínioduas vezes, ao criar o problema e ao solucionar antes mesmo de criar ou ao passoque o problema é criado;

• Transcrevendo o problema de forma diferente: será dado ao aluno um algoritmo porescrito, em termos de instruções, e este deverá transcrever o algoritmo como puzzle

na ferramente. Essa abordagem visa identificar se o aluno consegue abstrair bem oproblema. Isso é verificado a partir da criação do puzzle. Se o aluno assimilou bemos conceitos de algoritmos conseguirá com certa facilidade transcrever o problemapara a ferramenta. Ao passo que, se apresenta dificuldades, logo a sua habilidade deabstração não foi fortemente desenvolvido devendo, pois, ser melhor exercitada.

A metodologia descrita neste trabalho pretende abordar os conceitos de algoritmos da formamenos matemática possível. Apesar de compreender que no curso de computação é por vezesnecessário o pensamento matemático, a proposta aqui é, em primeira instância, mostrar ao alunoconteúdo mais significativo. Como foi verificado, muitos alunos não entendem o conteúdoque devem aprender, ou até mesmo não entendem o que supostamente aprenderam, tampoucoconseguem ver no que é aprendido. Por este motivo, é evitado uma abordagem puramentematemática que poderia levar uma grande parcela de alunos a não compreender o que lhe éensinado. Isso não impede que durante o curso exemplos e exercícios matemáticos possamser utilizados, desde que procurem fazer destes conteúdos algo potencialmente significativo aoaluno.

4.2 Caso exemplo

O caso exemplo descrito nesta seção traz a exemplificação do material de aula em con-formidade com a metodologia objetivada neste trabalho. Para tal, baseou-se no conteúdo pro-

Page 43: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 29

Figura 4.1: Mapa conceitual exemplo para resolução de um problema algoritmicamente.

gramático comumente ministrado em um curso de algoritmos descrito conforme a Tabela 4.1.

Tabela 4.1: Tabela do conteúdo do curso de algoritmos e programação.Conteúdo abordado

1 Problemas: o que são?2 Resolução de problemas através de algoritmos.3 Notação de fluxograma, estruturas de dados (variáveis, usos

de variáveis em algoritmos, tipos), operações (aritméticas,relacionais e lógicas).

4 Estruturas de controle (sequência, seleção e repetição.5 Recursão.6 Métodos de verificação de algoritmos.7 Transcrição de algoritmos para o computador: codificação

para linguagem, compilação (apenas explanar o funciona-mento e o objetivo).

4.2.1 Abordagem de aula

Conforme o conteúdo descrito anteriormente será aborado aqui um caso exemplo baseado nametologia defendida neste trabalho a ser utilizada em aula avaliativa. Segue abaixo a descriçãoda abordagem de aula do conteúdo do curso de algoritmos.

• Métodos de aula: definir para os alunos o que são mapas conceituais e como construí-lospara que, dessa forma, possam ser utilizados na aula;

• Problemas - O que são: definir o conceito de problemas mostrando aos alunos que esta-mos cercados de situações que nos refere a algum problema. Descrever de forma literal

Page 44: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 30

um determinado problema para os alunos e pedir para que estes solucione-o via passosatravés de um mapa conceitual. Problema exemplo: Sacar dinheiro em um banco 24horas;

• Conceito de algoritmo: abordar e descrever o que são algoritmos, mostrar que o diaa dia está cercado de exemplos de algoritmos. Descrever a finalidade de algoritmos esua grande importância para área de computação. Após a conceituação de algoritmospedir que se resolva o mesmo problema dado anteriormente de acordo com o conceito dealgoritmos ministrado;

• Notação de conceitos de algoritmos: através de um dado problema de ordem simples,abordar os diversos conceitos de algoritmos sempre via mapas conceituais. A medidaque novos conceitos precisem ser alcançados, fazer modificações interativas no problemamostrando para os alunos como os conceitos se encontram bem relacionados. Na abor-dagem de cada conceito busca-se, o mais possível, exemplos relevantes do mundo real;

• Estruturas de controle: a partir de um dado problema abordar os conceitos de estruturasde controle, antes de abordá-las, inquerir aos alunos o que seria necessário a soluçãode determinado problema que não foi utilizado (a estrutura de controle), dessa formaverificar o poder de abstração dos alunos. Não diferente dos outros tópicos, abordar aresolução do problema sempre via mapa conceitual deixando clara as ligações entre osconceitos de algoritmos e os referenciais no problema;

• Recursão: exemplificar determinado problema que faça uso de tal conceito, sem antesministrá-lo. Após exemplificação pedir que os alunos construam problemas que façamuso de recursão. Os problemas deverão ser descritivos e por meio de mapas conceituais;

• Métodos de verificação de algoritmos: através de uma dada solução, de algum exemplode problema já solucionado, abordar através de um mapa conceitual algum método deverificação de algoritmos, tal como o de mesa5;

• Transcrição de algoritmos para o computador: por meio de símbolos representar os con-ceitos de linguagem de programação, compiladores, etc;

• Exercícios: por intermédio da ferramenta Takkou, ou outra semelhante, pedir aos alunospara solucionar problemas que abordem em cada etapa da aula um conceito referente aesta. Além disso, pedir para que estes formulem problemas e desafiem os colegas.

5Método no qual todas as variáveis do problema, algoritmo, são postas em uma tabela e a cada passo deexecução do algoritmo o seu estado é descrito nesta tabela.

Page 45: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 31

4.3 Resultados preliminares

Os resultados discutidos aqui têm por objetivo levantar observações sobre a metodologiautilizada neste trabalho, pois resultados mais gerais de sua aplicação só seriam possíveis a longoprazo. Uma vez que, para se desenvolver o raciocínio lógico, o aluno precisa de uma abordagemcontinua de exercícios com essa finalidade, o que implica em período de tempo maior. Portanto,aqui, observa-se o impacto da metodologia em primeira instância como forma de avaliar oproblema do ensino e as dificuldades encontradas pelos alunos, bem como a importância dofator motivacional pela aplicação de uma ferramenta como jogo.

Para a colheita de resultados preliminar foram utilizados dois modelos de avaliação. Oprimeiro, modelo quantitativo, baseado em um conjunto de três questões, foi utilizado paramedir a capacidade do aluno em resolver problemas e usar os conceitos de algoritmos, bemcomo usar de sua capacidade de raciocinar logicamente e verificar se os conceitos ensinadosforam apreendidos. O segundo, baseado em um questionário de perguntas sobre a aula, ametodologia e seu aprendizado, como forma de avaliar do ponto de vista do aluno a metodologiaempregada em sala de aula e entender suas dificuldades.

Foram utilizados dois conjuntos de voluntários cada qual com 5, no primeiro foi utilizadaa metodologia defendida neste trabalho e no segundo a metodologia comumente utilizada emaula, ou seja, a que não emprega os conceitos da teoria do aprendizado significativo. Ambosconjuntos possuíam alunos no perfil de ensino médio ou recém saídos deste.Com isso, foramobtidos os seguintes resultados referentes à avaliação quantitativa em que foram abordadas trêsquestões que envolviam todos os conceitos básicos de algoritmos.

1. Metodologia deste trabalho:

• Questão 1: dos cinco alunos nenhum deles conseguiu resolver o problema. Atribui-se a isso o fato de o problema desta questão ser um problema matemático o quedificultou a resolução deste. Com isso, confirma-se um dos grandes problemas ad-vindos dos alunos do segundo grau, o baixo desempenho em matemática, fator quedificulta em muito o aprendizado de algoritmos;

• Questão 2: na questão dois, 3 alunos conseguiram resolver o problema a contento. Oproblema era criar um algoritmo que dado um elevador e um prédio com 7 andares,um subsolo e uma cobertura, determinasse quantos andares faltavam para chegar aoandar solicitado pelo usuário, dado que o andar corrente do elevador era o quinto.A pesar da questão ser bastante simples, houve alunos que não conseguiram abstrairdo enunciado do problema os dados para criação do algoritmo;

• Questão 3: nesta questão, os alunos deviam ordenar três números em ordem decres-cente dado qualquer número disponibilizado. Três alunos conseguiram resolver esteproblema. Os demais não conseguiram entender como usar variáveis auxiliares e asestruturas de controle para conseguir atingir o objetivo.

Page 46: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 32

2. Metodologia tradicional:

• Questão 1: um aluno conseguiu resolver esta questão. Atribui-se a isso o fato dametodologia tradicional aplicada ter sido abordada com um número extenso de ex-emplos matemáticos que podem ter facilitado o entendimento do aluno, sendo umdesses o da sequência de Fibonacci. Os demais alunos não conseguiram resolvero problema, mas esboçaram algum raciocínio quanto à fórmula para calcular a se-quência;

• Questão 2: nesta questão dois alunos conseguiram resolver o problema. Os demaissentiram dificuldades em entender o enunciado e abstrair o problema para escrevero algoritmo;

• Questão 3: três alunos conseguiram resolver esta questão a contento.

Dos resultados obtidos na avaliação quantitativa, conclui-se que muitos dos alunos possuemdificuldades em abstrair os problemas e resolvê-los em forma de algoritmo. Para a primeirametodologia citada, a deste trabalho, percebeu-se que em problemas onde os dados faziamreferência ao dia a dia os alunos sentiam-se mais à vontade para responder, mesmo que nãoconseguissem. Já na outra, alguns alunos não entendiam como abstrair a matemática por trazdo problema e fazer referência a algoritmos quando estes não eram puramente matemáticos e jáse tinha dado algum exemplo similar ao problema.

No referente à avaliação qualitativa foram feitas as seguintes perguntas:

1. Qual a importância que tem algoritmos para resolver problemas?

• a) Alta;

• b) Baixa;

• c) Média.

2. Conseguiram entender todo o conteúdo?

3. Qual foi a maior dificuldade na aula?

4. A metodologia da aula foi:

• a) Boa;

• b) Razoável;

• c) Ruim.

5. Entenderam que os algoritmos podem ser utilizados para abstrair problemas do dia a dia?

6. Sobre o uso de jogos para exercitar, como a ferramenta Takkou, qual sua opinião?

Com base nas perguntas acima foram obtidos respectivamente as seguintes respostas:

Page 47: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 33

1. Metodologia deste trabalho:

• Os cinco alunos responderam alta;

• Quatro alunos responderam positivamente e um não;

• Dois alunos responderam: resolver o problema; um entender certos conceitos; sabero que usar para resolver os problemas; e o último entender os problemas;

• Três alunos responderam boa e dois razoável;

• Todos os alunos responderam que sim;

• Os voluntários responderam “é divertido e empolga mais”.

2. Metodologia tradicional:

• Quatro alunos responderam alta e um média

• Três alunos responderam que sim, entenderam, os outros dois não

• As respostas a esta pergunta foram similar a da abordagem anterior com apenas umaparticularidade, um aluno respondeu que não conseguia ver a lógica das coisas;

• Dois alunos responderam boa, outros 2 razoável e um deles respondeu ruim;

• Três alunos responderam que sim, e os outros dois não;

• Nesta última pergunta, aos alunos da metodologia tradicional, a abordagem foi feitada seguinte forma: o uso de jogos ou alguma ferramenta poderia ajudar a entendermais? Ao que os alunos responderam todos que sim.

De acordo com o quadro que foi exposto anteriormente viu-se que não houve um diferen-cial grande entre as duas abordagens no que concerne à dificuldade do raciocinar logicamente.Entretanto, percebeu-se que os alunos diante da metodologia deste trabalho apresentavam maiscuriosidade e empolgação, pois tinham nos exemplos figuras simbólicas do seu cotidiano rela-cionadas a algoritmos. Além disso, em virtude da aplicação de uma ferramenta de jogo, estesapresentaram-se mais motivados e interessados em resolver os problemas na ferramenta. Sendoo fator motivacional um dos pontos a ser atacado por este trabalho, o resultado veio a contento.Entretanto, a questão do não conhecimento prévio do aluno identificou-se nos dois grupos comoum forte fator de dificuldade para o aprendizado.

Através da abordagem dos mapas conceituais, pôde-se verificar por partes como o alunoaprendiz, a partir das instruções de aula, organizam seus conhecimentos e tentam resolver osproblemas. Entretanto, por mais que estes consigam enxergar as estruturas a serem utilizadaseles sentem dificuldades em escrever o algoritmo final. A essa dificuldade está atrelado o fatodo tempo e da vivência com o conteúdo de algoritmos. Problema este que só poderá ser sanadoatravés de exercícios contínuos. Portanto, mesmo com esta dificuldade, pode-se afirmar que usoda abordagem através de mapas conceituais é válida, pois facilita ao aluno como estruturar umasolução e com o treino a transcrição para um algoritmo final tende a tornar-se automática.

Page 48: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 4. Metodologia Proposta 34

Por fim, a metodologia abordada neste trabalho atendeu de forma satisfatória no que con-cerne a uma abordagem motivacional e potencialmente significativa. A forma como os con-ceitos foram abordados de acordo com a teoria de Ausubel suscitaram menos dúvidas aosalunos, haja visto que foram ministrados exemplos voltados para o cotidiano dos voluntáriosfazendo uso constante de símbolos que provocassem nestes a ligação ou criação de subsunçores.Porém, ainda assim, foram encontradas dificuldades relacionadas com a falta de experiência dosvoluntários, por ser um assunto novo nunca visto antes. Portanto, a este problema, o problemada vivência do aluno com o conteúdo, só com o tempo o aluno consegue sanar, mas a partirdo momento que o aluno é posto em situação motivadora e potencialmente significativa, estese sente mais encorajado a aprender melhor e consegue buscar relevância no conteúdo, que ofará gradativamente assimilar melhor os novos conceitos. Logo, acredita-se que a metodologiadefendida aqui fez o seu papel neste conjunto de teste, mas ressalta-se que um melhor resul-tado só poderia ser verificado se a metodologia fosse aplicada no período de tempo normal deuma disciplina, sendo, dessa forma, melhor explorada pelo professor e pelos alunos. Afinal éesta uma abordagem para um curso todo, abordagem que suscita a constante relação de trocaprofessor-aluno, dessa forma havendo um maior feedback no processo de ensino-aprendizado.

Page 49: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5

Uma Ferramenta de Apoio ao Ensino deAlgoritmos

Durante a última década viu-se um número expressivo de ferramentas propostas ao auxíliodo ensino e aprendizado de algoritmos. Algumas destas ferramentas serviam com o objetivo detornar o aprendizado mais motivador, ou mais esclarecedor. Enquanto alguns trabalhos abordamas linguagens de programação como o melhor meio de se ensinar algoritmos, outros abordamo esquadrinhamento dos conceitos para que o aluno entenda melhor os assuntos abordados. Éesse, portanto, o principal objetivo de tais ferramentas, auxiliar o aprendizado do aluno, sejapor meio de uma linguagem puramente desenvolvida com esse propósito ou através de umaferramenta que explique em detalhes como um algoritmo funciona.

Este trabalho propõe uma ferramenta que em conjunto da teoria de Ausubel visa tornaro ensino-aprendizado de algoritmos mais motivador. Antes desta ferramenta ser abordada épreciso que sejam conhecidos os trabalhos correlatos que serviram de inspiração a ferramenta.Além de conhecer o cenário atual no que concerne a essa modalidade de ferramenta.

5.1 Ferramentas correlatas

Para que os trabalhos aqui levantamentos fossem melhor organizados foi estabelecida aseguinte classificação de ferramentas voltada ao ensino de algoritmos, ou que se enquadram noperfil de ferramentas que podem ser utilizadas com esse proposito.

1. Ferramenta de linguagem: são ferramentas que, como o próprio nome denota, apresen-tam o foco em uma linguagem, ou pseudo linguagem, desenvolvida para facilitar o ensinoe prática de algoritmos;

• Tepequém: é uma linguagem de programação que agrega como maior característicao fato de possuir suas palavras reservadas em sua totalidade em português, preser-vando até mesmo a acentuação. A linguagem foi criada por se basear no fato de os

Page 50: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 36

alunos que saem da educação básica terem no idioma inglês um obstáculo, preju-dicando o bom andamento do processo ensino-aprendizagem. Além destas carac-terísticas, a linguagem tepequém foi desenvolvida para ser traduzida para códigoJava, podendo ser codificada através da ferramenta NetBeans por meio de um plu-gin (Hinterholz Jr, 2009);

• JavaTool: ferramenta que faz uso de uma sintaxe reduzida da linguagem Java paraensinar programação e algoritmos em um ambiente interativo onde os códigos po-dem ser animados em 2D, Figura 5.1. O propósito dessa abordagem é tornar aabstração dos códigos mais visível, segundo os autores (Mota et al, 2008). Ape-sar de possuir determinadas características que a enquadram na próxima categoriade ferramentas, por fazer uso, mesmo de forma reduzida, da linguagem Java, estaferramenta foi incluída aqui.

Figura 5.1: Ferramenta JavaTool. Fonte: Mota et al (2008).

2. Ferramenta de simulação de algoritmos: ferramentas que simulam o comportamentode algoritmos através de fluxogramas, possuindo, às vezes, editores de algoritmos comferramenta de debugger que apresentam a execução passo a passo dos algoritmos;

• VisuAlg: aplicativo que fornece aos usuários uma ferramenta de editor para digitar,executar e depurar pseudocódigo, utilizado para resolver problemas propostos emsala de aula, Figura 5.2. Apresenta vários recursos, sendo estes: execução passo apasso, visualização do conteúdo das variáveis, exame de pilha de ativação no caso desubprogramas, contador de execuções de cada linha do programa, apresenta modo

Page 51: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 37

visual através de uma interface gráfica e modo texto através de interface DOS paratestes do usuário (Souza, 2009);

Figura 5.2: Interface gráfica da ferramenta VisuAlg. Fonte: Souza (2009).

• CIFluxProg: é uma ferramenta que se compõe de dois ambientes de desenvolvi-mento, um para confecção de fluxogramas e outro para a construção de algoritmosem portugol, junto com um compilador e um interpretador. A abordagem tomadanessa ferramenta permite que o usuário entenda mais sobre fluxo de programa, laçode controle, estruturas condicionais e repetições. Além disso, apresenta a ferramentapara teste de mesa, ou seja, um tipo de metodologia para se debugar o programa, per-correr as variáveis durante a execução e acompanhar suas modificações (Santiago,2004).

3. Ferramenta de interação com algoritmos: nesta categoria se enquadram ferramen-tas que não apresentam como foco a interação de conceitos de algoritmos dentro dela.São aplicadas a algum atividade, como robótica por exemplo. Entretanto, apresentamno corpo da ferramenta a ideia de implementação de algoritmos, seja por codificação ouaglutinação de instruções;

• Scracth: o ambiente de programação Scracth foi desenvolvido pelo MIT e se apoiaem pressupostos pedagógicos muito sólidos, baseado no construtivismo de Piaget.

Page 52: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 38

Figura 5.3: Ambiente de edição via códigono CIFluxProg. Fonte: Santiago (2004).

Figura 5.4: Ambiente de criação de algo-ritmos via fluxograma. Fonte: Santiago(2004).

A ferramenta aplica ideias do software LOGO, também proposto por Partert noMIT (Maloney et al, 2008). O scratch possui uma interface agradável e linguagemque define blocos de comandos visuais tornando a codificação mais fácil, pois osusuários não precisam escrever código, mas apenas arrastar blocos. Aos usuáriosé dada a possibilidade de integrar, de forma simples, recursos de som, imagem evídeo. Estes recursos soam para os usuários como algo bastante interessante, ondeeles podem criar jogos e animações gráficas diversas. Na Figura 5.5, na extremaesquerda estão os vários tipos de blocos, estes podem ser selecionados e arrastadospara o espaço no centro, que representam o código, algoritmo da animação ou jogo.Na extrema direita está a cena que o algoritmo reproduz;

• Robomind: é um ambiente para programação de robôs inspirado na linguagemLOGO. Através dela é possível programar um robô que “anda”, “vê”, “pega obje-tos” e “pinta”. Esta ferramenta possibilita que o usuário teste um script, código deprogramação, no seu ambiente e o transfira para um robô criado com o kit da Lego(Lego Mindstorm). O grande atrativo desta ferramenta é o de trazer a interação dorobô e o ambiente, que o usuário poderá tanto programar via código, quanto apenascontrolá-lo via um pequeno controle remoto. Na Figura 5.6, na barra de ferramen-tas pode-se verificar o ícone do controle que possibilita que um pequeno controleapareça na tela pra controlar o robô caso o usuário não queira utilizar código.

4. Jogos aplicados ao ensino de algoritmos: são jogos que abordam de forma lúdica, diretaou indireta, o ensino de algoritmos. No que concerne a aplicação indireta dos conceitos,algumas destes jogos fazem uso da abordagem do aprendizado tangencial.5

5Aquele onde algum conceito, ou conjunto de conceitos, é passado de forma sútil, não direta, gerando nopúblico-alvo o interesse pelos conceitos. Um exemplo do uso desse tipo de aprendizado é frequentemente encon-

Page 53: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 39

Figura 5.5: Imagem do ambiente do Scratch. Fonte: scratch.mit.edu.

Figura 5.6: Ambiente do Robomind. Fonte: robomind.net.

• Robozzle: é um jogo disponível na web que possibilita ao usuário aprender con-ceitos de algoritmos de forma despretensiosa, como recursão, funções, entre outros,Figura 5.7. Na imagem, o menu com setas e cores e a letra F e um “X” para fecharrepresenta as escolhas do usuário. As caixas com letras F enumeradas representamfunções que seriam executadas. As setas na caixa de escolha representam a direção

trado em jogos de computadores.

Page 54: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 40

para onde a “flecha” irá virar, as caixas de cores colorem o fundo das caixas defunções e implicam que a ação de virar, seguir ou executar determinada função sóserá executada na caixa com aquela cor onde a seta se encontra. Além de provocar,através dos seus puzzles, o desafio do raciocínio lógico, o jogo possui vários puzzles

sendo alguns deles criados pelos próprios usuários. A partir de um dado número dedesafios solucionados é dada a permissão para se criar os seus próprios desafios.

Figura 5.7: Um dos puzzles criado por usuário. Fonte: www.robozzle.com.

• Light-Bot: semelhante ao Robozzle, porém um pouco mais complexo. É tambémum jogo disponível na web, mas ao contrário do primeiro demonstra claramente quefoi criada com a ideia de introduzir conceitos de algoritmos, o que se percebe pelatela de menu do jogo. Conforme a Figura 5.8 temos a tela de menu do Light-Botonde pode-se ver as opções de puzzles pelo tipo de conceito de algoritmo. Na im-agem: básico, condicionais e recursão. Além de uma opção para os desafios criadospelos usuários, USER LEVELS. Já na Figura 5.9, o primeiro conjunto de quadradoscom os cantos arredondados representam as opções que podem ser colocadas nascaixas abaixo, no caso nas caixas em cor cinza. Neste jogo, é um robô o objeto querecebe a interação das instruções. O objetivo do jogo é posicionar o robô em deter-minado ponto onde este deverá acender sua luz, eis de onde vem o nome do jogo.

Page 55: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 41

Um de suas semelhanças com o robozzle é o de permitir ao usuário a formulação depuzzles, e, por sua vez, permitir que os usuários possam desafiar outros usuários.

Figura 5.8: Tela de menu do Light-Bot.Fonte: armorgames.com/play/6061/light-bot-20.

Figura 5.9: Puzzle da catego-ria básica no Light-Bot. Fonte:http://armorgames.com/play/6061/light-bot-20.

É importante ressaltar que estes foram apenas alguns exemplos de ferramentas que podeme são utilizadas com a finalidade de auxiliar o ensino de algoritmos. Se não foram listadas maisferramentas, foi com o intuito de não tornar a leitura cansativa e redundante, haja visto que ape-nas algumas dessas ferramentas já apontam as características fundamentais de todas as outras.Com esse levantamento pode-se ter uma ideia do cenário atual referente a ferramentas aplicadasao ensino de algoritmos. Foi inspirada em algumas das características destas ferramentas que aferramenta Takkou, que será abordada a seguir, foi implementada.

5.2 Takkou

Com o intuito de proporcionar ao aluno um ambiente onde este possa aprender algoritmos etreiná-los na forma de um jogo, é incentivado o uso da ferramenta Takkou em desenvolvimentopela UFRN, que de forma despretensiosa introduz os seus usuários no mundo dos algoritmos.A ferramenta herda algumas das características das ferramentas anteriormente citadas. Taiscaracterísticas foram aproveitadas, pois, estas demonstram-se em acordo com o que é propostana metodologia deste trabalho. Dentre estas características têm-se:1) não há codificação deescrita, mas sim o arrasto de blocos de comandos;2) há a possibilidade de o usuário criar osseus desafios;3) visualização de um cenário “real” onde os algoritmos são utilizados;4) desafioscriados por usuários podem ser resolvidos por um outro qualquer.

O nome takkou é um nome de origem japonesa que significa eficiência. A ferramenta surgiu,inicialmente, como uma proposta de jogo em que os usuários pudessem desafiar-se e interagirem dois ambientes, um visual e outro de código. Entretanto, o primeiro protótipo, o que éutilizado por este trabalho, traz apenas um número de possibilidades básicas, que para a final-idade proposta serve bem a este trabalho, como forma de incentivar e exercitar o raciocíniológico. Ressalta-se que a ferramenta Takkou foi a utilizada neste trabalho por possuir algumas

Page 56: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 42

características importantes a metodologia, como a construção e resolução de desafios. Porém,outras ferramentas poderiam e podem ser utilizadas, desde que atendam a pontos importantesdefinidos na metodologia defendida neste documento. É, pois, encorajado que o professor aooptar por tal metodologia explore tantas ferramentas quanto possível. Afinal, o objetivo do usodestas ferramentas, para a metodologia empregada aqui, é o de sempre desafiar o aluno a pen-sar, raciocinar, através de algo que o remeta aos conceitos de algoritmos de forma motivadora.Encoraja-se, entretanto, que o professor faça uso da ferramenta já citada, explore-a ao máx-imo de suas possibilidades, da melhor forma que lhe convier, para que o objetivo de motivar oaprendiz e exercitar o raciocínio lógico deste seja eficientemente alcançado.

Além das características já mencionadas, esta ferramenta apresenta algumas particulari-dades como, por exemplo, uma preocupação com a usabilidade no referente à interação dousuário, ou seja, a interação humano computador. O desenvolvimento da fase de construção decódigo foi realizado tendo como meta uma maior preocupação nesse ponto, visando estabelecero meio mais prático de uso para usuário. Esta preocupação deve-se ao estudo de que os usuáriospreferem as ferramentas e jogos que tenham uso fácil e exijam deles menos esforços, em suma,sejam mais práticas de serem utilizadas. Na ferramenta Takkou como abordagem facilitadora,no que concerne a usabilidade, foram implementados dois métodos de adição de instruçõespara resolução de puzzles, Figura 5.10. O primeiro através do efeito de drag and drop, arrastare soltar os comandos. Já o segundo, pelo uso do botão do meio do mouse, através do scroll ousuário consegue mover para cima e para baixo os blocos de comando, ou comandos, no painelde instruções. Além de mover os blocos, o usuário consegue através do scroll adicionar blocos.Isto é obtido quando o usuário posiciona o mouse sobre o comando e desliza o scroll.

Com essa abordagem, o esforço do usuário é minimizado, e, por sua vez, torna o uso daferramenta mais prático.

5.2.1 Proposta pedagógica da ferramenta

A proposta pedagógica da ferramenta Takkou se encontra diretamente relacionada ao prob-lema, neste trabalho, definido como do raciocínio lógico. Como visto em capítulos anteriores,este é um dos maiores problemas que atingem os alunos dos cursos computação. Com base nolevantamento realizado, percebeu-se que o único modo de auxiliar ao aprendiz no ganho destahabilidade é o do exercício constante. Porém, como ajudar o aluno sem sobrecarregá-lo e, aomesmo tempo, motivá-lo? É através de uma abordagem lúdica, por meio de uma ferramentaque se propõe a ser, também, um jogo, que este trabalho busca tal solução.

As bases pedagógicas desta ferramenta se encontram na sua abordagem. Nela os algorit-mos são tratados como conjuntos de instruções potencialmente significativas que se mostramao aprendiz como instruções tomadas no seu cotidiano. Por exemplo, quando o usuário de-fine na solução de dado desafio na ferramenta um “Se em frente for pedra”, ele obterá, mesmoque não perceba, que algo como uma escolha do dia a dia, ou uma checagem cotidiana, pode

Page 57: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 43

Figura 5.10: Painel de instruções e de comandos. Observe que no painel de comandos é possívelescolher o modo de adição de instruções, Drag&Drop ou Mouse Scroll.

ser claramente definido em termos de um algoritmo. Apesar desta abordagem ser simples emprimeira observação, em segunda percebe-se que o objetivo de atrair a atenção do aluno éalçando. Porém, é através do modo como esta ferramenta é utilizada que a proposta pedagógicase faz mais clara, pois a abordagem tomada pelo professor ao usá-la deve exaltar as caracterís-ticas definidas na metodologia formulada e, como já foi mencionada, solucionar ou amenizar oproblema do raciocínio lógico.

Quando a ferramenta se apresenta como algo a ser utilizado pelo professor, em forma deinstruir os alunos ao exercício, temos nela um cunho pedagógico voltado para a metodologiadefendida neste trabalho, a que o exercício seja constante para que a habilidade seja adquirida.Já quando é dada ao aluno a liberdade de construir os problemas e, por sua vez, solucioná-los amedida que este constrói, pois é algo inevitável de se fazer, coloca-se o aluno como construtordo seu conhecimento. Construindo o seu conhecimento o aluno tem a liberdade de aprender porsi só, e, dessa forma, interessar-se cada vez mais pelo assunto estudado a cada passo que dá emdireção ao desenvolvimento deste conhecimento. A este tipo de abordagem foi dado o nomede Construtivismo, que, como definido em (Rosa, 2008), é aquele em que a aprendizagem sedá através do ativo envolvimento do aprendiz na construção do conhecimento. Envolvimentoque é incentivado pelo potencial uso da ferramenta em desafiar os colegas de classe, uma vez

Page 58: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 44

que para desafiar os colegas este deverá conhecer cada vez mais o instrumento utilizado paradesafiar, neste caso, o conteúdo da disciplina de algoritmos.

Portanto, a proposta pedagógica abordada no uso e criação da ferramenta Takkou encontra-se tanto na teoria de David Ausubel como nos ideais do Construtivismo. Fato que não poderiadeixar de ser, uma vez que a teoria do Aprendizado Significativo é também construtivista.

5.2.2 Ambientes da Ferramenta

Apresentando-se com dois ambientes principais, antes porém, é dado ao usuário a opção deescolher o desafio de acordo com nível de dificuldade, Figura 5.11. A ferramenta Takkou foicriada desta forma para atender ao que é proposto por ela em conjunto com a metodologia jámencionada. Além dos níveis que podem ser escolhidos, a ferramenta disponibiliza no cantosuperior direito da tela inicial a opção de autenticação, botão com seta em azul, para que dessaforma os outros dois botões á esquerda deste mencionado, o de criar puzzles e o de carregar ospuzzles criados, tornem-se disponíveis. Caso o usuário não possua cadastro, este poderá fazê-loe em seguida realizar sua autenticação.

Figura 5.11: Tela inicial do protótipo da ferramenta Takkou onde o usuário pode escolher opuzzle pela dificuldade.

O primeiro ambiente mencionado é o de resolução dos desafios ou puzzles, onde o usuáriodeverá solucionar o puzzle conforme objetivo requerido. Para tal, ele deve usar das instruções

Page 59: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 45

disponíveis no painel lateral a direita na caixa de comandos, Figura 5.12. No painel, são encon-trados o tempo limite e a área onde a resolução do desafio é construída. Os botões abaixo dacaixa de comandos fazem com que o algoritmo seja executado, fazendo com que a seta se movasolucionando o desafio. O segundo ambiente é o de criação de desafios, neste o usuário podecriar os seus desafios e submeter a um banco de dados onde estes ficam salvos e em seguidapodem ser resolvidos por qualquer usuário que esteja logado.

Figura 5.12: Ambiente do desafio.

O ambiente de criação de puzzles possibilita que o criador preencha o tabuleiro do jogocom os tiles de terreno, os obstáculos, e posicione o “objeto player” no jogo. Na Figura 5.13,pode ser visualizado a ativação do tabuleiro dos obstáculos ficando este em cor marrom sobreo tabuleiro do terreno. Cada opção, objetos e terreno, é acionada ao clicar sobre elas. Emseguida o usuário precisa apenas clicar no local onde quer que este seja posicionado. Além dosobjetos e da definição do terreno, devem ser preenchidos o tempo limite do desafio, o nome, adescrição e a posição do objeto player na cena. Por fim, ao clicar no botão gravar uma pequenatela irá aparecer informando que o puzzle está sendo salvo no banco de dados remoto, ou que agravação falhou.

5.2.3 Tecnologias utilizadas

A ferramenta Takkou foi desenvolvida em Silverlight e C#, tecnologia da Microsoft que pos-sibilita a criação de aplicações RIA – Rich Internet Application, permitindo o uso do framework.NET. A escolha desta tecnologia deveu-se ao fato de, primeiro, possuir um conjunto de fun-

Page 60: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 46

Figura 5.13: Ambiente referente á criação de desafios pelo usuário.

cionalidades que agilizam o desenvolvimento na WEB, e segundo, desta apresentar ferramentasgratuitas para o desenvolvimento com ela, bem como pelas “concorrentes” não apresentarem.Entretanto, por se tratar de uma tecnologia side client, esta não possibilita que a persistênciaseja feita em um servidor, ao menos não de forma direta. Por este motivo, para a publicação dospuzzles criados pelos usuários, foi utilizado um serviço WEB publicado no Google App Enginepor meio da ferramenta Web2py. O primeiro, é um ambiente de produção “nas nuvens” onde épossível publicar aplicações por meio dos servidores do Google. Já o segundo é um framework

desenvolvido em linguagem Python que facilita o desenvolvimento de sites e aplicações na in-ternet. Com a utilização destas duas tecnologias foi possível através de um web service baseadoem REST6, criar um banco de dados onde os desafios criados pelos usuários são armazenadose recuperados quando solicitados.

Os puzzles ou desafios são descritos através de um arquivo XML7 que é carregado pelaferramenta quando o desafio é escolhido. Há, por sua vez, dois tipos de puzzles, os que seencontram na ferramenta e os que são criados pelos usuários e estão em um banco de dadosna WEB. Quando os desafios são salvos é enviado ao web service um arquivo XML com adescrição do desafio e o nome de quem o criou. Na fase de recuperação, é enviado para a ferra-menta Takkou um arquivo no formato JSON8 com todos os puzzles que se encontram no banco

6REST - Representation State Transfer: é uma técnica de engenharia de software para sistemas hipermídiadistribuídos como a World Wide Web.

7eXtensible Markup Language, linguagem de marcação recomendada pelo W3C,World Wide Web Consortium,para definir dados descritivos na WEB.

8JavaScript Object Notation, é um formato de descrição de dados em JavaScript, que se caracteriza por ser defácil compreensão e por comsumir pouco espaço.

Page 61: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 47

do servidor. Este arquivo contém os dados conforme Figura 5.14, que tratado pelo Silverlightatravés do uso de serialização do arquivo JSON, fazendo uso da classe DataContractJsonSerial-

izer, Figura 5.15. Esta classe por sua vez recebe como parâmetro uma outra classe que descreveum “contrato” de dados a ser recuperado, Figura 5.16. A classe contrato, devolve uma estruturacontendo os dados dos desafios: id, criador e arquivo XML. Além das estruturas de registro erecuperação de puzzles, há a opção de registro de usuários, que também podem ser cadastradose recuperados pela ferramenta.

Figura 5.14: Formato do arquivo JSON recuperado pela Takkou.

Figura 5.15: Chamada da classe DataContractJsonSerializer, que retorna uma instância daclasse contratada com os dados do arquivo JSON serializados.

Figura 5.16: Classe que define o “contrato”, ou seja, que define os dados que serão recuperadosdo arquivo JSON e passados para a classe.

Justifica-se o uso desta abordagem, através de arquivos em JSON, por ser a mais prática,uma vez que a abordagem por meio de arquivo XML tornaria o processo de tratamento dosdados muito caro em termos de processamento computacional. Assim, é hoje, através desteconjunto de tecnologias que a ferramenta Takkou encontra-se sendo implementada, hoje comoprotótipo, mas no futuro como ferramenta sólida, comportando todas as características aper-feiçoadas ao longo dos testes de uso e observações.

Page 62: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 5. Uma Ferramenta de Apoio ao Ensino de Algoritmos 48

5.2.4 Método de uso proposto

A proposta de uso para esta ferramenta é que o professor explore o mais que possível opotencial de criação de desafios. Com isso, este poderá abordar os conceitos de forma guiadadentro e fora da ferramenta. Além dessa abordagem, é sugerido que o professor encoraje osalunos a criar os seus desafios de forma a desafiar os colegas de sala, tornando, dessa forma, acompetição mais um fator motivador para os alunos. Portanto, a proposta de uso da ferramentaem sala de aula pode ser seguida de acordo com o que é definido em seguida.

1. Uso guiado pelo professor: nessa fase os alunos estarão sujeitos à abordagem pelo pro-fessor, e este deverá selecionar e modelar os desafios de acordo com o conteúdo corrente.Dessa forma, os alunos poderão a todo instante treinar os conceitos de algoritmos deforma mais motivada por meio da ferramenta;

2. Criação de desafios baseados em problemas matemáticos: é encorajado ao professor ten-tar o mais que possível criar puzzles que abstraiam problemas de ordem matemática. Estaproposta visa tornar os problemas potencialmente mais significativo para o aluno;

3. Uso livre pelos alunos: deverá ser dada a liberdade aos alunos de criarem seus desafiosconforme entendam, porém, em determinados casos é importante que se solicite queestes criem desafios condizentes com o assunto que estão aprendendo. Assim, os alunospoderão exercitar tais conceitos e revisá-los através da ferramenta;

4. Desafio entre alunos: um dos objetivos da ferramenta Takkou é possibilitar a criaçãode puzzles é exatamente pra que os alunos possam se desafiar. Com este desafio, estesganharão mais um fator de motivação para aprender algoritmos.

Esta proposta de uso, como o nome implica, é a encorajada neste trabalho conforme ametodologia que foi descrita em capítulo anterior. Entretanto, encoraja-se o usuário da fer-ramenta a criar sua própria metodologia de uso. Lembrando sempre que o intuito do uso daferramenta é primeiro servir como fator motivador e segundo como auxiliador no processo dedesenvolvimento do raciocínio lógico pelo aluno. Devendo, portanto, estes dois fatores sempreserem levados em conta.

Page 63: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 6

Considerações Finais

Este trabalho trouxe para a comunidade um referencial dos problemas encontrados no pro-cesso de ensino-aprendizado da disciplina de algoritmos. Os problemas, como foram investiga-dos e levantados, são reais e chamam a atenção principalmente por afetar aos alunos na sua fasede formação, haja visto a disciplina de algoritmos ser uma das primeiras em todos os cursosde computação. Com base nos problemas levantados foram propostas alternativas que visamsolucionar ou amenizar tal situação. Além desse objetivo, este trabalho trouxe uma alternativaa mais ao enfrentamento deste cenário.

Com a abordagem de uma metodologia inspirada em uma teoria pedagógica, visou-se em-preender esforços consistentes aos problemas levantados. A teoria de Ausubel foi a que serviude inspiração neste trabalho por retratar que a aprendizagem deve ser significativo, e por demon-strar clara importância com o melhoramento da estrutura cognitiva do aprendiz. Entendeu-seaqui que o aprendizado é algo constante na estrutura do aprendiz e todo o método que intentetornar este aprendizado mais esclarecedor deve ser tomado como ferramenta ao enfrentamentodos problemas de aprendizagem. Por sua vez, o aluno nunca irá aprender como deve se nãopossuir nenhum interesse nos assuntos apresentados. É esse mais um fator favorável à utiliza-ção da teoria de Ausubel, nela afirma-se que um dos fatores importantes para o aprendizadosignificativo é que o aluno esteja apto a aprender, possua maturidade intelectual para isso. Oaluno por sua vez se tornará apto a aprender quando sentir-se interessado pelo assunto. Isto éalcançado quando se abordam os conceitos de forma diferenciada, buscando maior significânciadestes frente aos alunos.

Se por um lado o problema do ensino pode ser enfrentado com o auxílio de uma teoriapedagógica séria, há ainda o problema do raciocínio lógico que demanda tempo para ser sanado.Entretanto, isso não impede que esforços diversos possam ser ministrados em prol da resoluçãodeste problema. Com o auxílio de ferramentas com propostas pedagógicas pode-se abordar osconteúdos da melhor forma possível. Já com o uso de jogos do tipo puzzle, mas com conceitosalgoritmos embutidos, pode-se encorajar o exercício do pensar logicamente sem necessaria-mente desatrelar-se dos conceitos de algoritmos. É exatamente isto que é feito neste trabalhoquando se aborda o uso de uma ferramenta como jogo aplicada para se exercitar os conceitos

Page 64: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Capítulo 6. Considerações Finais 50

de algoritmos pelos alunos. Porém, como mencionado, viu-se que essa habilidade requer certotempo e treino para serem alcançadas a contento, o que não diminui a importância da abordagemtomada neste trabalho.

Deixa-se aqui algumas perguntas que talvez façam suscitar novos trabalhos voltados a estesproblemas:1) por que não ensinar algoritmos no ensino médio aos alunos que tenham inter-esse em seguir na área de computação; 2) por que não definir como obrigatórias as disciplinasvoltadas à olimpíada de programação, ao menos as preparatórias, que ensinam aos alunos es-truturas e formas diversas de se interpretar problemas de programação que, muitas vezes, nãosão vistas com a calma devida nas disciplinas que lhe competem. Talvez com estas abordagenso aluno tivesse um maior apoio para melhorar suas habilidades tão requeridas durante todo ocurso.

Por fim, ressalta-se a importância de todos os tipos de resultados em pesquisa cientifica,pois resultados negativos são tão valiosos quanto os positivos. Os dois tipos de resultados sãoimportantes, pois a medida que o resultado positivo delineia caminhos a serem seguidos osnegativos alertam para os erros cometidos e os caminhos que devem ser evitados. Assim é aciência de pesquisar.

Encerra-se aqui este trabalho ressaltando a importância de todos os trabalhos citados e estepróprio como fonte de estudo e leitura aos que por este caminho desejem seguir ou precisemreferenciar-se.

Page 65: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Referências Bibliográficas

AMORIM, R.V.; REZENDE, P.J. (1993). Compreensão de Algoritmos através de AmbientesDedicados à Animação. In: SEMISH, 10.

AUSUBEL, D.P. (1968). Educational psychology: A cognitive view. Nova York, Holt, Rinehartand Winston Inc.pp.37-39.

AVIZ JUNIOR, A.A. (2007). A Aprendizagem de Algoritmos: Uma experiência no cursode Tecnologia em Informática do CEFET-PA. 92 f. Dissertação (Mestrado em Educação eMatemática) - Universidade Federal do Pará, Belém.

BAIBAK, T.; AGRAWAL, R. (2007). Programming games to learn algorithms. ASEE AnnualConference. Hawai, USA.

BORGES, M. (2000). Avaliação de uma metodologia alternativa para a aprendizagem de pro-gramação. VIII Workshop de Educação em Computação – WEI 2000. Curitiba. Homepage:http://200.169.53.89/download/CD%20congressos/2000/SBC%202000/eventos/wei/wei006.pdf.Acessado em 23/03/2010.

BROWN, M.H. (1991). Zeus: A System for Algorithm Animation and Multi-View Editing.Procedings... IEEE Workshop on Visual Languages.

CARES, P.L.L. (2002). Ambiente para teste de mesa utilizando fluxograma. Trabalho de Con-clusão (Graduação) – Faculdade de Ciência da Computação, Universidade do Vale do Itajaí,Itajaí.

CUNHA, M.J.S. FERNANDES, C.T. OMAR, N. SILVA, V. (2004). Avaliação de Aprendiza-gem Significativa Usando Mapas Conceituais num Ambiente Cooperativo.XV SimpósioBrasileiro de Informática na Educação (sbie) - UFAM. página: 118.

CRISTOVÃO, H.M. (2008). Aprendizagem de Algoritmos num Contexto Significativo e Mo-tivador: Um Relato de Experiência. Anais do XXVII Congresso da SBC. WEI - Workshopsobre Educação em Computação. Belém do Pará, PA.

DIJKSTRA, E. (1982). “On the Teaching of Programming, i.e. on the Teaching of Thinking”.In: Selected Writings on Computing: A Personal Perspective. Springer-Verlag NY.

Page 66: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Referências Bibliográficas 52

FARIA, E.C. SILVA, R.F. FERNANDES, F.C.R. (2009). Estímulo ao Raciocínio e à Lógicapor meio de Jogos Virtuais.In: XIII Encontro Latino Americano de Iniciação Científica e IXEncontro Latino Americano de Pós-Graduação - Universidade do Vale do Paraíba.

HINTERHOLZ JR, O. (2009). Tepequém: uma nova Ferramenta para o Ensino de Algoritmosnos Cursos Superiores em Computação. XVII WEI – Anais do Workshop sobre Educaçãoem Informática. Bento Gonçalves – RS.

HU, M. (2008). Using Game Scenarios for Teaching Novice Programmers. Institutes of Tech-nology and Polytechnics (ITP) in New Zealand. New Zealand Journal of Applied Computing& Information Technology.

JESUS, A. BRITO, G.S. (2009). Concepção de Ensino-Aprendizagem de Algoritmos e Progra-mação de Computadores: A Prática Docente. I ENINED - Encontro Nacional de Informáticae Educação. Universidade Estadual do Oeste do Paraná (UNIOESTE). Cascavel, Paraná.

LEMOS E.S. (2006). A aprendizagem significativa: estratégias facilitadoras e avaliação. SérieEstudos – Periódico do Mestrado de Educação da UCDB, Campo Grande, Mato Grosso doSul, n.21, p.53-66.

MALONEY. J. PEPPLER, K. KAFAI, Y. RESNICK, M. RUSK, N. (2009). Programmingby Choice: Urban Youth Learning Programming with Scratch. In ACM SIGCSE Bulletinarchive, Vol 40, 367-371, ISSN:0097-8418, 2008.

MCKEOWN, J. FARELL, T. (1999). “Why We Need to Develop Succcess in Introductory Pro-gramming Courses”. In: CCSC – Central Plains Conference, Maryville, MO.

MOREIRA, M.A.; MASINI, E.F.S. (2006). Aprendizagem Significativa - A Teoria de DavidAusubel. São Paulo: Editora Centauro.

MOREIRA, M.A.(1997). “Mapas Conceituais e aprendizagem significativa (Concept maps andmeaningful learning)”. Instituto de Física - UFRGS. Porto Alegre, RS.

MOTA, M.P. PEREIRA, L.W.K. FAVERO, E.L. (2008) . JavaTool: Uma Ferramenta para o En-sino de Programação. In: Congresso da Sociedade Brasileira de Computação. Belém. XXVIIICongresso da Sociedade Brasileira de Computação. p. 127-136.

NOVAK, J.D. (1977).“An alternative do piagetian psychology for Science and Mathematicseducation”. Science Education, 61(4): 453-477, 1977(a).

PAULA, L.Q.; JUNIOR, D.P.; FREITAS, R.L. (2009). A Importância da Leitura e da Abstraçãodo Problema no processo de formação do raciocínio lógico-abstrato em alunos de Com-putação. XVII Workshop sobre Educação em Computação - WEI 2009. Bento Gonçalves,Rio Grande do Sul.

Page 67: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Referências Bibliográficas 53

PELIZZARI, A. et al. (2002) Teoria da aprendizagem significativa segundo Ausubel. Rev.PEC,Curitiba, v.2, n.1, p.37-42.

PIMENTEL, E.P. OMAR, N. (2008). Ensino de Algoritmos baseado na Aprendizagem Sig-nificativa utilizando o Ambiente de Avaliação NetEdu. XXVIII congresso da SBC. WEI -Workshop sobe Educação em Computação. Belém do Para, PA.

RAPKIEWICZ, C.E.; FALKEMABACH, G.; SEIXAS, L.; ROSA, N.S.; CUNHA, V.V.; KLE-MANN, M. (2006). Estratégias Pedagógicas no Ensino de Algoritmos e Programação As-sociadas ao Uso de Jogos Educacionais. CINTED-UFRGS. Novas Tecnologias na EducaçãoV.4, No 2.

ROCHA, H. V. . Representações Computacionais Auxiliares ao Entendimento de Conceitos deProgramação Logo. In: Valente, J. (ed.). (Org.). Computadores e Conhecimento: Repensandoa Educação. 1 ed. Campinas, SP: UNICAMP, 1994, v. 1, p. 395-416.

RODRIGUES, M. (2004). Experiências positivas para o ensino de algoritmos. IVEscola Regional de Computação Bahia-Sergipe. Feira de Santana. Homepage:http://www.uefs.br/erbase2004/documentos/weibase/Weibase2004Artigo001.pdf. Aces-sado em 19/02/2010.

RODRIGUES JUNIOR, M. C. (2002). Como Ensinar Programação? Informática – BoletimInfomativo Ano I no 01, ULBRA, Canoas, RS.

ROSA, P.R.S. (2008). Instrumentação para o Ensino de Ciências. Departamento de Física -UFMS. Campo Grande, pp. 70–115.

SANTIAGO, R. (2004). Ferramenta de apoio ao ensino de algoritmos. XII Seminário de Com-putação. Blumenau/SC.

SOUZA, C.M. (2009). VisuAlg – Ferramenta de Apoio ao Ensino de Programação. RevistaTECCEN – Vol. 2, no.2; ISSN 1984-0993.

TAVARES, P.C. (1998). Algoritmo, in “Enciclopédia Verbo Luso-Brasileira da Cultura, EdiçãoSéculo XXI” Volume II, Editorial Verbo: Braga, ISBN 972-22-1864-6.

TAYLOR, R. (1977). Teaching Programming to beginners. In: Proceedings of the 17th SIGCSE,1977. Program in Computing and Education College, ColumbiaUniversity, NY, pp.88-92.

Page 68: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Apêndice A

Questionários

Figura A.1: Questionário aplicado para coleta de dados.

Page 69: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Apêndice A. Questionários 55

Figura A.2: Questionário quantitativo aplicado para obter os resultados preliminares.

Page 70: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Apêndice B

Dados

Figura B.1: Dados cedidos pela universidade I.

Figura B.2: Dados cedidos pela universidade II.

Page 71: Aprendizado Significativo Aplicado ao Ensino de Algoritmos · Resumo A disciplina de Algoritmos e Programação se revela para muitos alunos como verdadeira barreira durante os cursos

Apêndice B. Dados 57

Figura B.3: Dados cedidos pela universidade III.

Figura B.4: Dados cedidos pela universidade IV.

Figura B.5: Dados cedidos pela universidade V.