Download PDF
ads:
UNIVERDIDADE PRESBITERIANA MACKENZIE
MARIANA BRÓLIO LOCATELLI
Ambiente de Apoio à Avaliação Continuada Baseado em
Aprendizagem Significativa
Dissertação apresentada à Universidade
Presbiteriana Mackenzie, como requisito
parcial para a obtenção do título de Mestre
em Engenharia Elétrica na área de
Engenharia de Computação.
Orientador: Dr. Nizam Omar
São Paulo
2007
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
UNIVERDIDADE PRESBITERIANA MACKENZIE
MARIANA BRÓLIO LOCATELLI
Ambiente de Apoio à Avaliação Continuada Baseado em
Aprendizagem Significativa
Orientador: Dr. Nizam Omar
São Paulo
2007
ads:
Ao meu pai.
Agradecimentos
1. Agradeço inicialmente ao Professor Dr. Nizam Omar pela compreensão, apoio,
confiança e paciência.
2. A minha mãe pelo incentivo que me deu.
3. À minha irmã, sempre ao meu lado, em todos os momentos.
4. Ao Professor Edson pelos valiosos conselhos e ensinamentos.
5. A todos que direta ou indiretamente contribuíram com este trabalho e
compartilharam seus conhecimentos.
Resumo
A democratização da informação transforma uma sala de aula em um ambiente onde é
impossível ao professor estabelecer o domínio de conhecimentos de cada aprendiz e com
isso individualize o ensino. A heterogeneidade do nível do conhecimento dos alunos está
presente e não é mais uma condição das turmas iniciais dos cursos de informática, mas uma
condição geral. A base da formação das habilidades de um indivíduo é feita através de
conceitos adquiridos e competências assimiladas, portanto um aluno pode saber muito,
pouco ou nada sobre um determinado conceito em cada etapa do processo de ensino
aprendizagem. Este trabalho apresenta um ambiente modelado sobre as relações entre os
conceitos a serem aprendidos, dispostos na forma de ontologias, com o objetivo de
determinar o conjunto do conhecimento adquirido por um aluno em um determinado
período de tempo, o nível de aquisição de conhecimento (NAC) do aprendiz, sob o método
de avaliação contínua da aprendizagem. O ambiente foi construído sobre a ontologia do
Curso de Ciência da Computação da Universidade Presbiteriana Mackenzie, desenvolvida
neste trabalho.
Palavras-chave: Avaliação Continuada, Aprendizagem Significativa, Ontologia, Mapa
Conceitual, Agrupamento, Ciência da Computação.
Abstract
The democratization of information transform a classroom in an environment where it’s
impossible for a teacher to establish each apprentice’s domain of knowledge and to
individualize the teaching learning process. The heterogeneity of the level of student’s
knowledge acquired level, is present and isn’t anymore a condition of the initial classrooms
of computer science’s courses but a general condition. The background of individual’s
skills is based on the concepts acquired and assimilated, then a student may knows a lot, a
little or nothing about some concept in each step of the teach-learning process. This work
presents an environment modeled by the relations among concepts to be learned based on
ontology and concept maps, with the objective of determinate student’s knowledge
acquired in a distinct period of time, the knowledge’s acquisition level (NAC) of a student,
using the methodology of continued evaluation of learning. The environment was built
based on the ontology of the Computer Science undergraduate Course of the Universidade
Presbiteriana Mackenzie, developed in the present work.
Key-words: Continued Evaluation, Significant Learning, Ontology, Conceptual Maps, and
Grouping, Computer Science.
Lista de Figuras
Figura 1.1 - Níveis de conhecimento que um aluno pode adquirir durante um curso............ 3
Figura 2.1 - Modelo de Hierarquia de Conceitos - Teoria da Aprendizagem Significativa de
Ausubel (LEITE, 1999, modificada)....................................................................................12
Figura 2.2 - Exemplo de aprendizagem significativa em um curso de Ciência da
Computação..........................................................................................................................13
Figura 3.1 - Atividade do processo de análise de domínio e formação da ontologia........... 19
Figura 3.2 - Mapa Conceitual - If...else................................................................................21
Figura 3.3 - Arquitetura Geral do ambiente computacional................................................. 22
Figura 4.1 - Exemplos de Conceitos.....................................................................................26
Figura 4.2 - Relação entre Disciplinas e Conceitos..............................................................26
Figura 4.3 - Dependências entre Conceitos..........................................................................26
Figura 4.4 - Instâncias Normalizadas em uma Ontologia ....................................................27
Figura 4.5 - Parte da hierarquia da ontologia ....................................................................... 28
Figura 4.6 – Cadastro de classes no Protegé........................................................................29
Figura 4.7 - Diagrama de Classes da Ontologia...................................................................29
Figura 4.8 – Rotina de migração dos dados do Banco Protegé para Banco de Dados
Relacional PostreSQL ..........................................................................................................32
Figura 4.9 - Instância da classe conceito no Protegé ...........................................................32
Figura 5.1 - Página inicial do ACAvA .................................................................................35
Figura 5.2 – Formas de Atualização do NAC ......................................................................36
Figura 5.3 - ACAvA: Atualização do NAC ......................................................................... 37
Figura 5.4 – Arquitetura geral do ambiente de computação e seus componentes................ 39
Figura 5.5 - Visão Geral da Arquitetura do Sistema ............................................................ 41
Figura 5.6 - Entidades e relacionamentos do banco de dados utilizado no aplicativo ......... 43
Figura 5.7 - Diagrama entidade-relacionamento para conceitos (PEZZA, 2004, modificada)
..............................................................................................................................................44
Figura 5.8 - Diagrama de casos de uso.................................................................................45
Figura 5.9 - Casos de Uso do Ator Professor .......................................................................46
Figura 5.10 - ACAvA - Funcionalidade de cadastramento de exercícios ............................ 48
Figura 5.11 - Casos de Uso do Ator Administrador.............................................................49
Figura 5.12 - Casos de Uso do Ator Aluno .......................................................................... 49
Figura 5.13 - Diagrama de classes do Sistema.....................................................................51
Figura 5.14 - Classe Screen ..................................................................................................61
Figura B.1 - Cadastrar Disciplinas ....................................................................................... 75
Figura B.2 - Cadastrar Conceitos ......................................................................................... 76
Figura B.3 - Cadastrar Aluno ............................................................................................... 77
Figura B.4 - Atualizar NAC ................................................................................................. 78
Figura B.5 - Cadastrar Curso................................................................................................79
Figura B.6 - Login ................................................................................................................ 79
Lista de Tabelas
Tabela 2.1 - Resumo dos paradigmas quanto aos tipos de abordagem da aprendizagem
(PIMENTEL, 2006)..............................................................................................................15
Tabela 4.1 - Dicionário de Termos para representação de conteúdos educacionais ............25
Tabela 4.2 - Componentes da Ontologia .............................................................................. 31
Tabela 5.1 - Atualização do NAC ........................................................................................38
Tabela 5.2 - Atributos e Métodos da classe Conceito .......................................................... 52
Tabela 5.3 - Atributos e Métodos da Classe ConceitoDependencia.....................................52
Tabela 5.4 - Atributos e Métodos da classe ConceitoDisciplina.......................................... 54
Tabela 5.5 - Atributos e Métodos da classe ConceitoExercicio...........................................54
Tabela 5.6 - Atributos e Métodos da classe AlunoConceito ................................................ 55
Tabela 5.7 - Atributos e Métodos da classe Disciplina ........................................................ 56
Tabela 5.8 - Atributos e Métodos da classe CursoDisciplina...............................................57
Tabela 5.9 - Atributos e Métodos da classe Curso ............................................................... 57
Tabela 5.10 - Atributos e Métodos da classe AlunoCurso ................................................... 58
Tabela 5.11 - Atributos e Métodos da classe Aluno.............................................................59
Tabela 5.12 - Atributos e Métodos da classe Usuario ..........................................................59
Tabela 5.13 - Atributos da classe Exercicio ......................................................................... 60
Tabela 5.14 - Atributos da classe Controller ........................................................................61
Tabela A.1 - Especificação de Caso de Uso: Cadastrar Conceito........................................ 70
Tabela A.2 - Especificação de Caso de Uso: Cadastrar Disciplina...................................... 71
Tabela A.3 - Especificação de Caso de Uso: Cadastrar Curso............................................. 71
Tabela A.4 - Especificação de Caso de Uso: Cadastrar Alunos........................................... 72
Tabela A.5 - Especificacao de Caso de Uso: Login ............................................................. 72
Tabela A.6 - Especificação de Caso de Uso: Realizar Exercício ......................................... 73
Tabela A.7 - Especificação de Caso de Uso: Atualizar NAC ..............................................74
Sumário
1 INTRODUÇÃO....................................................................................................................................... 1
1.1 CONTEXTO DE PESQUISA.................................................................................................................. 2
1.2 O PROBLEMA ................................................................................................................................... 2
1.3 A PROPOSTA .................................................................................................................................... 5
1.4 PERGUNTAS DE PESQUISA ................................................................................................................ 6
1.5 OBJETIVOS ....................................................................................................................................... 6
1.6 RESULTADOS ALCANÇADOS ............................................................................................................ 7
1.7 ORGANIZAÇÃO DO TRABALHO ......................................................................................................... 8
2 APRENDIZAGEM SIGNIFICATIVA E AVALIAÇÃO CONTINUADA........................................ 9
2.1 APRENDIZAGEM SIGNIFICATIVA....................................................................................................... 9
2.2 AVALIAÇÃO CONTINUADA DA APRENDIZAGEM ............................................................................. 14
3 MODELO CONCEITUAL DO AMBIENTE DE AVALIAÇÃO CONTINUADA ........................ 17
3.1 ONTOLOGIAS.................................................................................................................................. 17
3.2 MAPAS CONCEITUAIS..................................................................................................................... 20
3.3 AMBIENTES COMPUTACIONAIS DE APRENDIZAGEM E SUA ARQUITETURA LÓGICA......................... 21
4 MODELAGEM ONTOLÓGICA DE UM CURSO DE GRADUAÇÃO E SUA INSTANCIAÇÃO
EM CIÊNCIA DA COMPUTAÇÃO ............................................................................................................ 24
4.1 MODELAGEM ONTOLÓGICA PARA UM CURSO DE GRADUAÇÃO....................................................... 24
4.2 CONSTRUÇÃO DE INSTÂNCIAS........................................................................................................ 31
5 ANÁLISE E CONSTRUÇÃO DO SISTEMA DA AVALIAÇÃO CONTINUADA ....................... 34
5.1 NÍVEL DE AQUISIÇÃO DO CONHECIMENTO..................................................................................... 35
5.2 ARQUITETURA DO ACAVA............................................................................................................ 39
5.3 TECNOLOGIAS UTILIZADAS............................................................................................................ 40
5.4 MODELO CONCEITUAL DE DADOS ................................................................................................. 42
5.5 MODELAGEM UML........................................................................................................................ 44
5.5.1. Diagrama de Caso de Uso........................................................................................................ 44
5.5.2. Diagrama de Classes................................................................................................................ 50
6 CONCLUSÕES FINAIS ...................................................................................................................... 63
6.1 TRABALHOS FUTUROS ................................................................................................................... 64
REFERÊNCIAS ............................................................................................................................................. 65
APÊNDICE A – ESPECIFICAÇÕES DE CASO DE USO ........................................................................ 70
APÊNDICE B – DIAGRAMA UML DE SEQÜÊNCIA ............................................................................. 75
ANEXO I – GRADE CURRICULAR UTILIZADA................................................................................... 80
1
1 Introdução
A aprendizagem é a finalidade de todas as formas de ensino. A avaliação é um
elemento essencial para se conhecer o percurso que os aprendizes fazem ao longo da sua
aprendizagem, de forma sistemática e contínua. É considerada como a parte central do
processo educacional (CUCCHIARELLI, PANTI e VALLENTI, 2000). Entretanto, nem
sempre o resultado da aquisição de conhecimento, obtido através da avaliação em um curso
é satisfatório. Determinadas carreiras, como as relacionadas com informática, têm ementas
com muito conteúdo e o número de alunos nas salas de aulas é grande demais para um
acompanhamento individualizado do professor.
A avaliação da aprendizagem baseada na Web tem se mostrado eficiente e
importante como ferramenta de auxílio ao facilitador. Isto se deve a sua versatilidade, pois
possibilita a criação e aplicação de vários tipos de avaliações de aprendizagem e oferece
rapidez nas correções e divulgação dos resultados das avaliações (TRENTIN, 1999). Desta
forma, ambientes computacionais que gerenciem conteúdos e sua capacidade de
assimilação por parte dos alunos, mostram-se como ferramentas úteis ao professor para
auxiliar no processo de avaliação e complementar a metodologia de ensino.
Este capítulo está organizado em 7 seções. A Seção 1.1 apresenta o contexto da
pesquisa, enfatizando os pontos relevantes que motivaram o desenvolvimento desta
dissertação. A Seção 1.2 descreve o problema a ser resolvido neste trabalho. A Seção 1.3
propõe uma solução para o problema apresentado. Na Seção 1.4 listam-se as perguntas de
pesquisa que este trabalho se propõe em responder. A Seção 1.5 apresenta os objetivos do
trabalho. A Seção 1.6 lista os resultados alcançados por este trabalho. Na Seção 1.7,
descrevem-se brevemente o conteúdo de cada um dos demais capítulos da dissertação.
2
1.1 Contexto de Pesquisa
Na concepção pedagógica tradicional, o professor é colocado como figura central e
com a responsabilidade de direcionar o aprendiz ao aprendizado (MARIETTO, 2000). E,
para que os aprendizes sejam capazes de responder aos desafios do novo cenário mundial,
que exige cada vez mais das pessoas uma melhor formação educacional, é preciso que
professores e educadores, além de cumprir a tarefa usual de transmitir conhecimentos,
sejam capazes de ensinar aos aprendizes como aprender, para que possam estar preparados
para toda uma vida de aprendizagem e avaliação (GUERRA, 2000).
Neste cenário, com a difusão da Internet e suas tecnologias na área de comunicação,
nos últimos anos, tem-se hoje a Web como uma nova alternativa para a área educacional
promover a aprendizagem e avaliação através dos recursos por ela disponibilizados
(CUNHA, 2002). A maioria dos softwares utilizados na área educacional são de apoio
instrucional para a aprendizagem e avaliação de determinados conteúdos, perpetuando uma
perspectiva de aprendizagem tradicional onde os aprendizes são receptores de uma nova
informação passada pelo professor. Além disso, a aprendizagem não é contextualizada no
meio social dos aprendizes e também não são aproveitados os seus conhecimentos prévios
(SOUZA, 1999; KEMERY, 2000).
Isto posto, o contexto desta pesquisa está na área educacional, que atualmente vem
sendo apoiada por tecnologias que auxiliam tanto professores, quanto alunos.
1.2 O Problema
Em um grupo de alunos, a heterogeneidade está presente. Em um mesmo ambiente
de ensino, alunos sabem muito, pouco ou nada sobre um determinado assunto. Ao início de
um curso, devido à grande disponibilidade da informação em meios de comunicação como
a internet, não se pode afirmar que todos os alunos possuem o mesmo conhecimento, ou
nenhum conhecimento, verifica-se, portanto, a heterogeneidade de conhecimento dos
alunos e, cabe ao professor o desafio de gerenciar o conhecimento de seus alunos. O
crescimento vertiginoso do volume de informações, disponíveis de maneira instantânea e
sem fronteiras graças aos avanços e disseminação das Tecnologias da Informação,
3
tornaram, de certo modo, impossível determinar o nível de conhecimento de uma pessoa
(PIMENTEL, 2006). Numa sociedade tão massificante quanto a nossa, reveste-se de muita
importância uma proposição de aprendizagem que tenha como ponto de partida aquilo que
o aluno já sabe.
Tomando como base o conhecimento de um aluno, pode-se concluir de acordo com
a Figura 1.1 que um aluno além de possuir o conhecimento básico, pode adquirir
conhecimentos complementares e extras. Neste âmbito encontram-se duas situações: uma
em que não é raro constatar que o professor adota o conhecimento do aprendiz que sabe
menos no grupo e o toma como parâmetro para seu ensino, assim, alunos que possuem
certas habilidades são obrigados a rever conceitos que sabem e não evoluem em novos
conceitos nem habilidades, a outra situação é o outro extremo que também pode ser
encontrado, o professor adotar o conhecimento de quem sabe mais em uma sala de aula,
prejudicando os alunos que não tem conhecimento em determinados conceitos, baseando-se
nos resultados e feedback dos melhores alunos, o que fatalmente leva a uma quantidade
significativa de alunos à reprovação ou pouco aproveitamento da disciplina. Segundo o
modelo do estudante definido por Wegner (1986), o conhecimento que o aluno adquiriu ou
possuiu em um determinado instante, deve ser atualizado durante as interações com o
ambiente.
Conhecimento Extra
Conhecimento Complementar
Conhecimento Básico
Figura 1.1 - Níveis de conhecimento que um aluno pode adquirir durante um curso
4
Alguns fatores podem influir no processo de ensino e aprendizagem e devem ser
considerados, são eles: o alto nível de heterogeneidade existente entre os alunos de uma
turma; falha na aderência entre as ementas, programas e realização das disciplinas de um
mesmo curso com tópicos desnecessariamente repetidos e; a falta de informação sobre o
estado cognitivo do aluno, onde as notas das avaliações nos dão uma idéia do que o aluno
aprendeu, mas é uma idéia genérica, que pode em alguns casos não representar o verdadeiro
estado cognitivo do aluno (PEZZA, 2004). Esses fatores serviram como motivação para
esta pesquisa e métodos descritos nos capítulos a seguir foram desenvolvidos com o intuito
de amenizar os problemas causados por estes fatores.
O comportamento padrão atualmente observado em alguns alunos como meros
receptores de informações, infelizmente, torna-se o alicerce da aprendizagem para toda a
vida acadêmica destes, tendo como reflexo seu ingresso no ensino superior com pouco, ou
nenhum, interesse em quebrar este paradigma. Cabe à Universidade implantar missões e
políticas comprometidas com o desenvolvimento do corpo discente e docente e que os
motivem para a realização dessas mudanças, pois não se pode esquecer que parte de sua
missão precícua é o estímulo à pesquisa e à investigação. Portanto, esta conduta deve ser
perseguida por todos os profissionais cuja responsabilidade é ensinar (SILVA, 2004). E,
para auxiliar este desenvolvimento, ambientes computacionais mostram-se uma alternativa
capaz de gerenciar grandes quantidades de conteúdos e alunos, sistemas informatizados
beneficiam professores e alunos.
Sem um sistema informatizado que apóie o professor mostrando o nível de
aprendizado de um aluno em relação a um conceito, o ensino fica estagnado frente às novas
evoluções que hoje surgem em diversas áreas. Segundo Pimentel e Omar (2006), o modelo
de avaliação predominante não fornece subsídios para apoiar o reconhecimento de lacunas
que atrapalham a aprendizagem. Além disso, a sistemática de avaliação ainda é
predominantemente considerada uma atividade final do processo.
Somando-se a estes problemas descritos, no aprendizado atual de um Curso de
Ciência da Computação, foco do trabalho, encontram-se agravantes. As dificuldades
encontradas neste curso podem ser diagnosticadas não somente pelo alto grau de
repetência, mas também pelas dificuldades demonstradas pelos alunos nas disciplinas
avançadas que exigem pré-requisitos. Além de conceitos básicos ensinados, existem
5
conceitos considerados difíceis de serem assimilados como interação, recursão, passagem
de parâmetros, etc (FRANÇA, 2004). É importante que o professor verifique que o aluno
aprendeu conceitos gerais e qual seu nível de assimilação dos conceitos mais complicados
para constatar que seu método de ensino é eficaz. Outro fator diferencial desse curso, são as
repetições de conceitos que ocorrem durante o curso, como declaração de variáveis,
loopings, funções, etc. que em várias disciplinas são abordados, sem uma otimização de
conceitos feita entre disciplinas.
1.3 A Proposta
Segundo David Ausubel (1968), pai da aprendizagem significativa, o fator mais
importante influenciando a aprendizagem é aquilo que o aprendiz sabe (PIMENTEL,
FRANÇA e OMAR, 2003). A proposta é o desenvolvimento de um sistema que acompanhe
o nível de aquisição de conhecimento do aluno para conceitos pré-estabelecidos dentro de
um domínio, durante um determinado período de tempo. Para que o conhecimento de cada
aluno possa ser associado a diversos conceitos, foi desenvolvida uma ontologia, cujos
elementos são representados por instâncias de conceitos dentro de uma organização
curricular. Segundo Pimentel e Omar (2006), a coleta de um conjunto detalhado de
informações sobre o estado cognitivo do aluno pode auxiliar, durante, no final do processo
e a tempo de tomar medidas de correção, caso o professor necessite tomar decisões do tipo
“aprovar ou reprovar” o aluno.
Este trabalho teve base nos trabalhos de França(2004), Pimentel (2006) e deu
continuidade ao desenvolvido na Dissertação de Mestrado de Pezza (2004), que apresentou
a proposta de um sistema de gestão do vel de aquisição de conhecimento dos alunos e
introduziu uma modelagem ontológica do curso de Ciência da Computação baseado no
curso de graduação da Universidade Presbiteriana Mackenzie. Com base no referido
trabalho, uma aplicação web foi implementada e a ontologia foi instanciada, tendo como
foco principal a avaliação continuada da aprendizagem do mesmo curso de graduação
seguindo os princípios da aprendizagem significativa.
O modelo ontológico de Pezza (2004), por se tratar de um modelo genérico, pode
ser utilizado na representação de outros cursos com poucas modificações. A referida
6
modelagem foi complementada neste trabalho e todas as instâncias para essa nova
modelagem, foram cadastradas com base nas disciplinas dos quatro primeiros semestres da
ementa nova (referente ao ano de 2006) e nas disciplinas dos quatro últimos semestres
(referentes a anos anteriores a 2006) do referido curso, procurando dar ênfase às disciplinas
específicas da área de computação.
Através da ontologia proposta e instanciada, será possível obter informações sobre
quais tópicos presentes no programa disciplinar foram efetivamente ensinados e quais
foram deixados de lado ou até mesmo ensinados, mas não assimilados pelos aprendizes.
Neste contexto, foi realizado o desenvolvimento de um sistema, denominado de
Ambiente Computacional de Avaliação da Aprendizagem (ACAvA), que permite
acompanhar a avaliação do nível de aquisição de conhecimento do aluno de um
determinado curso e através desse resultado proporcionar feedback a alunos, professores e
coordenadores, caracterizando assim a principal finalidade da Avaliação Continuada, o
monitoramento do progresso da aprendizagem, mais especificamente à medida do seu Nível
de Aquisição de Conhecimento (NAC).
1.4 Perguntas de Pesquisa
Foi através da busca das respostas para as seguintes perguntas que presente pesquisa foi
desenvolvida:
1. Como se pode avaliar se a aprendizagem pretendida foi alcançada pelos aprendizes
(CUNHA, 2005);
2. Quais os meios necessários para prover auxilio aos coordenadores e professores
para uma melhor educação continuada dentro de um curso de Ciência da
Computação?
3. Qual a possibilidade do professor conhecer o estado de conhecimento dos
estudantes?
1.5 Objetivos
7
O principal objetivo deste trabalho é o desenvolvimento de um ambiente de apoio à
avaliação continuada, através do desenvolvimento de um aplicativo que permitirá
coordenadores e professores acompanharem a evolução do aprendizado em uma turma e
disponibilizar ferramentas de estruturação de conceitos para a remodelagem destes em suas
disciplinas com o uso de mapas conceituais (NOVAK, 1998). Também foi objetivo dessa
dissertação de mestrado, buscar responder às perguntas feitas na seção anterior. Da mesma
forma que Pimentel e Omar (2006), a pesquisa pressupõe que o mapeamento dos
conhecimentos prévios e um processo contínuo de avaliações são fundamentais para
melhorar a aprendizagem, ou seja, a abordagem da aprendizagem significativa de Ausubel
(1968). Os seguintes objetivos específicos deste trabalho foram alicerces para o
desenvolvimento do sistema:
Estudo teórico da aprendizagem significativa de Ausubel (1968), e quais
benefícios ela pode trazer para o processo de ensino;
Modelagem ontológica de conceitos de aprendizagem, utilizando como o
modelo o Curso Superior de Bacharelado em Ciência da Computação, da
Universidade Presbiteriana Mackenzie, para que o banco de dados formado
seja referencia a professores e coordenadores que desejam manipular
conceitos dentro do curso e;
Identificação do histórico de aprendizagem de um aluno através da avaliação
continuada.
1.6 Resultados Alcançados
A importância e relevância desta pesquisa para a comunidade científica resultou na
publicação de trabalhos em congressos e workshops nacionais e internacionais. Estes
trabalhos estão relacionados a seguir:
1. Modelagem de um Ambiente de Apoio à Avaliação Continuada Baseado em
Aprendizagem Significativa.
1
1
VIII Congresso Iberoamericano de Informática Educativa (RIBIE 2006). Novembro-2006.
8
2. Modelagem de um Ambiente de Apoio ao Nível de Aquisição de Conhecimento
Construído sob Ontologia.
2
3. Modelagem de um Ambiente de Apoio à Avaliação Continuada Construído sob
Ontologia.
3
4. Modelagem de um Ambiente de Nível de Aquisição do Conhecimento Baseado
em Aprendizagem Significativa.
4
1.7 Organização do Trabalho
Para melhor compreensão das teorias que embasam este trabalho descrevem-se no
Capítulo 2 os principais conceitos da Aprendizagem Significativa, bem como sua aplicação
em um Curso de Ciência da Computação. Em seguida são expostas as características da
Avaliação Continuada.
No Capítulo 3 discute-se acerca do Modelo Conceitual utilizado no ambiente
desenvolvido, cujos componentes são: ontologia, mapas conceituais e ambientes
computacionais de aprendizagem.
O Capítulo 4 apresenta a descrição da modelagem ontológica, as considerações
utilizadas durante o desenvolvimento, seu diagrama de classes e sua instanciação.
O Capítulo 5 aborda a análise e construção do sistema de avaliação continuada, o
ACAvA.
O Capítulo 6 descreve os principais resultados obtidos neste trabalho e trabalhos
futuros a serem desenvolvidos.
Por fim, são apresentados no Apêndice A o detalhamento da especificação de caso
de uso no sistema desenvolvido. No Apêndice B, os diagramas de seqüência e, no Anexo I,
a ementa do Curso de Ciência da Computação da Universidade Presbiteriana Mackenzie,
utilizada como modelo para a instanciação da ontologia.
2
XVII Simpósio Brasileiro de Informática na Educação (SBIE 2006). Novembro-2006.
3
XI Taller Internacional de Software Educativo (TISE 2006). Dezembro-2006.
4
V Workshop em Educação e Informática de Minas Gerais (WEIMIG 2006). Novembro-2006.
9
2 Aprendizagem Significativa e Avaliação Continuada
As diversas escolas do pensamento possuem definições não-compartilhadas na
tentativa de conceituar o que é aprendizagem. Alguns exemplos do que tem sido
considerado como definição de aprendizagem incluem condicionamento, aquisição de
informação, mudança comportamental estável, uso do conhecimento na resolução de
problemas, resignificação conceitual, construção de novas estruturas cognitivas e revisão de
modelos mentais (KOMOSINSK, LACERDA e FALQUETO, 2000). Avaliação é o
processo de aferição da aprendizagem. Sua importância é fundamental quando existe
comprometimento em verificação dos resultados. Neste trabalho, o foco da aprendizagem
está na capacidade de armazenamento das informações e as relações que estas informações
têm entre elas. E a avaliação é utilizada para descobrir níveis de aquisição de
conhecimento.
Este capítulo apresenta uma forma alternativa para o processo de aprendizagem, a
teoria da aprendizagem significativa de Ausubel. Esta teoria e sua utilização em um curso
de Ciência da Computação são apresentadas na Seção 2.1. A Seção 2.2 descreve a
avaliação continuada da aprendizagem e seus tipos de abordagem.
2.1 Aprendizagem Significativa
Alunos não são iguais: possuem origens, experiências e habilidades diferentes
(PIMENTEL, FRANÇA e OMAR, 2003), o que pressupõe que apenas uma técnica para
ensinar diversos aprendizes situados no mesmo ambiente não é eficaz. Os alunos não
podem ser tratados de maneira uniforme, com as mesmas aulas preparadas para quem sabe
muito, alguma coisa ou nada sobre o assunto e ainda possuem estilos de aprendizagem
diferentes. O funcionamento coletivo pode marginalizar os alunos que têm mais
10
necessidades de aprender (PERRENOUD, 1999). Dessa maneira, o professor deve investir
na capacidade do aluno para ajustá-lo da melhor forma possível com o resto da classe.
Habilidades e técnicas devem ser aprendidas separadamente, uma por vez; novas
habilidades e/ou técnicas devem ser construídas a partir de uma habilidade e/ou técnica
aprendida previamente e, portanto, aprendizado e conhecimento são ambos hierárquicos por
natureza (GAGNÈ, BRIGGS e WALTER, 1992). Portanto, um aluno deve ter um
conhecimento sólido de um conceito antes de aprender outro conceito que utilize o
primeiro. Os conceitos mais amplos devem servir como âncora para as novas idéias e
informações, possibilitando sua retenção (AUSUBEL, 1980; PEZZA, 2004). Neste trabalho
que tem por objetivo definir um modelo para a avaliação e acompanhamento do nível de
aquisição de conhecimento do aprendiz, o foco será na aprendizagem significativa de
Ausubel.
Para Ausubel (1980), a aprendizagem significativa ocorre quando a nova
informação ancora-se em conceitos relevantes preexistentes na estrutura cognitiva de quem
aprende (MOREIRA e MANSINI, 2001). No processo de aprendizagem significativa, cada
nova informação deve se relacionar com um aspecto relevante que é de conhecimento do
indivíduo. Dessa forma, determinar o que o aprendiz sabe para o processo de ensino
aprendizagem é muito importante neste âmbito (AUSUBEL, 1968). Quanto melhor a
estrutura cognitiva de um aluno e esta for organizada adequadamente, mais fácil será a
aprendizagem e a retenção de um novo conceito. A aprendizagem significativa pressupõe
que o aprendiz manifeste uma disposição de relacionar o novo material ensinado de
maneira substantiva e não arbitrária à sua estrutura cognitiva. Ou seja, basicamente o que se
conclui é que o tópico ensinado deve fazer sentido ao aluno, caso contrário ele não será
devidamente assimilado (PEZZA, 2004). Os conceitos aprendidos de forma significativa
ficam gravados na memória por mais tempo, às vezes por toda a vida (NOVAK, 1998).
Quando o material a ser aprendido não consegue ligar-se a algo já conhecido, ocorre
o que Ausubel chamou de aprendizagem mecânica. Assim, a pessoa decora fórmulas, leis,
dicas para provas e os esquece em pouco tempo, pois aquelas novas informações foram
armazenadas de maneira arbitrária (FRANÇA, 2004). Nos dias atuais, onde muitas
habilidades são exigidas dos profissionais, a aprendizagem mecânica deve ser evitada e é
importante que casos com estas características sejam reconhecidos.
11
O material aprendido, Ausubel chamou de conceitos subsunçores ou, somente,
subsunçores. Um subsunçor é uma estrutura específica ao qual uma nova informação pode
se integrar ao cérebro humano. Este, por sua vez, é altamente organizado e detentor de uma
hierarquia conceitual que armazena experiências prévias do aprendiz (MELO, 1999). A
função dos conceitos subsunçores na aprendizagem significativa é permitir que uma
informação nova e relevante seja incorporada à estrutura de conhecimento do indivíduo
(NOVAK, 1998).
A aprendizagem significativa pode ser facilitada através dos seguintes princípios
(Moreira e Masini, 2001):
Diferenciação progressiva – É o princípio segundo o qual o conteúdo a ser
apresentado aos aprendizes deve ser programado de maneira que os conceitos mais gerais
do conteúdo sejam apresentados em primeiro lugar, e, pouco a pouco, introduzidos os
conceitos mais específicos.
Reconciliação integrativa Sugere que a programação do conteúdo a ser
apresentado aos aprendizes deve ser feita de maneira que haja exploração dos
relacionamentos entre as idéias, apontando semelhanças e diferenças entre conceitos
relacionados.
A Figura 2.1, parcialmente extraída de LEITE (1999), demonstra a hierarquia de
conceitos (mapa conceitual) proposta na Teoria da Aprendizagem Significativa de Ausubel.
Os conceitos mais abrangentes, organizadores prévios de Ausubel, devem ser aprendidos
em primeiro lugar, logo após, os conceitos intermediários, depois, os conceitos específicos,
de acordo com o princípio da diferenciação progressiva. Dessa forma, um tópico ensinado
deve fazer sentido ao aluno. Em cada etapa do aprendizado, existe o processo de
reconciliação integrativa, que explora o relacionamento entre idéias, indicando possíveis
semelhanças e diferenças entre os conceitos relacionados.
O curso de Ciência da Computação tem a computação (SBC, 1999) como atividade
fim e o foco principal está nas disciplinas relacionadas a algoritmos e arquiteturas. Neste
curso, o que acontece com bastante freqüência é o fato de o professor gastar muito tempo
revisando um determinado tópico ou gastar mais que o tempo previsto em certo conceito e
com isso não trabalhar o programa completo, prejudicando assim, os alunos que possuem
condições de acompanhar o curso em sua totalidade (PEZZA, 2004).
12
Figura 2.1 - Modelo de Hierarquia de Conceitos - Teoria da Aprendizagem Significativa de Ausubel
(LEITE, 1999, modificada).
Além disso, a ementa é muito extensa para o período em que é lecionada. Assuntos
complexos como iteração, ponteiros e computação gráfica precisam de pré-requisitos bem
definidos no conhecimento do estudante.
Logo, conclui-se que aprender a programar em um curso de Ciência da Computação
não é fácil e isto se reflete nos baixos veis de assimilação e grandes índices de repetência
experimentados por muitos alunos nos cursos de programação introdutórios (BOULAY,
1986).
Outro problema grave, em um curso de Ciência da Computação, é a falta de
comunicação entre os professores das várias disciplinas, sejam elas do mesmo semestre ou
de semestres seguintes (PIMENTEL, FRANÇA e OMAR 2003), utilizando conceitos que
não foram abordados com a devida importância. O levantamento de uma hierarquia de
conceitos dentro de um curso e não dentro de uma disciplina, facilita a visualização dos
conceitos com fortes relacionamentos interdisciplinares, facilitando aos coordenadores do
curso aperfeiçoamento da ementa.
Os critérios de avaliação utilizados permitem que um aluno que não aprendeu nem
50% dos conceitos da matéria, consiga aprovação nesta disciplina. O fato de o estudante ter
obtido uma média 5.0, não significa que o mesmo domina metade de tudo que foi abordado.
13
Significa apenas que o mesmo aproveitou metade dos pontos disputados nas avaliações.
Pode ser que o mesmo tenha se saído muito bem em um determinado tópico e não tenha
absorvido absolutamente nada em outros, o que pode vir a ser um problema quando o
estudante necessitar deste conhecimento futuramente em disciplinas avançadas e na sua
vida profissional. A conseqüência desta realidade é que os estudantes são tratados como se
tivessem conhecimentos e dificuldades iguais, afetando negativamente os estudantes com
lacunas de aprendizagem (PIMENTEL, 2006).
Em programação, “saber um conceito” e saber “aplicar um conceito” tem diferentes
significados. Quem apenas sabe um conceito não tem sucesso em desenvolvimento de
códigos onde aplicações de conceitos são imprescindíveis. A Figura 2.2 demonstra o mapa
conceitual da aprendizagem significativa de dois alunos: A e B. Mapas conceituais
auxiliam a visualização da estrutura de conceitos de um determinado meio e são
brevemente descritos no capítulo a seguir. O aluno A sabe aplicar o conceito de
polimorfismo, porém tem uma noção de uso de orientação a objeto. O aluno B não sabe
aplicar em programação o conceito de classe, fazendo que quase todo seu conhecimento em
práticas de orientação a objeto fique comprometido. Como em vários momentos do curso
de Ciência da Computação, a orientação a objeto é utilizada, esse aluno apenas conseguirá
ser “aprovado” nas disciplinas através da aprendizagem mecânica.
Figura 2.2 - Exemplo de aprendizagem significativa em um curso de Ciência da Computação
14
O professor muitas vezes não é capaz de dar um feedback com qualidade ao aluno,
pois possui uma carga de tarefas muito grande, como elaborar, corrigir provas e preparar
aulas. Para que exista um acompanhamento individualizado do aluno, levando em conta
que uma turma de Ciência da Computação em uma Universidade pode possuir elevado
número de alunos, a melhor maneira de personalizar o tratamento ao estudante é através de
sistemas apoiados por computadores, aqui chamados de Ambiente Computacional de
Aprendizado (ACA). Não é propósito desse trabalho demonstrar a construção e o emprego
de um ACA completo, como os ACAs categorizados como LMS (Learning Management
Systems Sistemas de Gerenciamento de Aprendizagem) (GREENBERG, 2002), e sim de
atacar pontualmente o suporte educacional ao processo de avaliação, no ambiente que será
referenciado neste trabalho, o como ambiente computacional de avaliação da
aprendizagem.
A teoria da aprendizagem significativa procura levar em conta os conhecimentos
prévios dos alunos e utilizá-los como base na construção de novos conhecimentos. Para
isso, faz-se necessário uma forma de acompanhamento da aprendizagem dos alunos, para
que o professor tenha condições de saber qual o nível de entendimento dos alunos perante
os conceitos que foram ensinados (PEZZA, 2004). Este acompanhamento da aprendizagem
é feito através da avaliação continuada que será introduzida na seção a seguir.
2.2 Avaliação Continuada da Aprendizagem
A avaliação é uma atividade meio, não uma atividade fim que servirá apenas para
comprovar dados. Ela deve ser vista como meio para análise e detecção de problemas no
aprendizado dos aprendizes através de seus resultados (RODRIGUES e GEYER, 2000). A
avaliação do processo de aprendizagem consiste em verificar em que medida os objetivos
instrucionais foram atingidos. Ou seja, consiste em verificar se a ação pedagógica
conseguiu realizar as mudanças comportamentais de habilidades e de conhecimento
propostos (CUNHA, 2002).
Não basta que o professor ensine. É preciso que o aluno aprenda, ou o processo não
estará completo (PIMENTEL, FRANÇA e OMAR 2003). Constatar que o aprendizado foi
efetivado motiva a quem ensina e auxilia a quem aprende. Porém, as notas das avaliações
15
nos dão uma idéia genérica do que o aluno aprendeu, escondendo assim o verdadeiro estado
cognitivo do aprendiz.
De acordo com Pimentel (2006), o que caracteriza a diversidade de avaliações
existentes é o tipo de abordagem em relação à aprendizagem. A Tabela 2.1 relata estes
diferentes tipos de avaliação:
Tabela 2.1 - Resumo dos paradigmas quanto aos tipos de abordagem da aprendizagem (PIMENTEL,
2006)
Abordagem Método de Avaliação
Comportamental Pré-testagem, com a finalidade de conhecer os comportamentos
prévios e a partir daí, planejar e executar as etapas seguintes do
processo ensino-aprendizagem. A avaliação é ligada aos objetivos
estabelecidos. No final do processo ocorre a avaliação com o objetivo
de medir os comportamentos finais.
Cognitivista A avaliação tradicional através de provas, notas e exames encontra
pouco respaldo nesta abordagem na qual o controle de aproveitamento
deve ser apoiado em múltiplos critérios.
Humanista A auto-avaliação é defendida e incentivada na abordagem humanista.
O estudante deverá assumir responsabilidades pelas formas de controle
de sua aprendizagem, definir e aplicar os critérios para avaliar até onde
estão sendo atingidos os objetivos que pretende.
Social Para avaliar o estudante, deve-se verificar sua observação com relação
ao modelo apresentado.
Muitas práticas atuais, nos diversos ambientes de aprendizagem, falham ao não
propiciarem uma avaliação que sirva de apoio para a aprendizagem. A grande atenção dada
a uma única medida (nota), atua como um fator inibidor e desestimulador da aprendizagem.
Faz-se necessário assim, remodelar as formas de avaliar, criando mecanismos capazes de
identificar lacunas que impedem a aprendizagem e assim criar novas oportunidades de
aprender (PIMENTEL, 2006).
16
Como novo procedimento de avaliação, destacam-se a avaliação continuada e a
realimentação (feedback) como elementos integrantes do processo de ensino-aprendizagem
e não mais como medidores de informações apresentados por estudantes em situações de
tensão, nervosismo e outros fatores.
Caracterizada pela avaliação que ocorre durante o curso em direção à "nota final", a
avaliação contínua possui geralmente finalidades formativas. O "produto avaliado" é
retornado ao estudante, geralmente acompanhados por comentários (feedback), com o
objetivo de indicar os pontos fortes e fracos (PIMENTEL, 2006).
A avaliação continuada da aprendizagem, como parte do processo, deve ser vista
como uma ferramenta capaz de realimentar o aprendiz, indicando o seu nível de aquisição
do conhecimento (PEZZA, 2004), em cada conteúdo, diagnosticando as lacunas de
aprendizagem a serem preenchidas para que o aprendiz possa dar o próximo passo,
utilizando as informações obtidas com as avaliações formais e informais como uma
maneira de aprender sobre como os estudantes estão constituindo o conhecimento.
Com o experimento da avaliação continuada, através de ambientes computacionais
de avaliação da aprendizagem, as características da aprendizagem significativa podem ser
estudadas a fundo. O professor é capaz de observar que um aluno pode ter sua
aprendizagem em um conceito prejudicada, em conseqüência de conceitos que não adquiriu
anteriormente. A importância de que um professor consiga identificar estes conceitos
caracteriza o motivo do estudo do ambiente computacional, cujo modelo conceitual está
relacionado no capítulo a seguir.
17
3 Modelo Conceitual do Ambiente de Avaliação Continuada
A forma mais adequada de um professor acompanhar o desempenho de seus alunos
e completar a aprendizagem, quando se tem uma turma grande em quantidade, é através de
ambientes computacionais. Atualmente, ambientes computacionais de aprendizagem
(ACAs), gerenciam alunos e representações de conhecimento, como pode ser visto em
França (2004). Existem várias técnicas de representação de conhecimento. Dentre as mais
freqüentemente utilizadas destacam-se, segundo Rezende (2003): representação lógica,
regras de produção, redes semânticas, frames, etc. Dentre as redes semânticas, a
representação escolhida foi a ontologia, pois nestes ambientes também se faz necessário
prover ao professor o gerenciamento do conteúdo da sua disciplina, através da linguagem
formal, mais simples forma de se representar um conteúdo. Neste aspecto, a ontologia
combinada com o uso de mapas conceituais pode contribuir, estruturando a ementa para
facilitar seu controle e visualização.
Isso posto, este capítulo apresentará o modelo conceitual utilizado no
desenvolvimento de métodos de representação da aprendizagem, através do sistema de
avaliação continuada, composto de três componentes que serão discutidos em seções
distintas. Na Seção 3.1 apresenta-se o conceito de ontologia e como realizar seu
desenvolvimento. Na Seção 3.2, descrevem-se mapas conceituais e sua relação com a
ontologia. E, por fim, na Seção 3.3 é discutida a arquitetura geral de um ambiente
computacional de aprendizagem (ACA).
3.1 Ontologias
Em ambientes computacionais de aprendizagem baseados no computador, a escolha
correta de um vocabulário e uma conceituação, pode ajudar na melhora da qualidade do
18
sistema e em sua efetiva capacidade em promover a aprendizagem. Por exemplo, o
currículo de uma disciplina, isto é, o conjunto de tópicos a serem ensinados e sua
organização, deve ser modelado e organizado de forma a facilitar o aprendizado e as
decisões instrucionais do sistema (SANTOS, BARROS e VALENTE, 2001). Com a
finalidade de promover a divisão em conceitos das disciplinas de um Curso de Ciência da
Computação em um ambiente computacional de aprendizagem através da categorização e
descrição de dados, um modelo ontológico e sua instanciação foram desenvolvidos neste
trabalho.
Ontologia é a “especificação formal de uma conceituação compartilhada”. A palavra
conceituação refere-se a uma abstração, visão simplificada do mundo que desejamos
representar para algum propósito, construindo através da identificação dos conceitos e
relações relevantes. Formal significa que a ontologia deve ser compreensível por um
computador (não pode ser somente escrita em linguagem natural). Finalmente,
compartilhada implica em que o conhecimento representado é consensual, aceito por um
grupo e não por um indivíduo (DUINEVELD, STOTER, WEIDEN, KENEPA e
BENJAMINS, 1999). Ou seja, fornece a descrição de conceitos e relações existentes em um
dado domínio com o objetivo de definir um modelo conceitual que reduza ou elimine
confusões terminológicas e ofereça uma estrutura de trabalho unificada de entendimento
comum sobre o domínio (GRUBER, 1993). Entende-se por análise de domínio a tentativa
de identificar os objetos, operações e relações em um determinado domínio (GUIZZARDI
2000).
Para a elaboração de uma ontologia, é necessária a definição de etapas bem
estruturadas. O primeiro passo consiste em construir seu modelo de domínio, que
representa um conjunto de itens de informação presentes em certo contexto do mundo real.
Logo após é feita a especificação de requisitos caracterizada por identificar claramente os
seus propósitos e os usos esperados pela ontologia. Depois, é realizada a captura da
ontologia que estabelece os conceitos e relações do universo do discurso e a aquisição de
dados. A próxima fase é a formalização da ontologia, definindo sua representação. Em
paralelo às últimas duas fases, são construídas a avaliação e a documentação. O próximo
passo é definir as classes, identificar sua hierarquia e definição de suas propriedades. As
propriedades podem possuir atributos (também conhecidos como slots) que descrevem as
19
propriedades que poderão ser particulares para cada instância de uma classe e restrições
(também chamados de facets ou role restrictions). As atividades para o processo proposto
da construção do modelo de domínio e da formação da ontologia são vistas na Figura 3.1.
Figura 3.1 - Atividade do processo de análise de domínio e formação da ontologia
Os componentes de uma ontologia, segundo Pérez (2002), são cinco:
Conceito: em resumo, pode ser “qualquer coisa” a respeito de “algo” que
será explicado;
Relação: tipo de interação entre conceitos de um domínio e seus atributos;
Função: tipo de relação;
Axiomas: modelam sentenças que são sempre verdadeiras e;
Instâncias: representam elementos do domínio associados a um conceito
específico.
A finalidade da conceitualização e instanciação da ontologia neste trabalho se dão
pelo motivo da construção do conteúdo instrucional do Curso de Ciência da Computação,
contendo os conceitos ensinados no decorrer do curso, procedimento que será descrito no
20
Capítulo 4. No entanto, a ontologia criada pode ser utilizada em qualquer curso de
graduação.
Quando uma ontologia é instanciada, pode ser graficamente descrita por um mapa
conceitual, cujo conceito será apresentado na seção a seguir.
3.2 Mapas Conceituais
Uma ontologia pode ser graficamente descrita por um mapa conceitual, que são
diagramas que indicam relações entre conceitos (NOVAK, 1998). Podem ser vistos como
diagramas hierárquicos que refletem a organização conceitual de uma disciplina ou parte
dela, enfatizando assim, sua estrutura conceitual. Foram apresentados por Novak em 1998,
como uma técnica a ser utilizada como apoio à teoria de aprendizagem significativa de
Ausubel (1980).
De acordo com Novak e Gowin (1984), os mapas conceituais enquanto ferramenta
educacional, são uma forma de ajudar alunos e educadores a verem os significados dos
materiais de aprendizagem. O responsável pela organização das disciplinas no curso pode
reestruturar conceitos repetitivos em disciplinas diversas e formular de uma melhor forma
suas ementas através dos mapas.
Na Figura 3.2, o Mapa Conceitual representa todos os pré-requisitos conceituais
para poder aprender através de aprendizagem significativa o conceito de estrutura do tipo
if...else, baseado no princípio ausubeliano de diferenciação progressiva (MOREIRA E
MANSINI, 2001), onde a orientação é tal que os conceitos mais gerais e inclusivos
aparecem no topo do mapa. Os outros conceitos aparecem em ordem descendente de
inclusividade até que na parte inferior do mapa, chega-se aos conceitos mais específicos.
As linhas que conectam os conceitos sugerem uma relação de subordinação entre eles e
deve conter uma sentença que indique essa relação de subordinação. Contudo, nem sempre
os mapas conceituais são esquematizados desta forma. Orienta-se seguir as setas, quando
existirem, para verificar o fluxo dos conceitos.
A finalidade do uso dos mapas conceituais na aplicação é possibilitar que o
professor ou aluno, ao identificar problemas de aprendizagem em um conceito, desenvolva
21
um levantamento de todos os pré-requisitos que são necessários para a aprendizagem
significativa deste conceito, através da instanciação da ontologia do curso.
Figura 3.2 - Mapa Conceitual - If...else
Para operar a ontologia e os mapas conceituais, ambientes computacionais de
aprendizagem (ACA), com funções gráficas podem ser utilizados. Os ACAs o discutidos
na seção a seguir.
3.3 Ambientes Computacionais de Aprendizagem e sua
arquitetura lógica
Ambientes computacionais de aprendizagem (ACA) são tecnologias de informação
e comunicação aplicadas ao processo de ensino-aprendizagem, utilizando o computador no
sistema educacional (PIMENTEL, 2006).
22
O modelo de um ACA possui módulos responsáveis por características específicas
na interação com seus usuários. O ACA desenvolvido é baseado no paradigma
instrucionista de aprendizagem proposto em (PIMENTEL e OMAR, 2006) que possui uma
estrutura organizada nos seguintes módulos: administração, comunicação,
acompanhamento, aprendiz, avaliação e conhecimento. A Figura 3.3 mostra a arquitetura
do ambiente.
A seguir o ACA será descrito módulo a módulo. Os componentes dos módulos e
suas dependências no sistema desenvolvido serão tratados no Capítulo 5.
Figura 3.3 - Arquitetura Geral do ambiente computacional
o Módulo de Comunicação - O módulo de comunicação é responsável pela
interface do sistema. Serve para a comunicação entre o sistema e o usuário.
Sua função básica é traduzir a representação interna do sistema para uma
“linguagem” que seja compreensível e estimulante para os usuários
(PIMENTEL, 2006).
23
o Módulo de Acompanhamento O módulo de acompanhamento
compreende feedback e análise dos resultados tanto pelo aprendiz quanto
pelo professor. Envolver o aprendiz na reflexão sobre seus próprios
processos de aprendizagem, fornecendo orientação que o conduzam a
revisões progressivas que melhorem sua atividade e raciocínio, é um fator
que torna um ambiente de aprendizagem eficaz (BRANSFORD, 2003).
o Módulo de Administração O módulo de administração compreende
diversos tipos de cadastros, edições e exclusões com o objetivo de gerenciar
o conteúdo do ACA.
o Módulo do Aprendiz O módulo do aprendiz armazena o histórico de
avaliações dos aprendizes e a representação do estado atual do
conhecimento. Os dados armazenados são utilizados juntamente com os
outros módulos para conduzir o tipo de tarefa a ser apresentada para as
necessidades de um determinado estudante.
o Módulo de Avaliação O módulo de avaliação compreende as unidades de
avaliações que são base para a montagem da avaliação e correções. É o
responsável por planejar a interação com o estudante, através das avaliações
que são aplicadas à ele, de acordo com seu nível de conhecimento.
o Módulo do Conhecimento O módulo do conhecimento abrange o
domínio do conteúdo que será utilizado no curso sobre o qual deseja fazer o
acompanhamento da aprendizagem. Sua função básica é servir como fonte
de conhecimento do assunto a ser ensinado ao estudante.
Neste trabalho, um ACA é desenvolvido, e sua ênfase é na avaliação de indivíduos e
gerenciamento de conceitos da ontologia. A modelagem ontológica de um curso de
graduação é apresentada na seção seguinte.
24
4 Modelagem Ontológica de um Curso de Graduação e sua
Instanciação em Ciência da Computação
Ao elaborar um material didático, torna-se necessário a criação de uma estrutura que
organize as informações contidas neste material. A estruturação do conteúdo pode ser
realizada através da construção de ontologias (FRANÇA, 2004). Nos dias atuais, na
Universidade Presbiteriana Mackenzie, precisamente no curso de Ciência da Computação,
o material que existe para a estruturação das matérias dos cursos, consiste em documentos
que citam a ementa através de conteúdos, as grades curriculares do curso, que pode ser
verificada no Anexo A. Porém, a grade curricular apenas indica os conceitos e uma breve
introdução, não deixando claro o relacionamento entre eles e sua inclusão no contexto do
curso.
Este capítulo trata da ontologia que serviu de base para a construção do ambiente. A
Seção 4.1 apresenta a modelagem ontológica para um curso de graduação qualquer. Na
Seção 4.2 é abordada a construção da instanciação para a ontologia criada, ou seja, a
população da ontologia com dados. A metodologia seguida neste trabalho foi baseada na
metodologia descrita na Seção 3.1 do Capítulo 3 e também foi utilizada por Pezza (2004).
4.1 Modelagem Ontológica para um curso de graduação
A ontologia proposta representa o domínio de um curso de graduação. Seus usuários
são professores e alunos. Um curso contém uma ou mais disciplinas, sendo elas pré-
requisito ou não de uma outra disciplina. Uma disciplina contém conteúdo e este é
fragmentado em conceitos. Conceitos possuem pré-requisitos e pós-requisitos e, esta
dependência foi modelada e instanciada neste trabalho.
25
Na fase de criação da ontologia é importante a definição de um dicionário de termos.
Desta forma, o sistema pode reconhecer termos com sintaxes diferentes, mas com
significados semelhantes. O dicionário de termos da ontologia é apresentado na Tabela 4.1
e trata-se de sinônimos para os termos mais importantes de um curso.
Tabela 4.1 - Dicionário de Termos para representação de conteúdos educacionais
Termo Termos Equivalentes
Curso Especialidade
Disciplina Cadeira, matéria, ramo de conhecimento
Conceito Definição, tópico
Para desenvolver a ontologia seu domínio deve ser capaz de responder questões de
competências do tipo:
o Quais os pré-requisitos de um conceito? Para aprender um conceito, deve ter
conhecimento sobre quais outros conceitos?
o Quais os pós-requisitos para um conceito? O que posso aprender a partir de
um determinado conceito?
o Qual a relação entre dois conceitos?
o Quais conceitos formam uma área de conhecimento em um curso de Ciência
da Computação? Quais conceitos pertencem à área de conhecimento de
arquitetura de computação e quais conceitos pertencem à área de
programação?
o Quais conceitos são lecionados em mais de uma matéria?
Isto posto, foram definidos os seguintes requisitos para a ontologia em
desenvolvimento:
Deve permitir a representação dos conceitos ensinados no Curso de Ciência da
Computação. Na Figura 4.1, visualizamos exemplos destes conceitos:
Deve associar os conceitos às suas disciplinas. Quando um conceito é utilizado por
mais de uma disciplina esta representação deverá estar clara para a ontologia. O
exemplo é visto na Figura 4.2.
26
Figura 4.1 - Exemplos de Conceitos
Figura 4.2 - Relação entre Disciplinas e Conceitos
Deve representar formalmente as dependências, tanto de “é pré-requisito para”
como “depende de” de um conceito, relações chamadas de árvores de classificação
de conceitos, que indicam o relacionamento entre estes, como demonstrado na
Figura 4.3.
Figura 4.3 - Dependências entre Conceitos
27
Deve representar os Cursos aos que as disciplinas e os conceitos sejam
relacionados. Como por exemplo, os curso de Ciência da Computação, Curso de
Turismo, Curso de Medicina.
Deve abranger todos os conceitos normalizados e assim, suas instâncias, evitando
redundâncias. Como exemplo, as repetições que acontecem nas revisões de
conceitos básicos do Curso de Ciência da Computação cada vez que é ensinada uma
nova linguagem. A Figura 4.4 (a) mostra a repetição de conceitos básicos a vários
outros conceitos. Para aprimorar a construção da ontologia, recomenda-se utilizar a
técnica utilizada na Figura 4.4 (b), que relaciona apenas uma vez o conceito
específico aos conceitos mais abrangentes.
Figura 4.4 - Instâncias Normalizadas em uma Ontologia
28
A modelagem dos conceitos e das disciplinas do Curso de Ciência da Computação
foi feito utilizando a versão 3.2 do software Protegé, 2006, que permite representar a
hierarquia (relação depende de/ é pré-requisito para) de conceitos do domínio (Exemplo de
um domínio: Definição e iniciação de Variáveis→Operadores Relacionais→Estrutura do
Tipo If...Else) incluindo herança múltipla. Como exemplo, a Figura 4.5 representa um
pequeno trecho da taxonomia dos conceitos modelados e ilustra as definições da hierarquia
dos conceitos de uma pequena parte de um curso de Ciência da Computação.
Figura 4.5 - Parte da hierarquia da ontologia
29
A Figura 4.6 mostra um exemplo da tela do software Protegé. Pode-se notar a
definição da ontologia para a modelagem desse projeto, cuja visão geral pode ser observada
no Class Browser, onde todas as classes são exibidas, localizado no lado esquerdo.
Enquanto que na parte inferior direita é exibida uma lista com os atributos (slots) da classe
que está selecionada.
Figura 4.6 – Cadastro de classes no Protegé
As classes identificadas no domínio de conteúdos educacionais que formam a
ontologia são visualizadas no diagrama de classes da Figura 4.7.
Figura 4.7 - Diagrama de Classes da Ontologia
30
As classes envolvidas no processo de representação do conhecimento definido são:
Conceito, Disciplina e Curso.
A classe Conceito contém os seguintes atributos:
Conceito: nome do conceito, que representa a formulação de uma idéia por
palavras;
Disciplina: lista de instâncias da classe Disciplina contendo as disciplinas
que possuem este conceito;
Depende_de: lista de instâncias da classe Conceito indicando os conceitos
que são pré-requisitos para este conceito;
Pre_requisito_para: lista de instâncias da classe Conceito indicando os
conceitos que são dependentes deste.
É importante notar que é justamente a partir dos atributos Depende_de e
Pre_requisito_para que se torna possível montar toda a estrutura de interdependências de
conceitos do curso, tendo assim uma visão geral das relações existentes entre as disciplinas
e os conceitos ensinados (PEZZA, 2004).
A classe Disciplina representa uma das matérias lecionadas em uma das etapas do
curso e contém os seguintes atributos:
Nome da Disciplina: indica o nome de um conjunto de conceitos de
características comuns entre si;
Conceitos_Disciplina: Lista de instâncias da classe Conceito, representando
os conceitos que são ensinados na disciplina;
Etapa: Período do curso em que a disciplina é ministrada. Pode representar
um período de tempo anual ou semestral;
Curso: Lista de instâncias da classe Curso, representando os Cursos que
possuem esta disciplina.
A classe Curso representa o conjunto de matérias ensinadas segundo um programa
em um estabelecimento de ensino, seus atributos são:
Nome do Curso: indica o nome do curso;
Disciplinas: Lista de instâncias da classe Disciplina. Contém todas as
disciplinas existentes no curso;
31
A Tabela 4.2 mostra os componentes da ontologia desenvolvida e seus respectivos
exemplos, baseado nos componentes citados no Capítulo 3:
Tabela 4.2 - Componentes da Ontologia
Componente Exemplo
Conceito
Relação
Função
Axioma Conceito pertence à Disciplina
Instância
4.2 Construção de Instâncias
O registro da ontologia até o nível de conceito básico, das disciplinas formará uma
base de dados do conhecimento dinâmica sobre o domínio do curso de Ciência da
Computação, com ênfase à programação.
A presente versão da ontologia desenvolvida tem como base a ementa referente às
disciplinas dos 4 primeiros semestres da ementa nova (referente ao ano de 2006) e nas
disciplinas dos 4 últimos semestres da antiga ementa (referentes a anos anteriores a 2006)
do Curso de Ciência da Computação da Universidade Presbiteriana Mackenzie, procurando
dar ênfase às disciplinas específicas da área de computação. O objetivo dessa ontologia
assim como em França (2004), é que ela auxilie no direcionamento do processo de
ensino/aprendizagem do referido curso. As referidas ementas estão disponíveis para
consulta no Anexo A desta dissertação.
Depois da definição das classes e propriedades, foram definidas as instâncias para a
base da ontologia. As instâncias representam indivíduos específicos de uma determinada
classe.
Primeiramente todas as instâncias são digitadas diretamente no software Protegé,
que esquematiza uma forma amigável de inclusão de instâncias de acordo com a ontologia
32
construída. Logo após, através da ferramenta de importação de dados do próprio Protegé,
tudo que foi cadastrado é extraído para um arquivo de extensão XML. De acordo com as
disposições das informações importadas no arquivo XML, linhas de código SQL são
criadas para extrair os dados deste arquivo e incluir na tabela e coluna corretas do banco de
dados relacional, como esquematizado na Figura 4.8.
Figura 4.8 – Rotina de migração dos dados do Banco Protegé para Banco de Dados Relacional
PostreSQL
0
Figura 4.9 - Instância da classe conceito no Protegé
É possível observar na Figura 4.9, a partir da interface do Protegé, a instanciação da
classe conceito. Por exemplo, uma instância da classe conceito sobre “Dispositivos de
Este conceito depende
de 3 pré-requisitos
Após aprender dispositivos de E/S, todos estes conceitos serão
ligados à ele facilmente, segundo o princípio da aprendizagem
significativa
33
entradas e saída”, a propriedade Depende_de recebe, por exemplo, o valor “Organização
básica de um computador”, a propriedade Pre_requisito_para recebe o valor “Barramentos”
e a propriedade Disciplina os valores “Ambientes Operacionais” e “Sistemas
Operacionais”.
Esta ontologia apresentada é base conceitual para o sistema cuja construção é
abordada no capítulo a seguir.
34
5 Análise e Construção do Sistema da Avaliação Continuada
Este capítulo trata da análise e construção do sistema de avaliação continuada
desenvolvido neste trabalho e denominado ACAvA (abreviatura de Ambiente
Computacional de Avaliação da Aprendizagem). A unidade de avaliação que será medida,
o nível de aquisição do conhecimento (NAC), é apresentado na Seção 5.1. As
funcionalidades que cada componente do ambiente computacional de aprendizagem possui
são descritas na Seção 5.2 Na Seção 5.3 as tecnologias utilizadas são apresentadas. A Seção
5.4 consiste da explicação do modelo conceitual de dados do sistema. Por fim, na Seção 5.5
a modelagem UML é apresentada através dos diagramas de caso de uso e classe.
Pezza (2004), modela um ambiente para o gerenciamento dos NACs. Neste
trabalho, além de gerenciamento dos NACs também são abordados o gerenciamento da
ontologia e a possibilidade do sistema reconhecer níveis de conhecimento através de
exercícios.
O ambiente educacional tradicional é baseado na sala de aula, com raras atividades
extra-classes. O ACAvA proposto agrega à teoria tradicional a prática modernizada, via
avaliação continuada e é base para desenvolvimento de um sistema que auxilie o professor
à mudança do paradigma da sala de aula. O sistema desenvolvido permite a anotação em
tempo real do desenvolvimento do aprendizado do aluno. Pode ser utilizado no dia-a-dia da
sala de aula presencial (aulas de laboratório) ou virtual (ambientes com conexão à internet).
O ACAvA, da forma que foi projetado, pode receber informações de qualquer curso
de graduação, independente da área em que o curso se encontra. Para tanto, basta
desenvolver a ontologia referente a este curso e, como visto no Capítulo 4 e integrar ou
migrar seus dados para o sistema. A página inicial do ACAvA, que comporta todas suas
funções é apresentada na Figura 5.1.
35
Figura 5.1 - Página inicial do ACAvA
O desenvolvimento da ontologia de Ciência da Computação apresentada neste
trabalho no capítulo anterior serve para sustentar a construção de um ambiente on-line, de
complementação do aprendizado das disciplinas no referido curso através do
acompanhamento do conhecimento do aluno considerando seu NAC, que será abordado na
seção a seguir.
5.1 Nível de Aquisição do Conhecimento
Cada unidade de avaliação deve, de certa forma, refletir os objetivos de
aprendizagem num domínio específico de conhecimentos ou em um conjunto deles
(multidisciplinaridade) (PIMENTEL, 2006). Para que seja possível, a estruturação do
domínio de conhecimento, o domínio da ontologia deve estar previamente definido.
36
Para Pezza (2004) os conceitos preexistentes na estrutura cognitiva do aluno são
chamados de Nível de Aquisição de Conhecimento, ou NAC (PEZZA, 2004). NAC é
definido sucintamente como “uma medida que indica o grau de conhecimento do aprendiz
num determinado conteúdo de um domínio de conhecimento, naquele instante”. Esta
medida será resultante do conjunto de avaliações contínuas realizadas pelo aprendiz e será
sempre estratificada por conceitos ou grupos de conceitos (PIMENTEL, 2006). Composto
de um valor numérico que varia de 0 a 10 é atribuído para cada aluno relacionado com cada
conceito ensinado no curso num determinado instante. No sistema proposto pode ser
atribuído pelo professor, pelo próprio aluno ou obtido através de resolução de exercícios,
como de acordo com a Figura 5.2.
Figura 5.2 – Formas de Atualização do NAC
Através de um acompanhamento permanente do NAC dos alunos, deve ser possível
detectar quais os conceitos em que a aprendizagem foi mais problemática, e com isso os
professores teriam informações mais detalhadas para saber exatamente qual conceito ainda
poderia ser mais trabalhado e também qual o conceito que foi assimilado
37
satisfatoriamente pela maioria dos alunos e não precisa mais ser revisto, que a repetição
excessiva de um assunto aprendido pode tornar o aprendizado desmotivante para os
alunos e com isso prejudicar o seu aproveitamento (PEZZA, 2004). Acompanhando o NAC
dos alunos é possível levantar seu histórico de aprendizagem e progresso, dirigindo o
ensino, incluindo nisso a avaliação de seus resultados.
Como discutido anteriormente, existem três formas de avaliação para a obtenção do
Nível de Aquisição do Conhecimento (NAC) no sistema:
1. O professor atualiza o NAC do aluno: o professor possui conhecimento do
nível do aluno em certo conceito e pode atualizá-lo;
2. O aluno atualiza seu próprio NAC: feedback do próprio aluno sobre seu
conhecimento em determinado conceito. Assim o aprendiz tem a
oportunidade de refletir sobre seu próprio conhecimento, bem como
determinar aquilo que sabe, o que traz para a escola, os conhecimentos
prévios. A Figura 5.3 representa a funcionalidade do sistema que permite
a atualização, tanto por parte do professor, quanto por parte do aluno;
Figura 5.3 - ACAvA: Atualização do NAC
38
3. O aluno realiza um exercício, em forma de testes objetivos, relacionado a
diversos conceitos. Quando acerta ou erra um exercício, seu NAC é
atualizado automaticamente pelo sistema. Segundo levantamento de
Pimentel (2006), de todos os mecanismos de avaliação, o que mais
prosperou com o uso do computador foram os testes objetivos, devido à
facilitação dos processos das avaliações em virtude do acesso a material
de apoio e banco de questões e a correção automática. Pfaffman (2003),
também afirma que em ambientes de aprendizagens, mesmo testes
somativos podem ser construídos para fornecer feedback formativo. Dessa
forma, a aplicação dos referidos testes foi escolhida como um parâmetro
de entrada do NAC no sistema.
O NAC pode variar de 0 a 10. O valor 0 é atribuído a um NAC se um conceito foi
ensinado e não foi assimilado pelo aluno. Durante o período de um mês, quando o NAC de
um aluno é alterado, seu valor sobrescreve o valor cadastrado no mesmo mês. Ao final de
um mês, o NAC não deverá ser mais alterado com o objetivo de criar um histórico para
posterior análise por parte do professor. As novas atualizações de NAC, a partir desse
momento, são relacionadas com o novo mês, gerando assim, informações que permitam o
acompanhamento da aprendizagem, como pode ser visto na Tabela 5.1. O objetivo do
trabalho é que após o período de 4 anos coletando dados, o professor consiga visualizar o
resultado da avaliação continuada dentro de um curso. Considerando que cada mês possui
um valor para o NAC, 48 valores mostram-se suficientes para a observação do professor.
Tabela 5.1 - Atualização do NAC
Aluno: A NAC - Jan/06 NAC - Fev/06
Conceito A 0 0
Conceito B 3 7
Conceito C 6 8 8
Conceito D 7 7
O NAC é manipulado no módulo de acompanhamento da arquitetura do ACAvA,
assunto tratado na seção a seguir.
2ª atualização
realizada em
JAN/06
1ª atualização
realizada em FEV/06
39
5.2 Arquitetura do ACAvA
Os componentes do ambiente de computação são mostrados na Figura 5.4, que
representa a arquitetura do ACAvA.
Figura 5.4 – Arquitetura geral do ambiente de computação e seus componentes
Como introduzido no Capítulo 3, o ambiente de computação possui 5 módulos e os
componentes desenvolvidos para cada módulo são:
Módulo de Comunicação: Interface com o usuário;
Módulo de Acompanhamento: O professor e aluno acompanham o resultado
e histórico de sua avaliação continuada, ambos visualizam e atualizam
NACs, assim como o professor visualiza a classificação do aluno;
40
Módulo do Aprendiz: Armazena o NAC atual do aluno, bem como seu
histórico de desempenho;
Módulo de Avaliação: Armazena exercícios, que neste trabalho são
considerados unidades de avaliação e são relacionados com os conceitos
armazenados no módulo de conhecimento. Através da unidade de avaliação,
o NAC do aluno é atribuído e armazenado no módulo de acompanhamento.
Módulo de Administração: Administrador e professor têm acesso ao
gerenciamento da ontologia, alunos e exercícios e;
Módulo de Conhecimento: Domínio da Ontologia e visualização de Mapas
Conceituais.
O armazenamento lógico do ACAvA e cada um de seus módulos é discutido na
seção seguinte.
5.3 Tecnologias Utilizadas
O sistema ACAvA é composto pelas seguintes tecnologias:
Arquitetura do Sistema
O ambiente ACAvA deverá usar a arquitetura computacional cliente/servidor. Essa
arquitetura é baseada em sistemas clientes, que solicitam serviços, comunicando-se por
uma rede através do protocolo de comunicação http com sistemas servidores, que oferecem
serviços (MÉNDEZ, 1997).
A arquitetura do sistema integrará várias tecnologias, a saber:
a. Web Browser É uma interface hipermídia que se comunica com o servidor através do
protocolo http, para acessar recursos localizados no computador servidor. O
computador servidor será o hospedeiro do cliente do sistema.
b. Protocolo de comunicação http É um protocolo de comunicação, capaz de transmitir
qualquer tipo de informação e fazer a comunicação do cliente com o servidor.
c. Servidor Web É uma aplicação que fica sendo executada no computador servidor e
atende aos pedidos dos clientes por documentos armazenados no sistema de arquivos da
plataforma onde se encontra instalado. Desempenhará a função de servidor do sistema
(CUNHA, 2002).
41
A Figura 5.5 apresenta uma visão geral da arquitetura em camadas do sistema. O
usuário acessa o sistema remotamente pelo browser, bastando uma conexão com a rede
específica a que o ambiente está hospedado. Ao executar qualquer comando, a ação será
enviada ao servidor e será interpretada.
O sistema desenvolvido foi armazenado em um servidor Apache (APACHE, 2007),
cujo sistema operacional é Linux. O banco de dados consiste em uma base acessada
remotamente no qual são armazenados dados essenciais ao sistema: ontologias, NACs,
exercícios, entre outros.
Figura 5.5 - Visão Geral da Arquitetura do Sistema
Linguagem de Programação
O sistema foi implementado em linguagem php (PHP, 2006), versão PHP-4, de
forma que pode ser executado em qualquer browser e por vários usuários simultaneamente.
Banco de Dados
O Banco de dados utilizado no desenvolvimento da aplicação denomina-se
PostgreSQL (POSTGREESQL, 2007), e possui as seguintes características:
42
a) É um software open-source, isto é, sua utilização é gratuita e seu download
pode ser livremente realizado em seu site;
b) Permite executar SQL Statements;
c) Possui todas as ferramentas necessárias para a manipulação de banco de
dados, como transações, inclusão de novos bancos de dados, usuários e
ferramentas;
d) Pode ser executado na grande maioria de ambientes operacionais.
O banco de dados, PostgreeSQL é relacional e abriga o modelo conceitual de dados,
que será tratado na seção a seguir.
5.4 Modelo Conceitual de Dados
Por questões de cunho pragmático, o orientação a objetos utilizada na construção da
ontologia foi mapeada em um modelo entidade-relacionamento. Por se tratarem de
paradigmas distintos, a estrutura da ontologia deve ser modificada de forma que fique
coerente com o modelo entidade-relacionamento. Por sua grande aceitação, sendo o mais
utilizado em situações práticas, segundo Pezza (2004), o modelo entidade-relacionamento
foi escolhido para ser utilizado no desenvolvimento do banco de dados proposto neste
projeto. O modelo lógico entidade-relacionamento tem por base a percepção do mundo real
como um conjunto de objetos básicos, chamados entidades e do relacionamento entre eles
(SILBERCHATZ e SUDARSHAN, 1999). Uma entidade pode ser um aluno, uma
disciplina, um conceito.
A Figura 5.6 mostra uma visão geral de todas as tabelas, através do diagrama de
entidade-relacionamento, desenvolvido na fase de design lógico, que ilustra relação entre as
entidades e chaves primárias. Devido à necessidade de se chegar à terceira forma normal,
uma série de novas entidades passaram a fazer parte do modelo. As entidades que fazem
parte do modelo são:
Aluno
Conceito
Curso
Disciplina
43
Exercicio
Usuario
Além das entidades acima, o modelo de dados também possui os seguintes
relacionamentos:
AlunoConceito
AlunoCurso
ConceitoDependencia
CursoDisciplina
DisciplinaConceito
ExercicioConceito
Figura 5.6 - Entidades e relacionamentos do banco de dados utilizado no aplicativo
As tabelas Disciplina, Conceitos, ConceitoDependencia e DisciplinaConceito
armazenam todos os conceitos de cada disciplina e seu relacionamento. A partir de cada
44
disciplina, é possível saber quais os conceitos ensinados e a partir desses, quais os outros
conceitos relacionados.
Figura 5.7 - Diagrama entidade-relacionamento para conceitos (PEZZA, 2004, modificada)
A Figura 5.7 mostra como é feito relacionamento entre conceitos. A cardinalidade
0,N que relaciona a entidade Conceito entre si mostra que um conceito pode ter um ou mais
conceitos subordinados a ele (PEZZA, 2004).
A modelagem relacional demonstrada é à base de um sistema para o
acompanhamento do nível de conhecimento dos alunos no decorrer de um curso. A base
conceitual de dados desenvolvida permite uma visualização completa do curso. Todas as
informações foram migradas do Protege, como visto na Seção 4.2, através de rotinas que
estruturam os dados para compor as tabelas da base de dados.
Além da modelagem conceitual do banco de dados, outra modelagem fundamental
para o desenvolvimento de um sistema é a UML, que será discutida na seção a seguir.
5.5 Modelagem UML
Para uma melhor visualização do ambiente proposto, foi realizada uma modelagem
baseada no padrão UML (Unified Modeling Language). A modelagem UML é apresentada
neste capítulo em forma de diagramas de classes, na seção 5.5.1, e diagrama de casos de
usos, na seção 5.5.2. No Apêndice A, algumas especificações de caso de usos foram
escolhidas como exemplo para exibição e sobre as mesmas especificações foram
desenvolvidas os seus diagramas de seqüência, que são expostos no Apêndice B.
5.5.1. Diagrama de Caso de Uso
Esta seção apresenta o diagrama de caso de uso do sistema. O padrão UML fornece
o diagrama denominado Caso de Uso. Este diagrama caracteriza-se por ter a capacidade de
45
passar uma visão geral do ambiente de uma forma intuitiva e de fácil leitura, onde as
pessoas leigas podem interpretá-los e entender o ambiente como um todo (NETO, 2000).
Um diagrama de caso de uso ilustra como o software será utilizado e por quem. O
diagrama, mostrado na Figura 5.8 foi desenvolvido na fase de análise de requisitos. Os
usuários do sistema podem ser divididos em professores e alunos. Cada um possui papéis
distintos na utilização do sistema, e executam ações.
Figura 5.8 - Diagrama de casos de uso
46
Cada caso de uso será brevemente descrito, divididos por tipo de atores.
a) Professor
As atribuições do professor são as que aparecem na Figura 5.9
Figura 5.9 - Casos de Uso do Ator Professor
Cadastrar Conceitos: Cadastra conceitos dentro do curso em que o usuário se
encontra associado e os associa com disciplinas. A partir deste caso de uso, no
47
futuro, não serão necessárias integrações com o software Protegé para a
atualização da ontologia.
Editar Conceitos: Edita conceitos e suas relações de dependência;
Excluir Conceitos: Exclui os conceitos e todas suas relações de dependência;
Cadastrar Disciplinas: Cadastra disciplinas dentro do curso em que o usuário se
encontra cadastrado;
Editar Disciplinas: Edita disciplinas e suas relações de dependência;
Excluir Disciplinas: Exclui disciplinas e suas relações de dependência;
Cadastrar Cursos: Cadastra um curso;
Editar Cursos: Edita um curso;
Excluir Cursos: Exclui um curso e todas suas relações de dependência;
Cadastrar Alunos: Cadastra um aluno e o associa a um curso;
Editar Alunos: Edita um aluno e todas as suas relações de dependência;
Excluir Alunos: Exclui um aluno e todas suas relações de dependência;
Cadastrar Exercícios: Cadastra exercícios e associa os conceitos referentes a ele.
Para cadastrar um exercício, todos os conceitos relacionados à ele, devem ser
escolhidos. Desta forma, quando o mesmo for resolvido, o NAC do aluno será
atualizado. O procedimento é visualizado na Figura 5.10;
Editar Exercícios: Edita um exercício e todas suas relações de dependência;
Excluir Exercícios: Exclui um exercício e todas suas relações de dependência;
Login: O usuário inicia o sistema e de acordo com seu perfil, são definidas as
variáveis de sessão do sistema;
Visualizar NAC: Os usuários conseguem visualizar os NACs de um aluno
referente os conceitos das disciplinas selecionada;
Atualizar NAC: O professor atualiza o NAC de um conceito para um aluno;
Visualizar Mapas Conceituais dos Conceitos: Ao selecionar um conceito, seu
mapa conceitual é criado e disponibilizado em um arquivo de texto para
download. Este arquivo é compatível com o software Cmap Tools (2006), que
gerencia conteúdo de mapas conceituais;
48
Visualizar Mapas Conceituais das Disciplinas: Ao selecionar uma disciplina, o
mapa conceitual dos seus conceitos é criado e disponibilizado em um arquivo de
texto para download. Este arquivo é compatível com o software Cmap Tools
(2006), que gerencia conteúdo de mapas conceituais;
Visualizar Ontologia por Disciplina: Ao selecionar uma disciplina, visualiza-se
o conteúdo do domínio da mesma e;
Visualizar Ontologia por Conceito - É importante que o professor tenha acesso a
toda estrutura de conceitos e disciplinas, para no caso de um plano de mudanças
de currículo. Dessa forma, caso precise alterar uma disciplina da grade por
qualquer motivo, conseguirá visualizar os pré-conceitos que aquela disciplina
tem com relação a outras, não permitindo assim, lacunas na aprendizagem
significativa dos alunos
Figura 5.10 - ACAvA - Funcionalidade de cadastramento de exercícios
49
b) Administrador
Dentro das ões que o professor desempenha, algumas também podem ser
realizadas pelo administrador, a fim de ajudar o professor, sempre que possível. A Figura
5.11 mostra as atividades do administrador.
Figura 5.11 - Casos de Uso do Ator Administrador
c) Aluno
As seguintes ações são realizadas pelos alunos, de acordo com a Figura 5.12:
Figura 5.12 - Casos de Uso do Ator Aluno
50
O caso de uso, Realizar Exercícios, funciona da seguinte maneira: de acordo com
seu NAC no momento da ação relacionado a diversos conceitos, irá visualizar os exercícios
referentes ao seu perfil para resolução e atualização do NAC. Para isso, a aplicação avalia
através de métodos de buscas em mapas conceituais da aprendizagem significativa, qual o
conceito mais específico que o aluno não possui e incentiva o aluno a fazer o exercício
desse tópico. Para os alunos, a reflexão sobre seu próprio conhecimento é muito importante
em qualquer situação de aprendizagem, indispensável para os que pretendem se aprimorar
no próprio ato de aprender.
Para todos os casos de uso citado acima e exibidos no diagrama de caso de uso, foi
feita uma especificação de caso de uso, onde cada etapa da atividade é descrita com
detalhamento. Algumas destas especificações são demonstradas no Apêndice A. Também
para cada especificação foi desenvolvido um diagrama de seqüência, a fim de facilitar o
relacionamento de cada método criado e suas classes. Alguns destes diagramas estão
disponíveis no Apêndice B. O diagrama de classes é discutido na seção a seguir.
5.5.2. Diagrama de Classes
A Figura 5.13 exibe o diagrama de classes UML, que sumariza todas as relações
entre classes, variáveis definidas e métodos necessários, mostrando a divisão em camadas
do sistema, ressaltando a camada de dados, modificada a partir do diagrama de classes da
Figura 4.7 (introduzida no Capítulo 4) de modo a incorporar elementos sistêmicos como
autenticação. Este diagrama de classe foi desenvolvido na fase de análise de
desenvolvimento do sistema.
Classe a classe será detalhada nesta seção do trabalho, utilizando a classe na fase de
design, onde os parâmetros de entrada e de saída das funções são exibidos. Não serão
consideradas para a criação de classes, datas de manipulação de instância, como cadastro,
edição e exclusão, porém, todas estas datas estão armazenadas no banco de dados, para
controle de uso e auditoria.
51
+setConceito()
+getConceito()
+updateConceito()
+deleteConceito()
+getListaConceito()
-IDConceito : int
-nomeConceito : string
Conceito
+setDisciplina()
+getDisciplina()
+updateDisciplina()
+deleteDisciplina()
+getListaDisciplina()
-idDisciplina : int
-nomeDisciplina : string
-etapaDisciplina : string
Disciplina
+setConceitoDisciplina()
+getConceitoDisciplina()
+getConceitoDisciplina()
+updateConceitoDisciplina()
+deleteConceitoDisciplina()
-IDConceito : int
-IDDisciplina : int
ConceitoDisciplina
+setConceitoDependencia()
+getConceitoDependencia()
+getConceitoDependencia()
+updateConceitoDependencia()
+deleteConceitoDependencia()
+getConceitoDependenciaParaMapaConceitual()
-IDConceitoPai : int
-IDConceitoFilho : int
ConceitoDependencia
+setCurso()
+getCurso()
+updateCurso()
+deleteCurso()
+getListaCurso()
-IDCurso : int
-nomeCurso : string
Curso
+setCursoDisciplina()
+getDisciplinaCurso()
+updateCursoDisciplina()
+deleteCursoDisciplina()
+getListaCursoDisciplina()
+getCursoDisciplina()
-IDCurso : int
-IDDisciplina : string
CursoDisciplina
+setAluno()
+getAluno()
+updateAluno()
+deleteAluno()
+getListaAluno()
-IDAluno : int
-nomeAluno : string
Aluno
+setAlunoCurso()
+getAlunoCurso()
+updateAlunoCurso()
+deleteAlunoCurso()
+getListaAlunoCurso()
-idAluno : int
-idCurso : int
AlunoCurso
+Exercicio()
+setExercicios()
+getExercicios()
+updateExercicio()
+deleteExercicio()
+getListaExercicio()
-idExercicio : int
-enunciadoExercicio : string
-RespostaAExercicio : char
-RespostaBExercicio : char
-RespostaCExercicio : char
-RespostaDExercicio : char
-RespostaEExercicio : char
-RespostaCorretaExercicio : char
Exercicio
+ConceitoExercicio()
+setConceitoExercicio()
+getConceitoExercicio()
+getConceitoExercicio()
+updateConceitoExercicio()
+deleteConceitoExercicio()
-idConceito : int
-idExercicio : int
ConceitoExercicio
+AlunoConceito()
+setNAC()
+getNAC()
+updateNAC()
+deleteNAC()
+getConceitoMaisEspecificoComMenorNAC()
+getNACGeralAluno()
+getNACAlunoPorMes()
-idAluno : int
-idConceito : int
-NAC : int
-dataNAC
AlunoConceito
Screen
+CorrigeExercicio()
+RegraNACExercicio()
+ClusterizaAlunos()
+exibeMensagem()
Controller
+autenticaUsuario()
+getUsuarioCurso()
-loginUsuario : string
-senhaUsuario : string
-privilegioUsuario : string
-cursoUsuario : int
Usuario
* 11 *
1
*
*
1
*
1
*1
* 1 1 *
1
*
1
*
Figura 5.13 - Diagrama de classes do Sistema
52
A Tabela 5.2 mostra a classe Conceito na fase de design do diagrama de classes da
modelagem UML. Esta classe possui os atributos e métodos referentes aos conceitos, que é
uma das base de domínio da formação da ontologia.
Tabela 5.2 - Atributos e Métodos da classe Conceito
Atributos e Métodos Descrição
iDConceito: int Identificador do conceito
nomeConceito: string Indica o nome do conceito
Conceito() Construtor da classe
setConceito(nomeConceito) Cadastra um conceito
getConceito(idConceito) Retorna o nome do conceito.
updateConceito(idConceito: int,
nomeConceito: String)
Atualiza os dados de um conceito.
deleteConceito(idConceito) Exclui os dados de um conceito
getListaConceitos()
Retorna todos os nomes e identificadores de conceitos
cadastrados no banco.
A Tabela 5.2 mostra a classe ConceitoDependencia na fase de design do diagrama de
classes da modelagem UML. Esta classe possui os atributos e métodos referentes ao
relacionamento entre conceitos, e identifica a relação pré-requisito/pós-requisito para um
conceito.
Tabela 5.3 - Atributos e Métodos da Classe ConceitoDependencia
53
Atributos e Métodos Descrição
idConceitoPai: int Primeiro conceito que será associado a outro.
Nesta relação entre dois conceitos, o conceito
significa um pós-conceito para o outro conceito
relacionado.
idConceitoFilho: int Segundo conceito a ser associado a outro. Nesta
relação entre dois conceitos, o conceito significa
um pré-conceito para o outro conceito relacionado.
ConceitoDependencia() Construtor da classe
setConceitoDependencia(idConceito,
idConceitoDependente, relacao)
Insere na tabela relacional um conceito e seu
conceito dependente. A variável relação na
codificação é fixa e indica pré-requisito ou pós-
requisito. É utilizada porque este mesmo método é
utilizado para cadastrar pré-conceitos e pós-
conceitos para um determinado conceito. Este
método é chamado sempre que existir uma
inclusão de relação entre conceitos.
getConceitoDependenciaPai(int
idConceitoPai)
Dado o id do conceito pai (pós- requisitos), retorna
todos os conceitos que são filhos (pré-requisitos)
para este conceito.
getConceitoDependenciaFilho(int
idConceitoFilho)
Dado o id do conceito filho (pré-requisitos),
retorna todos os conceitos que são pais (pós-
requisitos) para este conceito.
updateConceitoDependencia(int
idConceitoPai, int idConceitoFilho)
Atualiza no banco de dados a relação entre dois
conceitos
deleteConceitoDependencia(int
idConceito)
Apaga do banco de dados a relação entre dois
conceitos
getConceitoDependenciaParaMapaConceit
ual(int idConceitoPai)
Dado um conceito Pai (conceito que será pós-
requisito para outros), retorna o Mapa Conceitual
desse Conceito em até 2 camadas de hierarquia.
A Tabela 5.4 mostra a classe ConceitoDisciplina na fase de design do diagrama de
classes da modelagem UML. Esta classe possui os atributos e métodos referentes ao
relacionamento entre um conceito e uma disciplina.
54
Tabela 5.4 - Atributos e Métodos da classe ConceitoDisciplina
Atributos e Métodos Descrição
idConceito:int Identificador do conceito
idDisciplina: int Identificador da Disciplina
ConceitoDisciplina() Construtor da classe
setConceitoDisciplina(idConceito,
idDisciplina)
Insere no banco o conceito e sua disciplina relacionada.
Caso um mesmo conceito seja ensinado em mais de uma
disciplina, este método é chamado de acordo com a
quantidade de disciplinas relacionadas a este conceito.
getConceitoDisciplina(idDisciplina) Retorna todos os conceitos de uma determinada
disciplina.
getDisciplinaConceito(idConceito) Retorna todas as disciplinas, relacionadas a um
determinado conceito.
updateConceitoDisciplina() Atualiza a relação entre um conceito e uma disciplina.
deleteConceitoDisciplina() Apaga a relação entre um conceito e uma disciplina.
A Tabela 5.5 mostra a classe ConceitoExercicio na fase de design do diagrama de
classes da modelagem UML. Esta classe é responsável por atribuir vários conceitos a um
exercício.
Tabela 5.5 - Atributos e Métodos da classe ConceitoExercicio
Atributos e Métodos Descrição
iDConceito: int Identificador do Conceito
55
iDExercicio: int Identificador do Exercicio
ConceitoExercicio() Construtor da classe
setConceitoExercicio() Cadastra no banco de dados uma relação entre conceito e
exercício.
getConceitoExercicio(int
idExercicio)
Retorna do banco de dados todos os conceitos relacionado
a um exercício, dado seu identificador.
getExercicioConceito(int
idConceito)
Retorna do banco de dados todos os exercícios relacionado
a um conceito, dado seu identificador.
updateConceitoExercicio() Atualiza no banco de dados a relação entre conceito e
exercício.
deleteConceitoExercicio() Apaga do banco de dados a relação entre conceito e
exercício.
A Tabela 5.6 mostra a classe AlunoConceito na fase de design do diagrama de classes
da modelagem UML. Esta classe é responsável por relacionar um conceito com seu nível
de aquisição de um aluno.
Tabela 5.6 - Atributos e Métodos da classe AlunoConceito
Atributos e Métodos Descrição
idAluno:int Identificador do aluno.
idConceito: int Identificador do conceito.
NAC:int Valor de 0 a 10 referentes ao nível de
aquisição do conhecimento do aprendiz de um
conceito em um determinado momento.
dataNAC:date Data da inclusão do NAC no banco de dados.
AlunoConceito() Construtor da classe
56
setNAC() Cadastra o NAC de um aluno, ou seja a relação
entre aluno e conceito em um determinado
momento.
getNAC(idAluno, idConceito) Retorna o NAC de um aluno
updateNAC(idAluno, idConceito, NAC) Atualiza o NAC de um aluno
getConceitoMaisEspecificoComMenorNAC() Retorna o conceito mais específico com menor
NAC
getNACGeralAluno() Retorna a soma de todos os NACs dos alunos
divididos pelos números de conceitos
ensinados. Os conceitos ensinado devem ter
pelo menos NAC >= 0, não podendo ser NULL
getNACAlunoPorMes Retorna a soma de todos os NACs dos alunos
divididos pelos números de conceitos
ensinados em um determinado mês.
A Tabela 5.7 mostra a classe Disciplina na fase de design do diagrama de classes da
modelagem UML. Esta classe é responsável por manipular atributos e métodos de uma
disciplina.
Tabela 5.7 - Atributos e Métodos da classe Disciplina
Atributos e Métodos Descrição
idDisciplina:int Identificador da Disciplina
nomeDisciplina:string Nome da Disciplina
etapaDisciplina:string Etapa em que a Disciplina é lecionada dentro do Curso
Disciplina() Construtor da classe.
setDisciplina(nomeDisciplina
, etapaDisciplina)
Cadastra uma disciplina.
getDisciplina(idDisciplina) Retorna os dados de uma disciplina.
updateDisciplina() Atualiza os dados de uma disciplina, dado seu identificador.
deleteDisciplina() Apaga os dados de uma disciplina, dado seu identificador.
57
getListaDisciplina() Retorna uma lista com todas as disciplinas cadastradas em um
banco de dados.
A Tabela 5.8 mostra a classe CursoDisciplina na fase de design do diagrama de classes
da modelagem UML. Esta classe é responsável por relacionar um curso a uma disciplina.
Tabela 5.8 - Atributos e Métodos da classe CursoDisciplina
Atributos e Métodos Descrição
idCurso: int Identificador do Curso
idDisciplina Identificador da Disciplina
CursoDisciplina() Construtor da classe
setCursoDisciplina(idCurso,
idDisciplina)
Cadastra o relacionamento curso-disciplina.
getDisciplinaCurso(id Curso) Retorna a disciplina a que o curso pertence, dado o
identificador do curso.
getCursoDisciplina(id Disciplina) Retorna o curso a que a disciplina pertence, dado o
identificador da disciplina.
updateCursoDisciplina() Atualiza a relação entre curso e disciplina
deleteCursoDisciplina() Apaga a relação entre curso e disciplina
A Tabela 5.9 mostra a classe Curso na fase de design do diagrama de classes da
modelagem UML. Esta classe é responsável por manipular atributos e métodos de um
curso.
Tabela 5.9 - Atributos e Métodos da classe Curso
58
Atributos e Métodos Descrição
idCurso:int Identificador do curso
nomeCurso:string Nome do curso
Curso() Construtor da classe
setCurso() Cadastra um curso no banco de dados
getCurso(idCurso) Retorna os dados de um curso do banco de dados dado o seu
identificador
updateCurso(idCurso) Atualiza os dados do curso, dado seu identificador
deleteCurso(idCurso) Apaga os dados do curso, dado seu identificador
getListaCurso() Retorna a lista de todos os cursos cadastrados.
A Tabela 5.10 mostra a classe AlunoCurso na fase de design do diagrama de
classes da modelagem UML. Esta classe é responsável por relacionar um aluno a um curso.
Tabela 5.10 - Atributos e Métodos da classe AlunoCurso
Atributos e Métodos Descrição
idAluno:int Identificador do aluno
idCurso:int Identificador do curso
AlunoCurso() Construtor da classe
setAlunoCurso() Cadastra uma relação de Aluno e Curso no banco
getAlunoCurso(idCurso) Retorna os alunos matriculados em um curso.
getCursoAluno(idAluno) Retorna o curso de um Aluno, dado seu identificador.
updateAlunoCurso() Atualiza a relacao entre Aluno e Curso.
deleteAlunoCurso() Apaga a relacao entre Aluno e Curso.
A Tabela 5.11 mostra a classe Aluno na fase de design do diagrama de classes da
modelagem UML. Esta classe é responsável por manipular atributos e métodos do aluno de
um curso.
59
Tabela 5.11 - Atributos e Métodos da classe Aluno
Atributos e Métodos Descrição
idAluno:int Identificador do aluno
nomeAluno:string Nome do aluno
Aluno() Construtor da classe
setAluno() Cadastra aluno no banco de dados
getAluno(idAluno) Retorna o nome do aluno
updateAluno() Atualiza os dados do aluno no banco de dados
deleteAluno() Apaga os dados do aluno no banco de dados
getListaAluno() Retorna uma lista com todos os alunos cadastrados no
banco de dados.
A Tabela 5.12 mostra a classe Usuario na fase de design do diagrama de classes da
modelagem UML. Esta classe é responsável por manipular atributos e métodos de um
usuário.
Tabela 5.12 - Atributos e Métodos da classe Usuario
Atributos e Métodos Descrição
loginUsuario:string Login do usuário.
senhaUsuario:string Senha do usuário.
cursoUsuario:int Identifica o id do curso dos professores e administradores. É
utilizado apenas pelos usuários administradores e
professores.
privilegioUsuario:string Identifica se o usuario e aluno, professor ou administrador.
60
Usuario() Construtor da classe
autenticaUsuario(loginUsuario,
senhaUsuario)
Indica o privilégio do usuário, que pode ser professor, aluno
ou administrador.
getUsuarioCurso(loginUsuario) Retorna o idCurso ao que o administrador, professor ou auno
pertence.
A Tabela 5.13 mostra a classe Exercicio na fase de design do diagrama de classes
da modelagem UML. Esta classe deve conter um enunciado em forma de texto e cinco
respostas diferentes, quatro falsas e uma correta, que serão dispostas em forma de
alternativas para o aluno. O professor deve apenas indicar a alternativa correta, comporta os
seguintes métodos relacionados:
Tabela 5.13 - Atributos da classe Exercicio
Atributos e Métodos Descrição
idExercicio:int Identificador do exercício.
enunciadoExercicio:string Enunciado do exercício.
respostaAExercicio:char Resposta do exercício: alternativa A.
respostaBExercicio:char Resposta do exercício: alternativa B.
respostaCExercicio:char Resposta do exercício: alternativa C.
respostaDExercicio:char Resposta do exercício: alternativa D.
respostaEExercicio:char Resposta do exercício: alternativa E.
respostaCorretaExercicio:char Resposta correta do exercício.
Exercício() Construtor da classe
setExercicio() Cadastra um exercício.
getExercicio(idExercicio) Retorna os dados de um exercício, dado deu identificador.
deleteExercicio() Apaga um exercício.
61
updateExercicio() Atualiza os dados de um exercício.
getListaExercicio() Retorna uma lista com todos os exercícios cadastrados no
banco.
A Figura 5.14 mostra a classe Screen, que é criada durante a fase de design da
modelagem UML do digrama de classes. É responsável por exibir todos os dados no
browser dos usuários, e seus atributos e métodos serão abstraídos neste trabalho.
Figura 5.14 - Classe Screen
A Tabela 5.14 mostra a classe Controller, criada na fase de análise da modelagem
UML, que serve de ligação entre a classe Screen e o resto do sistema. Comporta os
seguintes métodos relacionados.
Tabela 5.14 - Atributos da classe Controller
Atributos Descrição
CorrigeExercicio() O sistema compara a resposta indicada pelo aluno com resposta
correta indicada pelo professor.
RegraNACExercicio() Define a regra de NAC para um exercício, caso o aluno tenha
acertado a questão, à todos os conceitos relacionados ao
exercício, é atribuído o NAC 10. Caso contrário, o valor atribuído
será 0.
ClusterizaAlunos() Baseado na regra de classificação descrita na seção 5.3, os
alunos são exibidos em uma lista onde é fácil diferenciar o nível
de aprendizado de cada aluno.
exibeMensagem() Retorna a mensagem da operação concluída ou mensagem de
erro.
62
Nesta seção foram apresentados os diagramas UML utilizados para o
desenvolvimento do ACAvA. As conclusões desta dissertação e a proposta de trabalhos
futuros são apontados no capítulo a seguir.
63
6 Conclusões Finais
Partindo do princípio em que a visão contemporânea da aprendizagem fundamenta-
se na construção de novos conhecimentos e compreensões baseados no que o aprendiz já
conhece e acredita, os professores precisam estar atentos às lacunas de conceitos que os
estudantes trazem sobre a matéria. Se os conceitos iniciais dos estudantes são ignorados, as
compreensões que eles desenvolvem podem ser muito diferentes das que os professores
pretendem.
Neste trabalho foi desenvolvido um sistema de acompanhamento do nível de
aquisição dos conhecimentos dos alunos, frente aos conceitos ensinados em um curso. Para
tanto foi necessário modelar e representar o conteúdo educacional do Curso de graduação
de Ciência da Computação da Universidade Presbiteriana Mackenzie, através de sua
ontologia, que serviu como base conceitual para o desenvolvimento do sistema. Este
sistema, foi denominado ACAvA e auxilia o professor a manipular a ontologia
desenvolvida, criar novas ontologias e gerenciar conhecimentos.
No ACAvA, o histórico dos alunos no curso ficam armazenados na base conceitual
e servem de apoio para o professor identificar ao longo do tempo se existem conceitos a
serem melhor trabalhados e quais os conceitos são necessários, através da aprendizagem
significativa, para afixá-lo na estrutura cognitiva do aprendiz.
Como contribuição adicional deste trabalho, as seguintes perguntas de pesquisa
feitas na introdução agora podem ser respondidas. A avaliação continuada auxilia o
professor, através do seu histórico a visualizar como foi o aprendizado dos alunos, dados os
conceitos ensinados. Com o ACAvA, o professor pode alterar a cada turma a estrutura
conceitual do curso e verificar se esta estrutura é coerente com a aprendizagem
significativa. Ou seja, se através desta estrutura os alunos tiveram melhor ou menor
desempenho.
64
Para o professor conhecer o estado de conhecimento dos estudantes, o ACAvA
gerencia os NACs de forma a prover auxílio para uma educação continuada. O ACAvA foi
modelado de forma a atender qualquer curso de graduação, através de uma simples
ontologia. Esta ontologia, também pode ser utilizada em outros sistemas que utilizem esta
mesma tecnologia.
6.1 Trabalhos Futuros
Considerando as lacunas do ACAvA e seu potencial de crescimento, algumas
sugestões para trabalhos futuros são apresentadas a seguir:
Integração do sistema com a base de dados do software Protegé, que armazena o
domínio da ontologia, com a base de dados relacional, que armazena o domínio
do conhecimento do aluno;
Desenvolvimento do algoritmo de clusterização, a fim do professor não intervir
nas técnicas de agrupamento, para agrupamento e classificação dos alunos, por
seu nível de conhecimento;
Melhora na interface gráfica do sistema e possibilidade de geração de relatórios
e;
Considera-se o estudo e desenvolvimento para outras aplicações do modelo,
como por exemplo sua utilização em empresas para adequação de funções e
cargos, onde os conceitos seriam competências e seu nível de habilidade em
uma competência, seu NAC.
65
Referências
APACHE. The Apache Software Fundation. Disponível em < http://www.apache.org/>.
Acesso em 11 maio 2007.
AUSUBEL, D. P. Educational Psycology: A conitive view. Holt, Rinehart and Winston
Inc., New York, 1968.
AUSUBEL, David; HANESIAN, Helen. Psicologia Educacional. Rio de Janeiro.
Interamericana. 1980.
BOULAY, J. Benedict H. du. Some Difficulties of Learning to Program. In: Journal of
Education Computing Research. 1986.
BRANSFORD, A. L. Brown. How people learn: Brain, Mind, Experience and School:
Expanded Edition. National Academy Press, Washington, D.C. National Research Council.
2003.
CMAP TOOLS. Knowledge Modeling Kit. Disponível em:< http://cmap.ihmc.us/>.
Acesso em 11/07/2006. 2006.
CUCCHIARELLI, A.; PANTI, M.; VALENTI, S. Web-based assessment in student
learning. University of Ancona. Ancona. 2000.
CUNHA, Marcos José Silva e. AC3As-Web: Ambiente Cooperativo de Apoio à
Avaliação de Aprendizagem Significativa na Web. Dissertação de Mestrado. Instituto
Tecnológico de Aeronáutica. São José dos Campos. 2002.
DUINEVELD, A. J.; STOTER, R.; WEIDEN, M. R.; KENEPA, B.; BENJAMINS, V.
R: Wondertools? A comparative study of ontological engineering tools. Proceedings of the
12th Workshop on Knowledge Acquisition, Modeling and Management (KAW’99).
Canada, 1999.
FRANÇA, Vilma Fernandes de. Avaliação Contínua da Aprendizagem: Um estudo de
caso em Curso de Graduação. Tese de Mestrado. Instituto Tecnológico de Aeronáutica.
São José dos Campos. 2004.
66
FREITAS, Juliana Gonçalvez de. Uma ferramenta de perfis de usuários baseada em
dados qualitativos. Trabalho de Conclusão de Curso. Universidade do Vale do Rio dos
Sinos. 2005.
GAGNÉ, Robert M. Como se realize a aprendizagem. Ao livro técnico S.A. 1973.
GAGNÉ, Robert M.; BRIGGS, Leslie J. Wager; WALTER W. Principles of
Instructional Design. Fort Worth, Harcout Brace & Company. 1992.
GREENBERG, Leonard. LMS and LCMS: What’s the difference? Learning Circuits.
ASTD’s Source for e-learning. 2002.
GRUBER, T. R. A Translation Approach to Portable Ontology Specification. 1993.
GUERRA, J. H. L. Utilização do computador no processo de ensino aprendizagem:
uma aplicação em planejamento e controle da produção. Dissertação de Mestrado. Escola
de Engenharia de São Paulo. 2000.
GUIZZARDI, G. 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.
HAMZE, Amélia. O que é a aprendizagem. Brasil Escola. Disponível em
<http://www.brasilescola.com/pedagogia/o-que-e-aprendizagem.htm>. Acesso em
16/01/2007.
KEMERY, E. R. Developing on-line Colaboration. University of Baltimore. Baltimore.
2000.
KOHONEN, T. Self-Organing Maps. Berlin: Springer-Verlag, 2001.
KOMOSINSK, L. J.; LACERDA, C. D. de Freitas de; FALQUETO, J. Uso de agentes
para apoio à medição de diálogos entre estudantes via internet. Anais do V Congresso
Iberamericano de Informática na Educação. Viña del Mar, 2000.
KURNIA, A.; LIN, A. e CHEANG B. Online Judge. Computer & Education, v. 36.
LEITE, A. de Sá. 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. 1999.
MaCQUEEN, J. B. Some Methods for classification and Analysis of Multivariate
Observation. Proceedings of 5
th
Berkley Symporium on Mathematical Statitics and
Probability, Berkley, University of California. Press, 1:281-297. 1967.
67
MANSINI, Elcie F. S. Psicopedagogia na escola: buscando condições para a
aprendizagem significativa. São Paulo. Unimarco. 1993.
MARIETTO, M. G. B. Definição dinâmicas de estratégias instrucionais em sistemas de
tutoria inteligente: uma abordagem multiagente em www. Tese de Doutorado. Instituto
Tecnológico de Aeronáutica. São José dos Campos. 2000.
MASETTO, M. T. Competência Pedagógica Do Professor Universitário. São Paulo:
Editora Summus, 2003.
MELO, R. M. Teoria de Ausubel. Brasília: UNB,1999. Disponível em:
<Http://www.xr.pro.br/Monografias/Ausubel.html >. Acesso em: 23 abr. 2007.
MENDÉZ, R. ª Florez. Programming distributed collaboration interation through the
world wide web. University of Calgary. 1997. Disponível em: <
http://pages.cpsc.ucalgary.ca/~robertof/publications/thesis/>. Acesso em 11 maio 2007.
MOREIRA, Marco A.; MANSINI, Elcie F.S. Aprendizagem Significativa: A Teoria de
David Ausubel. São Paulo, Centauro.2001.
NETO, H. B. Especificando o tele-ambiente no contexto de educação a distância.
Simpósio Brasileiro de Informática na Educação.Maceió. 2000.
NOVAK, J.D. Learning, Creating and Using Knowleadge: Concept Maps as Facilitative
Tools in Schools and Coorporations. Cornell University. 1998.
NOVAK, J. D., GOWIN, D. B., Learning how to learn. New York, NY. Cambridge
University Press. 1984.
[PÉREZ. Gómez-Pérez, A. A survey on ontology tools. OntoWeb Deliverable D1.3.
Disponível em < http://www.ontoweb.org/download/deliverables/D13_v1-0.zip > Acesso
em 14 mar 2006. 2002.
PERRENOUD, Philippe. Dez novas competências para ensinar. Editora ESF. Paris,
1999.
PEZZA, André B. Um sistema para integração disciplinar e gestão continuada da
aprendizagem. Dissertação de Mestrado. Universidade Presbiteriana Mackenzie.2004.
PFAFFMAN. Pfaffman, J.A. Manipulating and Measuring Student Engagement in
Computer- Based Instruction. Ph.D. thesis, Vanderbilt University. 2003.
PHP. PHP. Disponível em <http://www.php.net>. Acesso em 11 maio 2007.
68
PIMENTEL, Edson Pinheiro. Um Modelo para Avaliação e Acompanhamento
Contínuo do Nível de Aquisição de Conhecimentos do Aprendiz. Tese de Doutorado.
Instituto Tecnológico de Aeronáutica, São José dos Campos. 2006.
PIMENTEL, Edson P.; FRANÇA, Vilma F.; OMAR, Nizam. A caminho de um
ambiente de avaliação e acompanhamento contínuo da aprendizagem em Programação de
Computadores. III Workshop de Informática na Educação em Computação e Informática do
Estado de Minas Gerais, 1(1), p.1-14, 2003.
PIMENTEL Edson; FRANÇA, Vilma F.; OMAR, Nizam. A identificação de grupos de
aprendizes no ensino presencial utilizando técnicas de clusterização. XIV Simpósio
Brasileiro de Informática na Educação. 2003.
PIMENTEL, Edson; OMAR Nizam. Um modelo para o mapeamento do conhecimento
do estudante em ambientes computacionais de aprendizagem.
POSTGREESQL Global Development Group. Disponível em
<http://www.postgresql.org/>. Aceso em 24 jan. 2007.
THE PROTEGÉ PROJECT. Disponível em <http://protege.stanford.edu/>. Aceso em
05 fev. 2006.
REZENDE, S. de O.. Sistemas Inteligentes: Fundamentos e Aplicações. Barueri, SP:
Manole, 2003.
RODRIGUES, A. P.; GEYER, C. F. R. Agente avaliação de ensino e aprendizagem em
EAD. Universidade Federal do Rio Grande do Sul, 2000. Disponível em: <
http://www.inf.ufrgs.br/pos/SemanaAcademica/Semana2000/AlessandraRodrigues/ >.
Acesso em: 23 abr. 2007.
SANTOS, Eduardo Toledo; BARROS, Leilane Nunes de; VALENTE, Vânia Cristina
Pires Nogueira. Projetando uma Ontologia de Geometria Descritiva. 15° Simpósio
Nacional de Geometria Descritiva e Desenho Técnico. São Paulo. 2001.
SBC. Sociedade Brasileira de Computação. Currículo de referência da SBC para cursos
de graduação em Computação e Informática. 1999.
SILBERCHATZ. Korth, H.F; SUDARSHAN, S. Sistemas de Bancos de Dados.
Edição. São Paulo: Makron Books. 1999.
69
SILVA, Vagner. ACMC-MACK Ambiente Cooperativo para aprendizagem
significativa com mapas conceituais. Universidade Presbiteriana Mackenzie. Tese de
Mestrado. São Paulo. 2004.
SILVA, Cassiana Fagundes da; VIEIRA Renata. Avaliação e Seleção de atributos para
clusterização de documentos. São Leopoldo RS: 2003. Disponível em:
<http://www.inf.unisinos.br/~renata/labor/Apresent2003/Poster_Enia.pdf>. Acesso em 20
de dezembro de 2004.
SOUZA, T. P. Construção cooperativa de hipermídia educacional para a web. UFRJ.
Rio de Janeiro. 1999.
TRENTIN, M. A. Utilização de um ambiente remoto de avaliação no auxílio ao
aprendizado. Universidade de Passo Fundo. Passo Fundo. 1999.
WENGER. Artificial Intelligence and Tutoring Systems. Morgan. 1986.
70
Apêndice A – Especificações de Caso de Uso
O detalhamento do diagrama de caso de uso, apresentado no Capítulo 5, é chamado
de especificações de caso de uso. As tabelas abaixo, exibem algumas destas especificações
utilizadas no desenvolvimento do ACAvA.
Tabela A.1 - Especificação de Caso de Uso: Cadastrar Conceito
Nome do Caso de
Uso
Cadastrar Conceitos
Overflow Este caso de uso é ativado pelo professor autorizado a utilizar o Sistema.
O ator cadastra novos conceitos de acordo com a inclusão de novas matérias no
curso e atribui informações pertinentes ao conceito.
Eventflow Fluxo Básico:
1. O sistema reconhece o curso do autor.
2. O sistema retorna as disciplinas do curso.
3. O sistema retorna os conceitos das disciplinas do curso.
4. O ator indica o nome do conceito.
5. O ator seleciona os pré-conceitos necessários para aprender o conceito que
está sendo cadastrado.
6. O ator seleciona os pós-conceitos que utilizam este conceito como base de
sua aprendizagem.
7. O ator seleciona as disciplinas à que este conceito pertence.
8. Os dados são armazenados no banco de dados.
9. Uma mensagem de “Operação Concluída” é exibida para o ator.
Fluxo Alternativo:
Não possui.
Relacionamento Ator: Professor
Pré-Condições Para que este caso de uso seja iniciado, o caso de uso Login deve estar completo
em seu Fluxo Básico e o privilégio do usuário deve ser professor.
Outras Informações
71
Tabela A.2 - Especificação de Caso de Uso: Cadastrar Disciplina
Nome do Caso de
Uso
Cadastrar Disciplinas
Overflow Este caso de uso é ativado pelo professor autorizado a utilizar o Sistema.
O ator cadastra novas disciplinas de acordo com a alteração da ementa no curso e
atribui informações pertinentes a disciplina.
Eventflow Fluxo Básico:
1. O sistema reconhece o curso do ator.
2. O autor indica o nome da disciplina.
3. O autor indica a etapa em que a disciplina é lecionada.
4. Os dados são armazenados no banco de dados, nas tabelas Disciplina e
CursoDisciplina
5. Uma mensagem de “Operação Concluída” é exibida para o ator.
Fluxo Alternativo:
Não possui.
Relacionamento Ator: Professor
Pré-Condições Para que este caso de uso seja iniciado, o caso de uso Login deve estar completo
em seu Fluxo Básico e o privilégio do usuário deve ser professor.
Outras Informações
Tabela A.3 - Especificação de Caso de Uso: Cadastrar Curso
Nome do Caso de
Uso
Cadastrar Cursos
Overflow Este caso de uso é ativado pelo professor e pelo administrador autorizados a
utilizarem o Sistema.
Os atores cadastram novos cursos e atribuem informações pertinentes.
Eventflow Fluxo Básico:
1. O ator indica o nome do curso.
2. Os dados são armazenados no banco de dados.
3. Uma mensagem de “Operação Concluída” é exibida para o ator.
Fluxo Alternativo:
Não possui.
Relacionamento Atores: Professor e Administrador
Pré-Condições Para que este caso de uso seja iniciado, o caso de uso Login deve estar completo
em seu Fluxo Básico e o privilégio do usuário deve ser professor ou administrador.
Outras Informações
72
Tabela A.4 - Especificação de Caso de Uso: Cadastrar Alunos
Nome do Caso de
Uso
Cadastrar Alunos
Overflow Este caso de uso é ativado pelo professor e pelo administrador autorizados a
utilizarem o Sistema.
Os atores cadastram novos alunos e atribuem informações pertinentes.
Eventflow Fluxo Básico:
1. O ator indica o nome do aluno.
2. O ator seleciona o curso à que o aluno pertence.
3. Os dados são armazenados no banco de dados e o aluno é associado a
todos os conceitos do curso, porém o valor dessa associação será NULL..
4. Uma mensagem de “Operação Concluída” é exibida para o ator.
Fluxo Alternativo:
Não possui.
Relacionamento Atores: Professor e Administrador
Pré-Condições Para que este caso de uso seja iniciado, o caso de uso Login deve estar completo
em seu Fluxo Básico e o privilégio do usuário deve ser professor ou administrador.
Outras Informações
Tabela A.5 - Especificacao de Caso de Uso: Login
Nome do Caso de
Uso
Login
Overflow Este caso de uso é ativado pelo professor, aluno e administrador antes de utilizar o
Sistema.
O ator acessa uma tela de login antes de utilizar o sistema.
Eventflow Fluxo Básico:
1. O ator indica seu login.
2. O ator indica sua senha.
3. O sistema verifica se o login e a senha estão corretos e retorna o
identificador do curso do usuario [A].
4. O ator exibe ao ator a página principal.
Fluxo Alternativo:
[A] Se login e senha estiverem incorretos, uma mensagem de erro é exibida na tela.
Relacionamento Atores: Professor, Aluno e Administrador.
Pré-Condições
Outras Informações
73
Tabela A.6 - Especificação de Caso de Uso: Realizar Exercício
Nome do Caso de
Uso
Realizar Exercícios
Overflow Este caso de uso é ativado pelo aluno autorizado a utilizar o Sistema.
O ator pode realizar um exercício cadastrado no sistema.
Eventflow Fluxo Básico:
1. O sistema reconhece as disciplinas do curso.
2. O sistema reconhece os conceitos das disciplinas do curso.
3. O sistema reconhece o nível de conhecimento do aluno para cada conceito.
4. O sistema busca o conceito mais específico com menor nível de NAC.
5. O sistema reconhece um exercício para a regra escolhida de associação de
NACs e exercícios[A].
6. O ator indica a alternativa que achar correta.
7. O sistema verifica a resposta do autor, e atualiza os NACs relativos aos
conceitos do exercício de acordo com as regras: Se correta, atribui 10 para
todos os NACs, se incorreta, atribui 0 para todos os NACs.
8. O sistema exibe a resposta correta na tela.
9. O sistema permite ao ator voltar para o fluxo 1 e iniciar outro exercício.
Fluxo Alternativo:
[A] Caso não haja exercícios nesta condição, exibe-se um exercício com data de
cadastro mais antigo.
Relacionamento Atores: Aluno
Casos de Usos: Atualiza NAC
Pré-Condições Para que este caso de uso seja iniciado, o caso de uso Login deve estar completo
em seu Fluxo Básico e o privilégio do usuário deve ser aluno.
Outras Informações
74
Tabela A.7 - Especificação de Caso de Uso: Atualizar NAC
Nome do Caso de
Uso
Atualizar NAC
Overflow Este caso de uso é ativado pelo aluno ou professor autorizado a utilizar o Sistema.
O ator pode atualizar um NAC cadastrado no sistema.
Eventflow Fluxo Básico:
1. O sistema reconhece o curso.
2. O sistema exibe uma lista com todos os alunos do curso na tela.
3. O ator seleciona um aluno.
4. O sistema lista todas as disciplinas do curso na tela.
5. O ator seleciona uma disciplina.
6. O sistema exibe a uma lista com todos os conceitos pertencentes à
disciplina e um campo com o NAC atual do aluno em relação a este
conceito.
7. O ator indica valores de 0 a 10 para os conceitos que desejar.
8. Os dados referentes ao NAC são armazenados no banco de dados.
9. Uma mensagem de “Operação Concluída” é exibida para o ator.
Fluxo Alternativo:
Não possui
Relacionamento Atores: Aluno ou professor.
Casos de Usos: Realiza Exercício
Pré-Condições Para que este caso de uso seja iniciado, o caso de uso Login deve estar completo
em seu Fluxo Básico e o privilégio do usuário deve ser aluno ou professor.
Outras Informações
75
Apêndice B – Diagrama UML de Seqüência
O diagrama de seqüência, que ilustra o fluxo de processos de cada caso de uso na
fase de design de desenvolvimento de sistemas foi proposto para auxiliar na codificação do
sistema e alguns de seus exemplos são apresentados neste apêndice.
Figura B.1 - Cadastrar Disciplinas
76
Figura B.2 - Cadastrar Conceitos
77
Figura B.3 - Cadastrar Aluno
78
Figura B.4 - Atualizar NAC
79
Figura B.5 - Cadastrar Curso
Figura B.6 - Login
80
Anexo I – Grade Curricular utilizada
A grade curricular utilizada na modelagem ontológica realizada neste trabalho foi
baseada em duas ementas do Curso em Bacharelado de Ciência da Computação. A primeira
ementa refere-se a uma nova proposta que teve seu inicio de aplicação em 2006. Desta
ementa foram consideradas as quarto primeiras etapas do curso. A segunda ementa refere-
se à antiga ementa do mesmo curso anterior a 2006, entretanto foram consideradas as
quatro ultimas etapas. As tabelas abaixo mostram a ementa de cada disciplina e o ano a que
pertence. Todos os conceitos relacionados neste apêndice foram instanciados no domínio da
ontologia criada.
Desenvolvimento de Software II 7a Etapa – Ementa 2005
Conteúdo Programático
1. Padrões de projeto
1.1. Motivação e conceituação básica
1.2. Padrões GRASP
1.3. Padrões GoF
1.3.1. Padrões criacionais
1.3.2. Padrões estruturais
1.3.3. Padrões comportamentais
1.4. Outros padrões
2. Métricas de software
2.1. Conceitos iniciais
2.2. Métricas estruturadas
2.3. Métricas orientadas a objeto
2.4. Papel das métricas no processo de
desenvolvimento de software
3. Testes
3.1. Conceitos de testes e testabilidade
3.2. Tipos de testes
3.3. Verificação e Validação de software
4. Qualidade de software
4.1. Conceitos básicos
4.2. Padrões de qualidade
4.2.1. ISO
4.2.2. CMM e CMMi
81
Ambientes Operacionais 1a Etapa – Ementa 2006
Conteúdo Programático
1. Organização e arquitetura de computadores
1.1. Organização básica de um computador
1.2. Unidade Central de Processamento: ULA, registradores, unidade de controle, clock, noções de
execução de programas binários.
1.3. Memória: RAM, ROM, cache.
1.4. Dispositivos de E/S: tipos, interrupções, DMA
2. Sistemas Operacionais
2.1. Módulos básicos de um sistema operacional: gerenciador de processos, gerenciador de memória,
gerenciador de arquivos, gerenciador de dispositivos.
2.2. Exemplos das arquiteturas Windows/Linux
2.3. Noções de processos
2.4. Gerenciamento de memória: noções de carregamento de programas, segmentação e paginação.
2.5. Gerenciamento de arquivos: conceito de sistema de arquivos, processo de formatação,
conversão entre sistemas de arquivos.
2.6. Gerenciamento de dispositivos: rotinas de E/S e device drivers
3. Organização e funcionamento de redes
3.1. Conceitos de redes e principais topologias de interligação
3.2. Noções do modelo de referência ISO/OSI
3.3. Protocolos
3.4. Organização e equipamentos das camadas de hardware
3.4.1. Camada física: meios de transmissão, cabos, hubs e switchs.
3.4.2. Camada de enlace: noções de Ethernet, pontes.
3.4.3. Camada de rede: protocolo IP, roteadores.
3.5. Camada de transporte: noções dos protocolos TCP/UDP
3.6. Camada de aplicação: serviços HTTP, FTP e SMTP.
4. Internet
4.1. Pequeno histórico da Internet
4.2. Serviços da Internet
4.3. Noções de hipertexto e provedoria de serviços
4.4. Noções de HTML e XML
5. Ferramentas de desenvolvimento Linux (Parte prática)
5.1. Instalação do ambiente Linux
5.2. Comandos básicos de gerenciamento de processos e manipulação de sistemas de arquivos
5.3. Shells e linguagens de tipo shell script
5.4. Makefiles e o processo de ligação com bibliotecas
5.5. Ambientes de programação
82
Introdução a algoritmos e computação 1a Etapa - Ementa 2006
Conteúdo Programático
1. Fundamentos de Algoritmos
1.1. Noções intuitivas de problemas e
algoritmos
1.2. Formas de descrição de algoritmos
1.3. Exemplos de problemas elementares e
algoritmos associados
2. Programas e noções do processo de
compilação
2.1. Linguagens de programação
2.2. Programa-fonte, programa-objeto e
programa executável.
2.3. Transformação de algoritmos em
programas
2.4. Noções de documentação de
programas
2.5. Compilação e interpretação
2.6. Prática em ambiente de compilação C
(Windows e Linux)
3. Sistemas numéricos e conversão entre
bases
3.1. Bases decimal, binária e hexadecimal.
3.2. Conversão entre as bases decimal e
binária
3.3. Conversão entre as bases decimal e
hexadecimal
4. Representação interna de dados
4.1. Noções de tipos primitivos de dados
(números e caracteres)
4.2. Representação de números inteiros
(positivos e negativos)
4.3. Noções de representação de números
em ponto flutuante (IEEE 754)
4.4. Representação de caracteres (ASCII e
Unicode)
5. Variáveis
5.1. Definição e iniciação de variáveis
5.2. Operadores aritméticos
5.3. Expressões aritméticas
5.4. Prática em ambiente de compilação C
6. Estruturas de decisão
6.1. Operadores relacionais
6.2. Estrutura do tipo if... else
6.3. Estrutura com múltiplas seleções
(switch... case).
6.4. Prática em ambiente de compilação C
7. Controle de fluxo
7.1. Fluxos de execução em programas
7.2. Laços do tipo while
7.3. Laços do tipo do...while
7.4. Laços do tipo for
7.5. Alteração de fluxos via break, continue
e goto.
7.6. Prática em ambiente de compilação C
8. Alocação dinâmica de memória
8.1. Noções de organização de programas
em tempo de execução
8.2. Funções para alocação dinâmica
(malloc e free)
8.3. Noções de aritmética de ponteiros
8.4. Prática em ambiente de compilação C
9. Funções e procedimentos
9.1. Conceitos sicos de funções e
procedimentos: parâmetros, variáveis
locais e globais, retorno.
9.2. Passagem por valor e por referência
9.3. Prática em ambiente de compilação C
10. Vetores
10.1. Declaração estática e dinâmica de
vetores
10.2. Iniciação de vetores
10.3. Algoritmos elementares de
ordenação (seleção/inserção) e busca
(linear/binária)
10.4. Prática em ambiente de compilação C
11. Arquivos
11.1. Noções elementares de sistemas de
arquivos/diretórios
11.2. Arquivos do tipo texto
11.3. Arquivos binários
11.4. Manipulação de arquivos
11.5. Prática em ambiente de compilação C
12. Registros
12.1. Declaração e iniciação de registros
12.2. Vetores de registros
12.3. Arquivos com registros
83
Técnicas de Desenvolvimento de Algoritmos 2a Etapa - Ementa 2006
Conteúdo Programático
1. Medidas de complexidade de
algoritmos
1.1. Medidas experimentais de
eficiência de algoritmos
1.2. Cotas superiores e a notação O (.).
1.3. Exemplos elementares de análise O
(.).
1.4. Cotas inferiores e a notação (.).
1.5. Otimalidade de algoritmos
2. Noções de corretude de algoritmos
2.1. Pré e pós-condições
2.2. Invariantes de loops
2.3. Exemplos elementares de provas
de corretude
3. Recursividade e divisão-e-conquista
3.1. Algoritmos recursivos x algoritmos
iterativos
3.2. Exemplos elementares de
algoritmos recursivos
3.3. Análise de algoritmos recursivos
(recorrências básicas)
3.4. Conversão de algoritmos recursivos
para iterativos
3.5. Paradigma de divisão-e-conquista
3.6. Relação entre divisão-e-conquista e
recursividade
3.7. Exemplos de aplicação de divisão-
e-conquista, com análise.
4. Backtracking
4.1. Algoritmo geral de backtracking
4.2. Aplicação em problemas clássicos:
labirinto, jogos de tabuleiro, palavras-
cruzadas.
4.3. Eficiência de algoritmos baseados
em backtracking
5. Estruturas de dados básicas
5.1. Pilhas (em vetor)
5.1.1. Operações básicas
5.1.2. Aplicações
5.2. Filas (em vetor)
5.2.1. Operações básicas
5.2.2. Aplicações
5.3. Listas ligadas simples
5.3.1. Alocação dinâmica de
estruturas
5.3.2. Operações básicas
5.3.3. Aplicações
6. Algoritmos de busca
6.1. Busca seqüencial
6.1.1. Vetores
6.1.2. Listas ligadas
6.1.3. Análise
6.2. Busca binária e sua análise
7. Algoritmos de ordenação
7.1. Cota inferior para ordenação
baseada em comparação (nlogn)
7.2. Algoritmos clássicos (em vetores)
7.2.1. Seleção
7.2.2. Inserção
7.2.3. Bubblesort
7.2.4. Mergesort
7.2.5. Heapsot
7.2.6. Quicksort
7.3. Análise de pior caso para os
algoritmos clássicos de ordenação
baseados em comparações
7.4. Algoritmo Radixsort
8. Busca de padrões em strings
8.1. Problema da busca de padrões em
strings e aplicações
8.2. Algoritmo de força bruta
8.3. Algoritmo de Karp-Rabin
8.4. Algoritmo de Knuth-Morris-Pratt
(KMP)
84
Desenvolvimento Orientado a Objeto
3a Etapa - Ementa 2006
Conteúdo Programático
1. Conceitos básicos de orientação a objetos
1.1. Realidade, conceitos e domínios
1.2. Objetos, classes e instanciação
1.3. Ciclo de vida de objetos
2. Relacionamentos entre objetos
2.1. Conexões, relacionamentos e mapeamentos
2.2. Associações
2.3. Generalização e especialização
2.4. Agregação
2.5. Sub-tipos e super-tipos
2.6. Noções de coesão e acoplamento entre objetos
3. Estrutura comportamental de objetos
3.1. Estados de objetos
3.2. Mudanças de estado
3.3. Eventos e triggers
3.4. Condições de controle
4. Representações diagramáticas de domínios
4.1. Diagramas de casos de uso
4.2. Diagramas de atividade
4.3. Diagramas de classes
4.4. Diagramas de estados (ou máquina de estados)
4.5. Diagramas de seqüência
4.6. Diagramas de colaboração
4.7. Diagramas de pacotes
4.8. Diagramas de deployment
85
Estrutura de dados 3a Etapa - Ementa 2006
Conteúdo Programático
1. Tipos abstratos de dados
1.1. Conceito de tipo abstrato de dados
1.2. Especificação e refinamento
1.3. Pré e pós-condições
2. Estruturas Lineares
2.1. Listas
2.1.1. Especificação do tipo de dado
abstrato Lista
2.1.2. Tipos de listas
2.1.3. Padrão de projeto Iterator e
percurso em listas
2.1.4. Implementação e análise de
eficiência
2.1.5. Implementação de listas via
STL (Standard Template Library)
2.1.6. Aplicações
2.2. Pilhas
2.2.1. Especificação do tipo de dado
abstrato Pilha
2.2.2. Implementação (vetor/lista) e
análise de eficiência
2.2.3. Implementação de pilhas via
STL
2.2.4. Aplicações
2.3. Filas
2.3.1. Especificação do tipo de dado
abstrato Fila
2.3.2. Implementação (vetor/lista) e
análise de eficiência
2.3.3. Implementação de filas via
STL
2.3.4. Aplicações
2.4. Deques
2.4.1. Especificação do tipo de dado
abstrato Deque
2.4.2. Implementação (vetor/lista) e
análise de eficiência
2.4.3. Implementação de deques via
STL
2.4.4. Aplicações
3. Tabelas de Hashing
3.1. Especificação do tipo de dado
abstrato Tabela de Hashing
3.2. Funções de hashing
3.3. Resolução de colisão via
endereçamento aberto
3.4. Resolução de colisão via estruturas
ligadas
3.5. Bucket hashing e hashing
extensível
3.6. Implementação e análise de
eficiência
3.7. Implementação de hashing via STL
3.8. Aplicações
4. Árvores binárias
4.1. Especificação do tipo de dado
abstrato Árvore Binária
4.2. Percursos em árvores
4.3. Padrão de projeto Visitor e
percurso em árvores
4.4. Árvores binárias de busca
4.5. Heaps e o algoritmo de ordenação
Heapsort
4.6. Estratégias de balanceamento
(AVL,Splay)
4.7. Implementação e análise de
eficiência
4.8. Aplicações
5. Árvores n-árias
5.1. Especificação do tipo de dado
abstrato Árvore n-ária
5.2. Pomares(Orchads), florestas e
florestas ordenadas
5.3. Árvores de busca lexicográfica
(tries)
5.4. B-árvores
5.5. Implementação e análise de
eficiência
5.6. Aplicações
86
Linguagem de programação I 3a Etapa - Ementa 2006
Conteúdo Programático
1. Teoria elementar de tipos
1.1. Classificação de tipos:
fundamentais e compostos
1.2. Subtipos
1.3. Equivalência de tipos
1.4. Tipos monomórficos e polimórficos
1.5. Promoção e conversão de tipos
1.6. Lvalues
1.7. Name spaces
2. Estruturação elementar de classes e
objetos
2.1. Classes como tipos derivados
2.2. Atributos e funções (funções
isoladas e funções-membro)
2.3. Construtores
2.4. Objetos e o processo de
instanciação
2.5. Ponteiros para objetos
2.6. Destruidores
2.7. Herança Simples
3. Encapsulamento e acesso
3.1. Controle de acesso: estruturas x
classes
3.2. Especificadores de acesso: private,
protected e public
3.3. Declarações friend
4. Acúmulo (overloading) de funções e
operadores
4.1. Conceito de acúmulo
4.2. Acúmulo de funções
4.3. Declaração de operadores
4.4. Acúmulo de operadores
4.5. Mecanismo de acesso na presença
de acúmulo
5. Classes derivadas
5.1. Herança múltipla
5.2. Polimorfismo universal por inclusão
5.3. Classes-base virtuais
5.4. Métodos virtuais e a Tabela de
Métodos Virtuais
5.5. Métodos virtuais e herança simples
5.6. Métodos virtuais e herança múltipla
5.7. Classes-base virtuais e métodos
virtuais
5.8. Renaming
5.9. Dispatching: simples, duplo e
múltiplo, RTTI
6. Tratamento de exceções
6.1. Mecanismos de exceções em C++
6.2. Regiões críticas e blocos try-catch
6.3. Tratamentos múltiplos e ordem de
manipulação
6.4. Lançamento de exceções e
declarações throw
6.5. Tratamento hierárquico de
exceções
7. Streams
7.1. Conceito de stream
7.2. Hierarquia de streams C++
7.3. Streams de entrada
7.4. Streams de saída
8. Templates
8.1. Tipos parametrizados
8.2. Polimorfismo universal paramétrico
8.3. Templates de função
8.4. Templates de classe
8.5. STL ( Standard Template Library )
87
Organização e Arquitetura de Computadores 3a Etapa - Ementa 2006
Conteúdo Programático
1. Organização funcional
1.1. Unidade Central de Processamento
1.2. Memória
1.3. Barramentos
1.4. Subsistemas de E/S
1.5. Medidas de performance
2. Unidade Central de Processamento
2.1. Estruturas funcionais
2.1.1. Registradores
2.1.2. Unidade de lógica e aritmética
2.1.3. Unidade de Controle
2.1.4. Data Path
2.2. Conjuntos de instruções: características, modos de endereçamento de formatos
2.3. Noções de Assembly e mapeamento para instruções em linguagem de máquina
2.4. Arquiteturas CISC e RISC
2.5. Execução de instruções via microprogramação
2.6. Paralelismo no nível de instrução
2.7. Processadores escalares, super-escalares e vetoriais
2.8. Estudo de arquiteturas de processadores atuais
3. Memória
3.1. Hierarquia de memória
3.2. Tecnologias de memória
3.3. Organização da memória principal e formas de acesso
3.4. Memória cache: cache interno/externo, princípio de funcionamento, políticas de
escrita/leitura, coerência
4. Barramentos
4.1. Tipos de barramento
4.2. Sinalização e controle
5. Sub-sistemas de E/S
5.1. Polling
5.2. Interrupções
5.3. Acesso direto à memória (DMA)
5.4. Canais de E/S
5.5. Noções de device drivers
6. Noções de arquiteturas lógico-programáveis
6.1. Arquiteturas FPD: SPLD, CPLD e FPGA
6.2. Programação SPLD
6.3. Programação CPLD
6.4. Programação FPGA
88
Analise de Algoritmos 4a Etapa – Ementa 2006
Conteúdo Programático
1. Análise assintótica
1.1. Formalização da notação assintótica
1.2. Cotas inferiores e superiores
1.3. Estimação de somas via Teorema do Confronto para séries
1.4. Resolução de recorrências
1.4.1. Método de substituição
1.4.2. Método da árvore de recursão
1.4.3. Método baseado no Teorema-Mestre
1.5. Exemplos de análise de algoritmos iterativos e recursivos clássicos (busca e ordenação)
2. Análise probabilística
2.1. Breve revisão dos conceitos de variável aleatória, esperança matemática e distribuição de
probabilidade discretas
2.2. Método das variáveis aletórias indicadoras
2.3. Análise de caso médio para algoritmos clássicos
2.4. Noções de algoritmos aleatórios
3. Análise amortizada
3.1. Operações sucessivas em estruturas de dados e o problema de sub-estimação assintótica
3.2. Método agregado
3.3. Método baseado em atribuição de pesos (accounting method)
3.4. Método do potencial
4. Programação dinâmica
4.1. Problemas e sub-problemas
4.2. Dependências entre problemas e sub-problemas
4.3. Armazenamento e junção de soluções parciais
4.4. Exemplos clássicos de programação dinâmica
4.4.1. Multiplicação de cadeias de matrizes
4.4.2. Maior subseqüência comum
4.4.3. Árvores de busca ótimas
5. Algoritmos gulosos (greedy)
5.1. Noções de matróides
5.2. Estruturas de matróides em problemas
5.3. Estratégia gulosa
5.4. Exemplos clássicos de algoritmos gulosos
5.4.1. Problema de seleção de atividades
5.4.2. Código de Huffman
6. Algoritmos aproximativos
6.1. Soluções exatas e aproximadas de problemas
6.2. Raios de aproximação
6.3. Exemplos de algoritmos aproximativos para problemas de otimização
89
Introdução a Computação Gráfica 4a Etapa – Ementa 2006
Conteúdo Programático
1. Processamento Gráfico
1.1. Conceito de Processamento Gráfico
1.2. Áreas de Processamento Gráfico:
computação gráfica, processamento de
imagens, visão computacional e
modelagem
1.3. Exemplos de problemas de
computação gráfica
1.4. Exemplos de problemas de
processamento de imagens
1.5. Exemplos de problemas de visão
computacional
1.6. Exemplos de problemas de modelagem
1.7. Suporte de hardware e software para
processamento gráfico
2. Hardware para Computação Gráfica
2.1. Placas de vídeo e aceleração gráfica
2.2. Monitores de vídeo: CRT, LCD e
plasma
2.3. Dispositivos de entrada gráfica
2.4. Integração entre dispositivos gráficos
2.5. Hardware de alto desempenho
3. Bibliotecas Gráficas
3.1. Pipeline básica da computação gráfica
3.2. Organização básica de bibliotecas
gráficas
3.3. Integração com hardware
3.4. Estrutura das principais bibliotecas
gráficas: DirectX, OpenGL,
QuickDraw(Quesa), Java2D/3D.
4. Modelagem Poligonal
4.1. Malhas poligonais
4.2. Resolução de malhas
4.3. Simplificação e refinamento
4.4. Estruturas de dados para malhas
poligonais
4.5. Geração de malhas poligonais:
modelagem manual, scanners
tridimensionais, métodos
procedimentais.
5. Curvas e Superfícies
5.1. Curvas parametrizadas
5.2. Curvas de Bézier
5.3. Curvas Splines
5.4. Superfícies parametrizadas
5.5. Superfícies de Bézier
5.6. Superfícies Splines
6. Transformações Geométricas
6.1. Sistema de coordenadas homogêneas
6.2. Transformação bidimensionais rígidas
6.3. Transformações tridimensionais rígidas
6.4. Deformações
7. Câmeras e Visualização
7.1. Parâmetros intrínsecos e extrínsecos
de câmeras
7.2. Projeções ortogonal e perspectiva
7.3. Transformação de vista
7.4. Remoção de superfícies ocultas e
clipping
7.5. Rasterização poligonal
8. Fundamentos de Teoria da Cor
8.1. Natureza física da cor
8.2. Amostragem e reconstrução de cores
8.3. Espaços de cores: CIE, RGB, HSV e
CMYK
8.4. Conversão entre espaços de cores
8.5. Quantização de cores
9. Modelos de iluminação
9.1. Interação entre luz e material
9.2. Iluminação e shading
9.3. Modelo de iluminação de Lambert
9.4. Modelo de iluminação de Phong
9.5. Shading Flat, Phong e Gouraud
10. Geração e Mapeamento de Textura
10.1. Espaços de textura
10.2. Geração de textura por ruído
10.3. Geração de textura por displacement
e bump mapping
10.4. Mapeamento de texturas
bidimensionais
10.5. Mapeamento de texturas
tridimensionais
90
Introdução a engenharia de software 4a Etapa – Etapa 2006
Conteúdo Programático
1. Processo de desenvolvimento de
software
1.1. Processo de engenharia de sistemas
1.2. Modelos de processo de software
1.3. Especificação de software
1.4. Projeto e implementação
1.5. Validação de software
1.6. Evolução de software
1.7. Qualidade de software
2. Gerenciamento de projetos
2.1. Atividades de gerenciamento
2.2. Planejamento de projeto
2.3. Programação de projeto
2.4. Gerenciamento de riscos
2.5. Noções de estimativa de custos
3. Engenharia de requisitos
3.1. Requisitos de software
3.2. Documento de requisitos
3.3. Estudos de viabilidade
3.4. Obtenção e análise de requisitos
3.5. Validação e gerenciamento de
requisitos
3.6. Modelos de sistemas
3.6.1. Modelos de contexto
3.6.2. Modelos de comportamento
3.6.3. Modelos de dados
3.6.4. Modelos de objetos
3.7. Noções de prototipação de software
4. Projeto de software
4.1. Projeto de Arquitetura
4.2. Projeto Estruturado
4.3. Projeto orientado a objetos
4.4. Projeto de software de tempo real
4.5. Projeto com reuso
4.6. Projeto de interfaces com usuário
4.7. Projeto de sistemas críticos
5. Verificação e validação
5.1. Planejamento de verificação e
validação
5.2. Testes de detecção de defeitos
5.3. Testes de integração
5.4. Testes orientados a objetos
5.5. Validação de sistemas críticos
6. Qualidade de software
6.1. Noções de medição e métricas de
software
6.2. Qualidade de processo e de produto
6.3. Medições de processo
6.4. Noções de modelos de maturidade
7. Evolução de software
7.1. Sistemas legados
7.2. Evolução de arquitetura
7.3. Reengenharia de software
7.4. Reengenharia de dados
91
Linguagem de Programação II 4a Etapa – Ementa 2006
Conteúdo Programático
1. Características de linguagem
1.1. Histórico da linguagem
1.2. Vantagens e deficiências da linguagem
1.3. Comparação com outras linguagens
1.4. Geração de bytecodes e a
interpretação viam JVM (Java Virtual
Machine)
1.5. Integração com outras linguagens
2. Sintaxe básica
2.1. Tipos e operadores
2.2. Declaração de variáveis
2.3. Comandos condicionais (if, swtich-
case) e iteração(for,while, do-while)
2.4. Arrays
2.5. Organização básica de classes e
programas Java
3. Tratamento de exceções
3.1. Principais exceções
3.2. Detecção e recuperação de exceções
via try-catch
3.3. Tratamentos com finally
3.4. Lançamento de exceções via throw
3.5. Sinalização de exceções com throws
3.6. Construção de classes de exceção
4. Estruturação de classes
4.1. Atributos, todos, construtores e
instanciação
4.2. Superclasses, sub-classes e o processo
de herança em Java
4.3. Polimorfismo
4.4. Declarações static e final
4.5. Modificadores de acesso: public,
protected, default e private
4.6. Classes abstratas
5. Interfaces
5.1. Declaração e implementação de
interfaces
5.2. Extensão de interfaces
5.3. Comparação com classes abstratas
6. Pacotes
6.1. Organização e implementação de
pacotes
6.2. Acesso a pacotes
6.3. Organização dos pacotes básicos da
linguagem Java: java.lang, java.util.
java.io, java.net, java.awt e
javax.swing
7. Classes básicas e utilitárias
7.1. Pacote java.lang ( classes básicas )
7.2. Pacote java.util ( classes utilitárias )
8. Tratamento de E/S
8.1. Modelo de streams
8.2. Pacote java.io
8.3. Tratamento de arquivos
9. Fundamentos de programação
concorrente e distribuída
9.1. Programação com threads
9.2. Métodos de sincronização e a
declaração synchronized
9.3. Noções do modelo cliente-servidor e
sockets
9.4. Pacote java.net
10. Interfaces gráficas
10.1. Pacote java.awt
10.2. Pacotes javax.swing
10.3. Modelo MVC em componentes Swing
11. Applets
11.1. Modelo de execução de applets e
políticas de segurança
11.2. Construção de applets
11.3. Integração com páginas HTML
92
Programação Matemática 4a Etapa – Ementa 2006
Conteúdo Programático
1. Problemas de Otimização
1.1. Tipos de problemas de otimização
1.2. Tamanho do problema
1.3. Complexidade de problemas de otimização
1.4. Algoritmos iterativos e convergência
1.5. Modelagem de problemas
2. Programação Linear
2.1. Propriedades elementares de problemas lineares: estrutura geométrica, soluções básicas,
Teorema Fundamental da Programação Linear, Convexidade
2.2. Método Simplex
2.3. Dualidade e o Método Simplex Dual
2.4. Problema de Transporte
2.5. Problema de Atribuição
3. Programação Inteira
3.1. Conceito de relaxação
3.2. Relaxação em Programação Linear
3.3. Relaxações combinatórias e lagrangeanas
3.4. Métodos do tipo branch-and-bound
3.5. Métodos baseados em cortes
4. Programação Não-Linear sem Restrições
4.1. Funções côncavas e convexas
4.2. Funções convexas de minimização e maximização
4.3. Método de busca por seção áurea
4.4. Método do gradiente descendente
4.5. Método do gradiente conjugado
5. Programação Não-Linear com Restrições
5.1. Multiplicadores de Lagrange
5.2. Condições KKT (Karush-Kuhn-Tucker)
5.3. Método da projeção de gradiente
5.4. Método do gradiente reduzido
5.5. Método de penalidades e barreiras
93
Introdução a compiladores 5a Etapa
Conteúdo Programático
1. Fundamentos do processo de compilação
1.1. Noções elementares de linguagens formais
1.2. Compilação x interpretação
1.3. Módulos e interfaces de um compilador
1.4. Ferramentas de geração automática de analisadores
2. Análise léxica
2.1. Tokens léxicos
2.2. Expressões regulares
2.3. Autômatos finitos
2.4. Geradores de analisadores léxicos
3. Análise sintática
3.1. Gramáticas livres de contexto
3.2. Análise preditiva
3.3. Análises LL e LR
3.4. Geradores de analisadores sintáticos
4. Sintaxe abstrata
4.1. Ações semânticas
4.2. Árvores de sintaxe abstrata (AST)
4.3. Percursos em AST e o padrão Visitor
5. Análise semântica
5.1. Tabelas de símbolos
5.2. Verificação de tipos
6. Registros de Ativação
6.1. Organização de programas em tempo de execução
6.2. Stack frames
7. Geração de código intermediário
7.1. Máquinas virtuais
7.2. Árvores de representação intermediárias
7.3. Geração de árvores de representação intermediárias
7.4. Árvores canônicas
8. Geração de código Assembly
8.1. Seleção de instruções
8.2. Análise de sobrevivência
8.3. Alocação de registradores
8.4. Padrões de geração de código
94
Sistemas Operacionais 5a Etapa – Ementa 2005
Conteúdo Programático
1. Revisão de conceitos de arquitetura de computadores e sistemas de computação.
2. Conceitos fundamentais de sistemas operacionais.
2.1. Processos
2.2. Arquivos e diretórios
2.3. Tipos de sistemas operacionais
2.4. Alternativas de estruturação interna
3. Gerência de processos.
3.1. Conceituação de processo
3.2. Estado de processos e eventos principais
3.3. Escalonamento de processos e gerência de processador
3.4. Comunicação entre processos
3.4.1. Mecanismos de comunicação
3.4.2. Sincronização (semáforos, monitores)
3.4.3. Deadlock
3.5. Problemas clássicos
4. Gerência de memória.
4.1. Alocação de memória
4.2. Conceito de memória virtual (paginação e segmentação)
4.3. Algoritmos de substituição de páginas
5. Gerência de arquivos.
5.1. Arquivos e diretórios
5.2. Organização de arquivos e métodos de acesso
5.3. Alocação de espaço em disco
5.4. Segurança e proteção
6. Gerência de E/S.
6.1. Dispositivos de entrada e saída de dados
6.2. Conceituação de device drivers
6.3. Algoritmos de escalonamento do braço de discos magnéticos
7. Introdução às Redes de computadores.
7.1. Conceitos principais
7.2. Protocolos de comunicação
7.3. Exemplos: Ethernet e Internet
95
Técnicas avançadas de computação 5a Etapa – Ementa 2005
Conteúdo Programático
1. Defeito, Erro e falha (quebra). Tolerância a erros.
2. Fases no processo de tolerância a falhas
2.1. detecção
2.2. confinamento do dano e controle
2.3. Recuperação do erro
2.4. tratamento da falha sem interrupção do serviço
3. Vista geral de tolerância a falhas em hardware
3.1. Redundância modular tríplica
4. Segurança e disponibilidade de sistemas
5. Tolerância em sistemas distribuídos
5.1. Comunicação entre processos
5.2. Ordem dos eventos
6. Blocos construtivos básicos
6.1. consenso bizantino
6.2. relógios sincronizados
6.3. armazenamento estável
6.4. processos com parada em caso de falha
6.5. detecção de falhas em sistemas distribuídos
7. Rede confiável
7.1. Protocolo de três fases
8. Recuperação para um estado confiável
8.1. efeito dominó
8.2. pontos de verificação (check-points) distribuídos
9. Falhas de projeto de softwares
9.1. abordagens para softwares de um só processo
9.2. recuperação retroativa em ambientes distribuídos
9.3. recuperação avante em sistemas distribuídos
96
Teoria da Computação 5a Etapa – Ementa 2005
Conteúdo Programático
1. Máquinas de Turing
1.1. Máquinas de Turing determinísticas
1.2. Diagramas de transição
1.3. Computação com Máquinas de Turing
1.3.1. Linguagens recursivas
1.3.2. Funções recursivas
1.3.3. Linguagens recursivamente enumeráveis
1.4. Extensões da Máquina de Turing
1.4.1. Máquinas com múltiplas fitas
1.4.2. Máquinas com acesso aleatório
1.4.3. Máquinas não-determinísticas
2. Indecidibilidade
2.1. Tese de Church-Turing
2.2. Máquinas de Turing Universais
2.3. Problemas indecidíveis no modelo de Turing
2.4. Provas formais de indecidibilidade
3. Complexidade
3.1. Problemas de decisão e linguagens
3.2. Complexidade de tempo e espaço
3.3. Classes P, NP e a questão P=NP?
3.4. Redução entre problemas
3.5. Classe de problemas NP-completos e NP-difíceis
3.6. Exemplos de prova de NP-completude
4. Modelos não-convencionais de computação
4.1. Computação Quântica
4.2. Computação Molecular
4.3. Computação Natural
97
Desenvolvimento de Softwares I 6a Etapa – Ementa 2005
Conteúdo Programático
1. Apresentação do contexto
1.1 Aplicabilidade e adequação de aspectos de teoria de tipos no desenvolvimento de software
orientado a objetos.
1.1.1 Polimorfismo e Binding
1.1.2 Programação Genérica
1.1.3 Variância
2. Arquiteturas cliente-servidor
2.1 – Análise comparativa de tecnologias do lado servidor
2.2 – Padrões para programação cliente-servidor
2.3 – Desenvolvimento de softwares do lado servidor
2.4 – Estratégias de componentização
3. Armazenamento e recuperação da informação
3.2.1 – Persistência de objetos
3.2.2 – Tecnologias de manipulação de bancos de dados relacionais
3.2.3 – Manipulação de fontes de dados hierárquicas
98
Grafos 7a Etapa – Ementa 2005
Conteúdo Programático
1. Conceitos e notação
2. Estruturas de dados para grafos
2.1. Matrizes de adjacências e de incidências
2.2. Listas de adjacências e de incidências
3. Conexidade e ciclos
3.1. Determinação de conexidade
3.2. Aresta-conexidade
3.3. Vértice-conexidade
3.4. Detecção de ciclos
4. Árvores geradoras de custo mínimo
4.1. Algoritmo de Kruskal
4.2. Algoritmo de Prim
5. Problema do caminho de custo mínimo
5.1. Algoritmo de Dijkstra
6. Planaridade
6.1. Teorema de Kuratowsky
7. Grafos eulerianos
7.1. Trilhas fechadas de Euler
7.2. Teorema de Euler
7.3. Trilhas abertas de Euler
8. Emparelhamentos
8.1. Teorema de Berge
8.2. Emparelhamentos em grafos bipartidos
8.2.1. Teorema de Hall
8.2.2. Método Húngaro
9. Coloração de arestas e vértices
9.1. Coloração de arestas
9.1.1. Teorema de Vizing
9.2. Coloração de vértices
9.2.1. Teorema das 4 cores
10. Fluxos em redes
10.1. Teorema do fluxo máximo-corte mínimo
10.2. Algoritmo de Ford-Fulkerson
99
Inteligência Artificial 6a Etapa
Conteúdo Programático
1. Introdução à Inteligência Artificial (IA)
1.1. Histórico
1.2. Caracterização
1.3. Vantagens e desvantagens
1.4. Principais resultados da IA.
2. Resolução de Problemas
2.1. Encadeamento progressivo e regressivo
2.2. Cálculo de Predicados
2.3. Princípio da Resolução
2.4. Prova Automática de Teoremas
2.5. A Linguagem PROLOG.
3. Sistemas Especialistas
3.1. Organização e Programação
3.2. Linguagens e Ambientes de construção de Sistemas Especialistas.
4. Abordagens Alternativas da IA
4.1. Redes Semânticas e Frames
4.2. CBR – Case Based Reasoning (Ex.: CBR-Express)
4.3. Redes Neuronais
4.4. Sistemas Difusos ( Fuzzy Systems)
5. Inteligência Artificial Distribuída
5.1. Sistemas Distribuídos e Paralelismo
5.2. Sistemas Multiagentes
100
Linguagens Formais e Autômatos 6a Etapa – Ementa 2005
Conteúdo Programático
1. Alfabetos, palavras e linguagens
1.1. Alfabetos
1.2. Palavras
1.2.1. Palavras finitas e infinitas
1.2.2. Operações básicas
1.3. Linguagens
1.3.1. Conceitos básicos
1.3.2. Morfologia, sintaxe e semântica
2. Gramáticas
2.1. Definição
2.2. Derivação
2.3. Representação e implementação
3. Hierarquia de Chomsky
3.1. Aspectos históricos e relações com
linguagens naturais
3.2. Linguagens regulares
3.3. Linguagens livres de contexto
3.4. Linguagens sensíveis ao contexto
3.5. Linguagens recursivamente
enumeráveis
4. Linguagens regulares e autômatos
finitos
4.1. Abordagem operacional
4.1.1. Autômatos finitos e determinísticos
4.1.2. Autômatos finitos não-determinístiocs
4.1.3. Autômatos finitos não-determinísticos
com transições vazias
4.1.4. Minimização de estados
4.2. Abordagem denotacional
4.2.1. Expressões regulares
4.2.2. Relação entre expressões regulares e
autômatos finitos
4.3. Abordagem axiomática
4.3.1. Gramática regulares
4.3.2. Relação com expressões regulares e
autômatos finitos
4.4. Aplicações e aspectos de
implementação
4.4.1. Aplicações
5. Linguagens livres de contexto e
autômatos à pilha
5.1. Gramáticas livres de contexto
5.1.1. Derivações à esquerda e à direita
5.1.2. Recursão à esquerda e à direita
5.1.3. Ambigüidade
5.1.4. Formas normais de Chomsky e
Greibach
5.2. Autômatos à pilha
5.3. Algoritmos de reconhecimento
5.3.1. Algoritmo com autômato à pilha
5.3.2. Algoritmo CYK (Cocke-Younger-Kasami)
5.3.3. Algoritmo de Early
5.3.4. Aplicações e aspectos de implementação
5.3.5. Aplicações
6. Máquinas de Turing
6.1. Definições
6.2. Tipos de máquinas de Turing e
equivalências
6.2.1. Máquinas com fita simples ilimitada
6.2.2. Máquinas com fita simples ilimitada
6.2.3. Máquinas com múltiplas fitas
6.3. Máquinas de Turing como reconhecedores
de linguagens
7. Linguagens sensíveis ao contexto e
Máquina de Turing com fita limitada
7.1. Gramáticas sensíveis ao contexto
7.2. Algoritmos de reconhecimento com
Máquinas de Turing com fita limitada
7.3. Aplicações
8. Linguagens recursivamente
enumeráveis e Máquina de Turing
8.1. Linguagens recursivas e
recursivamente enumeráveis
8.2. Gramáticas irrestritas
8.3. Algoritmos de reconhecimento com
Máquinas de Turing
9. Modelos alternativos de linguagens
9.1. Gramáticas de grafos
9.1.1. Conceitos básicos
9.1.2. Aplicações em programação de jogos
101
Organização e arquitetura de computadores 6a Etapa – Ementa 2005
Conteúdo Programático
1. Conceitos básicos de computadores
2. Implementação baseada numa seqüência aninhada de níveis de abstração.
3. Unidades funcionais e estrutura interna de uma UCP
3.1. Barramentos
3.2. Unidade central
3.3. Memória interna e externa
3.4. Entrada e saída, periféricos, dispositivos complementares
3.5. Suporte ao Sistema Operacional
4. Unidade central – detalhamento
4.1. Aritmética e lógica
4.2. Conjuntos de instruções
4.3. Modos de endereçamento e formatos das instruções – desempenho
4.4. Estrutura e funcionamento da CPU
5. Técnicas para aumento de desempenho de computadores
5.1. Ciclo de instruções e pipeline
5.2. Memória cache e entrelaçada (níveis de cache)
5.3. Acesso à memória. Interrupções e E/S.
6. Computadores de conjunto reduzido de instruções
6.1. Filosofia RISC
6.2. Soluções para conjuntos de registradores
6.3. Soluções para chamada de sub-rotinas
7. Máquinas paralelas: computadores vetoriais, arrays de processadores, multiprocessadores.
102
Banco de dados 6a Etapa – Ementa 2005
Conteúdo Programático
1. Conceitos básicos
1.1. Objetivos de um sistema de banco de dados
1.2. Componentes de um sistema de banco de dados
2. Modelo entidade-relacionamento
2.1. Diagramas entidade-relacionamento
2.2. Extensões do modelo entidade-relacionamento
2.3. Mapeamento de diagramas entidade-relacionamento
3. Modelo relacional
3.1. Álgebra relacional
3.2. Álgebra relacional estendida
4. SQL
4.1. Definição de dados
4.2. Manipulação de dados
4.3. Consultas
5. Restrições de integridade
5.1. Integridade de domínio
5.2. Unicidade das chaves candidatas
5.3. Integridade referencial
5.4. Asserções
5.5. Dependências funcionais
5.5.1. Axiomas de Armstrong
5.5.2. Fecho de um conjunto de dependências funcionais
5.5.3. Fecho de um conjunto de atributos
5.5.4. Cobertura canônica
6. Normalização
6.1. Decomposições
6.2. Forma normal de Boyce-Codd
6.3. Terceira forma normal
6.4. Segunda forma normal
6.5. Primeira forma normal
7. Indexação e Hashing
7.1. Árvores B e B+
7.2. Hashing aberto e fechado
103
Computação Gráfica 7a Etapa – Ementa 2005
Conteúdo Programático
1. Hardware para computação gráfica
1.1. Monitores
1.2. Placas de vídeo e aceleradoras
gráficas
1.3. Principais dispositivos de entrada
(mouse, mesas digitalizadoras,
scanners,etc)
1.4. Impressoras e plotters
2. Cor
2.1. Noções sobre o sistema visual
humano
2.2. Significado físico de cor
2.3. Sistemas de representação de cor
2.4. Transformações entre sistemas de
representação
2.5. Quantização de cores
2.6. Dithering
3. Processamento bidimensional
3.1. Pipeline bidimensional
3.2. Modelamento bidimensional
3.3. Algoritmos para traçado de
primitivas: segmentos de retas e
círculos
3.4. Curvas
3.5. Transformações geométricas
3.6. Clipping
3.7. Bibliotecas para processamento
bidimensional
4. Processamento tridimensional
4.1. Pipeline tridimensional
4.2. Configuração geométrica
tridimensional
4.3. Modelamento tridimensional
4.3.1. B-Rep
4.3.2. CSG
4.4. Transformações geométricas
4.5. Visualização tridimensional
4.6. Z-Buffer
4.7. Ray-Tracing
4.8. Bibliotecas para processamento
tridimensional
5. Iluminação
5.1. Iluminação local e global
5.2. Modelos de iluminação local
5.2.1. Modelo de Phong
5.3. Modelos de ilimunação global
5.3.1. Radiosidade
6. Texturas
6.1. Texturização por mapeamento
inverso
6.2. Texturização tridimensional
6.3. Síntese de texturas
7. Processamento da imagem
7.1. Conceito de imagem
7.2. Filtros
8. Animação
8.1. Processo de animação por
computador
8.2. Quadros( frames) e quadros-chave
8.3. Interpolação de quadros
8.4. Warping e morphing
104
Redes de Computadores 7a Etapa – Ementa 2005
Conteúdo Programático
1. Redes de Computadores e a Internet
1.1 Protocolos de rede
1.2 Camadas de protocolos e seus modelos de serviços
1.3 OSI e TCP/IP
2. Camada de Aplicação
2.1 Princípios dos protocolos da camada de aplicação
2.2 HTTP
2.3 DNS
2.4 Programação de socket com TCP
2.5 Programação de socket com UDP
3. Camada de Transporte
3.1 Princípios e serviços da camada de transporte
3.2 Multiplexação e demultiplexação das aplicações
3.3 Transporte sem conexão: UDP
3.4 Princípios da transferência de dados confiável
3.5 Transporte orientado a conexão: TCP
3.6 Princípios de controle de congestionamento
3.7 Controle de congestionamento no TCP
4. Camada de rede e Roteamento
4.1 Modelos de serviços de rede
4.2 Princípio de roteamento
4.3 Protocolo de internet (IP)
4.4 IPv6
5. Camada de enlace e Redes locais
5.1 Serviços da camada de enlace
5.2 Técnicas de detecção e correção de erros
5.3 Protocolos de acesso múltiplos e redes locais (LANs)
5.4 Endereços de LAN e ARP
5.5 Ethernet
5.6 Hubs, bridges e switches
5.7 Redes locais sem fio (IEEE 802.11)
5.8 PPP
5.9 ATM, X.25 e Frame Relay
6. Redes para multimedia
7. Segurança em redes de computadores
8. Gerência de redes
105
Sistemas Distribuídos 8a Etapa – Ementa 2005
Conteúdo Programático
1. Conceitos básicos de sistemas distribuídos
1.1. Análise comparada de arquiteturas de software
1.2. Conceitos de distribuição e paralelismo
1.3. Paradigmas de linguagens de programação com suporte a distribuição
1.4. Aplicabilidade – estudos de casos
2. Chamadas remotas de procedimentos
2.1. Conceituação e aplicabilidade
2.2. Arquiteturas baseadas em RPC
2.3. Implementação de RPCs – conceitos técnicos:
2.3.1. Formas canônicas
2.3.2. Stubs e skeletons
2.3.3. Binders
2.3.4. Marshalling de parâmetros
2.4. Recuperação de falhas
3. Objetos distribuídos
3.1. Conceitos básicos
3.2. Padrões de interoperabilidade de objetos
3.2.1. RMI
3.2.1.1. Arquitetura de RMI sobre JRMP
3.2.1.2. Arquitetura de RMI sobre IIOP
3.2.2. CORBA
3.2.2.1. Definições básicas
3.2.2.2. IDL
3.2.2.3. Integração CORBA – RMI
3.2.2.4. Serviços CORBA
3.2.3. SOAP
3.2.3.1. Conceitos inicias
3.2.3.2. Uso de XML como forma canônica
3.2.3.3. Integração com outros padrões
3.2.4. Tecnologias alternativas
106
Teoria da Informação 8a Etapa – Ementa 2005
Conteúdo Programático
1. Teorema da eqüipartição
2. Teoremas de codificação (amostragem) de Shannon
3. Entropia Máxima
4. Aplicações à compressão:
4.1. Algoritmos de compressão sem perdas
4.1.1. RLE (Run Length Encoding)
4.1.2. Huffman (estático e adaptativo)
4.1.3. Aritmético
4.1.4. Baseados em dicionários (LZ77, LZ78, LZW)
4.2. Algoritmos de compressão com perdas
4.2.1. JPEG (Joint Photographic Expert Group) - imagens estáticas
4.2.2. MPEG (Moving Picture Expert Group) - imagem + som + restrição de tempo real
4.2.3. MPEG-1, MPEG-2, MPEG-4
Livros Grátis
( http://www.livrosgratis.com.br )
Milhares de Livros para Download:
Baixar livros de Administração
Baixar livros de Agronomia
Baixar livros de Arquitetura
Baixar livros de Artes
Baixar livros de Astronomia
Baixar livros de Biologia Geral
Baixar livros de Ciência da Computação
Baixar livros de Ciência da Informação
Baixar livros de Ciência Política
Baixar livros de Ciências da Saúde
Baixar livros de Comunicação
Baixar livros do Conselho Nacional de Educação - CNE
Baixar livros de Defesa civil
Baixar livros de Direito
Baixar livros de Direitos humanos
Baixar livros de Economia
Baixar livros de Economia Doméstica
Baixar livros de Educação
Baixar livros de Educação - Trânsito
Baixar livros de Educação Física
Baixar livros de Engenharia Aeroespacial
Baixar livros de Farmácia
Baixar livros de Filosofia
Baixar livros de Física
Baixar livros de Geociências
Baixar livros de Geografia
Baixar livros de História
Baixar livros de Línguas
Baixar livros de Literatura
Baixar livros de Literatura de Cordel
Baixar livros de Literatura Infantil
Baixar livros de Matemática
Baixar livros de Medicina
Baixar livros de Medicina Veterinária
Baixar livros de Meio Ambiente
Baixar livros de Meteorologia
Baixar Monografias e TCC
Baixar livros Multidisciplinar
Baixar livros de Música
Baixar livros de Psicologia
Baixar livros de Química
Baixar livros de Saúde Coletiva
Baixar livros de Serviço Social
Baixar livros de Sociologia
Baixar livros de Teologia
Baixar livros de Trabalho
Baixar livros de Turismo