A caminho de um ambiente de avaliação e
acompanhamento contínuo da aprendizagem em
Programação de Computadores
Edson Pinheiro Pimentel1,2, Vilma Fernandes de França1, Nizam Omar1,3
1
Instituto Tecnológico da Aeronáutica (ITA)
Pça. Mal. Eduardo Gomes, 50 – 12228-900 – São José dos Campos– SP – Brasil
2
Centro Universitário São Caetano do Sul (IMES)
Av. Goiás, 3400 – 09550-051 – São Caetano do Sul– SP – Brasil
3
Universidade Presbiteriana Mackenzie
Rua da Consolação, 930 – 01302-907 – São Paulo – SP – Brasil
[email protected], [email protected], [email protected]
Abstract. This paper presents the functionalities of an initial model to support
continuous assessment and accompaniment of the learning in Computer
Programming domain. It is intended with this model, to create conditions of a
more accurate evaluation of student's mental state, as well as supplying to
teachers and coordinators distinguished information of each learner in the
related knowledge domain, allowing to all to take decisions to rehabilitate
students with located deficiencies.
Resumo. Este artigo apresenta as funcionalidades de um modelo inicial de
apoio à avaliação e acompanhamento da aprendizagem do estudante no
domínio de Programação de Computadores. Pretende-se com este modelo,
criar condições de uma avaliação mais exata do estado mental do estudante,
bem como fornecer a professores e coordenadores informações
particularizadas de cada aprendiz no referido domínio de conhecimento,
permitindo a todos tomar decisões para reabilitar estudantes com deficiências
localizadas.
1. Introdução
Ensino e Aprendizagem são dois aspectos de um fenômeno conhecido por EnsinoAprendizagem. Não basta que o professor ensine. É preciso que o aluno aprenda, ou o
processo não estará completo. Segundo David Ausubel, o pai da Aprendizagem
Significativa, o fator mais importante influenciando a aprendizagem é aquilo que o
aprendiz já sabe [Moreira 2001]. Assim é necessário determinar continuamente o que o
aluno já sabe e ensiná-lo de acordo. Para tal, faz-se necessário a definição de um
modelo e de ferramentas que possam auxiliar os professores e a instituição de ensino
nesta tarefa. Este trabalho apresenta aspectos e funcionalidades de um modelo em fase
inicial, aplicado ao domínio de Programação de Computadores em cursos de graduação
em Informática.
A aprendizagem de programação de computadores é essencial para todas as
carreiras ligadas a Informática. Programação é, sem dúvida, a disciplina mais
importante para a formação daqueles que terão no desenvolvimento de softwares o
produto final do seu trabalho. Uma vez que a aprendizagem de programação ocorre
praticamente, durante todo o curso, o baixo índice de assimilação dos estudantes nas
disciplinas cujos requisitos exigem o conhecimento de programação tem sido um
grande problema enfrentado em muitas instituições. [Rocha 1991] afirma que estamos
tendo um fracasso no ensino de programação e [Gomes 2000] fala do insucesso
generalizado verificado na aprendizagem de programação.
Aprender a programar é um processo difícil e exigente para a maioria dos
alunos. No aprendizado de programação, além de conceitos básicos existem conceitos
difíceis de serem assimilados, como iteração, recursão, passagem de parâmetros, etc.
[Rocha 1991]. Não é raro ouvir que “programação não é para todos”. Esta é uma visão
simplista daqueles que não questionam a maneira de ensinar. Porém, para uma razoável
parcela da comunidade científica, surgem questionamentos sobre como ensinar
programação. São pesquisadores preocupados em entender o processo de aprender a
programar, detectando falhas e dificuldades deste aprendizado e sugerindo alternativas,
de modo a facilitar o aprendizado de programação.
Diversos tipos de ferramentas e ambientes têm sido propostos com o objetivo de
facilitar o aprendizado de lógica e linguagens de programação. São mini-linguagens,
mundos programáveis, ambientes de desenvolvimento controlados, ferramentas de
animação, etc. Dentre outros, podemos destacar AMBAP [AMBAP 2002], ASTRAL
[Rezende e Garcia 1995], AUTOMATA SIMULATOR e IC [Jandl e Zuchini 1999], CTutor [Song et al. 1997], BALSA-II [Brown 1988], ZEUS [Brown 1991], SICAS
[Gomes 2000], etc. A realidade é que não existem indicações de uma vasta utilização
destas ferramentas que acabam tornando-se apenas resultados de produtos de
investigação, sem grande divulgação junto à maioria dos professores e
alunos [Gomes e Mendes 2000].
Apesar de várias metodologias propostas terem verificado melhores índices de
aprendizado no domínio de Programação, não se encontrou na literatura pesquisada,
metodologias que possibilitem tratar cada aprendiz de maneira diferenciada. Ou seja, as
metodologias geralmente são aplicadas, de maneira uniforme em turmas inteiras.
Alunos não são iguais: possuem origens, experiências e habilidades diferentes.
Isto justifica, em parte, o fato de alunos de uma mesma classe, submetidos às mesmas
condições de ensino, apresentarem resultados distintos [Cardoso e Jandl 1998] e reforça
a necessidade do uso de técnicas variadas que permitam ampliar os resultados de
ensino. É claro que, apesar de cada um aprender de forma diferente, existem também
pontos comuns a certos grupos de alunos: são os estilos de aprendizagem.
Não se conhece, no entanto, nenhum processo de aferição da aprendizagem que
permita ao coordenador ou à Instituição acompanhar o aprendizado de cada um dos
alunos e muito menos medir o seu conhecimento prévio.
Este trabalho tem com objetivo propor um modelo de acompanhamento da
aprendizagem de programação durante todo o curso, apoiado por um Sistema Tutor
Inteligente. Este modelo poderá também ser aplicado em outras disciplinas e áreas de
conhecimento, não ficando restrito ao domínio aqui proposto.
O artigo está organizado como segue. Na Seção 2 discute-se o sistema de
avaliação existente nas disciplinas de Programação de Computadores. Na Seção 3 é
apresentado o modelo proposto para avaliação e acompanhamento contínuo da
aprendizagem. Na Seção 4 são apresentadas algumas considerações acerca deste
trabalho e resultados esperados.
2. Avaliação de Aprendizagem de Programação: O Sistema Atual
Aprendizado de programação, principalmente nas disciplinas introdutórias, é um dos
mais graves problemas encontrados nos cursos de Informática. Para muitos estudantes,
a primeira experiência no aprendizado de programação acaba se tornando uma grande
barreira. As dificuldades encontradas podem ser diagnosticadas não somente pelo alto
grau de repetência nas disciplinas introdutórias, mas também pelas dificuldades
demonstradas pelos estudantes nas disciplinas avançadas que exigem o pré-requisito de
programação. Isto faz com que o problema se propague indefinidamente, sem que seja
adotada qualquer medida para a reabilitação do aprendiz. Com isto, muitos estudantes
completam seus cursos sem as habilidades de programação desejadas tais como
raciocínio lógico, resolução de problemas, etc. Em parte, isto é decorrência da
dificuldade encontrada pelos professores para acompanharem efetivamente as atividades
laboratoriais de programação, dado o grande número de estudantes geralmente sob sua
supervisão [Tobar 2001].
É sabido que os critérios de avaliação utilizados pelas instituições não são
satisfatórios, uma vez que o fato de um aluno obter média 5.0 numa disciplina de
programação, não indica que este aluno sabe 50% de tudo daquilo que foi abordado.
Pode ser que ele tenha aprendido muito bem um tópico do curso e quase nada de outros
tópicos correlacionados. Imagine por exemplo um aluno que assimilou muito bem os
tópicos iniciais como declaração de variáveis, entrada e saída de dados, comandos
condicionais, laços de repetição, todos trabalhando com variáveis simples, mas que não
consegue aplicar os mesmos tópicos quando é necessário utilizar variáveis estruturadas
(indexadas, heterogêneas, etc.). Haja vista que normalmente uma aplicação completa
exige estruturas simples e complexas de programação o estudante acabará tendo muitos
problemas de acompanhamento nas disciplinas avançadas. Outro problema grave é a
falta de comunicação entre os professores das várias disciplinas, sejam elas do mesmo
semestre ou de semestres seguintes.
Observando-se o plano de desenvolvimento de várias disciplinas de
programação, em diferentes instituições, constata-se que os critérios de avaliação não
variam muito. Normalmente esta avaliação engloba uma prova e um projeto a cada
bimestre ou trimestre e a entrega de listas de exercícios. Talvez as “listas de exercícios”
e os “projetos” sejam as ferramentas mais eficazes no aprendizado de programação.
Sabe-se que programação é uma arte que se aprende na prática e não apenas por
contemplação. É claro que estudar programas prontos, testar, entender o que o
programa faz também ajuda na aprendizagem, mas nada substitui a tarefa de escrever o
programa a partir de um problema proposto. A quantidade de “programas” escritos
durante um curso revela a ênfase de programação que este curso tem [Kurnia 2001].
No entanto, como a maioria dos cursos, principalmente em instituições privadas, são
desenvolvidos com turmas grandes (entre 50 e 100 alunos), os professores acabam
reduzindo a quantidade de programas a serem entregues pelos alunos, uma vez que os
mesmos não têm condições de corrigir tantos trabalhos, com detalhes de comentários,
capazes de dar feedback com mais qualidade para o aluno. Seguindo a sistemática de
ensino de que "matéria dada é matéria aprendida e portanto matéria cobrada", a prova
bimestral (ou trimestral) acaba sendo a principal fonte para o diagnóstico do estado
mental do aluno na disciplina. Se no cômputo geral o aluno conseguir atingir a média
para aprovação ele vai adiante, caso contrário ele terá que refazer a disciplina,
provavelmente simultaneamente com outras disciplinas de programação, uma vez que
poucas instituições trabalham com o pré-requisito formal que impede o aluno de cursar
uma disciplina mais avançada sem ter sido aprovado numa disciplina básica.
Vale ressaltar que não se defende aqui o uso de retenção como solução para o
problema, mas não se pode condenar o aluno a levar o problema de aprendizagem
indefinidamente. E é fato que isto acaba acontecendo, pois todos os alunos são tratados
de maneira uniforme, ou seja, a mesma aula e as mesmas atividades são pensadas e
preparadas para quem já sabe muito, alguma coisa ou nada sobre o assunto. É claro que
com turmas gigantescas e apenas com os recursos e métodos atuais, mesmo que
quisesse, dificilmente o professor conseguiria dar um atendimento personalizado para
cada aluno.
Desta forma, desconhecer o que o aluno já sabe ou não, acaba sendo uma defesa
para o professor que pode assim dar uma aula homogênea. Isto é menos grave em
disciplinas introdutórias quando o professor assume que ninguém sabe nada e parte do
básico, mas é penoso para o aluno e professor, em disciplinas avançadas, quando se
assume que o aluno tem o pré-requisito.
Não se pode deixar de pensar em uma solução para o problema simplesmente
por achar que a grande quantidade de alunos nas turmas é uma realidade difícil de ser
modificada porque implica em mudança de políticas educacionais, diminuição de
lucros, aumento de custos, etc. Este projeto concentra-se na idéia de que é
extremamente necessário definir um modelo que possibilite fazer um acompanhamento
individualizado sobre o estado mental do estudante, em cada item dos cursos de
programação, das disciplinas básicas até aquelas consideradas avançadas, para que não
se perca tempo com conceitos que o aluno já sabe e para que se possa concentrar
esforços nas reais deficiências de cada estudante.
Com as ferramentas de avaliação utilizadas no sistema existente, apenas o
próprio aluno conseguiria identificar o seu estado mental em cada item, se ele fosse
capaz de perceber efetivamente o que ele não sabe. Mas infelizmente os alunos não
estão preparados para isto. Certamente, em conjunto com o acompanhamento da
aprendizagem proposto por este trabalho, será necessário treinar os alunos na tarefa de
aprender a aprender como propõe [Yang 1998] para o aprendizado de uma segunda
língua mas que pode ser estendido para o campo da aprendizagem de programação e
linguagens de programação.
3. Um Modelo para o Acompanhamento da Aprendizagem Apoiado por um
Sistema Tutor Inteligente
O ambiente proposto deverá permitir ao professor registrar e acompanhar o estado
mental do estudante em cada tópico das disciplinas de programação, durante todo o
curso. Desta forma, o ambiente poderá ser uma ferramenta de apoio aos coordenadores
de curso na distribuição dos alunos em turmas, fornecendo subsídios, por exemplo, para
a formação de turmas de nivelamento, ou mesmo de turmas homogêneas ou mais
equilibradas. De posse de estatísticas da turma, em cada item dos pré-requisitos
exigidos, o professor poderá adotar estratégias que possibilitem um "tratamento" capaz
de recuperar os alunos com deficiência de aprendizagem. Como este é um projeto em
fase inicial, apresentamos a seguir algumas atividades que já estão sendo realizadas e
outras que estão sendo planejadas para cumprir o objetivo do trabalho.
3.1 Um Modelo Conceitual de Conteúdos Educacionais sobre Programação de
Computadores
Os currículos dos cursos da área de Informática (Ciência da Computação, Sistemas de
Informação, etc) geralmente apresentam duas ou três disciplinas de programação por
semestre letivo, e a cada disciplina o professor acaba revendo conceitos básicos ao
ensinar uma nova linguagem de programação: declaração de variáveis, blocos,
comandos condicionais, comandos de repetição, etc. O objetivo é analisar os currículos
dos cursos de graduação em informática e identificar todas as disciplinas que envolvem
programação, e através da análise dos conteúdos programáticos, criar uma base capaz
de cobrir todos os conceitos, eliminando as redundâncias. A idéia é formar um
programador amplo com todos os conceitos bem sedimentados. Num levantamento
rápido e inicial, realizado a partir do "Plano Pedagógico para os cursos de Ciência da
Computação", segundo as diretrizes curriculares do MEC, foi possível relacionar
disciplinas com as seguintes características:
-
Básicas: disciplinas que não exigem pré-requisitos;
-
Intermediárias: disciplinas que possuem um ou 2 níveis de pré-requisitos, ou seja,
disciplinas que, para serem cursadas, exigem disciplinas base.
-
Avançadas: disciplinas que exigem três ou mais disciplinas base e/ou intermediárias
para o curso.
O produto final desta atividade será um modelo conceitual de conteúdos
educacionais da área de Programação de Computadores, utilizando ferramentas
adequadas para representação de conhecimento como Mapas Conceituais, Mapas de
Informação, Mapas de Hierarquias de Aprendizagem, Mapas Tridimensionais [Leite
1999] ou Ontologia [Marietto 2000].
Como trabalho inicial, criou-se uma ontologia da disciplina Introdução à
Computação (IC-ITA) ministrada no primeiro semestre do curso de graduação em
Ciência da Computação do Instituto Tecnológico de Aeronáutica/ITA, utilizando a
ferramenta Protégé-2000 [Protégé-2000 2002] . Um fragmento desta ontologia pode ser
visto na Figura 1.
Figura 1. Fragmento da Ontologia de Linguagem de Programação
criada no Protégé-2000
Ontologias fornecem o conhecimento estruturado e uma infra-estrutura para
integrar bases de conhecimentos, independente da implementação e constituem uma
ferramenta poderosa para suportar a especificação e a implementação de sistemas
computacionais de qualquer complexidade [Guizzardi 2000]. Geralmente o termo é
visto como uma descrição de alto nível para descrever conceitos que organizam partes
de uma base de conhecimento [Obitko 2001].
Para a Inteligência Artificial, ontologias especificam um vocabulário relativo a
um determinado domínio. Este vocabulário define os termos (classes, predicados,
entidades, propriedades e funções) e as relações entre estes termos.
3.2 Identificando o Estado Mental do Aprendiz
No estudo do processo do ensino-aprendizagem fica evidenciado que é imprescindível
considerar o mundo onde o aluno está situado. Este é o ponto de partida para a
aprendizagem significativa [Moreira 1999].
Como primeira atividade para determinar o que o aluno já sabe elaborou-se um
questionário abordando todos os tópicos do conteúdo da disciplina IC-ITA, baseado na
ontologia criada, no qual o aluno deverá registrar o seu grau de confiança em relação a
estes conteúdos. Para cada tópico o aprendiz deverá assinalar valores entre zero e cinco.
Quanto mais próximo de cinco, maior o grau de confiança e quanto mais próximo de
zero, menor o grau de confiança do aluno sobre seus conhecimentos naquele tópico.
Com este questionário será possível identificar os alunos que já possuem alguma
formação em determinados conteúdos, bem como estabelecer o quanto cada aluno
acredita saber. Vale ressaltar que o objetivo deste tipo de questionário é o de medir o
grau de confiança do aluno naquilo que ele já sabe, e não avaliar o estudante. Na Figura
2 apresentamos uma parte do questionário.
Figura 2. Parte do questionário para levantamento do grau de confiança
dos alunos aplicado no ITA
O resultado do questionário servirá para modelar o estado mental de cada
aprendiz, que será atualizado, no andamento da disciplina, a partir das avaliações e
registros do professor (veja item 3.3). É claro que as avaliações deverão ser pensadas
em termos da ontologia para que seja possível aferir e registrar o que aprendiz sabe
sobre cada tópico.
Análise Preliminar das Respostas do Questionário do ITA
Neste primeiro momento o questionário foi aplicado para 38 alunos de duas turmas, T1
e T3, de primeiro semestre da disciplina IC-ITA. Como são alunos ingressantes, nada se
esperava destes alunos em termos dos conteúdos abordados na disciplina. No entanto,
alunos que cursaram segundo grau técnico, que fizeram cursos de informática ou que
são autodidatas, efetivamente poderiam apresentar conhecimentos sobre determinados
conteúdos. Na Tabela 1, apresentamos um resumo dos resultados das 73 questões,
agrupadas em tópicos.
Com as médias obtidas nas duas turmas, é possível afirmar que boa parte dos
alunos não acredita saber quase nada sobre os conteúdos abordados na disciplina, exceto
no primeiro item (conceitos básicos de programação) que obteve respectivamente média
1.75 e 1.33 para as turmas T1 e T3, de um máximo de 5.0. Uma outra leitura pode ser
feita pela coluna "Quantidade de Respostas diferentes de zero" é que cerca de 3 a 8
alunos expressaram ter algum conhecimento (entre 1 e 5) sobre alguns tópicos da
disciplina.
Vale ressaltar que analisando os questionários individuais nota-se que foram
sempre os mesmos alunos (de 4 a 6) que responderam valores diferentes de zero para as
questões dos tópicos mais avançados. Isto possibilitará ao professor fazer um trabalho
diferenciado com estes alunos, que poderão por exemplo atuar como monitores dos
colegas dentro da própria turma, ou desenvolverem atividades mais avançadas.
Tabela 1. Resultados consolidados do questionário aplicado na disciplina IC-ITA
ITEM
Quantidade de respostas
diferentes de zero
Média das respostas
(valores entre 0 e 5)
T1
T3
T1
T3
Conceitos Básicos de Programação
22
16
1.75
1.33
Algoritmos e Programas em C
8
6
0.56
0.57
Estruturas de Controle
8
4
0.59
0.37
Comandos de Entrada e Saída
6
6
0.47
0.39
Variáveis Estruturadas
4
3
0.30
0.17
Subprogramação
4
5
0.35
0.26
Ponteiros
2
3
0.30
0.17
Noções de Estruturas de Dados
4
3
0.39
0.31
Levantamento de Dados com Alunos do 2º ano do IMES
Em paralelo com a aplicação deste questionário em turmas iniciantes (primeiro
semestre), um outro levantamento está sendo feito com turmas do segundo ano dos
cursos de graduação em Ciência da Computação e Sistemas de Informação do Centro
Universitário São Caetano do Sul, na disciplina de Estruturas de Dados (ED-IMES) que
é uma disciplina que tem como pré-requisito os conteúdos aprendidos na disciplina
correspondente a Introdução à Programação.
Desta vez, o objetivo será medir o grau de confiança dos alunos que já passaram
por um processo inicial de formação em Programação (uma disciplina de 144h/a,
durante um ano). Muitos destes alunos foram reprovados na referida disciplina mas
estão cursando a disciplina ED-IMES que não possui pré-requisito formal. Com o
resultado deste questionário será possível modelar o estado mental destes aprendizes no
referido domínio de conhecimento, e traçar comparativos com os resultados obtidos na
disciplina anterior (médias finais). Vale ressaltar que para este grupo o trabalho está
começando no meio do caminho, diferentemente do grupo do ITA.
Mesmo os alunos tendo passado pela disciplina introdutória, não existem
registros do que efetivamente cada aluno sabe ou não sabe, sendo impossível
estabelecer um programa de recuperação ou nivelamento para os alunos com
deficiências em determinados conteúdos. O questionário no IMES está sendo aplicado
em cinco turmas, totalizando cerca de 300 alunos. Os resultados ainda estão em fase de
tabulação e análise.
Tanto no ITA quanto no IMES, a aplicação do questionário no formato
impresso aconteceu em virtude do momento inicial da pesquisa. Mas vislumbra-se que
esta atividade seja um componente de um Sistema Tutor Inteligente/STI capaz de apoiar
todo o trabalho de acompanhamento da aprendizagem de cada estudante. O registro
num STI da ontologia, dos conteúdos, dos exercícios, das avaliações comporá uma base
de conhecimentos sobre o domínio de programação de computadores.
3.3 Critérios e Meios para a Atualização do Estado Mental do Aprendiz
Para cada conceito a ser aprendido pelo aluno, em cada disciplina (ontologia), será
necessário estabelecer um critério capaz de aferir com segurança se o aluno aprendeu ou
não aquele conceito, para que assim seja atualizado o seu estado mental no STI. Por
exemplo, para certificar o aluno no tópico de entrada de dados na disciplina de
“Princípios de Desenvolvimento de Algoritmos” (ou com nome similar) pode se
estabelecer um conjunto de problemas, com vários níveis de dificuldade que o aluno
deverá resolver individualmente, com ou sem o uso de um computador. O objetivo
desta etapa não é dizer qual problema o aluno deve resolver, mas identificar uma classe
de problemas a serem resolvidos para certificar o aluno num determinado item de
programação.
A certificação de um grupo grande de alunos utilizando apenas ferramentas
manuais com certeza não será .suficiente. Será necessário fazer uso também de
instrumentos automáticos. Há controvérsias sobre a real eficiência dos Sistemas de
Avaliação Automáticos de Programação. O fato é que também há muitas falhas nos
métodos de correção atual. Normalmente o professor utiliza uma resposta padrão como
parâmetro de correção de programas. Sabe-se, no entanto que em programação há
muitas maneiras, mais ou menos eficientes, de se chegar a um algoritmo que forneça o
resultado desejado. Assim o professor pode considerar errado um programa, que está
muito longe da sua resposta padrão, mas que também realiza o que foi pedido no
enunciado [Kurnia 2001].
A ausência ou exagero de comentários nos programas, a forma como o aprendiz
apresenta o programa (estética, endentação, etc.), os nomes de variáveis utilizados e até
mesmo o humor de quem corrige podem afetar a nota final. . Justifica-se, portanto, a
utilização de uma ferramenta que permita fazer a avaliação on-line da aprendizagem de
programação, não como um critério único, mas como um critério adicional que torne o
ato de avaliar mais justo para todas as partes.
3.4 Um Sistema Tutor Inteligente para a Avaliação e Acompanhamento Contínuo
da Aprendizagem
O acompanhamento contínuo de cada aprendiz, e o tratamento personalizado a cada
estudante, principalmente em turmas com um número elevado de alunos, só será
possível se for apoiado por sistemas
inteligentes , ou seja, auxiliados por
computadores.
Os processos de aprendizagem inteligentemente auxiliados por computador
requerem a implementação de sistemas complexos, dinâmicos e adaptativos. Estes
sistemas devem ser capazes de se adequar ao estado mental de cada estudante, num
dado instante, a partir de um modelo histórico e do desempenho instantâneo do
aprendiz. Atualmente, os Sistemas de Tutoria Inteligente são os que melhor respondem
a estas exigências [Leite 1999].
A arquitetura do Sistema Tutor Inteligente que irá apoiar o ambiente de
acompanhamento e avaliação contínua de aprendizagem ainda está sendo projetada, mas
terá como base cinco módulos a saber : domínio, estudante, especialista, tutor e
comunicação. Veja esquema gráfico da arquitetura proposta para o STI na Figura 3.
Pretende-se ainda, utilizar a tecnologia de Sistemas Multiagentes.
USUÁRIO
MÓDULO DE
COMUNICAÇÃO
MÓDULO DO
TUTOR
CONTROLE
MÓDULO DO
DOMÍNIO
MÓDULO DO
ESTUDANTE
MÓDULO DO
ESPECIALISTA
Figura 3. Proposta de Arquitetura para o STI
A seguir, apresentamos a descrição inicial de alguns serviços a serem realizados
pelo núcleo do STI em seus módulos principais.
Módulo do Domínio: O domínio a ser tutorado pelo STI deverá abranger todos os
assuntos de programação, do básico ao avançado, envolvendo diversos paradigmas
(programação procedural, programação orientada a objetos, programação concorrente,
programação distribuída, programação em lógica, etc.). Estes assuntos estarão dispostos
de maneira hierárquica, descrevendo os requisitos. Um outro atributo necessário é
indicar em que disciplinas cada item será abordado. É claro que a idéia é minimizar a
quantidade de disciplinas em que cada assunto é abordado justamente para evitar a
redundância de conteúdos que é um dos problemas existentes nas grades curriculares e
ementas atuais. Na Figura 4, os conceitos são representados pelos retângulos com letras
e as disciplinas pelos círculos (que podem abranger vários conceitos). A Figura 4
mostra ainda que pode haver intersecção de conceitos em mais de uma disciplina.
A ontologia que está sendo definida para o domínio de programação conforme
descrito no item 3.1 deste artigo servirá de base para a alimentação deste módulo.
A
B
F
E
H
L
C
I
M
D
G
J
K
N
O
Figura 4. Conceitos x Disciplinas
Módulo do Estudante: Deverá descrever o “estado mental” do aprendiz, ou seja,
armazenar informações referentes ao que o estudante conhece sobre os vários tópicos de
programação.
O questionário de identificação do grau de confiança do aprendiz descrito no
item 3.1 será utilizado como fonte inicial para compor o modelo do estudante.
Posteriormente, outros mecanismos poderão ser utilizados nesta etapa. Por exemplo,
[Cury 1996] propõe um conjunto de ferramentas de autoria para a modelagem dos
estereótipos de aprendizes e se baseiam numa curva representativa do processo de
aprendizagem.
A atualização do estado mental do aprendiz, no andamento do curso deverá estar
atrelada a Sistemas de Avaliação Automática como o proposto em [Kurnia 2001], ou a
Avaliação Autêntica através de Portfolio descrita em [Sistêlos et al. 1998] ou mesmo
considerar diversas ferramentas para verificar o estado mental atual do aprendiz.
Módulo do Especialista: Nos modelos clássicos de STI, o módulo do especialista era
o que tratava do domínio do conhecimento. Já no modelo apresentado por [Leite 1999]
o módulo dos conteúdos recebeu o nome de Módulo do Domínio enquanto o Módulo
de Comunicação recebeu as atribuições de Interface com o Especialista.
O que se pretende com o módulo do Especialista nesta proposta é que ele
contenha um modelo, considerando-se as habilidades e competências que cada
estudante deve atingir para obter o nível de aprendizagem exigido no referido domínio
de conhecimento especificado no módulo do domínio. Também serão definidos todos
os instrumentos, tecnologias e conceitos necessários ao correto e perfeito aprendizado
que leva o estudante ao nível de especialista.
O objetivo é que este modelo sirva como parâmetro de comparação com o
estado mental atual do aprendiz. Para cada item do módulo do domínio serão
especificados níveis hierárquicos de conhecimento. A Figura 5 mostra estes níveis.
Na base da pirâmide encontram-se os conhecimentos considerados mínimos para
o aprendizado. Em seguida, no nível de conhecimento complementar, o aluno deverá
ser capaz de generalizar os conhecimentos adquiridos no nível anterior. Finalmente, no
topo da pirâmide o aluno deverá ser capaz de abstrair os diversos conhecimentos
adquiridos, aplicando-os em situações problema diferentes.
EXTRA
COMPLEMENTAR
EXIGIDO
Figura 5. Níveis de Conhecimento
Para garantir que o conhecimento mínimo exigido seja atingido, o módulo do
especialista sofrerá um superdimensionamento de 200%. Atingindo 100% o aluno terá,
comprovadamente, assimilado o conhecimento mínimo exigido, o que equivaleria nas
medidas educacionais atuais, a uma nota 5.0. O aluno que atingir 200% será
considerado perito neste conteúdo.
Desta forma, ao final do curso, o aluno que estiver próximo dos 200% terá
atingido um estado de proficiência em programação, e com isto não terá problemas de
acompanhamento em disciplinas avançadas.
Vale enfatizar que as medidas educacionais utilizadas no sistema atual (com
média 5.0) possibilitam que o aluno seja promovido sem os conhecimentos mínimos,
uma vez que há um subdimensionamento no processo de avaliação.
Módulo do Tutor: Conterá o plano pedagógico das disciplinas sendo responsável pela
decisão sobre como e que atividades pedagógicas serão apresentadas, sempre
interagindo com o módulo do estudante [Cury 1996].
O módulo do tutor fará a ligação entre os módulos do estudante, domínio e
especialista. O sistema tutor inteligente aqui proposto funcionará como um monitor de
laboratório, sempre presente para observar o aprendizado do estudante. Assim, a cada
conceito discutido em sala de aula, aplica-se uma prática laboratorial, onde tais
conceitos possam ter suas funcionalidades testadas e o estudante seja motivado a
aprender mais.
A prática laboratorial compõe-se de exercícios individualizados que permitirão uma
avaliação de como cada estudante está absorvendo os diversos conceitos relacionados a
um determinado conteúdo. Para a escolha destes exercícios pode-se, por exemplo,
utilizar medidas cognitivas, como as apresentadas em [Pimentel e Direne 1998], que
descrevem a possibilidade de automação na escolha do próximo programa a ser
trabalhado com o aprendiz, simulando a experiência do professor.
4. Considerações Finais
O modelo proposto para a avaliação e acompanhamento contínuo da aprendizagem tem
como objetivo contribuir para um maior rendimento dos estudantes de linguagem de
programação, incentivando-os a redescobrirem seus potenciais e conseqüentemente
melhorar os seus processos de aprendizagem.
O modelo também fornecerá subsídios para coordenadores e professores de
disciplinas subseqüentes a respeito do estado mental de cada estudante e,
conseqüentemente, de turmas inteiras.
Como descrito anteriormente, algumas atividades já estão sendo realizadas
manualmente, a fim de se coletar dados, permitindo assim validar o modelo, sem ter
que esperar que um Sistema Tutor Inteligente esteja pronto.
Posteriormente, à medida que ferramentas de apoio forem construídas, pretendese aplicar a metodologia de maneira integrada, abrangendo disciplinas subseqüentes
para permitir validar se o modelo realmente ajuda a melhorar a aprendizagem dos
alunos e o respectivo desempenho em disciplinas avançadas. Uma outra possibilidade é
validar o modelo com outras disciplinas e áreas de conhecimento.
Referências
AMBAP (2002). AMBAP - Ambiente de Aprendizado de Programação.
http://www.ufal.br/tci/ambap/ e http://www.dcc.ufal.br/projetos/ambap.htm
Brown, M. (1988). Exploring Algorithms Using BALSA-II. IEEE Computer. v. 21 no.
5.
Brown, M.H. (1991). Zeus: A System for Algorithm Animation and Multi-View
Editing, Research Report n. 75, DEC Systems Research Center, Palo Alto, CA.
Cardoso, S. M. V. e Jandl, Peter (1998). Estilos de Aprendizagem: Aprender a
Aprender.
Cury, Davidson (1996). Flama: Ferramentas e Linguagem de Autoria para a
Modelagem da Aprendizagem. Tese de Doutorado. São José dos Campos: Instituto
Tecnológico da Aeronáutica.
Gomes, A. J. (2000). Ambiente de Suporte à Aprendizagem de Conceitos Básicos de
Programação. Dissertação de Mestrado. Universidade de Coimbra.
Gomes, A. e Mendes, A. (2000). Suporte à Aprendizagem da Programação com o
Ambiente SICAS. Actas do V Congresso Ibero-Americano de Informática
Educativa, Viña del Mar, Chile.
Guizzardi, G. (2000) Uma Abordagem Metodológica de Desenvolvimento para e com
Reuso, Baseada em Ontologias Formais de Domínio. Dissertação de Mestrado.
Universidade Federal do Espírito Santo.
Jandl, Peter Jr. e Zuchini, Márcio H. (1999). IC: Um Interpretador de Linguagem C. IN
Projeções - USF, Bragança Paulista, V. 17, pp. 101-112.
Kurnia, A., Lim, A e Cheang, B. (2001). Online Judge. Computer & Education, v. 36
pp 299-315.
Leite, A. de Sá (1999). Um Modelo de Sistema Educativo Cognitivista Baseado em
Tutoria Inteligente Adaptativa Via Aderência Conceitual. Tese de Doutorado. São
José dos Campos: Instituto Tecnológico da Aeronáutica.
Marietto, M. G. B. (2000). Definição Dinâmica de Estratégias Instrucionais em
Sistemas de Tutoria Inteligente: Uma Abordagem Multiagentes na WWW. Tese de
Doutorado. São José dos Campos: Instituto Tecnológico da Aeronáutica.
Moreira, Marco A. Teorias de Aprendizagem. São Paulo: EPU, 1999.
Moreira, Marco A., Masini, Elcie F.S. Aprendizagem Significativa: a Teoria de David
Ausubel. São Paulo: Centauro, 2001
Obitko, Marek (2001). Ontologies: Description and Applications. Series of Research
Reports – 126/01. Czech Techical University, Prague.
Pimentel, A. e Direne, I. (1998). Medidas Cognitivas para o Ensino de Programação de
Computadores com Sistemas Tutores Inteligentes. Anais do IX Simpósio Brasileiro
de Informática na Educação (SBIE'98), Fortaleza - CE.
Protege-2000 (2002). Protégé-2000 home page, http://protege.stanford.edu/index.html.
Rezende, P.J. e Garcia, I.C. (1995). Astral: Animação Gráfica de Algoritmos e
Estruturas de Dados - Uma Abordagem Construtiva, VIII Simpósio Brasileiro de
Computação Gráfica e Processamento de Imagens, 317-318.
Rocha, Helena. V. (1991). Representações Computacionais Auxiliares ao Entendimento
de Conceitos de Programação. Unicamp.
Sistêlos, A. J.C.M., Schiel, U., Dominguez, A. H. (1998). Um Sistema de Apoio ao
Método de Avaliação Autêntica: Projeto POETA (Portfolio Eletrônico Temporal e
Ativo). Anais do IX Simpósio Brasileiro de Informática na Educação (SBIE'98),
Fortaleza - CE.
Song, J. S., Hahn, S. H., Tak, K. Y. e Kim, J. H. (1997). An Intelligent Tutoring
System for Introductory C Language Course. Computers Education. Vol 28 No. 2.
Tobar, Carlos Miguel et al. (2001). Uma Arquitetura de Ambiente Colaborativo para o
Aprendizado de Programação. XII Simpósio Brasileiro de Informática na Educação,
Vitória - ES.
Yang, Nae-Dong (1998). Exploring a New Role for Teachers: Promoting Learner
Autonomy. System, v. 26 pp 127-135.
Download

A caminho de um ambiente de avaliação e acompanhamento