Universidade Federal do ABC
Curso de Pós Graduação em Engenharia da Informação
Andrei Wellington Leão Domingues
Ferramenta para acompanhamento do perfil do aprendiz utilizando
mineração de dados
Santo André
2013
Universidade Federal do ABC
Andrei Wellington Leão Domingues
Ferramenta para acompanhamento do perfil do aprendiz utilizando
mineração de dados
Dissertação apresentada ao Programa de
Mestrado em Engenharia da Informação da
Universidade Federal do ABC para obtenção
do título de Mestre em Engenharia de
Informação.
Área de Concentração: Redes de Informação
Orientadora: Profª. Dra. Itana Stiubiener
Santo André
2013
Agradecimentos
Ao Programa de Pós-Graduação em Engenharia da Informação da
Universidade Federal do ABC.
A minha orientadora Professora Itana, por me aceitar como orientando,
pelos momentos de dedicação no direcionamento dos meus estudos e nas
revisões parciais deste trabalho. Momentos em que poderia estar com sua
família e passou dedicando-se a revisar e direcionar este trabalho.
Ao meu pai Nicomedes e minha mãe Alzira pelo incentivo e suporte nos
momentos difíceis.
Aos meus amigos e colegas de trabalho por entenderem minhas
ausências.
Aos Professores que de alguma forma me auxiliaram durante a
formatação deste trabalho.
A todos o meu mais sincero muito obrigado.
Este exemplar foi revisado e alterado em relação a versão original de acordo com as
observações levantadas pela banca no dia da defesa, sob responsabilidade única do
autor e com a anuência de seu orientador.
Santo André, 28 de Novembro de 2013.
Assinatura do Autor: ______________________________
Assinatura do Orientador:__________________________
Agradecimentos
Ao Programa de Pós-Graduação em Engenharia da Informação da
Universidade Federal do ABC.
A minha orientadora Professora Itana, por me aceitar como orientando,
pelos momentos de dedicação no direcionamento dos meus estudos e nas
revisões parciais deste trabalho. Momentos em que poderia estar com sua
família e passou dedicando-se a revisar e direcionar este trabalho.
Ao meu pai Nicomedes e minha mãe Alzira pelo incentivo e suporte nos
momentos difíceis.
Aos meus amigos e colegas de trabalho por entenderem minhas
ausências.
Aos Professores que de alguma forma me auxiliaram durante a
formatação deste trabalho.
A todos o meu mais sincero muito obrigado.
Lista de Figuras
Figura 3.1 - Campos Multidisciplinares de Data Mining ............................................................. 26
Figura 3.2 - Métodos de Data Mining ......................................................................................... 29
Figura 3.3 - Técnicas de Data Mining .......................................................................................... 30
Figura 3.4 - Etapas do processo de Data Mining ......................................................................... 35
Figura 4.1 - Diagrama Funcional Detalhado ................................................................................ 39
Figura 4.2 - Diagrama Funcional do Professor ............................................................................ 40
Figura 4.3 - Diagrama Funcional do Aluno .................................................................................. 41
Figura 4.4 - Diagrama de casos de uso ........................................................................................ 42
Figura 4.5 - Diagrama de sequências – função: login.................................................................. 43
Figura 4.6 - Diagrama de sequências – função: Solicitação de Gráficos ..................................... 43
Figura 4.7 - Relação Indicadores x Procedimentos de Data Mining ........................................... 45
Figura 4.8 - Tela Apresentando a Ferramenta de Relatórios Estatísticos ................................... 48
Figura 4.9 - Tela Inicial da Ferramenta de Relatórios Estatísticos............................................... 49
Figura 4.10 - Detalhe do menu Importação de Dados ................................................................ 49
Figura 4.11 - Detalhe do menu Cadastros ................................................................................... 50
Figura 4.12 - Tela para cadastramento de notas de uma turma................................................. 51
Figura 4.13 - Tela de seleção de informações para cadastramento de notas de um aluno ....... 51
Figura 4.14 - Detalhe da tela de cadastramento de nota de um aluno ...................................... 51
Figura 4.15 - Detalhe do menu Relatórios .................................................................................. 52
Figura 4.16 - Tela de seleção de dados para relatório ................................................................ 52
Figura 4.17 - Resultado apresentado na forma de gráfico.......................................................... 53
Figura 4.18 - Tela para seleção de informações de relatório por turma .................................... 53
Figura 4.19 - Tela com o resultado de avaliações por turma ...................................................... 54
Figura 4.20 - Tela com o resultado de avaliações por turma na forma gráfica (1) ..................... 54
Figura 4.21 - Tela com o resultado de avaliações por turma na forma gráfica (2) ..................... 55
Figura 4.22 - Tela para seleção de informações para geração de relatório por aluno ............... 55
Figura 4.23 - Tela com relatório individual ................................................................................. 56
Figura 5.1 - Tela Relatório de Perfil de Aprendizagem................................................................ 59
Figura 5.2 - Tela com o gráfico do estudo de caso ...................................................................... 62
Figura 5.3 - Formula para cálculo do desvio padrão ................................................................... 63
Figura 5.4 - Tela com o Gráfico da catalogação por grupos ........................................................ 64
Lista de Tabelas
Tabela 2.1 – Autores e suas definições para estilos de aprendizagem ....................................... 17
Tabela 3.1 - Fases e etapas do processo de Mineração de Dados .............................................. 36
Tabela 5.1 - Resultados apurados da amostra ............................................................................ 61
Tabela 5.2 - Comparativo de notas ............................................................................................. 63
Tabela 5.3 - Distribuição dos grupos obtidos no processo ......................................................... 64
Lista de Abreviaturas e Siglas
Abreviatura
Significado
TICs
Tecnologias de Informação e Comunicação
EAD
Educação à Distância
AVA
Ambiente Virtual de Aprendizagem
UFABC
Universidade Federal do ABC
FIPA
Ferramenta de Identificação de Perfis de Aprendizes
EA
Estilos de Aprendizagem
AE
Aprendizado Eletrônico
MOODLE
Modular Object-Oriented Dynamic Learning Environment
EDM
Mineração de Dados Educacionais
DM
Data Mining
STI
Sistemas Tutores Inteligentes
DW
Data Warehouse
OLAP
On-Line Analytical Processing
SQL
Structured Query Language
RNA
Redes Neurais Artificiais
KDD
Knowledge Discovery in Database
ASP
Active Server Pages
MDP
Markov Decision Process
RESUMO
A utilização de recursos disponibilizados pelas novas tecnologias de
informação e comunicação tanto pelos alunos quanto professores, tornam
possíveis aproveitar os registros das atividades realizadas ao longo do tempo e
proporciona a realização do acompanhamento da evolução do aprendizado
desses alunos.
Os ambientes virtuais de aprendizagem utilizados pelas instituições de
ensino realizam automaticamente o registro de diversas informações sobre a
navegação e interação dos alunos nos cursos online, mas possuem relatórios
complexos para serem analisados por alguns professores não especialistas em
informática. Diante dessa complexidade e da necessidade de informações mais
precisas e acuradas decidiu-se utilizar a tecnologia de mineração de dados
(Data mining) que infere e “descobre” informações que estão disponíveis porem
não claramente visíveis em uma enorme massa de dados.
Com estas informações é possível que qualquer professor, ao ter acesso a
mecanismos que o possibilitem conhecer a evolução do aprendizado de seus
alunos ao longo do tempo, do estilo de aprendizagem predominante de suas
turmas e de seus alunos individualmente, tenha a oportunidade de melhorar o
processo de ensino-aprendizagem.
Foi desenvolvido o protótipo de uma ferramenta de relatórios estatísticos
FRE e realizada uma pesquisa qualitativa (Estudo de Caso) a fim de comprovar
a efetividade da utilização das técnicas de mineração de dados em ambientes
educacionais.
Palavras
Educacionais.
chave:
Estilos
de
Aprendizagem,
Mineração
de
Dados
ABSTRACT
The use of resources provided by new information and communication
technologies both by students and teachers, made possible seize the records of
activities undertaken over time and provides the realization of monitoring the
evolution of learning of these students.
The
virtual
learning
environment
used
by
educational
institutions
automatically performing the registration of various information browsing and
interaction of students in online courses, but have complex reports to be
analyzed by some teachers not computer experts. Given this complexity and
the need for more precise and accurate information it was decided to use the
technology of data mining and infers that "discovers" information available but it
does not clearly visible in a huge mass of data.
With this information it is possible for any teacher to have access to
mechanisms that allow to know the evolution of the learning of their students
over time, the dominant style of learning in their classes and their students
individually, have the opportunity to improve the process teaching and learning.
Thus was developed the tool of statistical reports and FRE conducted a
qualitative study (Case Study) in order to prove a test of concepts using
educational data mining.
Keywords: Learning Styles, Educational Data Mining.
SUMÁRIO
1
INTRODUÇÃO....................................................................................................... 1
1.1 Motivação........................................................................................................... 3
1.2 Objetivo .............................................................................................................. 4
1.2.1 Objetivos específicos .................................................................................... 4
1.3 Metodologia ....................................................................................................... 4
1.4 Trabalhos relacionados .................................................................................... 5
1.5 Organização do trabalho................................................................................. 14
2
Estilos de Aprendizageme Inteligências Múltiplas ................................................ 16
2.1 Estilos de Aprendizagem ............................................................................... 16
2.2 As Inteligências Múltiplas ............................................................................... 18
2.2.1 Inteligência linguística ................................................................................. 19
2.2.2 Inteligência lógico-matemática .................................................................... 19
2.2.3 Inteligência musical..................................................................................... 20
2.2.4 Inteligência espacial.................................................................................... 20
2.2.5 Inteligência corporal-cinestésica ................................................................. 20
2.2.6 Inteligência interpessoal.............................................................................. 20
2.2.7 Inteligência intrapessoal.............................................................................. 21
2.2.8 Inteligência naturalista ................................................................................ 21
2.2.9 Inteligência espiritualista ou existencialista ................................................. 21
2.2.10 Inteligência Pictórica ................................................................................. 21
2.3 A Ferramenta FIPA .......................................................................................... 22
3
MINERAÇÃO DE DADOS ................................................................................... 23
3.1 Introdução........................................................................................................ 23
3.2 Mineração de Dados........................................................................................ 25
3.2.1 Conceito de mineração de dados ................................................................ 26
3.2.2 Origem dos dados....................................................................................... 27
3.2.3 Métodos de Mineração de Dados ............................................................... 28
3.2.4 Técnicas de mineração de dados ............................................................... 30
3.3 Mineração de Dados Educacionais ................................................................ 32
3.3.1 Breve histórico da EDM .............................................................................. 34
3.4 O processo de KDD ......................................................................................... 35
4
APRESENTAÇÃO DA ARQUITETURA DA FERRAMENTA FRE ........................ 37
4.1 Ferramenta de Relatórios Estatísticos (FRE) ................................................ 37
4.2 Requisitos ........................................................................................................ 38
4.3 Casos de Uso................................................................................................... 41
4.4 Expansibilidade da ferramenta ....................................................................... 44
4.5 Parametrizações iniciais ................................................................................. 44
4.6 Configuração da FRE ...................................................................................... 45
4.7 Disponibilidade da ferramenta na web .......................................................... 46
4.8 Definindo os indicadores ................................................................................ 46
5
ESTUDO DE CASO ............................................................................................. 57
5.1 As atividades realizadas ................................................................................. 60
6
CONCLUSÕES E CONSIDERAÇÕES FINAIS .................................................... 65
REFERÊNCIAS .......................................................................................................... 67
Apendice A .......................................................................................................... 74
1 Requisitos funcionais ........................................................................................ 74
1
1 INTRODUÇÃO
Com a evolução das tecnologias da informação e comunicação (TIC’s) que se
expandem dia a dia, a utilização de dispositivos eletrônicos de armazenamento
potentes, seguros e com preços acessíveis, fica cada vez mais presente em sala de
aula.
A utilização de recursos disponibilizados por estas tecnologias tanto pelos alunos
quanto professores, tornam possíveis o aproveitamento do registro das atividades
realizadas ao longo do tempo e acompanhamento da evolução do aprendizado
desses alunos.
Algumas instituições estão coletando e armazenando o maior número possível de
informações, este procedimento visa em algum momento extrair informações
valiosas para poder tomar decisões mais adequadas e consistentes. Contudo na
maioria das vezes estas valiosas informações armazenadas não são utilizadas em
seu potencial para gerarem benefícios para as instituições. (GOTTARDO et al,
2012b; MANHÃES et al, 2011).
Atualmente o acompanhamento online da navegação dos alunos em um
Ambiente Virtual de Aprendizagem (AVA) gera um conjunto de informações
complexas para serem analisadas por um professor. Normalmente o log de
navegação apresentado pelo AVA não elucida o que realmente está ocorrendo,
quanto tempo o aluno ficou online, quais atividades ele demorou mais para resolver,
se ele está realmente acessando os fóruns, chats e outras ferramentas de iteração
para esclarecer dúvidas. (TOLEDO SILVA, 2012; CAVALHEIRO, 2003; MANHÃES
et al, 2011).
Diante dessa complexidade e da necessidade de informações mais precisas e
acuradas decidiu-se utilizar a tecnologia de mineração de dados (Data mining) que
infere e “descobre” informações que estão disponíveis porem não claramente
visíveis em uma enorme massa de dados. (CAVALHEIRO, 2003; MANHÃES et al,
2011).
2
A tecnologia de Mineração de Dados ou Data Mining (DM) demonstra ser muito
promissora para extração de informações educacionais das bases de dados
armazenadas e permitir que estes dados possam ser acessados mais facilmente.
Merceron e Yacef (2005) destacam que os dados armazenados são bastante
diversificados e variam desde registros de acesso e interações diversas com o AVA
até dados com significados semânticos como respostas a testes ou participações em
fóruns e chats.
Os professores, ao realizarem a análise desses dados podem, a seu critério
tomar decisões sobre o processo de ensino-aprendizagem e desta forma planejar o
processo de acordo com a evolução do aluno/turma.
Uma possibilidade de aperfeiçoar o processo de ensino – aprendizagem seria,
com base nas informações levantadas sobre as ações e procedimentos de seus
alunos, o professor planejar, segundo critérios específicos e por ele definidos, o
conteúdo didático apresentado, de forma a facilitar a compreensão didática por parte
dos alunos.
Segundo Zaina (2008), “adequar os meios individuais de ensino ao aprendizado
eletrônico é uma tarefa árdua e tem sido tema de estudo tanto na área educacional
quanto na área tecnológica”.
Conforme Almeida (2008), “a Educação à Distância (EAD) tomou um novo
impulso que favoreceu a disseminação e a democratização do acesso à educação
em diferentes formas de interação e aprendizagens”.
A escola não é mais um mundo à parte, desconectado da realidade e
da vida. Seu papel é conduzir o aluno a desenvolver todo o potencial
de habilidades que possui, municiando-se de espírito renovador, de
alegria e integração e juntar todas as disciplinas e todos os valores
éticos no mesmo ambiente, ensinando o ser humano a pensar
multiculturalmente. (TOLEDO SILVA, 2012).
A consideração do Estilo de Aprendizagem (EA) de um aprendiz pode ser uma
possibilidade e um diferencial para que o professor consiga, utilizando as constantes
mudanças no processo de ensino aprendizagem, melhorar a assimilação do
conteúdo didático pelos seus alunos. E isto pode ser realizado, por exemplo,
analisando uma base de dados com informações colhidas ao longo do tempo e
3
agrupadas de forma a fornecer informações sobre o desempenho dos alunos,
relacionado com seu EA e através da analise de séries temporais.
Sendo assim através da analise das informações coletadas ao longo do tempo e
armazenadas em uma base de dados, EA dos alunos e seu desempenho associado
ao conteúdo submetido é possível a obtenção de informações estatísticas e
temporais deste perfil de forma a contribuir para que o professor possa oferecer
conteúdos adaptados que tornem as aulas mais produtivas trazendo assim conteúdo
eficaz e fazendo com que o aprendizado seja eficiente. (ALMEIDA, 2008; TOLEDO
SILVA, 2012; BRAVOS BATIVA, 2011; STIUBIENER, 2005).
1.1 Motivação
A inspiração para desenvolvimento desta pesquisa partiu do pressuposto de que,
o professor ao ter acesso a mecanismos que o possibilitem conhecer a evolução do
aprendizado de seus alunos ao longo do tempo, do EA predominante de suas
turmas e de seus alunos individualmente, tem a oportunidade de melhorar o
processo de ensino-aprendizagem. (ALMEIDA, 2008; TOLEDO SILVA, 2012;
BRAVOS BATIVA, 2011; STIUBIENER, 2005).
Assim, com a utilização das novas tecnologias de informática associados, a
analise dos dados coletados ao longo do tempo, pode-se proporcionar um aumento
da eficácia da estratégia instrucional, com a implementação de melhorias no
processo de ensino-aprendizagem tanto para os professores quanto aos alunos.
(ALMEIDA, 2008; TOLEDO SILVA, 2012).
Outro ponto importante é a possibilidade de previsão da evasão, através da
analise do desempenho e comportamento dos alunos, apontando quais podem
eventualmente desistir de suas disciplinas, quais podem desistir de seus cursos de
forma que, de posse dessa informação, seja possível realizar um trabalho de
retenção desses alunos.
Atualmente
este
processo
de
identificação
de
potenciais
desistentes
normalmente é realizado manualmente e de forma empírica pelos professores,
geralmente de acordo com sua experiência acadêmica, mas como os professores
4
hoje desenvolvem inúmeras atividades fora da sala de aula fica cada vez mais difícil
dedicar tempo integral a turma, fazendo que desta forma seja mais difícil identificar
os potenciais desistentes. (MANHÃES et al, 2011).
1.2 Objetivo
O objetivo deste trabalho é, a partir da identificação/estimativa do estilo de
aprendizagem de um aprendiz ou de um conjunto de aprendizes e da observação da
evolução desse perfil ao longo do tempo, possibilitar que seja feita uma análise
estatística relacionando esse perfil a alguns indicadores relevantes no processo de
ensino-aprendizagem.
Através dessa análise estatística é possível a um professor ou a uma instituição
tomar decisões sobre mudanças e ações sobre estratégias pedagógicas de forma a
estimular e favorecer a melhor forma para o processo de construção do
conhecimento associado a um aprendiz ou a um conjunto de aprendizes.
1.2.1 Objetivos específicos
Elencar alguns algoritmos de mineração de dados que possam ser
relacionados com o perfil de aprendizagem de um aprendiz de forma a
apresentar
informações
relevantes
existentes
em
um
ambiente
educacional.
Prover um mecanismo que forneça um conjunto de relatórios que
permitam a verificação do desempenho e comportamento dos alunos em
função de seu perfil de aprendizagem considerando os indicadores
selecionados.
1.3 Metodologia
Para a realização desse trabalho primeiramente foi feita uma revisão na
literatura, através de um levantamento bibliográfico para entendimento e
5
compreensão dos estilos de aprendizagem e das técnicas citadas por diversos
pensadores da área educacional, bem como adquirir o conhecimento do estado da
arte na área de sistemas adaptativos, relatórios estatísticos e mineração de dados.
Foram realizados também:
testes acompanhados: consiste em realizar testes de importação e analise dos
dados coletados em um estudo de caso realizado;
especificação da ferramenta: consiste em elaborar a especificação técnica da
ferramenta de manipulação dos dados e geração dos relatórios;
estudo de caso: realização de um estudo de caso com alunos ingressantes de
um curso de engenharia para validar as propostas apresentadas.
1.4 Trabalhos relacionados
Foram encontrados vários trabalhos relacionados a analise do EA de um aluno
ou turma e formas de se melhorar o processo de ensino-aprendizagem.
Um dos primeiros trabalhos de pesquisa na área foi o desenvolvido por Jonhston
(1997) na universidade escocesa Napier University, cujo objetivo foi descobrir os
motivos que fazem com que os alunos ingressantes não sejam aprovados para
continuar os estudos na série seguinte. Foram analisados neste estudo 775 alunos
através de uma entrevista individual realizada por professores/tutores visando
determinar os fatores que levaram ao baixo rendimento do aluno. Os resultados
deste estudo foram analisados através da modelagem de séries temporais com o
resultado do desempenho relacionado com os fatores levantados nas entrevistas
individuais.
Neste estudo houve uma escassez de informações sobre os alunos que
evadiram nos seis primeiros meses do curso devido à falta de contato com os
tutores/professores e também houve problemas para catalogar os alunos
remanescentes, pois uma parte deles era de alunos que estavam cursando uma
espécie de ciclo básico, restando desta forma 585 registros de alunos que puderam
ser avaliados.
6
Foi tomado um cuidado especial na analise dos dados, pois houve dificuldades
na coleta e armazenagem das informações devido a troca do tutor/professor durante
a avaliação, a forma de coleta de algumas informações e também pela forma de
interação entre o tutor/professor e os alunos.
Dos registros analisados, ocorreu uma evasão de 44% antes de completar o
primeiro ano, 48% haviam falhado no primeiro ano e 8% concluíram o primeiro ano,
mas não continuaram no curso escolhido. Então, foi realizado um agrupamento de
fatores em acadêmico e não acadêmico.
Dos estudantes entrevistados, 144 (25%) citou apenas fatores acadêmicos para
o seu fracasso, 371 (63%) citou os fatores não acadêmicos e apenas 70 (12%) citou
uma mistura dos dois.
Dos alunos que citaram fatores acadêmicos, a maioria deles obteve baixa
pontuação e não conseguiu acompanhar o curso, mas esta afirmação pode ser um
pouco inconclusiva, pois os alunos podem não ter sido totalmente sinceros em suas
respostas durante a entrevista por não se sentirem a vontade.
Dos alunos que assinalaram fatores não acadêmicos, 29% citaram dificuldades
pessoais, 12% dificuldades financeiras. Também foram citados problemas de saúde
(11%), mudanças de curso (9%), emprego (8%) e alteração de curso (6%).
O trabalho de Jonhston (1997) permitiu a criação de algumas ações proativas
focadas especialmente nos alunos dos primeiros anos, visando aumentar assim a
retenção dos alunos.
Dentre estas ações pode-se citar um maior acompanhamento dos alunos pelos
tutores/professores, maior divulgação dos pré-requisitos dos cursos e mais cuidado
com os alunos ingressantes.
Uma vez que diversos estudos apontam para o fato que, tomando-se como base
as informações disponíveis sobre cursos, acesso e interação dos estudantes, é
possível utilizar-se diferentes técnicas de mineração de dados educacionais para
gerar relatórios sobre a utilização e a real situação dos aprendizes em um
determinando momento de seu processo de aprendizagem.
7
No estudo de Baker et al. (2011) os autores discorrem sobre a utilização da EDM
no Brasil e no mundo e como ela pode contribuir para a melhoria do processo de
ensino-aprendizagem. Foram citadas algumas possíveis descobertas consideradas
importantes tais como:
A) realizar através da análise em qual tipo de abordagem instrucional, seja ela
individual ou colaborativa, a que apresenta melhores resultados educacionais ao
aprendiz;
B) personalizar o ambiente e alterar o processo de ensino-aprendizagem para
oferecer melhores condições de aprendizagem se for detectado que o aluno está
desmotivado ou confuso.
Ainda no trabalho de Baker et al., (2011) fica claro que as pesquisas na área de
EDM são basicamente realizadas com mais vigor nos Estados Unidos, Canadá e
Espanha onde são utilizados softwares educacionais que produzem grande
quantidade de informações de qualidade. Ainda nos Estados Unidos estão sendo
criados bancos públicos de informações educacionais, permitindo assim acesso
mais fácil as informações sobre o ensino de cidades e distritos.
A aplicação da EDM em ambientes educacionais vem aumentando como
consequência das politicas educacionais governamentais, tais como a autorização
para funcionamento de cursos a distância conforme relata Baker et al., (2011). Essa
mudança no processo educacional abre portas para que novas pesquisas sejam
realizadas e todo o processo de ensino-aprendizagem seja moldado de acordo com
as necessidades brasileiras.
Conforme ressaltam Márquez-Vera et al. (2011), a EAD no ensino superior é o
objeto de estudo de grande parte das pesquisas relacionadas com previsão de
desempenho. Diante disso, os autores utilizaram dez algoritmos de mineração de
dados para realizar inferências sobre o desempenho de 670 estudantes do ensino
médio da cidade de Zacatecas, México.
No trabalho de Márquez-Vera et al. (2011), as taxas de acurácia reportadas
apresentaram os maiores valores dentre outros trabalhos correlatos que os autores
usaram como referência, ficando acima de 90%. Somente teve como particularidade
8
a forma de coleta das informações que foi realizado através da utilização de
formulários de pesquisas aplicados aos estudantes.
Algumas técnicas e algoritmos de mineração de dados educacionais foram
utilizados por Ibrahim e Rusli (2007), Kotsiantis (2012) e Romero-Zaldivar et al
(2012) com o objetivo de comparar a previsão de desempenho.
O estudo de Romero-Zaldivar et al (2012) tenta responder a duas perguntas. A
primeira delas é como monitorar as atividades desenvolvidas por um aluno e a
segunda pergunta é como utilizar os dados gravados para predizer o desempenho
de um aluno no curso. Neste estudo, os alunos utilizaram uma máquina virtual
previamente configurada para recolher informações e com base nessas informações
foi proposto um modelo de previsão.
Já Manhães et al (2011) utilizou técnicas de mineração de dados para prever o
risco de evasão e retenção dos alunos do curso de Engenharia da Escola
Politécnica da Universidade Federal do Rio de Janeiro - UFRJ. Os resultados
mostraram que utilizando as primeiras notas semestrais dos calouros é possível
identificar com precisão variando entre 75 a 80% a situação final do aluno no curso.
Os autores utilizaram dez algoritmos de classificação e concluíram que a
acurácia média obtida entre eles era semelhante, neste estudo também foram
analisados os erros de falso negativo e falso positivo. Chegou-se a conclusão de
que uma elevada taxa de erro para falso positivo não é adequada para a solução so
problema e que os algoritmos MultilayerPerceptron e RandomForest (Witten et al.,
2011) apresentaram os melhores resultados dentre os dez algoritmos testados
nesse estudo.
Assim, o resultado destas pesquisas comprova o potencial que as diversas
técnicas de mineração de dados têm para previsão de desempenho ou risco de
evasão no contexto educacional.
Diante disso, Romero et al., (2008) apresentam um estudo de caso onde,
através da utilização de um ambiente virtual de aprendizagem (AVA), foram
coletadas informações diversas e, com base nessas informações, são apontadas
possibilidades de utilização de algumas destas técnicas.
9
O ambiente virtual de aprendizagem utilizado no trabalho de Romero et al.,
(2008) foi o Moodle (MOODLE, 2012) que é um sistema de código aberto criado
para auxiliar educadores a criar e gerenciar comunidades de aprendizagem de modo
eficaz.
Então Romero, Ventura e García (2008) fizeram uso das informações coletadas
no Moodle para aplicar técnicas de mineração de dados tais como:
•
classificação,
•
agrupamento,
•
regras de associação e
•
mineração de texto (Text Mining).
Foram utilizados quatro passos no processo de extração de dados:
1) coleta de dados: os alunos acessaram o ambiente e realizaram todos os
processos educacionais propostos, tais como acesso a chats, fóruns, leitura
de textos etc;
2) pré-processamento dos dados: foi realizada uma limpeza nos dados
coletados e transformação em um formato que possa ser lido por algum
software de análise;
3) aplicação dos algoritmos de mineração de dados: foram aplicadas técnicas
para construção do modelo e organização dos dados para encontrar o
conhecimento que se busca. Neste ponto podem ser utilizadas ferramentas
apropriadas proprietárias ou gratuitas;
4) interpretação dos resultados: neste ponto o professor tem contato com os
resultados a serem analisados e para tomar decisões sobre os alunos e
atividades do curso para melhorar a aprendizagem dos alunos.
Com a técnica de classificação, buscou-se obter modelos para inferir um aspecto
particular dos dados que é o desempenho dos estudantes através de alguma
combinação de outros aspectos destes dados.
Analisando estas informações é possível predizer “se o aluno terá sucesso” e
também encontrar equívocos comuns que podem ser corrigidos a tempo de não
10
permitir que o aluno tenha um baixo desempenho e com isto perca a motivação para
continuar o curso.
Conforme THAI-NGHE et al., (2011), prever o desempenho dos alunos através
da utilização da mineração de dados educacionais possibilita ao professor saber
quanto conhecimento foi assimilado pelos seus alunos ao longo do tempo e isto
permite que os testes padronizados sejam substituídos, além de possibilitar que o
professor de feedbacks mais precisos para os alunos. Trabalhos anteriores
mostraram que a previsão do desempenho dos alunos é uma informação importante
e que podem ser agregados a sistemas de recomendação de conteúdo e neste
trabalho, os autores demonstram como utilizar estas técnicas para personalizar o
conteúdo para cada aluno com base no seu desenvolvimento. O resultado
experimental em dois grandes conjuntos de dados mostra que a adição de técnicas
de previsão para o processo de fatoração é uma abordagem promissora (THAINGHE et al., 2011).
As técnicas propostas por Thai-Nghe et al., (2011) de se utilizar a fatoração
simplificam a previsão do comportamento de cada estudante e reduz a utilização de
recursos computacionais e humanos, mas a aplicação de outras técnicas de
previsão mais sofisticadas pode produzir melhores resultados.
Barnes et al., (2008) propuseram modelar problemas de aprendizado por reforço,
e uma das formas de se fazer isto é utilizar o Processo de Decisão de Markov ou
Markov Decision Process (MDP), essa técnica baseia-se na ideia de que se uma
ação é seguida de estados satisfatórios, ou por melhoria no estado, então a
tendência para produzir esta ação é aumentada, isto é, reforçada.
Em um MDP, um agente faz suas decisões com base em um sinal do ambiente,
chamado de Estado do ambiente. Caso este estado contenha toda a informação
relevante, então ele é chamado de estado de Markov (BARNES at al., 2008).
Diferentemente de outros trabalhos, o MDP aprende com os atos do aprendiz e
com isto pode dar dicas dos próximos passos sem a intervenção do professor.
Mesmo na inicialização de um novo curso onde não se tem os dados dos alunos, o
sistema funcionará satisfatoriamente. Os pesquisadores conseguiram comprovar
com este estudo piloto que o software que utiliza MDP, pode trabalhar
11
adequadamente recolhendo informações dos alunos, gerando feedback e dicas para
os alunos quando solicitado (BARNES at al., 2008).
Vários estudos já realizados com a utilização do algoritmo Knowledge Tracing
mostraram que os parâmetros do modelo de aprendizagem e desempenho dos
alunos com base em dados coletados em anos anteriores resultam em melhorias da
eficiência do sistema. O trabalho de Ritter et al. (2009) demonstrou que com
utilização do Knowledge Tracing e um conjunto específico de 23 parâmetros é
possível reproduzir o mesmo comportamento do sistema tutor caso fossem utilizados
todos os parâmetros encontrados, sugerindo que uma estimativa rápida de tais
parâmetros podem ser suficientes para produzir um comportamento próximo do
ideal.
Sendo possível modelar o comportamento dos alunos com um pequeno conjunto
de parâmetros possibilita estender o modelo de rastreamento de conhecimento além
de um modelo matemático do comportamento dos alunos, sendo possível interpretar
o desempenho individual (RITTER et al., 2009).
Os autores salientaram que esta descoberta irá fornecer novas maneiras de usar
de forma mais rápida e segura parâmetros de rastreamento de conhecimento para
interpretar o comportamento dos alunos (RITTER et al., 2009).
Nooraei, et al. (2011) mostraram que a utilização do algoritmo Knowledge Tracing
usando Expectation Maximization com apenas um pequeno subconjunto de dados
nos dá um modelo praticamente igual a um modelo de ajuste com toda a informação
disponível.
Foi demonstrado que utilizando apenas os últimos cinco pontos de dados
resultou na melhor correlação com o pós-teste, sugerindo assim que a história
passada do aluno pode ser severamente descontada quando prever o seu
desempenho futuro (NOORAEI, et al. 2011).
Essas descobertas foram inesperadas, pois utilizando 10% dos dados, no caso
de KDD e 29% dos dados, no caso de Genética houve a vantagem de se obter o
mesmo poder preditivo de quando são utilizados todos os dados. De posse destas
informações, administradores podem treinar seus modelos, utilizando menos
12
recursos computacionais e menos tempo de treinamento e também com melhores
resultados de previsão (NOORAEI, et al. 2011).
No trabalho de Pimentel e Omar (2006) foram utilizadas técnicas de EDM com
utilização da ferramenta WEKA (Waikato Environment for Knowledge Analysis),
desenvolvida pela Universidade de Waikato, Nova Zelândia (WEKA, 2013).
O WEKA, é um pacote implementado em Java, segundo o paradigma de
orientação a objetos, e é composto de uma série de algoritmos de aprendizagem
para solucionar problemas de Mineração de Dados, Pimentel e Omar (2006)
utilizaram os algoritmos disponíveis na ferramenta WEKA em dados coletados
através de avaliações para identificar medidas de conhecimento e medidas
metacognitivas identificando as relações entre elas. As medidas cognitivas servem
como indicador para o real desempenho do aluno na resolução de cada problema,
enquanto que o indicador para o grau de consciência do aluno em relação ao próprio
conhecimento são as medidas metacognitivas. Os resultados obtidos demonstraram
as potencialidades destas técnicas, sendo necessário apenas aprofundar os testes e
estudar outros atributos (WEKA, 2013).
Já Minaei-Bidgoli et al (2003) baseando-se na ideia de que o algoritmo de
classificação depende do domínio do problema e com o objetivo de melhorar o
desempenho demonstraram e concluíram realizando a classificação de estudantes
cursando a disciplina “Introductory Physics” de acordo com a previsão de nota final,
e com o uso da técnica Combination of Multiple Classifiers (CMC) apresentou taxa
média de acerto de 70,9% na classificação de estudantes em um experimento
considerando 3 classes. Esta técnica consiste em aplicar diversos algoritmos de
classificação no conjunto de dados objeto de estudo, seguidos por um “voto”. A
classe que obtiver o maior número de “votos” será a escolhida.
O estudo utilizando essa técnica baseou-se em dados de utilização de um AVA,
tais como resposta de questões, trabalhos de casa, número de acessos, tempo de
acesso, entre outros são encontrados resultados mais efetivos quando há uma
comparação com a aplicação de classificadores individualmente como testado no
trabalho de Romero et al., (2008).
13
Conforme resultados obtidos, Romero et al., (2008) recomenda que todos os
pesquisadores interessados apliquem os métodos disponíveis de EDM para casos
específicos de educação a distância, promovendo desta forma a personalização do
ensino com melhoria da qualidade. A quantidade de alunos utilizando EAD cria
oportunidades para realização de excelentes pesquisas, o que pode beneficiar
significativamente o processo de ensino-aprendizagem no Brasil.
A fim de fornecer feedback sobre a utilização de materiais para desenvolvedores
e tutores, Ricarte e Falci Junior (2011) estudaram informações extraídas de um AVA
na Universidade Estadual de Campinas – UNICAMP, utilizando algoritmos de
agrupamento.
No estudo de Ricarte e Falci Junior (2011), com a utilização dos algoritmos de
agrupamento, os autores buscaram traçar padrões visando descobrir grupos de
estudantes com o comportamento similar e descobrir comportamentos inadequados
com a análise dos padrões. Entretanto, os autores destacam a importância de
aprofundar a análise realizada com o objetivo de relacionar grupos e padrões de uso
com o desempenho obtido nos cursos.
Considerando as limitações existentes quanto à falta de controle e avaliação
personalizada existentes em alguns AVAs, além de deficiências na adaptação para
as características dos usuários, Bittencourt e Costa (2011) estudam soluções e
metodologias para o desenvolvimento de Ambientes Educacionais Adaptativos e
Semânticos, no qual a principal característica refere-se à preocupação com a
automatização, interoperabilidade e reuso entre aplicações.
Pesquisas desenvolvidas por Mcquiggan et al., (2008) têm explorado e
demonstrado a utilização de recursos de mineração de dados educacionais para
inferir a relação existente entre o estado emocional de estudantes e o desempenho
apresentado por eles.
As pesquisas de Macfadyen e Dawson (2010) e de Rabbany et al., (2011) levam
em consideração a natureza social do aprendizado e tem como foco a maneira de
como os estudantes participam e interagem em um AVA.
14
Já Dawson e Mcwillian (2008) demonstram como extrair e analisar registros de
interação a partir de fóruns de discussão, com o uso de técnicas utilizadas na
análise de redes sociais analisando aspectos que representam as relações entre os
estudantes.
Sendo assim, com o objetivo de realizar inferências ou previsão a respeito do
desempenho de estudantes, diversos trabalhos investigam a utilização de técnicas
de mineração de dados educacionais e de forma geral são analisados resultados
considerando os dados colhidos ao início e final do curso.
Neste formato, as informações coletadas embora imprescindíveis para balizar
tomada de decisões, somente poderão ser utilizadas em cursos e atividades futuras
e não para modificar ou corrigir rumos de cursos atuais.
No presente trabalho como as informações são coletadas em diversos momentos
do curso, os professores podem com base nos resultados em tempo real tomar
decisões para melhorar o curso atual, diferente do trabalho realizado por Dawson e
Mcwillian (2008) descrito acima, no qual as informações são coletadas no inicio e
final do curso, fazendo assim com que os resultados sejam aproveitados somente
para as turmas novas.
No trabalho de Gottardo et al., (2012b) foram utilizadas técnicas de EDM para
geração de inferências sobre o desempenho de estudantes a partir de dados
coletados em séries temporais e teve como objetivo principal investigar a viabilidade
de obtenção de informações em etapas iniciais de realização do curso de forma a
apoiar a tomada de ações proativas. Os resultados obtidos neste estudo
demonstram que é possível obter estas inferências com taxas de precisão próximas
a 75%.
1.5 Organização do trabalho
Esta dissertação foi uma pesquisa na área de mineração de dados mais
especificamente sobre mineração de dados educacionais que é uma vertente da
mineração de dados que utiliza especificamente dados educacionais e é
considerada uma nova área de pesquisa.
15
No capitulo 2 é apresentada uma breve sumula dos perfis de aprendizagem
segundo alguns pesquisadores, as inteligências múltiplas de Gardner e da
ferramenta FIPA.
No capítulo 3 é apresentada uma revisão bibliográfica sobre Mineração de Dados
com um pouco do histórico, aspectos conceituais e sua origem. São apresentadas
ainda as definições de Data Warehouse, Data Mart e também as etapas de um
processo de mineração de dados.
No capítulo 4 são abordados alguns conceitos e a especificação técnica da
Ferramenta de Analise Estatística que foi criada para realização do teste de conceito
e estudo de caso. O capítulo 5 segue a mesma linha do capitulo anterior e são
abordados resultados do estudo de caso realizado com alunos ingressantes em um
curso de engenharia.
No capítulo 6 traz as conclusões e considerações finais do trabalho: uma síntese
do aprendizado que se buscou na elaboração da dissertação. É lembrado o caminho
percorrido e a evolução do trabalho com a prova de conceito, o funcionamento da
ferramenta e os trabalhos futuros.
16
2 Estilos de Aprendizageme Inteligências Múltiplas
Neste capítulo poderemos conhecer melhor o que é Estilo de Aprendizagem
segundo alguns pensadores, as Inteligências Múltiplas de Gardner e a ferramenta
FIPA.
2.1 Estilos de Aprendizagem
De acordo com vários pensadores, podemos encontrar inúmeras descrições que
definem estilos de aprendizagem, então conforme Bravos Bativa (2011), “os estilos
de aprendizagem transitam, basicamente em dois eixos: a captação e a
transformação da informação”, o que nada mais é do que um método pelo qual uma
pessoa adquire conhecimento, não o que o indivíduo aprende e sim a forma como
ele aprende.
Segundo Butler (2003), “Estilo é uma dimensão complexa de pensamento e
aprendizagem, bem como de relacionamento e comunicação”, sendo assim, cada
um aprende do seu modo pessoal e único, desta forma pode ser explicado como
crianças aprendem as letras após ouvir uma música que fala do abc, ou mesmo
brincando com blocos, ou vendo um filme sobre as letras.
É bom ressaltar que existe uma proposta de substituição do termo “estilo de
aprendizagem” por “preferências de aprendizagem” (CAVELUCCI 2003 apud
BRAVOS BATIVA 2011)
Ainda segundo Butler (2003), “O desafio é descobrir como as informações sobre
estilos podem aprofundar nossa perspectiva e como resistir à tentação de usar o
estilo como uma solução simplista para explicar o complexo processo de
compreensão da mente humana”.
Conforme Bravos Bativa (2011), a tabela 2.1 mostra um resumo do que a
literatura apresenta quanto aos estilos de aprendizagem.
17
Tabela 2.1 – Autores e suas definições para estilos de aprendizagem
Autores
Definições de Estilo de Aprendizagem
Claxton e Ralston
É a forma consistente de responder e utilizar os estímulos em um contexto de
(1978)
aprendizagem.
Dunn, Dunn Price
É a maneira pela qual os indivíduos respondem a estímulos ambientais,
(1979)
emocionais, sociológicos e físicos.
Hunt (1979)
Baseia-se nas condições educativas com as quais o aluno está em melhor
situação para aprender, ou que estrutura necessita o aluno para aprender
melhor.
Gregoric (1979)
Consiste em comportamentos distintos que servem como indicadores da
maneira como uma pessoa aprende e se adapta ao seu ambiente.
Schmeck (1982)
É o estilo que um indivíduo manifesta quando se confronta com uma tarefa de
aprendizagem especifica. É também, uma predisposição do aluno para adotar
uma
estratégia
particular
de
aprendizagem,
independentemente
das
exigências das tarefas.
Keefe (1982)
São constituídos por traços cognitivos, afetivos e fisiológicos que funcionam
como indicadores relativamente estáveis da forma como os alunos percebem,
interagem e respondem ao ambiente de aprendizagem.
Butler (1982)
É o significado natural da forma como uma pessoa, efetiva e eficientemente,
compreende a si mesma, o mundo e a relação entre ambos. Indica uma
maneira distinta de alunos se aproximar de um projeto ou episódio de
aprendizagem, independentemente da inclusão de uma decisão explicita ou
implícita por parte desses.
Dunn (1986)
São as condições através das quais os indivíduos começam a se concentrar,
absorver, processar, e reter informações e habilidades novas e difíceis.
Entwistle (1988)
É como uma orientação do indivíduo para a aprendizagem, ou seja, a
consistência na abordagem que o individuo demonstra na realização de tarefas
especificas de aprendizagem.
Smith (1988)
São como os modelos característicos pelos quais um individuo processa a
informação, sente e se comporta nas situações de aprendizagem.
Fonte: BRAVOS BATIVA (2011)
Para definir qual o estilo de aprendizagem de uma turma ou de um aluno
individualmente, precisamos aplicar os questionários aos mesmos e para tanto
vamos utilizar a ferramenta FIPA, que atualmente disponibiliza três inventários,
Inteligências Múltiplas, o ILS e o classificador de temperamento de Kersey.
18
2.2 As Inteligências Múltiplas
A teoria das inteligências múltiplas foi proposta por Howard Gardner, psicólogo,
professor e codiretor do Project Zero na Harvard Graduate School of Education e da
Boston School of Medicine, Gardner desenvolveu em meados dos anos 1980, a
teoria das inteligências múltiplas que versa sobre um tema que os psicólogos vêm
abordando desde o início do século XX, que é a inteligência e suas principais
manifestações nos indivíduos. (GARDNER, 1994; ARMSTRONG, 2001; ANTUNES,
2011a).
Inteligência é a capacidade de resolver problemas ou de elaborar
produtos que sejam valorizados em um ou mais ambientes culturais
ou comunitários, sendo que a capacidade de resolver problemas. [“...]
permite à pessoa abordar uma situação em que um objetivo deve ser
atingido e localizar a rota adequada para esse objetivo” e a criação de
um produto cultural. [...] é crucial nessa função, na medida em que
captura e transmite o conhecimento ou expressa às opiniões ou os
sentimentos da pessoa. (Gardner, 1994).
Através da avaliação das atuações de diferentes profissionais em diversas
culturas e do repertório de habilidades dos seres humanos na busca de soluções,
culturalmente apropriadas para os seus problemas, Gardner trabalhou no sentido
inverso ao desenvolvimento, retroagindo para eventualmente chegar às inteligências
que deram origem a tais realizações. (GARDNER, 1994; ARMSTRONG, 2001;
ANTUNES, 2011a).
Gardner sugere que as habilidades humanas não são organizadas de forma
horizontal; ele propõe que se pense nessas habilidades como organizadas
verticalmente, e que, ao invés de haver uma faculdade mental geral, como a
memória talvez exista formas independentes de percepção, memória e aprendizado,
em cada área ou domínio, com possíveis semelhanças entre as áreas, mas não
necessariamente uma relação direta. (GARDNER, 1994; ARMSTRONG, 2001;
ANTUNES, 2011a).
Gardner identificou as inteligências linguística, lógico-matemática, espacial,
musical, cinestésica, interpessoal e intrapessoal. Essas competências intelectuais
são relativamente independentes, têm sua origem e limites genéticos próprios e
19
dispõem de processos cognitivos próprios. Segundo este autor, os seres humanos
dispõem de graus variados de cada uma das inteligências e maneiras diferentes
com que elas se combinam e organizam e se utilizam dessas capacidades
intelectuais para resolver problemas e criar produtos. Gardner ressalta ainda que,
embora estas inteligências sejam, até certo ponto, independentes uma das outras,
elas raramente funcionam isoladamente. (GARDNER, 1994; ARMSTRONG, 2001;
ANTUNES, 2011a).
2.2.1 Inteligência linguística
Os principais componentes da inteligência linguística são uma sensibilidade para
os sons, ritmos e significados das palavras, além de uma especial percepção das
diferentes funções da linguagem.
Encontra-se associada a pessoas que escrevem, falam, lidam, criam, resolvem
problemas através das múltiplas formas da linguagem escrita. (ANTUNES, 2009e).
2.2.2 Inteligência lógico-matemática
Está associada à capacidade de lidar com os números, mas também de resolver
problemas lógicos, possuem uma grande capacidade de olhar de forma logica os
problemas que precisam avaliar. (ANTUNES, 2009f).
É a inteligência característica de matemáticos e cientistas. Gardner (1994),
porém, explica que, embora o talento científico e o talento matemático possam estar
presentes num mesmo indivíduo, os motivos que movem as ações dos cientistas e
dos matemáticos não são os mesmos.
Enquanto os matemáticos desejam criar um mundo abstrato consistente, os
cientistas pretendem explicar a natureza. (ANTUNES, 2011a).
20
2.2.3 Inteligência musical
Esta inteligência se manifesta através de uma habilidade para apreciar, compor
ou reproduzir uma peça musical. Inclui discriminação de sons, habilidade para
perceber temas musicais, sensibilidade para ritmos, texturas e timbre, e habilidade
para produzir e/ou reproduzir música. (ANTUNES, 2009h).
2.2.4 Inteligência espacial
A inteligência espacial está ligada a capacidade de perceber o mundo visual e
espacial de forma precisa. É a habilidade para manipular formas ou objetos
mentalmente e, a partir das percepções iniciais, criar tensão, equilíbrio e
composição, numa representação visual ou espacial. (ANTUNES, 2009d).
2.2.5 Inteligência corporal-cinestésica
Esta inteligência se refere à habilidade para resolver problemas ou criar produtos
através do uso de parte ou de todo o corpo. É a habilidade para usar a coordenação
grossa ou fina em esportes, artes cênicas ou plásticas no controle dos movimentos
do corpo e na manipulação de objetos com destreza. (ANTUNES, 2009b).
2.2.6 Inteligência interpessoal
Esta inteligência pode ser descrita como uma habilidade para entender e
responder adequadamente a humores, temperamentos, motivações e desejos de
outras pessoas. Na sua forma mais primitiva, a inteligência interpessoal se manifesta
em como a habilidade para distinguir pessoas e na sua forma mais avançada, como
a habilidade para perceber intenções e desejos de outras pessoas e para reagir
apropriadamente a partir dessa percepção. (ANTUNES, 2009g).
21
2.2.7 Inteligência intrapessoal
Esta inteligência é o correlativo interno da inteligência interpessoal, isto é, a
habilidade para ter acesso aos próprios sentimentos, sonhos e ideias, para
discriminá-los e lançar mão deles na solução de problemas pessoais.
É o reconhecimento de habilidades, necessidades, desejos e inteligências
próprias, a capacidade para formular uma imagem precisa de si próprio e a
habilidade para usar essa imagem para funcionar de forma efetiva. (ANTUNES,
2009g).
2.2.8 Inteligência naturalista
Esta inteligência está fortemente presente em ambientalistas, paisagistas,
pessoas capazes de perceber no meio ambiente, detalhes que outras pessoas não
percebem, tais como detalhes de uma árvore, uma planta, um pássaro ou um animal
etc. (ANTUNES, 2009c).
2.2.9 Inteligência espiritualista ou existencialista
Por enquanto Garner ainda chama esta inteligência de meia inteligência, é a
capacidade de lidar com detalhes de vida e morte, meditação, autocontrole, e o
cosmos. Há comprovações neurológicas de que a fé ajuda na cura de doenças e na
melhora rápida, mas por enquanto ele não refuta nem confirma. (ANTUNES, 2009g).
2.2.10 Inteligência Pictórica
Surgiu no Brasil inicialmente através de estudos do professor Nilson Machado e
com a colaboração da professora Katia Cristina Stocco Smole, foi estudada a
possibilidade desta inteligência que está diretamente associada a imagem, desenho
etc, mas Gardner [200-?] ainda não se posicionou sobre ela, nem confirmando, nem
refutando.
22
2.3 A Ferramenta FIPA
A Ferramenta de Identificação de Perfis de Aprendizes (FIPA) foi desenvolvida
por Gilberto Bravos Bativa (2011) com base em procedimentos de estilos de
aprendizagem de Felder-Solomon, classificador de temperamento de Kersey-Bates
e inteligências múltiplas de Gardner (BRAVOS BATIVA, 2011; GARDNER, 1994).
O objetivo é oferecer uma ferramenta de auxílio ao processo de identificação de
estilo de aprendizagem de aprendizes, de forma a dar suporte aos professores no
planejamento de suas atividades didáticas (BRAVOS BATIVA, 2011; GARDNER,
1994).
A ferramenta FIPA foi construída permitindo expansibilidade e está disponível na
web para utilização no endereço http://www.fipa.fsa.br. Algumas informações para
realização do estudo de caso serão geradas através da utilização do questionário de
inteligências múltiplas disponível na ferramenta FIPA (BRAVOS BATIVA, 2011;
GARDNER, 1994).
Segundo Bravos Bativa (2011) “a escolha dos três modelos se deu em função de
atenderem a componentes intelectuais pessoais de assimilação de informação e
componentes estáveis, relacionados a fatores cognitivos de personalidade”.
A contribuição desta ferramenta é determinar o perfil individual ou do grupo de
alunos em sala de aula, sendo um instrumento importante no processo de
construção do conhecimento, uma vez que permite ao professor conhecer o perfil
dos seus alunos. (BRAVOS BATIVA, 2011).
“Como resultado pode-se obter alunos mais comprometidos e motivados com as
atividades a serem executadas por visualizarem nelas possibilidades efetivas de
crescimento pessoal”. (BRAVOS BATIVA, 2011).
Através da aplicação dos modelos de inventário disponíveis na ferramenta, é
possível determinar o perfil do aluno. E também existe a possibilidade de se gerar
relatórios possibilitando assim ao professor conhecer o perfil de aprendizagem de
suas turmas ou de algum aluno individualmente. (BRAVOS BATIVA, 2011).
23
3 MINERAÇÃO DE DADOS
A evolução do desempenho de aprendizes é um tema que vem sendo estudado
por diversos pesquisadores há muito tempo e tem se mostrado um desafio para
professores, instituições e profissionais, sendo que vários desses estudos utilizam
métodos estatísticos para estudar e entender essa questão.
Ao se partir do pressuposto de que podem ser coletadas muitas informações
educacionais e que com base nestas informações pode-se listar vários conjuntos de
regras possíveis e em seguida escolher alguns que satisfazem um determinado
conjunto de exemplos, chega-se à conclusão de que é muito trabalho. Alguns podem
pensar que é infinito, pois não há um limite de regras, mas na verdade a quantidade
de regras que podem ser aplicadas é finita. (WITTEN et al., 2011).
O uso da tecnologia para fornecer suporte à obtenção e disponibilização de
informações relativas ao processo de ensino/aprendizagem poderiam auxiliar a
enfrentar esses desafios (Ara et al., 2003).
As ferramentas tecnológicas existentes permitem o acesso a informações
importantes para subsidiar o desenvolvimento de ações ou estratégias pedagógicas
visando aumentar a qualidade do curso, diminuir a reprovação ou a evasão (Ara et
al., 2003; Baker et al., 2011).
As informações armazenadas nos bancos de dados dos AVAs, são bastante
amplas e incluem desde simples registros de acesso e interações com o sistema, até
dados com ricos significados semânticos, como respostas a testes ou participações
em fóruns e chats. (ROMERO; VENTURA, 2010; ROMERO-ZALDIVAR et al, 2012).
Uma área importante que tem contribuído para o entendimento da evolução de
aprendizes e os aspectos que estão relacionados a essa evolução é a Mineração de
Dados. (ROMERO; VENTURA, 2010).
3.1 Introdução
Recentemente com a expansão da oferta de cursos na modalidade EAD muitos
pesquisadores da informática na educação tem interesse em utilizar a Mineração de
24
Dados para investigar perguntas científicas ou desenvolver sistemas informatizados
que colaborem para melhorar o processo de ensino-aprendizagem (Baker at al.
2011).
A Mineração de Dados ou Data Mining não é uma área nova, existe há algum
tempo e conforme Baker et al. (2011), é um dos principais etapas dos processos de
busca do conhecimento. Fayyad et al. (1996) orienta que este conceito é utilizado
para identificar técnicas avançadas de analise dos dados e que podem ou não
utilizar a inteligência artificial para refinar os dados em busca de padrões.
Este processo também e conhecido como “Knowledge Discovery in Databases”
ou KDD e refere-se ao processo de identificar relações entre dados e com isto gerar
conhecimento. (FAYYAD et al., 1996)
Há muito tempo a Mineração de Dados é alvo de estudos, pois caçadores
buscavam padrões de comportamento na migração animal, agricultores procuram
padrões no clima e no crescimento de determinadas culturas. No Egito antigo os
agricultores observavam e registravam os períodos de cheia do Nilo, permitindo
assim a criação de um calendário com três épocas: o período das cheias, o período
de plantio e o período da colheita que são períodos de quatro meses cada. (Witten
et al., 2011).
Nos diferentes segmentos da sociedade, as instituições têm buscado nas TICs
recursos que agreguem valor aos seus negócios, seja para agilizar operações,
suportar ambientes ou viabilizar inovações. Antigamente era um problema processar
e ter uma grande base de dados armazenada devido às limitações de hardware e
dos custos elevados dos equipamentos, mas com a evolução das TICs, pode-se
aumentar substancialmente o poder de processamento e armazenamento com a
redução dos custos, permitindo desta forma armazenarem os dados que se
consideram uteis.
A informação e o conhecimento obtidos podem ser utilizados para diversas
aplicações, que vão do gerenciamento de negócios, controle de produção e
análise de mercado ao projeto de engenharia e exploração científica (Han et al.,
2006).
25
Data Mining é considerada uma das tecnologias mais promissoras da atualidade.
Um dos fatores deste sucesso é o fato de que muito dinheiro se tem gasto pelas
instituições na coleta dos dados sem, no entanto obter o retorno desejado (LAROSE,
2005). Em seu livro, Han et al. (2006) refere-se a essa situação como "rico em
dados, pobre em informação".
3.2 Mineração de Dados
Vários pesquisadores descrevem a mineração de dados de formas diferentes,
mas Kantardzic, (2003), Baker et al. (2011), Han et al. (2006), Olson et al. (2008) e
Witten et al. (2011) a descrevem como uma forma de estatística enriquecida com a
teoria da aprendizagem e têm suas raízes na análise de dados clássica.
A mineração de dados é uma tecnologia multidisciplinar e abrange técnicas
utilizadas em diversas áreas tais como: Banco de Dados, Aprendizado de Máquina,
Estatística, Sistemas Especialistas, Técnicas de Visualização de Dados e
Computação de alto nível. Estas técnicas têm por objetivo descobrir padrões,
relacionamentos, tendências e ou modelos que não podem ser obtidos com a
utilização das ferramentas convencionais, sendo seus resultados apresentados de
forma
compreensível
ao
professor.
(CAVALHEIRO,
2003;
SERRA,
2002,
EVSUKOFF, 2005).
Com sua origem em várias disciplinas, as duas mais importantes são a estatística
e aprendizado de máquina ou Machine Learning. Estatística tem suas raízes na
matemática e, portanto, houve uma ênfase no rigor matemático. Em contrapartida, o
aprendizado de máquina tem as suas origens muito na prática de programar
computadores
para
aprender
um
determinado
comportamento
ou
padrão
automaticamente a partir de exemplos ou observações (EVSUKOFF, 2005).
Estatística moderna é orientada pela noção de construção de um modelo, ou
uma aproximação a uma estrutura, já aprendizado de máquina tende a enfatizar
algoritmos, a própria palavra "aprender" contém a noção de um processo, um
algoritmo implícito (KANTARDZIC, 2003).
26
3.2.1 Conceito de mineração de dados
A necessidade de interpretar grandes e complexos conjuntos de dados é comum
a praticamente todas as áreas e está sendo reconhecido como ativo estratégico
(KANTARDZIC, 2003).
Bramer (2007), Han et al. (2006), Olson et al. (2008) e Witten et al. (2011)
expõem algumas das áreas e exemplos onde a Mineração de Dados pode ser
aplicada de forma satisfatória, tais como: Retenção de clientes, Bancos, Cartão de
Crédito, Cobrança, Telemarketing, Eleitoral, Medicina, Segurança, Tomada de
Decisão, dentre outras.
Conforme Baker et al. (2011), utilizando-se mineração de dados um gerente de
supermercado pode saber quais produtos são mais consumidos em determinado dia
da semana e com isto planejar o estoque de alguns produtos para atender a
demanda daquele dia em especial.
Analogamente é possível minerar dados de alunos para verificar a relação entre
uma abordagem pedagógica e o aprendizado do aluno. Através desta informação
o professor poderia compreender se sua abordagem realmente está ajudando o
aluno e desenvolver novos métodos de ensino mais eficazes (Baker et al., 2011).
A Figura 3.1 exemplifica as áreas que se relacionam com Data Mining conforme
citado anteriormente.
Figura 3.1 - Campos Multidisciplinares de Data Mining
Fonte: Evsukoff (2005).
27
Entretanto uma aplicação comercial, educacional ou mesmo científica possui a
facilidade de gerar relatórios simples e exportá-los para diversos formatos, sejam
estes arquivos do Microsoft Excel, arquivos no formato PDF ou outros formatos que
permitam a visualização e/ou impressão dos relatórios.
Dentro desta área de pesquisa surgiu a Mineração de Dados Educacionais ou
Educational Data Mining, (EDM) que tem como foco o desenvolvimento de métodos
para coletar e analisar dados educacionais. Com a utilização das técnicas de EDM é
possível compreender melhor o ambiente educacional, isso inclui analisar como os
alunos aprendem e as influencias que proporcionam benefícios no processo de
ensino-aprendizagem. Através destas análises é possível identificar se o aluno está
desmotivado ou confuso e com isto personalizar o ambiente para oferecer melhores
métodos educacionais. (Baker et al., 2011).
3.2.2 Origem dos dados
Os bancos de dados existem há muito tempo na história da computação, mas a
evolução das TIC’s tem expandido que tal forma que cada vez mais podem ser
registradas as informações sobre os acessos e navegação, criando assim uma
extensa massa de dados (BRAGA, 2005).
A Mineração de Dados reúne um conjunto de procedimentos onde a partir de
uma massa de dados podem ser aplicadas técnicas para “descrição” e “predição”, e
normalmente está associada a bancos de dados especiais que são conhecidos
como Data Warehouse (Witten et al. 2011, SERRA, 2002).
Para se criar o Data Warehouse, Braga (2005) destaca três princípios que devem
ser considerados:
•
A informação está nos dados;
•
O trabalho deve ser desenvolvido nos dados;
•
A qualidade dos dados é critica e muito mais importante do que a quantidade;
Devemos
ainda
levar
em
consideração
segundo
Braga
(2005),
cinco
características que devem ser obedecidas na capacitação e manutenção dos dados:
28
•
Acurácia – não deve haver erros de medição ou digitação nos dados;
•
Consistência – os dados devem ter algum sentido, serem coerentes;
•
Completude – não podem existir campos faltantes;
•
Relevância – referente ao problema;
•
Não redundância – os dados não podem ser duplicados.
Para analisar o Data Warehouse criou-se um processo conhecido como Data
Warehousing (DW), cujo objetivo básico é criar um repositório que contenha dados
limpos, agregados e consolidados. O DW permite realizar a analise destas
informações armazenadas, através da utilização de ferramentas OLAP (On-Line
Analytical Processing), SQL (Structured Query Language) ou outros mecanismos de
visualização de dados (SERRA, 2002, BRAGA, 2005).
Serra (2002) afirma que DW é um sistema composto por hardware e software
que podem guardar as informações contidas na base de dados de uma empresa ou
instituição e permitindo a integração de todos os dados e sistemas.
Um DW é construído tendo como base outros bancos de dados que podem ser
implementados em diferentes plataformas na instituição (INMON, 1997). Ainda
segundo este autor, um Data Mart é um DW departamental, ou seja, pode ser
construído um DW em menores proporções somente para utilização por um
departamento ou área institucional.
“A partir das informações arrumadas e acessíveis, os algoritmos matemáticos e
as técnicas de Data Mining saem à procura de relação entre os dados obtendo
assim alguma resposta que a instituição deseja obter.” (SERRA, 2002).
3.2.3 Métodos de Mineração de Dados
As técnicas de mineração de dados podem ser associadas a tarefas ou tipos de
problema de descoberta de conhecimento a ser solucionado. Os tipos de predição
são os relacionamentos que estabelecemos entre os dados para a obtenção de
conhecimento, para atender aos objetivos e gerar os resultados esperados há uma
coleção de técnicas que podem ser utilizadas, sendo que cada técnica possui uma
gama de algoritmos que irão manipular os dados. As tarefas que são descritas a
29
seguir referem-se a: classificação, estimativa, associação, segmentação (clustering)
e sumarização (HARRISSON, 1998; FAYYAD et al., 1996 e CAVALHEIRO, 2003 ;
INMOM, 1997).
Figura 3.2 - Métodos de Data Mining
Fonte: Mann (2006); Cavalheiro (2003).
Conforme se pode observar na Figura 3.2, existem vários algoritmos que podem
ser aplicados para a descoberta das informações.
A) Classificação
A tarefa de classificação consiste na construção de um tipo de modelo que possa
separar os dados não classificados em grupos, assim um dado é examinado e
classificado de acordo com um grupo definido. (HARRISON, 1998).
B) Estimativa (ou Regressão)
A tarefa de estimativa é usada para definir um valor para alguma variável
contínua desconhecida e lida com resultados contínuos, com base nos outros
atributos disponíveis para análise (FAYYAD et al., 1996 e CAVALHEIRO, 2003).
C) Associação
A tarefa de associação consiste em determinar quais eventos ocorrem em
conjunto, ou seja, em um mesmo evento. Um exemplo clássico é o Market Basket
Analysis (MBA), que busca padrões nos produtos de um carrinho de compras. É
30
uma tarefa simples e determinística e não utiliza predição tal como a classificação.
(FAYYAD et al., 1996 e HARRISON, 1998).
D) Segmentação (ou Clustering)
A segmentação consiste num processo de divisão de uma população
heterogênea em vários subgrupos. Nesta segmentação, não há grupos predefinidos,
os registros são agrupados de acordo com a semelhança, o que a diferencia da
tarefa de classificação. (HARRISON, 1998; CAVALHEIRO, 2003).
E) Sumarização
A sumarização envolve métodos para encontrar uma descrição compacta para
um subconjunto de dados. Segundo Inmom (1997) apenas é uma forma de resumir
as informações existentes na base de dados. Métodos mais sofisticados envolvem a
derivação de regras de sumarização.
3.2.4 Técnicas de mineração de dados
“A tecnologia de mineração de dados contém inúmeras ramificações e cada uma
delas possui suas vantagens e desvantagens. Isso porque elas não atendem
sempre as necessidades para uma ou outra aplicação.” (SERRA, 2002).
Figura 3.3 - Técnicas de Data Mining
Fonte: Serra (2002. p. 209).
31
A) Redes neurais artificiais
As Redes Neurais Artificiais (RNA) são também conhecidas como redes
conexionistas e consistem em um conjunto de unidades elementares de
processamento de informações fortemente conectadas, estas conexões formam as
redes neurais. (OSÓRIO, 2003).
As RNAs são responsáveis pela solução de muitos problemas complexos e o
objetivo é realizar processamento de dados de forma semelhante ao cérebro
humano que é capaz de aprender, errar e fazer muitas descobertas, por isto uma
rede neural é estruturada para possuir centenas ou milhares de unidades de
processamento, capazes de armazenar conhecimentos baseados em aprendizagens
(SERRA, 2002).
São normalmente utilizadas nas tarefas de classificação, regressão e
segmentação. Assim, a utilização de redes neurais em Data Mining oferece o mais
profundo poder de mineração, mas é também a mais difícil de compreender. Ainda
segundo Serra (2002), o problema da utilização das redes neurais é que os
resultados finais não podem ser explicados.
B) Indução de regras
A técnica de Indução de Regras utiliza o processo de desenvolver
relacionamentos a partir dos dados apresentados, procurando tendências dentro dos
dados. Normalmente são criadas correspondências do tipo “se – então”, que são
denominadas de “regras”. Um problema da Indução de Regras é que ela gera regras
triviais, contraditórias ou inúteis, requerendo assim que um analista de negócio
realize a sua validação, outro problema é que o numero de possibilidades cresce
exponencialmente com o número de itens. (SERRA, 2002; GARCIA, 2000).
C) Árvore de decisão
A técnica de árvore de decisão é um meio simples de representação do
conhecimento através da construção de classificadores que predizem classes
baseadas nos valores de atributo de um conjunto de dados. (GARCIA, 2000).
32
Uma árvore de decisões pode gerar regras considerando o trajeto do nodo raiz
até uma folha da árvore. Cada nó testa o domínio de uma variável de entrada e o
redireciona para o nó seguinte, cada sub-árvore representa o resultado de um teste
e a folha é a classificação que aquele registro recebeu. Muitas vezes as regras
substituem as árvores de decisão, pois as mesmas tendem a crescer muito e as
regras podem ser facilmente modularizadas. (GARCIA, 2000).
D) Algoritmo Genético
Os algoritmos genéticos (AG’s) realizam uma simulação do processo natural da
evolução e diferentemente de outros métodos convencionais os AG’s trabalham
simultaneamente com conjuntos de soluções diferentes, modelando soluções para
um problema específico em estruturas semelhantes a um cromossomo. É realizada
a aplicação de operadores para gerar nova recombinação e assim novas regras de
associação, assim ao longo do tempo o algoritmo tende a “aprender” de forma que
somente os resultados com maior precisão tender a ser aceitos (TAN et al., 2005).
3.3 Mineração de Dados Educacionais
A mineração de dados educacionais surgiu por volta do ano 2000 como forma de
se elucidar algumas perguntas científicas e assim entender como desenvolver
sistemas educacionais mais eficazes, ou ainda descobrir quais fatores afetam o
processo de ensino-aprendizagem. (BAKER et al. 2011)
Ainda segundo Baker et al., (2011), a Mineração de Dados, também conhecida
como Descoberta de Conhecimentos em Bancos de Dados ou KDD – (Knowledge
Discovery in Databases), pode ser referida a uma área que tem como objetivo
descobrir “novas” informações através da análise de grandes quantidades de dados
sendo que para se atingir estes objetivos, são aplicadas individualmente ou em
conjunto técnicas tais como mineração de dados, analise estatística e aprendizado
eletrônico.
Segundo definição de Witten, Frank e Hall (2011) a Mineração de Dados é um
processo de descoberta de padrões a partir de um conjunto de dados. Fayyad et al.,
(1996) completam que os padrões encontrados devem revelar alguma novidade
33
para assim ser útil e trazer beneficio aos usuários ou auxiliar no desenvolvimento de
alguma atividade.
Adaptando-se para o contexto educacional, espera-se que estas descobertas
tenham capacidade para auxiliar no desenvolvimento de relatórios que possibilitem o
entendimento de como os alunos aprendem e os principais acontecimentos e fatores
que causam impactos no processo de ensino-aprendizagem.
A mineração de dados educacionais (EDM) é uma área recente de pesquisa
que tem como principal objetivo o desenvolvimento de métodos para explorar
conjuntos de dados coletados em ambientes educacionais. Atualmente ela
vem se estabelecendo como uma forte e consolidada linha de pesquisa que
possui grande potencial para melhorar a qualidade do ensino. (BAKER et al.,
2011).
Baker et al. (2011) ainda enfatiza que utilizando os dados educacionais é
possível compreender melhor como os alunos aprendem, quais fatores influenciam
neste aprendizado, permite descobrir se o aluno está desmotivado ou simplesmente
confuso com algum tópico e desta forma ajuda-lo da forma correta.
Romero et al. (2008) advertem que na área educacional a quantidade de dados
armazenada também vem crescendo. Atualmente com a utilização cada vez maior
do Ambiente Virtual de Aprendizagem (AVA) que registram todas as atividades
realizadas pelos aprendizes, tais como acessos, leituras, postagens de perguntas ou
respostas em fóruns, respostas a questionários e comunicações diversas faz com
que um grande volume de dados seja criado, tornando difícil a análise manual dos
logs de acesso pelos professores.
A Mineração de Dados Educacionais ou Educacional Data Mining (EDM), é
definida por Romero, Ventura (2010) como uma área de pesquisa que com base em
dados educacionais pode desenvolver algoritmos para realizar descobertas de
conhecimento visando assim atingir objetivos propostos.
Em um estudo realizado por Zorrilla et al. (2005) foi apontado que a aplicação de
técnicas de mineração de dados em ambientes educacionais pode ser orientada
para educadores, professores, gestores institucionais e estudantes, sendo que cada
um tem o seu ponto de vista. Desta forma baseada nas informações existentes
sobre os cursos, dados de acesso e interação, diferentes técnicas de mineração de
34
dados podem ser aplicadas visando descobrir conhecimentos úteis que ajudam a
melhorar o processo de ensino-aprendizagem. Assim o conhecimento gerado pode
ser útil não somente para os professores e gestores institucionais, mas também para
os alunos.
3.3.1 Breve histórico da EDM
Como a comunidade de Mineração de Dados Educacionais vem crescendo
rapidamente, em 2008 foi realizada a primeira Conferência Internacional de
Mineração de Dados Educacionais que reuniu os trabalhos de diversos
pesquisadores. Esta conferência foi organizada após a realização com sucesso de
vários workshops sobre o assunto e já na sua primeira edição houve a publicação de
17 (dezessete) artigos e 14 (quatorze) posters.
No final de 2009 foi criada a Revista de Mineração de Dados Educacionais
(Journal of Educational Data Mining) que reúne publicações sobre a área, e que até
2011, conforme cita Baker et al. (2011), não possui publicações de pesquisadores
brasileiros.
O site da comunidade e o JEDM podem ser acessados no endereço eletrônico
(http://educationaldatamining.org) (BAKER et al., 2011; EDM, 2013).
Na 6ª (sexta) conferência internacional de mineração de dados realizada entre
seis e nove de julho de 2013, na cidade de Memphis, no Tennessee, Baker (2013)
na sua palestra destaca que muita coisa já foi estudada pela comunidade, os
modelos propostos já estão sólidos e sendo refinados a cada ano, por isto não existe
muita coisa a ser aprender, somente como aplicar os modelos e realizar a
intervenção no momento adequado. (BAKER et al. 2013; EDM, 2013).
Nesta apresentação é salientada ainda que uma das principais características é
que os modelos de EDM podem ser utilizados fora dos contextos em que foram
originalmente desenvolvidos, mas é importante ressaltar que o mundo está em
constante mudança e por isto um modelo que hoje funciona pode não funcionar
amanha (BAKER et al. 2013; EDM, 2013).
35
3.4 O processo de KDD
O processo de mineração de dados envolve várias fases e etapas. Segundo
Fayyad et al. (1996), o processo de mineração de dados pode ser dividido em cinco
etapas conforme se pode observar na Figura 3.4. Pimentel e Omar (2006), destacam
em seu trabalho que estas cinco etapas podem ser divididas em três fases que são:
Preparação, Extração de Padrões e Pós-Processamento. Cada uma destas fases
pode envolver uma ou mais etapas conforme mostra a Tabela 3.1.
Entretanto como a mineração de dados é um processo iterativo, algumas das
etapas detalhadas na Tabela 3.1 podem ser realizadas novamente após a análise
dos padrões encontrados de forma a melhorá-los (Fayyad et al 1996; PIMENTEL E
OMAR, 2006).
Figura 3.4 - Etapas do processo de Data Mining
Fonte: Fayyad et al. apud PIMENTEL E OMAR, 2006.
A) Seleção
O processo de seleção consiste na consolidação das informações existentes em
várias bases de dados em um DW.
B) Pré-Processamento
O processo de pré-processamento consiste na limpeza dos dados de acordo com
padrões pré-estabelecidos.
C) Transformação
A transformação dos dados consiste na organização dos dados de forma a deixar
no formato para aplicar as técnicas de mineração de dados estabelecidos.
36
D) Mineração de dados
Neste passo é onde realmente são aplicadas as técnicas e algoritmos de
mineração de dados visando encontrar padrões e deixar as informações preparadas
para o próximo passo que é a analise das informações.
E) Analise
Aqui estão disponíveis as informações de forma mais simples e fácil de serem
entendidas por qualquer usuário, normalmente organizadas em forma de gráficos ou
tabelas. A tabela 3.1 resume o processo de mineração de dados citado acima com a
diferença de apresentar um passo a mais. Este passo foi o desmembramento da
mineração em mineração dos dados e avaliação dos padrões.
Tabela 3.1 - Fases e etapas do processo de Mineração de Dados
Fase
Preparação
Extração de
Padrões
Etapas
Objetivo
1
Seleção dos
Dados
2
Préprocessamento
e limpeza
Eliminar eventuais inconsistências, incompletudes, problemas com
tipos de dados, etc
3
Transformação
dos Dados
Transformar os dados para uma forma mais apropriada para a
mineração, assumindo um formato mais estatístico e menos
transacional
4
Mineração dos
Dados
Aplicar métodos (algoritmos) para a Extração de Padrões
5
Avaliação dos
Padrões
Analisar os resultados da etapa anterior a fim de identificar
conhecimento nos padrões encontrados
6
Apresentação do
Conhecimento
Pósprocessamento
Compreender o domínio da aplicação, estabelecer objetivos e
definir a massa de dados inicial a ser utilizada.
Utilizar técnicas de visualização e representação do conhecimento
para apresentar ao usuário o conhecimento minerado
Fonte: Fayyad et al (1996) apud Pimentel e Omar (2006)
37
4 APRESENTAÇÃO DA ARQUITETURA DA FERRAMENTA FRE
Conforme descrito no capítulo anterior, estudos têm sido desenvolvidos no
sentido de observar o comportamento de aprendizes ao longo do tempo em seu
processo de aprendizagem, de forma que ações preventivas sejam propostas e
aplicadas com o intuito de melhorar o desempenho dos aprendizes nessas
atividades.
4.1 Ferramenta de Relatórios Estatísticos (FRE)
Baseando-se
nos
estudos
realizados,
desenvolveu-se
uma
ferramenta
denominada Ferramenta de Relatórios Estatísticos (FRE), que tem por objetivo a
apresentação dos dados consolidados, obtidos através da identificação/estimativa
do perfil de aprendizagem de um aprendiz e de sua associação a alguns indicadores
pré-estabelecidos, que podem ser configurados nessa ferramenta.
Para uso na ferramenta poderiam ser utilizados métodos preditivos e descritivos
conforme descrito no item 3.4.
Então se optou pela utilização de métodos descritivos para assim encontrar o
conhecimento comum através das regras de associação e de clustering (ou
agrupamento). Neste processo serão verificados os eventos que ocorrem
simultaneamente tal como ocorre no algoritmo MBA e os dados dos alunos serão
separados em grupos para realização da analise.
A concepção da ferramenta segue a arquitetura de camadas na linguagem .NET
da Microsoft, para desta forma aproveitar características de integração com a
ferramenta FIPA desenvolvida por Gilberto Bravos Bativa (BRAVOS BATIVA, 2011).
Grande parte das regras foram implementadas na camada de banco de dados
por meio de gatilhos que são acionados a medida que ocorram alguma interação no
sistema, podemos verificar todo este código nos apêndices.
Foram utilizadas as tecnologias ASP e ASP .NET para o desenvolvimento das
interfaces e banco de dados Mysql. (PAYNE, 2001; MYSQL, 2000).
38
4.2 Requisitos
O primeiro requisito funcional é a possibilidade de trabalhar e apresentar um
conjunto de indicadores que serão analisados segundo técnicas de data mining.
Esse conjunto deve ser configurável de forma a permitir que novos indicadores e
consequentemente novas funcionalidades de análise sejam inseridas na ferramenta.
Este processo de configuração e inserção de novas funcionalidades pode ser
realizado pelo administrador da ferramenta, pois este é o usuário que possui acesso
privilegiado e com isto pode inserir novos menus e algoritmos de mineração de
dados, possui ainda acesso a criação de novos gatilhos, pode configurar os
relatórios e realizar configurações especificas diretamente na base de dados.
Outro requisito funcional é a apresentação de um conjunto de procedimentos
para implementar as principais técnicas de data mining.
Pode-se ainda citar a possibilidade de associação de indicadores ao
procedimento de data mining previamente configurado na ferramenta, o que pode
ser realizado pelo administrador a qualquer momento.
Neste trabalho, conforme apresentado no estudo de caso, o indicador utilizado foi
a aprendizagem dos alunos, mensurado pelo resultado de suas avaliações.
Outro ponto importante é a possibilidade de geração de relatórios com a
apresentação das análises solicitadas, através da escolha de indicadores
associados a métodos.
A ferramenta possui um sistema de autenticação e níveis diferenciados de
permissão de acesso.
A seguir são apresentadas as principais funcionalidades que a FRE possui e para
tanto é utilizado uma linguagem visual para criar o diagrama funcional detalhado,
conforme a Figura 4.1.
39
Figura 4.1 - Fluxo Funcional Detalhado
Fonte: O Autor
Conforme se pode observar na Figura 4.1, vê-se algumas atividades que são:
A) o Administrador realiza as parametrizações necessárias para que a ferramenta
possa funcionar, permitindo assim que o professor administre suas turmas e alunos.
Realiza ainda a importação dos dados necessários para o funcionamento inicial da
ferramenta. Mantêm o cadastro de professores, colocando o perfil próprio para que o
professor tenha o nível de acesso necessário para gerenciar suas turmas;
B) o professor, previamente cadastrado ao acessar a ferramenta, pode solicitar
que o administrador realize a importação de dados, como por exemplo dados de
alguma avaliação ou perfil de aprendizagem de um aluno ou um conjunto de alunos,
ou uma parametrização inicial da ferramenta;
C) o professor pode criar/alterar turmas, digitar e alterar notas. Pode ainda
realizar a analise dos resultados através da visualização dos relatórios;
D) o professor solicita que o aluno realize nova avaliação para complementar
dados na ferramenta;
E) o professor pode a qualquer momento solicitar que novos dados sejam
importados pelo administrador;
40
F) ao finalizar a solicitação a ferramenta envia um e-mail para o administrador
informando da nova necessidade;
G) o aluno recebe um e-mail da ferramenta informando que o professor solicitou
que o mesmo responda um questionário/avaliação;
H) o Aluno responde um questionário/avaliação;
I) ao terminar, a ferramenta informa ao professor que o aluno respondeu o
questionário/avaliação solicitado;
J) o administrador recebe e consulta as novas solicitações realizadas pelos
professores de importações e parametrizações necessárias.
Conforme se pode observar detalhadamente na Figura 4.2, o professor pode a
qualquer momento solicitar importação de novos dados, alimentar a ferramenta com
informações coletadas em sala de aula, que podem ser notas de avaliações,
questionários, notas de participação, e outros tipos de pontuação a seu critério. O
professor
pode
ainda
solicitar
ao
aluno
que
o
mesmo
realize
nova
atividade/avaliação e também pode finalizar as solicitações.
Figura 4.2 - Diagrama Funcional do Professor
Conforme se pode observar na Figura 4.3, o aluno possui pouca interação com a
ferramenta se comparado com as atividades que podem ser desenvolvidas pelo
41
professor. Neste caso, o aluno pode realizar apenas a recepção da solicitação de
nova avaliação que foi solicitada pelo professor e realizar a avaliação.
Figura 4.3 - Fluxo Funcional do Aluno
A partir da descrição do processo, se realiza uma breve documentação com os
“Requisitos Funcionais”, o “Diagrama de Casos de Uso” e o “Diagrama de
Sequências” (conforme padrão UML, a qual é uma metodologia para análise de
sistemas) para descrição das funcionalidades da ferramenta.
4.3 Casos de Uso
Este diagrama procura, por meio de uma linguagem simples, demonstrar o
comportamento externo da ferramenta, procurando apresentar o sistema através de
uma perspectiva do usuário, demonstrando as funções e serviços oferecidos e quais
usuários poderão utilizar cada serviço.
Na Figura 4.4 tem-se o diagrama de casos de uso onde se pode observar que o
sistema deve possuir três atores que são o Administrador, o Professor e o Aluno.
O ator Administrador possui acesso para manter todo o sistema, enquanto o ator
professor possui acesso um pouco mais restrito.
Já o ator Aluno pode somente se cadastrar no sistema e extrair relatórios
referentes ao seu perfil apenas.
42
Figura 4.4 - Diagrama de casos de uso
Na Figura 4.5 pode-se observar um diagrama de sequências que representa o
login do usuário na ferramenta.
43
Figura 4.5 - Diagrama de sequências – função: login
Na Figura 4.6 observa-se um diagrama de sequências, que ilustra a solicitação
de vários modelos de relatórios gráficos da ferramenta.
Figura 4.6 - Diagrama de sequências – função: Solicitação de Gráficos
44
4.4 Expansibilidade da ferramenta
O administrador da ferramenta possui um nível de acesso que permite o
cadastramento de novos menus, criação de relatórios, acesso direto ao banco de
dados e isto faz com que a ferramenta seja expansível na medida em que é possível
a inserção de novos indicadores a serem pesquisados nas bases de dados
existentes, bem como por parametrizações realizadas pelo administrador da
ferramenta.
Estas parametrizações podem ser o cadastro de novos indicadores, pesos para
as atividades realizadas, importação de perfis de aprendizagem, dentre outras
funcionalidades disponíveis.
A ferramenta FRE permite a configuração tanto de indicadores quanto de
métodos que implementam alguma técnica de data mining.
Essa possibilidade de configuração confere a FRE a característica de ser
expansível na medida em que novos indicadores podem ser configurados.
4.5 Parametrizações iniciais
Antes de qualquer utilização, a ferramenta precisa que algumas parametrizações
iniciais sejam realizadas. A primeira parametrização obrigatória é realizada pelo
administrador no momento da instalação da ferramenta.
Esta parametrização consiste em configurar o endereço IP do servidor de banco
de dados, o endereço da ferramenta, o cadastramento das instituições de ensino, os
cursos existentes e as turmas que forem utilizadas na primeira importação de dados,
realizar a importação de dados da ferramenta FIPA e de arquivos TXT se houver.
Neste ponto, o administrador ou professor que estiver realizando a importação
realiza o primeiro passo das técnicas de mineração de dados que é o préprocessamento das informações, definindo a massa de dados que será utilizada
eliminando eventuais inconsistências e problemas com tipos de dados.
45
Novas parametrizações podem ser necessárias a qualquer momento e sempre
que um novo curso é criado na instituição, ou um novo professor realiza seu
cadastro na ferramenta e precisa ter seu nível de acesso configurado.
4.6 Configuração da FRE
O Administrador da ferramenta, que também pode ser um professor, pode
conforme se observa na Figura 4.7 relacionar os indicadores a um tipo de
associação, sendo essa associação realizada automaticamente conforme é
realizado o filtro para extração de um relatório. Conforme descrito no item 4.4 o
administrador pode a qualquer momento cadastrar novas funcionalidades na
ferramenta FRE que ficarão disponíveis aos professores na tela de filtro.
Figura 4.7 - Relação Indicadores x Procedimentos de Data Mining
Para este trabalho foram configurados 3 (três) indicadores apresentados no item
3.8 e alguns algoritmos podem ser associados a estes indicadores de forma a
fornecer alguma informação valida aos usuários, no caso professores/instituição.
Com base nos dados que são alimentados na ferramenta sobre o resultado da
aplicação de testes de perfil e desempenho antes e após realização de atividades de
acordo com o perfil predominante, pode-se extrair relatórios estatísticos sobre
eventuais melhorias no processo de ensino-aprendizagem.
46
Estas melhorias podem ser previstas através da analise do comportamento de
variáveis após um determinado período de tempo, ou seja, usa dados do passado,
para prever um padrão de comportamento e assim prever como irá se comportar no
futuro.
4.7 Disponibilidade da ferramenta na web
A ferramenta está disponibilizada na web (http://www.fre.fsa.br), com acesso livre
e visa auxiliar os professores ou outros profissionais no seu dia a dia com a
obtenção de informações sobre a evolução dos seus aprendizes e turmas através da
analise dos relatórios disponibilizados.
4.8 Definindo os indicadores
A coleta e o armazenamento de dados, por si só não contribui para melhorar a
estratégia pedagógica dos professores. É necessária a análise destas grandes
quantidades de dados, estabelecendo-se indicadores para descobrir padrões de
comportamento implícitos nos dados.
Alguns indicadores do processo educacional podem fornecer informações
valiosas no sentido de prover os professores e gestores educacionais mecanismos
que possibilitem ações preventivas de tal forma que os resultados finais do processo
educacional sejam aperfeiçoados. Neste trabalho optou-se pelos seguintes
indicadores:
•
aprendizagem dos alunos: mensurado pelo resultado de suas avaliações;
•
índice de evasão: mensurado pela evasão institucional e pela evasão de
disciplinas;
•
índice de acesso ao AVA.
Todos os indicadores e informações necessárias para que a ferramenta trabalhe,
podem ser importados do AVA, sistema acadêmico da instituição, arquivo Excel ou
mesmo um txt gerado pelo professor a partir de um outro sistema.
47
Os indicadores educacionais, dessa forma, auxiliam na criação de políticas
voltadas para a melhoria da qualidade da educação desde que utilizadas de forma a
facilitar a visualização dos problemas encontrados em sala de aula pelos
professores e outros profissionais da educação.
Para tanto tornam-se necessárias a aplicação de técnicas e ferramentas para
agilizar o processo de extração de informações relevantes dessas grandes
quantidades de dados.
4.9 Protótipo
A Ferramenta de Relatórios Estatísticos (FRE) utiliza os dados analisados para
geração de relatórios e para tanto pode utilizar o algoritmo de Média Móvel
Ponderada que permite que cada componente possa ser medido por um fator e a
soma de todos os pesos deve ser igual a um. Este algoritmo tem como vantagem a
possibilidade de variar os efeitos dos dados antigos com os recentes.
Este acompanhamento pode ser realizado somente para um curso, uma turma ou
até mesmo individualmente para aprendizes cadastrados com dados alimentados
por vários anos. Um exemplo seria acompanhar um aprendiz durante todo o seu
curso do ensino médio ou superior.
Para um melhor entendimento de como é o funcionamento da ferramenta, é
apresentado a partir deste ponto algumas telas importantes da ferramenta, sendo
que as demais encontram-se em anexo.
A Figura 4.8 é um exemplo da tela principal da ferramenta que é mostrada ao
usuário quando o mesmo digitar em um navegador o endereço da ferramenta.
48
Figura 4.8 - Tela Apresentando a Ferramenta de Relatórios Estatísticos
A opção “Inicio” sempre permite que o usuário ao clicar retorne a página inicial da
ferramenta. Já o link “A Ferramenta” permite que o usuário mesmo sem ter efetuado
login na ferramenta possa saber o que ela faz e obter informações mais detalhadas
da mesma; é uma espécie de Frequently Asked Questions (FAQ) ou perguntas mais
frequentes.
Para que o usuário ou professor possa interagir com a ferramenta, ele deve estar
devidamente identificado e para que isto ocorra o mesmo deve efetuar login
utilizando-se da interface de cadastro/login.
Caso o usuário ainda não esteja cadastrado na ferramenta, neste ponto o mesmo
pode efetuar seu cadastro. Por padrão todos os usuários cadastrados tem seu
acesso imediato liberado com o perfil de aluno, o que pode ser alterado por um
professor ou pelo administrador.
Quando um usuário faz login na ferramenta, a tela principal é personalizada para
o seu tipo de perfil e são mostradas algumas informações de navegação, tais como
o que faz cada menu que está sendo visualizado e ainda onde estão os relatórios
que podem ser acessados conforme pode-se ver na Figura 4.9.
A ferramenta apresenta alguns menus que podem ser acessados pelos usuários.
O menu inicio leva o usuário para a tela inicial do sistema sempre que é acionado.
49
Figura 4.9 - Tela Inicial da Ferramenta de Relatórios Estatísticos
O menu “Importação de Dados” mostra as opções disponíveis para importar
dados para a ferramenta conforme se observa na Figura 4.10 a seguir e somente é
mostrado para usuários com perfil de administrador.
Figura 4.10 - Detalhe do menu Importação de Dados
Dentre as opções deste menu, existe a opção “Importação de dados FIPA” que
possibilita que o administrador mediante customização previamente realizada realize
a importação de perfis de aprendizagem, dados dos alunos cadastrados e outras
informações diretamente do banco de dados da ferramenta de identificação de perfil
de aprendizes (FIPA). (BRAVOS BATIVA, 2011).
Este
menu
é
importante
pois
a
partir dele
são
realizadas
algumas
parametrizações iniciais da ferramenta para que os professores possam alimentar
mais dados e realizar a analise destes dados da forma correta. Dentre estas
parametrizações está a importação das notas e de outras informações que serão
utilizadas pela ferramenta FRE para geração dos relatórios.
Outra funcionalidade disponibilizada neste menu é a “Importação de arquivo
TXT”, na qual o administrador pode realizar a importação de notas de turmas, de
alunos individualmente, ou até mesmo perfis de aprendizagem obtidos de outra
50
forma, ou até mesmo pela ferramenta FIPA, bastando o arquivo estar num formato
pré-estabelecido.
Figura 4.11 - Detalhe do menu Cadastros
O administrador tem acesso privilegiado a todas as opções deste menu, sendo
possível assim parametrizar e manter toda a ferramenta de acordo com as
solicitações dos professores.
O professor não possui acesso a todas estas funcionalidades, mas consegue
realizar algumas parametrizações tais como cadastrar suas disciplinas e turmas,
digitar notas de suas turmas ou alunos individualmente diretamente na ferramenta,
possibilitando assim realizar a analise de forma mais dinâmica.
Caso o professor não tenha realizado a importação de uma informação oriunda
de outro sistema qualquer, ele pode ainda utilizar o menu disponibilizado para
cadastramento, conforme exemplo da tela de cadastramento de nota de uma turma
na Figura 4.12, pode-se ver também que é mostrado um campo onde o professor ou
o administrador deve digitar a data da atividade visando assim que a nota seja
cadastrada em uma determinada data para que nas telas de relatório seja possível
ao professor realizar a seleção por data ou período.
51
Figura 4.12 - Tela para cadastramento de notas de uma turma
Na Figura 4.13, tem-se o detalhamento da tela de seleção para cadastramento
na ferramenta da nota de um aluno em específico, após a seleção iremos para a tela
de entrada de dados que pode-se observar na figura 4.13, onde efetivamente será
selecionado o aluno.
Figura 4.13 - Tela de seleção de informações para cadastramento de notas de um aluno
Figura 4.14 - Detalhe da tela de cadastramento de nota de um aluno
52
O menu relatórios permite a extração de diversos relatórios pré-formatados de
acordo com os dados existentes no banco de dados da ferramenta, como se pode
observar um detalhe do menu de relatórios na Figura 4.15, já existem três tipos de
relatórios disponíveis, e outros podem ser configurados pelo administrador da
ferramenta.
Figura 4.15 - Detalhe do menu Relatórios
Na Figura 4.16, o professor pode filtrar as informações que deseja visualizar para
analisar e tomar as decisões necessárias se assim for.
Figura 4.16 - Tela de seleção de dados para relatório
Após a seleção das informações, o professor visualiza a tela representada na
Figura 4.17, onde está representado o relatório com as informações sobre o
acompanhamento da disciplina Laboratório de Contabilidade do curso de Ciências
Contábeis durante o período de 01/01/2013 a 20/05/2013. Essa disciplina do curso
de ciências contábeis foi utilizada como exemplo, pois ainda não existiam os dados
do estudo de caso. Pode-se observar no gráfico que houveram somente três
atividades realizadas durante este período.
53
Figura 4.17 - Resultado apresentado na forma de gráfico
Na tela abaixo representada pela Figura 4.18, o professor pode realizar a seleção
de informações para analisar os resultados de uma turma.
Figura 4.18 - Tela para seleção de informações de relatório por turma
Conforme se pode observar na Figura 4.19, o professor tem acesso as
informações das notas cadastradas na ferramenta, sendo que no exemplo existem
três notas cadastradas e a ferramenta realiza o calculo de uma média de cada nota,
conforme podemos visualizar no final de cada coluna de notas, e o professor
solicitou a filtragem no período de 01/01/2013 a 20/05/2013 e na linha de baixo a
ferramenta informa o perfil predominante desta turma que é uma informação que
vem pela importação de dados da FIPA. Caso o administrador não tenha realizado a
54
importação, ou mesmo não tenha sido respondido o questionário de perfis, esta
informação não é mostrada.
Figura 4.19 - Tela com o resultado de avaliações por turma
Conforme se pode observar, a tela representada na Figura 4.19, mostra os dados
em forma tabular, nota-se que existem três colunas com notas, mas isto é
completamente configurável, pois se um professor utilizar somente duas notas, a
ferramenta trabalhará somente com as duas, caso o professor necessite trabalhar
com mais notas, basta ir cadastrando as notas e a data de aplicação das provas,
este processo também pode ser feito mediante a importação de dados, pois a
ferramenta identifica a quantidade de notas existente no período informado e gera a
quantidade de colunas corretas para uso do professor, e nas telas representadas
nas Figuras 4.20 e 4.21 a seguir, tem-se a forma de representação gráfica das
mesmas informações.
Figura 4.20 - Tela com o resultado de avaliações por turma na forma gráfica (1)
55
Neste exemplo conforme podemos observar nas Figuras 4.20 e 4.21 temos a
representação das notas dos 6 primeiros alunos apenas, mas caso a turma tenha
mais alunos, automaticamente serão mostradas mais telas até que seja finalizada a
visualização de todos os alunos.
Figura 4.21 - Tela com o resultado de avaliações por turma na forma gráfica (2)
Na tela representada na Figura 4.22, o professor pode filtrar os dados para obter
as informações individuais de um dos seus aprendizes, podendo ainda selecionar
períodos em específico.
Figura 4.22 - Tela para seleção de informações para geração de relatório por aluno
Ao realizar a seleção das informações necessárias e clicar no botão prosseguir é
apresentada a tela representada na Figura 4.23, onde se pode ver a representação
gráfica do aluno 4 no período de 01/01/2013 a 20/05/2013 e que neste período
foram realizadas três atividades e o perfil deste aluno é o lógico matemático.
56
Figura 4.23 - Tela com relatório individual
É importante ressaltar que a aplicação de técnicas de mineração de dados na
FRE é um processo complexo e iterativo, onde é necessária a execução de várias
etapas, como o pré-processamento, onde os registros são limpos, organizados
estruturados e separados, a extração de padrões, onde é realizada a escolha da
tarefa de mineração de dados utilizada juntamente com algum algoritmo para
extração do conhecimento e o pós-processamento, onde são interpretados e
avaliados os modelos obtidos no pré-processamento e finalmente a utilização dos
dados finais
57
5 ESTUDO DE CASO
A Faculdade de Engenharia “Eng. Celso Daniel” (FAENG), componente do
Centro Universitário Fundação Santo André (FSA), oferece cursos de graduação
para formação de engenheiros em diversas áreas. Apesar da qualidade dos
professores, os índices de evasão e repetência preocupam a direção da faculdade.
A FAENG oferece sete cursos de engenharia que são:
•
Engenharia Ambiental
•
Engenharia da Computação (ênfase em software)
•
Engenharia de Materiais
•
Engenharia de Produção (ênfase em serviços)
•
Engenharia Eletrônica (ênfase em telecomunicações)
•
Engenharia Eletrônica (ênfase em eletrônica industrial)
•
Engenharia Mecânica (ênfase em Mecatrônica)
•
Engenharia Civil
Para os cursos de Engenharia, o aluno ingressante cursa o primeiro ano no ciclo
básico, comum a todas as engenharias. Após cumprir o ciclo básico, o aluno realiza
a opção pelo curso desejado sendo que a escolha é realizada mediante
classificação do aproveitamento acadêmico.
Visando diminuir a evasão inicial e fazer com que haja um melhor
acompanhamento das disciplinas pelos alunos a FAENG criou o curso de précalculo que é oferecido a todos os alunos ingressantes no curso de engenharia. O
curso de pré-calculo tem duração de duas semanas e ocorre antes do período letivo
sendo ministrado por professores e monitores e tem como objetivo recuperar
conhecimentos do ensino médio.
A implantação deste curso foi necessária para diminuir a evasão dos alunos do
ciclo básico, pois se detectou em anos anteriores que os alunos não conseguiam
acompanhar as disciplinas do primeiro ano e com isto desistiam do curso.
As informações que alimentaram a base de dados utilizada neste estudo foram
coletadas diretamente do AVA Moodle da instituição e contém informações sobre os
58
alunos de graduação que realizaram matricula no curso de engenharia da instituição
no ano de 2013 e que participaram do curso de pré-calculo (MOODLE, 2012).
A base de dados é composta de 716 (setecentos e dezesseis) alunos
ingressantes através de processo seletivo e matriculados no ciclo básico do curso de
engenharia. Desta população inicial, apenas 49 (quarenta e nove) alunos
responderam um questionário utilizando a ferramenta de perfil de aprendizes (FIPA)
sendo a maioria de uma turma e alguns de outras turmas que não puderam ser
identificadas (BRAVOS BATIVA, 2011).
A ferramenta FIPA que foi descrita no inicio deste trabalho no item 2.3, permite a
resolução pelo aluno de um questionário que pode ser previamente selecionado pelo
professor e é baseado em teorias psicopedagógicas.
Para este estudo de caso foi escolhida a teoria das Inteligências Múltiplas de
Gardner para determinar o estilo de aprendizagem do aprendiz (GARDNER, 1994).
Ao início do curso, houve uma aula magna com a participação de praticamente
todos os 716 (setecentos e dezesseis) alunos matriculados onde os calouros foram
apresentados aos professores e monitores e informados sobre o funcionamento do
curso de pré-calculo.
Foram informados ainda sobre a necessidade de acessar o ambiente AVA da
instituição para realização das atividades online e que todos os alunos já estavam
previamente cadastrados na FIPA e no curso de pré-calculo disponibilizado no
ambiente Moodle (BRAVOS BATIVA, 2011; MOODLE, 2012).
Receberam ainda a orientação de como acessar o AVA utilizando seu número de
matrícula no campo usuário e seu CPF sem pontos nem traços no campo de senha
sendo que ao primeiro acesso a senha deveria ser alterada por segurança.
Ao realizar este primeiro acesso como todos os alunos já estavam cadastrados
no curso de pré-calculo, foi disponibilizada em um dos tópicos, a pesquisa
socioeconômica da instituição e logo abaixo outro link para acesso ao questionário
de identificação de perfis de aprendizagem que estava disponível na ferramenta
FIPA (MOODLE, 2012; BRAVOS BATIVA, 2011).
59
Mesmo com o incentivo, 667 (seiscentos e sessenta e sete) alunos deixaram de
responder o questionário de identificação de perfil de aprendizes e também a
pesquisa socioeconômica da instituição que foram disponibilizados no Moodle
através de links específicos dentro do ambiente (MOODLE, 2012).
Vários fatores podem ter contribuído para este comportamento, dentre eles
podemos citar a quantidade de questões a serem respondidas, falta de interesse dos
alunos, falta de tempo, velocidade do curso que durou apenas duas semanas, não
ter valor como composição de nota de atividade e outros fatores não mensurados.
Assim como ocorreu no estudo de Manhães (2011), houve limitações de acesso
aos dados e falta de referências sobre quais atributos são mais adequados para
analisar o problema da evasão com técnicas de mineração de dados. Desta forma
optou-se por utilizar todos os dados das atividades realizadas durante o curso de
pré-calculo.
Conforme podemos observar através da Figura 5.1, o perfil predominante da
amostra com 17 (dezessete) ocorrências é o lógico matemático, seguido de perto
pelo perfil interpessoal com 15 (quinze) ocorrências, assim após a aplicação do teste
e análise do perfil predominante, as atividades foram personalizadas e definidas
para o estilo lógico-matemático, o que proporcionou a continuidade deste estudo de
caso.
Figura 5.1 - Tela Relatório de Perfil de Aprendizagem
60
5.1 As atividades realizadas
Após a identificação do perfil predominante dos alunos que responderam o
questionário e modelagem do conteúdo didático para o perfil lógico-matemático,
foram realizadas várias atividades de revisão de conteúdo em sala de aula por
monitores e professores.
Após realização de atividade de revisão de conteúdo realizada em sala de aula, o
aprendiz tinha um prazo para acessar o ambiente Moodle e responder a um
questionário de avaliação com a finalidade de coletar informações sobre a fixação do
conteúdo didático.
Ao final do prazo dado aos alunos para acessar e responder ao questionário, os
professores tinham acesso ao desempenho dos aprendizes e poderiam com base na
analise dos resultados do ultimo questionário respondido e das notas do anterior,
tomar alguma medida pedagógica, permitindo assim que correções pudessem ser
realizadas durante a ocorrência do curso.
Ao final do curso de pré-calculo foram aplicados 07 (sete) questionários em
diversas datas e com base nestes resultados foi criada uma série temporal.
Os conteúdos trabalhados em sala e que posteriormente tiveram avaliações de
desempenho disponibilizadas no ambiente Moodle foram:
•
•
•
•
•
•
•
Potência, Raízes, Exponenciais e Logaritmos.
Expressões Algébricas.
Equação do primeiro e segundo grau.
Geometria plana.
Trigonometria.
Funções.
Matrizes e Determinantes.
Na Tabela 5.1, podemos observar os resultados das atividades individuais e a
nota final, somente dos alunos que responderam ao questionário de perfis de
aprendizagem.
61
Aprendiz
Potências e raízes
Expressões algébricas
Equações de primeiro
e segundo grau
Geometria plana
Trigonometria
Funções
Matrizes e
Determinantes
Nota Final
Tabela 5.1 - Resultados apurados da amostra
Aprendiz 1
Aprendiz 2
Aprendiz 3
Aprendiz 4
Aprendiz 5
Aprendiz 6
Aprendiz 7
Aprendiz 8
Aprendiz 9
Aprendiz 10
Aprendiz 11
Aprendiz 12
Aprendiz 13
Aprendiz 14
Aprendiz 15
Aprendiz 16
Aprendiz 17
Aprendiz 18
Aprendiz 19
Aprendiz 20
Aprendiz 21
Aprendiz 22
Aprendiz 23
Aprendiz 24
Aprendiz 25
Aprendiz 26
Aprendiz 27
Aprendiz 28
Aprendiz 29
Aprendiz 30
Aprendiz 31
Aprendiz 32
Aprendiz 33
Aprendiz 34
Aprendiz 35
Aprendiz 36
Aprendiz 37
Aprendiz 38
Aprendiz 39
Aprendiz 40
Aprendiz 41
Aprendiz 42
Aprendiz 43
10,00
9,81
10,00
9,94
9,69
9,06
9,75
10,00
8,69
8,69
9,94
9,88
9,94
9,94
9,56
10,00
9,97
9,63
10,00
9,81
9,84
9,94
10,00
9,88
9,81
8,13
9,94
9,94
9,88
9,38
9,94
10,00
10,00
9,06
9,90
9,90
9,50
9,90
9,60
9,90
9,20
9,90
10,00
10,00
9,30
9,75
9,90
9,90
9,90
9,90
10,00
9,70
9,80
9,40
10,00
10,00
10,00
9,40
10,00
10,00
10,00
10,00
9,70
9,90
10,00
9,90
9,50
10,00
10,00
9,90
9,90
10,00
6,25
9,81
10,00
9,88
9,31
9,00
9,50
8,75
10,00
9,38
9,81
6,75
9,38
9,56
8,88
9,94
9,25
9,50
4,75
7,00
10,00
9,88
10,00
9,75
9,63
10,00
8,50
9,75
10,00
9,38
9,75
3,75
5,00
8,75
5,00
10,00
10,00
9,60
8,90
9,70
9,80
9,80
8,10
9,50
9,70
9,00
8,00
8,80
9,00
9,70
4,00
8,00
8,90
10,00
9,70
9,40
8,30
8,00
10,00
9,80
9,00
10,00
10,00
9,70
9,00
9,90
10,00
9,40
10,00
10,00
9,00
10,00
10,00
8,90
8,90
9,50
9,00
9,40
9,45
9,80
9,15
9,40
9,20
7,00
9,00
7,95
9,70
9,70
8,50
9,60
8,90
9,90
9,90
4,50
8,00
10,00
9,60
9,40
9,80
9,30
8,90
9,65
5,00
9,40
9,70
9,70
10,00
9,05
9,70
4,70
4,55
9,00
8,20
9,00
10,00
8,90
8,20
8,00
9,60
9,90
3,00
8,70
9,20
9,00
9,40
10,00
8,90
8,80
9,30
10,00
9,30
9,80
9,90
9,90
7,80
1,00
9,80
9,90
9,70
9,80
9,70
9,90
9,50
-
9,30
7,90
9,80
10,00
9,50
8,40
9,50
10,00
10,00
9,00
8,30
9,60
9,80
7,00
10,00
9,80
9,00
9,20
9,70
9,00
9,40
9,90
9,40
9,90
3,00
9,20
9,90
9,90
9,90
8,00
9,00
9,90
9,60
8,70
96,14
85,66
81,73
98,79
96,31
89,64
90,94
96,64
92,36
82,41
87,31
95,71
92,47
83,03
67,14
65,91
99,77
96,03
53,86
77,97
78,57
81,16
96,49
82,03
98,71
98,19
93,20
55,07
43,76
90,41
70,29
97,03
98,61
86,76
60,70
68,21
77,86
89,43
73,01
Não foram consideradas as respostas de 06 estudantes desistentes, tendo em
vista a indisponibilidade de informações completas ou nota final, ressalto ainda que
as informações pessoais de todos os alunos participantes deste estudo foram
preservadas.
Na Figura 5.2, temos o detalhe da tela que apresenta os resultados do
acompanhamento da nota de todas as atividades realizada pela turma que
respondeu ao questionário de perfil de aprendizagem e que foi alvo do presente
estudo de caso.
62
Figura 5.2 - Tela com o gráfico do estudo de caso
5.2 A separação dos dados
O atributo “Nota Final” apresentado na Tabela 5.1 armazena a nota final obtida
pelo aprendiz. Esta nota é a soma de todas as atividades, dividida por 0,7 fazendo
assim com que o peso final se torne 100. Como esse atributo é originalmente
definido
para
armazenar
valores
contínuos,
torna-se
uma
limitação
nos
procedimentos classificatórios, pois alguns procedimentos requerem que o atributo
que representa a classe seja um valor discreto e não contínuo.
Além disso, alguns algoritmos de Mineração de Dados, mesmo os capazes de
trabalhar com valores contínuos, podem apresentar melhores resultados quando se
utilizam valores discretos (Witten et al., 2011), assim para viabilizar este estudo de
caso e a interpretação dos resultados, os valores do atributo “Nota Final” foram
transformados em valores discretos, conforme procedimento a seguir.
As notas dos aprendizes da amostra devem seguir uma distribuição normal
conforme podemos observar analisando os dados. Então vamos assim observando
os dados da tabela pegar o menor valor do atributo “Nota Final”, que neste estudo é
63
43,76 agora procuramos o maior valor para o atributo que conforme podemos
observar que é 99,77.
Com estas informações podemos calcular a média que é a somatória de todas as
notas dividido por 43, realizando este cálculo obtemos a média que é 76,03. Com
base em todas estas informações podemos calcular o desvio padrão com a
utilização da formula:
Figura 5.3 - Formula para cálculo do desvio padrão
Utilizando todas as informações de que temos até o momento, o desvio padrão
calculado é de 14,11.
Apenas para facilitar a analise e visualização dos resultados, vamos neste ponto
separar os aprendizes em três grupos de acordo com média obtida nas atividades.
Inicialmente, definiu-se o grupo A como os aprendizes com desempenho
intermediário, este grupo detêm 80% das notas da amostra.
Os demais aprendizes foram distribuídos nos grupos B e C, representando,
respectivamente, aproximadamente 10% da área inferior e superior.
Apenas a titulo comparativo a tabela abaixo mostra as notas médias de
atividades dos 667 aprendizes não responderam o questionário de perfis de
aprendizagem e dos 49 que resolveram o questionário e participaram do presente
estudo de caso mais ativamente.
Tabela 5.2 - Comparativo de notas
Ativ.1 Ativ.2 Ativ.3 Ativ.4
Alunos que responderam o
questionário
Alunos que não responderam o
questionário
Ativ.5
Ativ.6
Ativ.7
9,71
9,83
8,84
9,20
8,78
8,85
9,13
9,50
9,45
8,38
8,66
8,76
8,93
9,26
A ferramenta possui uma tela onde podemos observar conforme Figura 5.4 um
gráfico de barras com a divisão da turma por grupos.
64
Figura 5.4 - Tela com o Gráfico da catalogação por grupos
A Tabela 5.3 apresenta detalhes do processo de discretização que foi utilizado e
descrito acima, destacando as características individuais de cada grupo. Nesta
tabela são apresentados o título do grupo, a descrição e o intervalo de notas.
Grupo
A
B
C
Tabela 5.3 - Distribuição dos grupos obtidos no processo
Descrição
Notas
Qtde de Alunos
Aprendizes com desempenho intermediário
61,92 a 90,14
25
Aprendizes com desempenho Inferior
43,76 a 61,92
07
Aprendizes com desempenho Superior
90,14 a 99,77
17
É imprescindível ressaltar que existem alternativas que podem ser utilizadas para
apresentar o processo descrito acima, além disto, o numero de grupos e instâncias
existentes em cada grupo podem variar em função dos objetivos e das
características particulares de cada estudo. Essas definições são relevantes, pois
podem influenciar os resultados obtidos pelos modelos de previsão.
65
6 CONCLUSÕES E CONSIDERAÇÕES FINAIS
Após estudo dos estilos de aprendizagem e de técnicas de data mining, foi
possível observar que estas informações podem ser muito uteis para o processo de
ensino-aprendizagem. Baseado nestes estudos foi desenvolvido o prototipo de uma
ferramenta de relatórios estatísticos (FRE) que está disponibilizada na web para
possibilitar uma melhor visualização de informações relevantes em instituições de
ensino.
A utilização da FRE propicia uma melhor visualização de informações coletadas
de diversas formas sobre os aprendizes e através da utilização de técnicas de
mineração de dados é obtida uma melhor compreensão do significado dessas
informações. A partir da extração das informações com a tecnologia da mineração
de dados e métodos estatísticos, é possível descobrir-se relacionamentos,
tendências, padrões, modelos e ao relacionar estes dados com indicadores
cadastrados, apresentá-los de forma compreensível ao professor.
A ferramenta FRE foi desenvolvida com a possibilidade de poder ser ampliada
com outros indicadores de aprendizagem a qualquer momento, ou seja, pode ser
incluído um novo indicador na base de dados os quais associados a algum algoritmo
de mineração de dados fornece novos relatórios ao professor. Essa característica de
expansibilidade da ferramenta permite abranger as futuras pesquisas e novas
tecnologias que surgem no mercado.
Foi desenvolvido como prova de conceitos um estudo de caso com alunos
ingressantes em um curso de engenharia para testar e comprovar o funcionamento
da ferramenta.
Como no estudo de caso foram usados apenas presença, nota, estilo de
aprendizagem e índice de acesso ao AVA, podemos comprovar que os alunos com
as menores notas, mesmo com um bom índice de acessos ao AVA tendem a desistir
do curso com maior facilidade.
Como trabalhos futuros prevê-se a integração da FRE com outras ferramentas,
tais como um ambiente de aprendizado eletrônico, propiciando sua utilização de
forma mais automática e integrada à vida acadêmica dos aprendizes e professores.
66
Além disso prevê-se a programação de um módulo para a geração de arquivos que
possam ser importados na ferramenta WEKA, este módulo pode gerar arquivos com
o formato necessário para que seja realizada a importação dos dados em outro
software de mineração de dados, assim o professor ficaria livre para utilizar outros
algoritmos que não estão implementados neste momento na ferramenta e, após o
processamento utilizando outros algoritmos de mineração de dados, a FRE
apresenta
a
possibilidade
de
importar
novamente
externamente e integrá-los com os resultados existentes.
os
dados
trabalhados
67
REFERÊNCIAS
ALMEIDA, Maria Elizabeth Bianconcini de. Tecnologia e educação à distância:
abordagens e contribuições dos ambientes digitais e interativos de
aprendizagem.
2008.
Disponível
em:
<http://www.anped.org.br/reunioes/26/trabalhos/mariaelizabethalmeida.rtf>. Acesso
em 20 fev. 2012.
ANTUNES, CELSO. Inteligência cinestésico corporal, 2. ed. – Petrópolis : Vozes,
2009b. (Coleção Inteligências múltiplas e seus jogos, vol 2)
______. Inteligência ecológica, 2. ed. – Petrópolis : Vozes, 2009c. (Coleção
Inteligências múltiplas e seus jogos, vol 3)
______. Inteligência espacial, 2. ed. – Petrópolis : Vozes, 2009d. (Coleção
Inteligências múltiplas e seus jogos, vol 4)
______. Linguística, 2. ed. – Petrópolis : Vozes, 2009e. (Coleção Inteligências
múltiplas e seus jogos, vol 5)
______. Inteligência lógico-matemática, 2. ed. – Petrópolis : Vozes, 2009f.
(Coleção Inteligências múltiplas e seus jogos, vol 6)
______. Inteligências pessoais e inteligência existencial, 2. ed. – Petrópolis :
Vozes, 2009g. (Coleção Inteligências múltiplas e seus jogos, vol 7)
______. Inteligência sonora, 2. ed. – Petrópolis : Vozes, 2009h. (Coleção
Inteligências múltiplas e seus jogos, vol 8)
______. Como desenvolver conteúdos explorando as inteligências Múltiplas,
9. ed. – Petrópolis : Vozes, 2011a.
______. Como identificar em você e seus alunos as inteligências múltiplas,
8. ed. – Petrópolis : Vozes, 2011b.
ARA, Amilton Braio; MUSSETI, Ana Villares; SCHNEIDERMAN, Boris . Introdução a
Estatistica. São Paulo: Edgard Blucher, 2003.
68
ARMSTRONG, Thomas. Inteligências múltiplas na sala de aula: Tradução Maria
Adriana Verissimo Veronese. 2. ed. – Porto Alegre : Artmed, 2001.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 6023: elaboração de
trabalhos acadêmicos. São Paulo: ABNT, 2002.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 14724: elaboração de
trabalhos acadêmicos. São Paulo: ABNT, 2011.
BAKER, R.S.J.D., Data Mining for Education. International Encyclopedia of
Education (3rd edition), p. 112-118. Elsevier: Oxford, UK, 2010.
BAKER, R.S.J.D.; ISOTANI, S.; CARVALHO, A.M.J.B.D. Mineração de Dados
Educacionais: oportunidades para o Brasil. Revista Brasileira de Informática na
Educação, vol. 19, no. 2, p. 2-13, 2011.
BAKER, R.S.J.D., EDM in a Complex and Changing World. The 6th International
Conference on Educational Data Mining (EDM 2013), Memphis, 2013.
BARNES, Tiffany et al. A pilot study on logic proof tutoring using hints generated
from historical student data. In: EDM. 2008. p. 197-201.
BITTENCOURT, I.I.; COSTA, E.B. Modelos e Ferramentas para a Construção de
Sistemas Educacionais Adaptativos e Semânticos.
Revista Brasileira de
Informática na Educação, v. 19, p. 85-98, 2011.
BRAGA, Luis Paulo Vieira. Introdução a Mineração de Dados. 2ª Edição. E-Papers
Serviços Editoriais, 2005.
BRAMER, Max. Principles of data mining. Springer, 2007.
BRAVOS BATIVA, Gilberto. Ferramenta de identificação de perfis de aprendizes.
Universidade Federal do ABC, 2011. Dissertação de mestrado. Disponível em : <
http://www.files.scire.coppe.ufrj.br/atrio/ufabc-posinfo_upl//THESIS
/30/dissertacao_final__gilberto_bravos_bativa.pdf>. Acesso em 19 jul. 2012.
BUTLER, Kathleen A. Estilos de Aprendizagem: As dimensões psicológicas,
afetiva e cognitiva; Tradução: Renata Costa de Sá Bonotto e Jorge Alberto Reichert
– Porto Alegre : Editora da UFRGS, 2003.
69
CAVALHEIRO, Darlene. (2003). Método de Previsão da Demanda Aplicada ao
Planejamento da Produção de Indústria de Alimentos. 2003. Universidade
Federal de Santa Catarina, Florianópolis. Dissertação de Mestrado.
DAWSON, S.; MCWILLIAN, E. Investigating the Application of IT Generated Data
as an Indicator of Learning and Teaching Performance. University of British
Columbia, 2008.
EDM,
International
Data
Mining
Society.
Disponível
<http://www.educationaldatamining.org>. Acesso em 20 jun. 2013.
em
EVSUKOFF, Alexandre G. Introdução as técnicas de Data Mining. Petrópolis,
2005. Disponível em:
<http://www.lncc.br/verao/verao05/arquivos/Intro%20Data%20Mining%201.pdf>.
Acesso em 04 de jul. 2012.
FAYYAD, U.M., PIATESKY-SHAPIRO, G., SMITH, P. The KDD Process for
Extracting Useful Knowledge from Volumes of Data. Comunications of ACM, vol.
39, no. 11, p. 27-34, 1996.
GARCIA, Simone C. O uso de Árvores de Decisão na descoberta de
conhecimento na Área da Saúde. 2003. Dissertação de Mestrado. Disponível em <
http://www.lume.ufrgs.br/handle/10183/4703> Acesso em 20 fev. 2013.
GARDNER, Howard, [et al.]. Estruturas da mente a teoria das inteligências
múltiplas: Tradução Sandra Costa. 1. Ed. – Porto Alegre. RS : Artmed, 1994.
GARDNER, Howard. Coleção grandes educadores: Apresentação: Kátia Cristina
Stocco Smole. Nittas Video. 1 DVD. São Paulo. [200-?]
GOTTARDO, Ernani; KAESTNER, Celso; NORONHA, Robinson Vida. Avaliação de
Desempenho de Estudantes em Cursos de Educação a Distância Utilizando
Mineração de Dados. Anais do XXXII Congresso da Sociedade Brasileira de
Computação. 2012a.
GOTTARDO, Ernani; KAESTNER, Celso; NORONHA, Robinson Vida. Previsão de
Desempenho de Estudantes em Cursos EAD Utilizando Mineração de Dados: uma
Estratégia Baseada em Séries Temporais. Anais do Simpósio Brasileiro de
Informática na Educação. 2012b.
70
GOTTARDO, Ernani. Estimativa de desempenho acadêmico de estudantes em
um AVA utilizando técnicas de mineração de dados. 2012. Dissertação
(Mestrado em Computação Aplicada) – Universidade Tecnológica Federal do
Paraná, Curitiba, 2012.
HAN, Jiawei; KAMBER, Micheline; PEI, Jian. Data mining: concepts and
techniques. Morgan kaufmann, 2006.
HARRISON, Thomas H. Intranet Data Warehouse. São Paulo: Berkeley, 1998.
IBRAHIM, Z., RUSLI, D. Predicting students Academic Performance: comparing
Artificial Neural Network, Decision Tree and Linear Regression, In Proceedings of
the 21º Annual SAS Malaysia Forum, Kuala Lumpur, Malaysia, p. 1–6, 2007.
INMON, W.H. Como construir o Data Warehouse. Trad. Ana Maria Netto Guz. Rio
de Janeiro, Ed Campus, 1997.
JONHSTON, V. Why do first year students fail to progress to their second year? An
academic staff perspective. Department of Mathematics, Napier University. 1997
Paper presented at the British Educational Research Association Annual
Conference. September 11-14, 1997. University of York.
KANTARDZIC, Mehmed. Data Mining: Concepts, Models, Methods, and
Algorithms. John Wiley & Sons, 2003.
KOTSIANTIS, S.B. Use of Machine Learning Techniques for Educational Proposes:
A Decision Support System for Forecasting Student's Grades. Artificial Intelligence
Review, vol.37, no. 4, p. 331-344, 2012.
LAPORTA, Marcia Zorello; FOGO, Marilim (Org.) Manual para elaboração de
trabalhos acadêmicos. 2. ed. rev. e ampl. Santo André: Centro Universitário
Fundação Santo André, 2006.
LAROSE, Daniel T. Discovering knowledge in data: an introduction to data
mining. Wiley. com, 2005.
MANHÃES, L.M.B. et al. Previsão de Estudantes com Risco de Evasão Utilizando
Técnicas de Mineração de Dados. Anais do XXII SBIE-XVII WIE, p. 150-159, 2011.
MANN, Prem S. Introdução a Estatística. Tradução Eduardo Benedito Curtolo,
Teresa Cristina Padilha de Souza – Rio de Janeiro : LTC, 2006.
71
MÁRQUEZ-VERA, C.; ROMERO, C.; VENTURA, S. Predicting School Failure Using
Data Mining. In Proceedings of 4ª International Conference on Educational Data
Mining, p. 271-275, 2011.
MACFADYEN, L.P., DAWSON, S. Mining LMS Data to Develop an Early Warning
System for Educators: A Proof of Concept. Computers & Education, no. 54, p.588599, 2010.
MERCERON, A.; YACEF, K. Educational data mining: a case study. Artificial
Intelligence in Education. Proceedings of the 12th International Conference on
Artificial Intelligence, p.467-474, 2005.
MCQUIGGAN, S.; MOTT, B.; LESTER, J. Modeling Self-Efficacy in Intelligent
Tutoring Systems: An Inductive Approach. User Modeling and User-Adapted
Interaction, vol.18, p. 81-123, 2008.
MINAEI-BIDGOLI, B.; KASHY, A.D.; KORTEMEYER, G.; PUNCH, F.W. Predicting
Student Performance: An application of data mining methods with the educational
web-based system. Proceedings of International Conference in Frontiers of
Education, p. 13-18, 2003.
MOODLE, O Ambiente Moodle. Disponível em <http://www.moodle.org>. Acesso
em 21 fev. 2012.
MYSQL, A. B. Documentação do MYSQL.
<http://www.mysql.com/doc>. Acesso em 24 jun. 2013
2000.
Disponível
em
NOORAEI, Bahador B. et al. Less is More: Improving the Speed and Prediction
Power of Knowledge Tracing by Using Less Data. In: EDM. 2011. p. 101-110.
OLSON, David Louis; DELEN, Dursun. Advanced data mining techniques.
Springer, 2008.
OSÓRIO, Fernando Santos. Redes Neurais Artificiais. São Leopoldo, 2003.
Disponivel em: <http://www.inf.unisinos.br/~osorio/neural.html>. Acesso em 26 jun.
2013.
PAYNE, Chris. Aprenda em 21 dias ASP. Net. Editora Campus, 2001.
PIMENTEL, E.P.; OMAR, N. Descobrindo Conhecimentos em Dados de Avaliação
de Aprendizagem com técnicas de Mineração de Dados. Workshop sobre
72
Informática na Escola. Anais do Congresso da Sociedade Brasileira de
Computação, 2006.
RABBANY, R.K.; TAKAFFOLI, M.; ZAIANE, O.R. Analyzing Participation of Students
in Online Courses Using Social Network Analysis Techniques. In Proceedings of the
Fourth International Conference on Educational Data Mining, p. 22-30, 2011.
RICARTE, I. L. M.; FALCI JUNIOR, G. R. A Methodology for Mining Data from
Computer-Supported Learning Environments. Informática na Educação: teoria &
prática, Porto Alegre, v. 14, n. 2, p. 83-94, 2011.
RITTER, Steven et al. Reducing the Knowledge Tracing Space. In: EDM. 2009. p.
151-160.
ROMERO, C.; VENTURA, S. Educational Data Mining: A Review of the State of Art.
IEEE Transactions on Systems , Man, and Cybernetics – Part C: Application and
Reviews. vol. 40, no. 6, p. 601-618, 2010.
ROMERO-ZALDIVAR, V.A. et al. Monitoring Student Progress Using Virtual
Appliances: A Case Study. Computers & Education, no. 58, p. 1058-1067, 2012.
SERRA, Laércio. Data Mining In: SERRA, Laércio. A essência do Business
Intelligence. São Paulo: Berkeley, 2002.
STIUBIENER, Itana. Arquitetura e organização de um sistema para
personalização e adaptação de atividades no aprendizado eletrônico - São
Paulo, 2005. Tese de Doutorado.
TAN, P., STEINBACH, M., KUMAR, V., Introduction to Data Mining. Person
Addison Wesley Education Press Inc. Boston, 2005.
THAI-NGHE, Nguyen; HORVÁTH, Tomás; SCHMIDT-THIEME, Lars. Factorization
Models for Forecasting Student Performance. In: EDM. 2011. p. 11-20.
TOLEDO SILVA, Walter. Globalização, ética e educação. Disponível em
<http://www.serprofessoruniversitario.pro.br/m%C3%B3dulos/educa%C3%A7%C3%
A3o-na-sociedade-de-informa%C3%A7%C3%A3o/globaliza%C3%A7%C3%A3o%C3%A9tica-e-educa%C3%A7%C3%A3o>. Acesso em 04 jul. 2012.
VIHAVAINEN, Arto; LUUKKAINEN, Matti; KURHILA, Jaakko. Using Students´
Programing Behavior to Predict Success in an Introductory Mathematics Course. The
73
6th International Conference on Educational Data Mining (EDM 2013), Memphis,
2013.
WEKA,
Data
Mining
Software
in
Java.
Disponível
<http://www.cs.waikato.ac.nz/ml/weka/>. Acesso em 21 jun. 2013.
em
WITTEN, Ian H.; FRANK, Eibe; HALL, Mark A. Data Mining: Practical Machine
Learning Tools and Techniques. San Francisco. Elsevier, 2011.
ZAINA, Luciana Aparecida Martinez. Avaliação do perfil do aluno baseado em
interações contextualizadas para adaptação de cenários de aprendizagem. São
Paulo. 2008. Tese de Doutorado,
ZORRILLA, M. E.; MENASALVAS, E.; MARIN, D.; MORA, E.; SEGOVIA, J. Web
usage mining project for improving web-based learning sites. In Web mining
workshop, Cataluña, p. 1-22, 2005.
74
Apendice A
1 Requisitos funcionais
1.1 Requisito Funcional 01 – Mantem Instituição
Tabela 6.1 - Requisito Funcional 01 - Mantem Instituição
RF01
Mantem Instituição
Usuário Chave:
Administrador
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração dos dados da instituição
de ensino.
Dependências:
Não possui dependências.
1.2 Requisito Funcional 02 – Mantem Curso
Tabela 6.2 - Requisito Funcional 02 - Mantem Curso
RF02
Mantem Curso
Usuário Chave:
Administrador
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração dos dados dos cursos de
uma instituição.
Dependências:
RF01
1.3 Requisito Funcional 03 – Mantem Disciplina
Tabela 6.3 - Requisito Funcional 03 - Mantem Disciplina
RF03
Mantem Disciplina
Usuário Chave:
Administrador / Professor
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração dos dados de uma
disciplina.
Dependências:
RF02
75
1.4 Requisito Funcional 04 – Mantem Turma
Tabela 6.4 - Requisito Funcional 04 - Mantem Turma
RF04
Mantem Turma
Usuário Chave:
Administrador / Professor
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração dos dados de uma
turma.
Dependências:
RF03
1.5 Requisito Funcional 05 – Mantem Perfil de Acesso
Tabela 6.5 - Requisito Funcional 05 - Mantem Perfil de Acesso
RF05
Mantem Perfil de Acesso
Usuário Chave:
Administrador
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração e exclusão de perfis de
acesso.
Por padrão já existem três perfis cadastrados (Administrador, Professor,
Aluno).
Dependências:
Não possui dependências.
1.6 Requisito Funcional 06 – Mantem Usuário
Tabela 6.6 - Requisito Funcional 06 - Mantem Usuário
RF06
Mantem Usuário
Usuário Chave:
Administrador / Professor / Aluno
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração e exclusão de usuários.
Por padrão o aluno somente consegue alterar os dados do seu cadastro
enquanto que o professor somente seu próprio cadastro e dos seus alunos, já
o administrador consegue realizar todas as operações.
Dependências:
Não possui dependências.
76
1.7 Requisito Funcional 07 – Mantem Formação Acadêmica
Tabela 6.7 - Requisito Funcional 07 - Mantem Formação Acadêmica
RF07
Mantem Formação Acadêmica
Usuário Chave:
Administrador
Descrição do Requisito:
Realiza as funções de cadastro, consulta, alteração e exclusão de formações
acadêmicas.
Dependências:
Não possui dependências.
1.8 Requisito Funcional 08 – Mantem Notas de um Aluno
Tabela 6.8 - Requisito Funcional 08 - Mantem Notas de um Aluno
RF08
Mantem Notas de um Aluno
Usuário Chave:
Administrador / Professor
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração de notas de um aluno.
Dependências:
RF04
1.9 Requisito Funcional 09 – Mantem Notas de uma Turma
Tabela 6.9 - Requisito Funcional 09 - Mantem notas de uma Turma
RF09
Mantem Notas de uma Turma
Usuário Chave:
Administrador / Professor
Descrição do Requisito:
Realiza as funções de cadastro, consulta e alteração de notas de uma turma.
Dependências:
RF04
77
1.10 Requisito Funcional 10 – Extrai Relatório por Turma
Tabela 6.10 - Requisito Funcional 10 - Extrai Relatório por Turma
RF10
Extrai Relatório por Turma
Usuário Chave:
Administrador / Professor
Descrição do Requisito:
Realiza a extração de informações de uma turma com base nos dados
cadastrados na ferramenta.
Dependências:
Não possui dependências.
1.11 Requisito Funcional 11 – Extrai Relatório Individual
Tabela 6.11 - Requisito Funcional 11 - Extrai Relatório Individual
RF11
Extrai Relatório Individual
Usuário Chave:
Administrador / Professor / Aluno
Descrição do Requisito:
Realiza a extração de informações sobre um aluno com base nos dados
cadastrados na ferramenta.
Dependências:
Não possui dependências.
1.12 Requisito Funcional 12 – Importação de Dados
Tabela 6.12 - Requisito Funcional 12 - Importação de dados
RF12
Importação de Dados
Usuário Chave:
Administrador
Descrição do Requisito:
Realiza a importação de dados sempre que necessário.
Os dados podem ser importados de um arquivo TXT ou de algum banco de
dados pré-configurado.
Dependências:
Não possui dependências.
Apêndice B
Modelo do Banco de Dados
1
tbl_Instituicao
tbl_Usuario
tbl_Configuracao
id_instituicao: INTEGER
id_usuario: INTEGER
id configuracao: INTEGER
Ins_Nome: VARCHAR(50)
id_formacao_academica: INTEGER
Con_Nome_Servidor: VARCHAR(50)
Ins_Descricao: VARCHAR(100)
id_instituicao: INTEGER
Con_Usuario: VARCHAR(50))
id_perfil: INTEGER
Con_Senha: VARCHAR(50)
tbl_Curso
Usu_Login: VARCHAR(50)
id_curso: INTEGER
Usu_Nome: VARCHAR(100)
id_instituicao: INTEGER
Usu_Senha: VARCHAR(50)
Cur_Nome: VARCHAR(50)
Usu_Email: VARCHAR(255)
tbl_formacao_academica
id_disciplina: INTEGER
id_formacao_academica: INTEGER
tbl_login
id_login: INTEGER
id_disciplina: INTEGER
tbl_Turma_Classe
id_turma_classe: INTEGER
id_curso: INTEGER
TCL_Descricao: VARCHAR(100)
id_usuario: INTEGER
dt_login: DATETIME
dt_logout: DATETIME
tbl_provas
id_prova: INTEGER
id_usuario: INTEGER
id_turma: INTEGER
nota: INTEGER
tbl_Turma_Usuario
dt_prova: DATETIME
id_turma_usuario: INTEGER
id_usuario: INTEGER
id_turma_classe: INTEGER
tbl_log_importacao
id_log: INTEGER
log_data: DATETIME
tbl_Perfil_Acesso
id_perfil: INTEGER
PEA_Tipo: INTEGER
PEA_Descricao: VARCHAR(255)
Tis_Descricao: VARCHAR(50)
tbl_Status
Dis_Descricao: VARCHAR(100)
id_curso: INTEGER
Tis_Tipo: INTEGER
descricao: VARCHAR(255)
Dis_Nome: VARCHAR(50)
tbl_Curso_Disciplina
id_Servidor: INTEGER
id_Status: INTEGER
Cur_Descricao: VARCHAR(100)
tbl_Disciplina
tbl_Tipo_Servidor
descricao: VARCHAR(255)
log_status: CHAR(1)
id_Status: INTEGER
Sta_Descricao: VARCHAR(50)
Apêndice C
Código fonte em C Sharp
C:\Users\Andrei\Documents\FRE\AcessaDados\clsBancoDeDados.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using
using
using
using
using
using
using
using
using
using
System;
System.Collections;
System.Collections.Generic;
System.Collections.Specialized;
System.Configuration;
System.Data;
System.Data.SqlClient;
System.Diagnostics;
System.Linq;
System.Text;
namespace AcessaDados
{
/// <summary>
/// Classe que que representa o modelo salvo no banco de dados
/// Cada tabela será uma classe e deverá ser colocada aqui
/// </summary>
public class clsBancoDeDados
{
/// <summary>
/// Constroi a classe ajustando a strind de conexção de acordo com as propriedades do projeto
/// </summary>
public clsBancoDeDados()
{
_StringDeConexao = System.Configuration.ConfigurationManager.ConnectionStrings[
"WebFRE_CSharp.Properties.Settings.Setting"].ConnectionString;
26
}
27
28
private string _StringDeConexao;
29
30
/// <summary>
31
/// String de conexão com o banco de dados
32
/// </summary>
33
public string StringDeConexao { get { return _StringDeConexao; } }
34
35
private SqlConnection _Conexao = null;
36
37
/// <summary>
38
/// Conexão com o banco de dados
39
/// </summary>
40
public SqlConnection Conexao
41
{
42
get
43
{
44
if (_Conexao == null)
45
{
46
_Conexao = new SqlConnection(StringDeConexao);
47
_Conexao.Open();
48
return _Conexao;
49
}
50
else return _Conexao;
51
}
52
}
53
54
private bool _TransacaoAberta = false;
55
56
/// <summary>
57
/// Indica se existe uma transação aberta com o banco
58
/// </summary>
59
public bool TransacaoAberta { get { return _TransacaoAberta; } }
60
61
private SqlTransaction _Transacao = null;
62
63
/// <summary>
64
/// Inicia uma transação com o banco de dados
65
/// </summary>
66
/// <param name="isolacao">Tipo de isolamento para a conexão</param>
67
/// <returns></returns>
68
public SqlTransaction IniciaTransacao(IsolationLevel isolacao = IsolationLevel.ReadUncommitted)
69
{
70
_TransacaoAberta = true;
71
if (_Transacao == null)
72
{
73
_Transacao = Conexao.BeginTransaction(isolacao);
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsBancoDeDados.cs
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
}
return _Transacao;
}
/// <summary>
/// Faz o commit da transação aberta
/// </summary>
public void Commit()
{
this._TransacaoAberta = false;
if (_Transacao == null) return;
_Transacao.Commit();
_Transacao = null;
}
/// <summary>
/// Abandona as operações
/// </summary>
public void RollBack()
{
this._TransacaoAberta = false;
if (_Transacao == null) return;
_Transacao.Rollback();
_Transacao = null;
}
private void AbreConexao()
{
if (Conexao.State == ConnectionState.Open)
return;
Conexao.ConnectionString = StringDeConexao;
Conexao.Open();
}
/// <summary>
/// Fecha a conexão com o banco de dados, a conexão só será fechada se não existirem transações
abertas
/// </summary>
public void FechaConexao()
{
try
{
if (!this.TransacaoAberta) Conexao.Close();
}
catch
{ }
}
/// <summary>
/// Executa uma consulta no banco de dados e retorna um dataset
/// </summary>
/// <param name="sql">Texto da consulta</param>
/// <returns></returns>
public DataSet ExecutaDataSet(string sql)
{
DataSet ret = new DataSet();
AbreConexao();
SqlDataAdapter adpt = new SqlDataAdapter();
SqlCommand cnn = new SqlCommand(sql, Conexao);
if (this.TransacaoAberta) cnn.Transaction = this._Transacao;
adpt.SelectCommand = cnn;
adpt.Fill(ret);
FechaConexao();
return ret;
}
///
///
///
///
///
///
<summary>
Executa um comando sql, que precisa de parametros, e o coloca num DataSet
</summary>
<param name="sql">Comando a ser executado</param>
<param name="arr">Parametros para a consulta</param>
<returns></returns>
2
C:\Users\Andrei\Documents\FRE\AcessaDados\clsBancoDeDados.cs
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
public DataSet ExecutaDataSet(string sql, params object[] arr)
{
DataSet ret = new DataSet();
AbreConexao();
SqlDataAdapter adpt = new SqlDataAdapter();
SqlCommand cnn = new SqlCommand(sql, Conexao);
if (this.TransacaoAberta) cnn.Transaction = this._Transacao;
adpt.SelectCommand = cnn;
for (int c = 0; c < arr.Length; c++)
cnn.Parameters.AddWithValue("@" + (c + 1).ToString(), arr[c]);
adpt.Fill(ret);
for (int t = 0; t < ret.Tables.Count; t++)
{
if (ret.Tables[t].Columns.Contains("Apagado"))
{
for (int l = 0; l < ret.Tables[t].Rows.Count; l++)
{
if ((bool)ret.Tables[t].Rows[l]["Apagado"])
ret.Tables[t].Rows[l].Delete();
}
}
}
FechaConexao();
ret.AcceptChanges();
return ret;
}
/// <summary>
/// Executa uma consulta no banco de dados e retorna um dataset
/// </summary>
/// <param name="sql">Comando a ser executado</param>
/// <returns></returns>
public DataSet ExecutaDataSet(SqlCommand comando)
{
DataSet ret = new DataSet();
AbreConexao();
SqlDataAdapter adpt = new SqlDataAdapter();
comando.Connection = Conexao;
if (this.TransacaoAberta) comando.Transaction = this._Transacao;
adpt.SelectCommand = comando;
adpt.Fill(ret);
FechaConexao();
return ret;
}
/// <summary>
/// Executa uma consulta contra o banco e retorna um datareader
/// </summary>
/// <param name="comando">Comando a ser executado</param>
/// <returns></returns>
public SqlDataReader ExecutaDataReader(SqlCommand comando)
{
AbreConexao();
comando.Connection = Conexao;
if (this.TransacaoAberta) comando.Transaction = this._Transacao;
return comando.ExecuteReader();
}
/// <summary>
/// Executa uma consulta contra o banco e retorna um datareader
/// </summary>
/// <param name="comando">String com o comando a ser executado</param>
/// <returns></returns>
public SqlDataReader ExecutaDataReader(string sql)
{
AbreConexao();
SqlCommand cnn = new SqlCommand(sql, Conexao);
if (this.TransacaoAberta) cnn.Transaction = this._Transacao;
cnn.Connection = Conexao;
return cnn.ExecuteReader();
}
/// <summary>
3
C:\Users\Andrei\Documents\FRE\AcessaDados\clsBancoDeDados.cs
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
/// Insere um registro em uma tabela e retorna o Id gerado no campo identity
/// NÃO PRECISA PASSAR O COMANDO "select SCOPE_IDENTITY()"
/// </summary>
/// <param name="sql">Sql para inserir no banco</param>
/// <returns>Id gerado no campo identity</returns>
public int ExecutaInsert(string sql)
{
sql += "select SCOPE_IDENTITY()";
AbreConexao();
SqlCommand cmd = new SqlCommand(sql, Conexao);
if (this.TransacaoAberta) cmd.Transaction = this._Transacao;
int identity = Convert.ToInt32(cmd.ExecuteScalar());
FechaConexao();
return identity;
}
/// <summary>
/// Insere um registro em uma tabela e retorna o Id gerado no campo identity
/// NÃO PRECISA PASSAR O COMANDO "select SCOPE_IDENTITY()"
/// </summary>
/// <param name="comando">comando com o insert no banco</param>
/// <returns>Id gerado no campo identity</returns>
public int ExecutaInsert(SqlCommand comando)
{
AbreConexao();
if (this.TransacaoAberta) comando.Transaction = this._Transacao;
comando.Connection = Conexao;
comando.CommandText += "select SCOPE_IDENTITY()";
int identity = Convert.ToInt32(comando.ExecuteScalar());
FechaConexao();
return identity;
}
/// <summary>
/// Executa uma comando sql contra o banco de dados
/// </summary>
/// <param name="comando">Comando a ser executado</param>
/// <returns>Linhas afetadas pelo comando</returns>
public int ExecutaNonQuery(SqlCommand comando)
{
AbreConexao();
if (this.TransacaoAberta) comando.Transaction = this._Transacao;
comando.Connection = Conexao;
int ret = Convert.ToInt32(comando.ExecuteNonQuery());
FechaConexao();
return ret;
}
/// <summary>
/// Executa uma comando sql contra o banco de dados
/// </summary>
/// <param name="sql">Comando a ser executado</param>
/// <returns>Linhas afetadas pelo comando</returns>
public int ExecutaNonQuery(string sql, params object[] arr)
{
AbreConexao();
SqlCommand cmd = new SqlCommand(sql, Conexao);
for (int c = 0; c < arr.Length; c++)
cmd.Parameters.AddWithValue("@" + (c + 1).ToString(), arr[c]);
if (this.TransacaoAberta) cmd.Transaction = this._Transacao;
int identity = Convert.ToInt32(cmd.ExecuteNonQuery());
FechaConexao();
return identity;
}
/// <summary>
/// Executa uma comando sql contra o banco de dados
/// </summary>
/// <param name="sql">Comando a ser executado</param>
/// <returns>Linhas afetadas pelo comando</returns>
public int ExecutaNonQuery(string sql)
{
AbreConexao();
4
C:\Users\Andrei\Documents\FRE\AcessaDados\clsBancoDeDados.cs
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324 }
SqlCommand cmd = new SqlCommand(sql, Conexao);
if (this.TransacaoAberta) cmd.Transaction = this._Transacao;
int identity = Convert.ToInt32(cmd.ExecuteNonQuery());
FechaConexao();
return identity;
}
/// <summary>
/// Destrutor para garntir que as conexões serão fechadas, e commits serão realizados
/// </summary>
~clsBancoDeDados()
{
try
{
Conexao.Close();
}
catch
{
}
finally
{
try
{
Conexao.Dispose();
}
catch { }
}
}
}
5
C:\Users\Andrei\Documents\FRE\AcessaDados\clsCurso.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsCurso : clsTabelaBase
{
public int id_instituicao { get; set; }
public string Nome_Curso { get; set; }
public string Descricao_Curso { get; set; }
public List<clsCurso> Todas(string CodInstituicao)
{
string sql = "select * from tbl_Curso Where id_instituicao = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao);
return this.CarregaPelaTabela<clsCurso>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public List<clsCurso> Pesquisar(string CodInstituicao, string VALOR)
{
string sql = "select * from tbl_Curso Where id_instituicao = @1 AND Nome_Curso LIKE '%" +
VALOR + "%'";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao);
return this.CarregaPelaTabela<clsCurso>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public string RetornaID(string CodInstituicao, string Nome)
{
string sql = "select ID from tbl_Curso WHERE id_instituicao = @1 AND Nome_Curso LIKE '%" +
Nome + "%'";
DataSet ds = Banco.ExecutaDataSet(sql, CodInstituicao);
string retorno = "";
if (ds.Tables[0].Rows.Count > 0)
{
retorno = ds.Tables[0].Rows[0][0].ToString();
}
if (retorno != "")
{
return retorno;
}
else
{
this.Update(); //Grava o novo Curso
//Pega o ultimo ID
sql = "select Max(ID) from tbl_Curso";
ds = Banco.ExecutaDataSet(sql);
return ds.Tables[0].Rows[0][0].ToString();
}
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsCurso.cs
71
72
73
74
75
76
77
78
79
80
81
82
83 }
84
}
public override void ValidaExclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_Curso_Disciplina WHERE id_Curso = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, Id * -1);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação cancelada, é necessário excluir as disciplinas deste Curso
primeiro!");
}
}
}
2
C:\Users\Andrei\Documents\FRE\AcessaDados\clscurso_disciplina.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clscurso_disciplina : clsTabelaBase
{
39
40
41
42 }
43
public int id_curso
{get; set; }
public int id_disciplina{get; set; }
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
}
public void ValidaExclusaoDisciplina(int IdCurso)
{
string sql = "SELECT TOP 1 * FROM Tbl_turma_classe WHERE id_Curso = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, IdCurso);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação cancelada, é necessário excluir as Turmas deste Curso
primeiro!");
}
}
}
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsDisciplina.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsDisciplina : clsTabelaBase
{
public string nome_disciplina { get; set; }
public string descricao { get; set; }
public List<clsDisciplina> Todas(string CodCurso)
{
string sql = @"select [D].* from tbl_Curso_Disciplina [C]
INNER JOIN Tbl_Disciplina [D]
on ([C].[Id_Disciplina] = [D].[Id])
Where [C].[Id_Curso] = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodCurso);
return this.CarregaPelaTabela<clsDisciplina>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public List<clsDisciplina> Pesquisar(string CodCurso, string VALOR)
{
string sql = @"select [D].* from tbl_Curso_Disciplina [C]
INNER JOIN Tbl_Disciplina [D]
on ([C].[Id_Disciplina] = [D].[Id])
Where [C].[Id_Curso] = @1 AND [D].[nome_disciplina] LIKE '%" + VALOR + "%'";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodCurso);
return this.CarregaPelaTabela<clsDisciplina>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public string RetornaID(string CodCurso, string Nome)
{
string sql = @"select [D].[ID] from tbl_Curso_Disciplina [C]
INNER JOIN Tbl_Disciplina [D]
on ([C].[Id_Disciplina] = [D].[Id])
Where [C].[Id_Curso] = @1 AND [D].[nome_disciplina] LIKE '%" + Nome + "%'";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodCurso);
string retorno = "";
if (ds.Tables[0].Rows.Count > 0)
{
retorno = ds.Tables[0].Rows[0][0].ToString();
}
if (retorno != "")
{
return retorno;
}
else
{
this.Update(); //Grava a nova Disciplina
//Grava na tabela Fraca
clscurso_disciplina CurDic = new clscurso_disciplina();
CurDic.Id = 0;
CurDic.id_curso = int.Parse(CodCurso);
CurDic.id_disciplina = this.RetornaID();
CurDic.Update();
return CurDic.id_disciplina.ToString();
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsDisciplina.cs
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
2
}
}
public int RetornaID()
{
string sql = @"select max(id) from tbl_disciplina";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return int.Parse(ds.Tables[0].Rows[0][0].ToString()); //retorna o ultimo id da Disciplina
cadastrada
}
public int RetornaIDRelacionamento(int CodigoDisciplina)
{
string sql = @"select top 1 id from tbl_curso_disciplina where id_disciplina = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodigoDisciplina);
return int.Parse(ds.Tables[0].Rows[0][0].ToString()); //retorna o ultimo id da Disciplina
cadastrada
}
public DataSet Relatorio(string CodInstituicao, string CodCurso, string CodDisciplina, string DE
, string ATE)
{
string sql = @" SELECT [P].*, [U].[Nome] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].[Id_Instituicao])
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].[Id_Curso])
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].[Id_Turma_Classe])
WHERE
[I].[Id] = @1
AND [C].[ID] = @2
AND [D].[Id_Disciplina] = @3 " +
//AND [P].[Id_Turma_Classe] = @4
//AND [P].[id_usuario] = @5
"AND [P].[dt_prova] >=@4 AND [P].[dt_prova] <= @5 order by [p].
[id_usuario]";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao, CodCurso, CodDisciplina,
DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet Relatorio1(string CodInstituicao, string CodCurso, string CodDisciplina, string
DE, string ATE)
{
string sql = @" SELECT [P].[dt_prova], AVG([P].[Nota]) as [media] FROM tbl_Provas [P]
WHERE
[P].[auxiliar] like '" + CodInstituicao + "|" + CodCurso + "|" +
CodDisciplina + "|" + "%' " +
"AND
[P].[dt_prova] >= @1 AND [P].[dt_prova] <= @2 GROUP BY [P].
[dt_prova]";
DataSet ds = this.Banco.ExecutaDataSet(sql, DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet Relatorio2()
{
string sql = @"SELECT [U].[Perfil], Count([U].[Perfil]) as [Quantidade], [P].[descricao]
FROM Tbl_Usuario [U]
Inner join tbl_perfilPredominante [P] on ([P].[Id] = [U].[Perfil])
WHERE [U].[Id_Perfil] = 3 and [U].[Perfil] > 0 GROUP BY [U].[Perfil], [P].
[Descricao]";
DataSet ds = this.Banco.ExecutaDataSet(sql);
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
C:\Users\Andrei\Documents\FRE\AcessaDados\clsDisciplina.cs
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189 }
190
public DataSet Relatorio3()
{
string sql = @"SELECT AVG(nota) as [Media], count(dt_prova) as [N] FROM TBL_provas";
DataSet ds = this.Banco.ExecutaDataSet(sql);
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet Relatorio31()
{
string sql = @"SELECT nota FROM TBL_provas";
DataSet ds = this.Banco.ExecutaDataSet(sql);
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet Relatorio4()
{
string sql = @"select avg(nota), dt_prova from tbl_provas group by dt_prova";
DataSet ds = this.Banco.ExecutaDataSet(sql);
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
}
public void ValidaExclusaoDisciplina(int IdCurso)
{
string sql = "SELECT TOP 1 * FROM Tbl_turma_classe WHERE id_Curso = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, IdCurso);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação cancelada, é necessário excluir as Turmas deste Curso
primeiro!");
}
}
}
3
C:\Users\Andrei\Documents\FRE\AcessaDados\clsFormacao_Academica.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using
using
using
using
using
System;
System.Collections.Generic;
System.Data;
System.Linq;
System.Text;
namespace AcessaDados
{
public class clsFormacao_Academica : clsTabelaBase
{
52
53
54
55 }
56
public string descricao { get; set; }
public List<clsFormacao_Academica> Todas()
{
string sql = "select * from tbl_formacao_academica";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsFormacao_Academica>(ds.Tables[0]);
}
public List<clsFormacao_Academica> Pesquisar(string VALOR)
{
string sql = "select * from tbl_formacao_academica WHERE descricao LIKE '%" + VALOR + "%'";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsFormacao_Academica>(ds.Tables[0]);
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_Formacao_Academica WHERE descricao = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, descricao);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Esta Formação já esta cadastrada!");
}
}
public override void ValidaExclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_Usuario WHERE Id_formacao_academica = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, Id * -1);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação Cancelada, é necessário excluir os estudantes desta
formação primeiro!");
}
}
}
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsInstituicao.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using
using
using
using
using
System;
System.Collections.Generic;
System.Data;
System.Linq;
System.Text;
namespace AcessaDados
{
public class clsInstituicao : clsTabelaBase
{
public string nome_breve { get; set; }
public string descricao { get; set; }
public List<clsInstituicao> Todas()
{
string sql = "select * from tbl_instituicao";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsInstituicao>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public List<clsInstituicao> Pesquisar(string VALOR)
{
string sql = "select * from tbl_instituicao WHERE nome_breve LIKE '" + VALOR + "'";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsInstituicao>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public string RetornaNome(int ID)
{
string sql = "select nome_breve from tbl_instituicao WHERE Id = " + ID + "";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return ds.Tables[0].Rows[0][0].ToString();
}
public string RetornaID(string Nome)
{
string sql = "select ID from tbl_instituicao WHERE nome_breve LIKE '%" + Nome + "%'";
DataSet ds = Banco.ExecutaDataSet(sql);
string retorno = "";
if (ds.Tables[0].Rows.Count > 0)
{
retorno = ds.Tables[0].Rows[0][0].ToString();
}
if (retorno != "")
{
return retorno;
}
else
{
this.Update(); //Grava a nova instituição
//Pega o ultimo ID
sql = "select Max(ID) from tbl_instituicao";
ds = Banco.ExecutaDataSet(sql);
return ds.Tables[0].Rows[0][0].ToString();
}
}
public override void ValidaAlteracao()
{
}
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsInstituicao.cs
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 }
90
2
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
string sql = "SELECT TOP 1 * FROM tbl_Curso WHERE id_instituicao = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, Id * -1);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação cancelada, é necessário excluir os cursos desta Instituição
primeiro!");
}
}
}
C:\Users\Andrei\Documents\FRE\AcessaDados\clsLogin.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
namespace AcessaDados
{
public class clsLogin : clsTabelaBase
{
public int id_usuario { get; set; }
public int dt_login { get; set; }
public DateTime dt_logout { get; set; }
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
}
}
}
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsPerfil.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsPerfil : clsTabelaBase
{
58
59
60
61 }
62
public string tipo { get; set; }
public string descricao { get; set; }
public List<clsPerfil> Todas()
{
string sql = "select * from tbl_Perfil";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsPerfil>(ds.Tables[0]);
}
public List<clsPerfil> TodasPredominante()
{
string sql = "select * from tbl_PerfilPredominante";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsPerfil>(ds.Tables[0]);
}
public List<clsPerfil> Pesquisar(string VALOR)
{
string sql = "select * from tbl_Perfil WHERE descricao LIKE '%" + VALOR + "%'";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsPerfil>(ds.Tables[0]);
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_perfil WHERE tipo = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, tipo);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Nome de Perfil inválido!");
}
}
public override void ValidaExclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_Usuario WHERE Id_perfil = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, Id * -1);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação Cancelada, é necessário excluir os usuarios deste perfil
primeiro!");
}
}
}
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsProvas.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsProvas : clsTabelaBase
{
public
public
public
public
public
int id_usuario { get; set; }
int id_turma_classe { get; set; }
decimal nota { get; set; }
DateTime dt_prova { get; set; }
string auxiliar { get; set; }
public DataSet Relatorio(string CodInstituicao, string CodCurso, string CodDisciplina, string
CodTurma, string CodAluno, string DE, string ATE)
{
//
string sql = @" SELECT [P].*, [U].[Nome] FROM tbl_Provas [P]
//
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
//
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].
[Id_Instituicao])
//
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
//
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].
[Id_Curso])
//
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].
[Id_Turma_Classe])
//
WHERE
[I].[Id] = @1
//
AND
[C].[ID] = @2
//
AND
[D].[Id_Disciplina] = @3
//
AND
[TC].[Id] = @4
//
AND
[P].[id_usuario] = @5
//
AND
[P].[dt_prova] >= @6 AND [P].[dt_prova] <= @7";
string sql = @" SELECT [P].*, [U].[Nome] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
WHERE
[P].[id_usuario] = @1
AND
[P].[auxiliar] = @2
AND
[P].[dt_prova] >= @3 AND [P].[dt_prova] <= @4";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodAluno, CodInstituicao + "|" + CodCurso + "|"
+ CodDisciplina + "|" + CodTurma, DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet RelatorioGrafico(string CodInstituicao, string CodCurso, string CodDisciplina,
string CodTurma, string CodAluno, string DE, string ATE)
{
string sql = @" SELECT [P].[dt_prova], AVG([P].[Nota]) as [media] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
WHERE
[P].[id_usuario] = @1
AND
[P].[auxiliar] = @2
AND
[P].[dt_prova] >= @3 AND [P].[dt_prova] <= @4
GROUP BY [P].[dt_prova]";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodAluno, CodInstituicao + "|" + CodCurso + "|"
+ CodDisciplina + "|" + CodTurma, DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet TrazerNotas(string CodInstituicao, string CodCurso, string CodDisciplina, string
CodTurma, string CodAluno)
{
string sql = @" SELECT [P].*, [U].[Nome] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
WHERE
[P].[id_usuario] = @1
AND
[P].[auxiliar] = @2";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodAluno, CodInstituicao + "|" + CodCurso + "|"
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsProvas.cs
+ CodDisciplina + "|" + CodTurma);
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119 }
120
return ds;
}
public void GravaNota()
{
try
{
string sql = "select ID from tbl_provas WHERE id_Usuario = " + this.id_usuario + " AND
dt_prova = '" + this.dt_prova + "'";
DataSet ds = Banco.ExecutaDataSet(sql);
string retorno = "";
if (ds.Tables[0].Rows.Count > 0)
{
retorno = ds.Tables[0].Rows[0][0].ToString();
}
if (retorno != "")
{
this.Id = int.Parse(retorno);
}
//Grva / Atualiza a nota
this.Update();
}
catch (Exception erro)
{
throw new Exception(erro.Message);
}
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
}
}
2
C:\Users\Andrei\Documents\FRE\AcessaDados\clsServidor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using
using
using
using
using
1
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsServidor : clsTabelaBase
{
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public
public
public
public
public
public
string nome { get; set; }
string endereco { get; set; }
string banco { get; set; }
string usuario { get; set; }
string senha { get; set; }
int cod_tipo_servidor { get; set; }
public List<clsServidor> Todas()
{
string sql = @"select [T].* from tbl_Tipo_Servidor [T]";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsServidor>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public DataSet Todas(string VOID)
{
string sql = @"select [T].*, [S].[Descricao] as [Tipo] from tbl_Servidor [T]
INNER JOIN tbl_Tipo_Servidor [S]
on ([S].[Id] = [T].[Cod_tipo_servidor])";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return ds;
}
public DataSet Pesquisar(string VALOR)
{
string sql = @"select [T].*, [S].[Descricao] as [Tipo] from tbl_Servidor [T]
INNER JOIN tbl_Tipo_Servidor [S]
on ([S].[Id] = [T].[Cod_tipo_servidor]) WHERE [T].[Nome] LIKE '%" + VALOR + "%
'";
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 }
69
DataSet ds = this.Banco.ExecutaDataSet(sql);
return ds;
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
}
}
C:\Users\Andrei\Documents\FRE\AcessaDados\clsStatus.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsStatus : clsTabelaBase
{
public string descricao { get; set; }
public List<clsStatus> Todas()
{
string sql = "select * from tbl_status";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsStatus>(ds.Tables[0]);
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
}
}
}
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTabelaBase.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
using
using
using
using
using
System.Data;
System.Reflection;
System.Data.SqlClient;
System.ComponentModel;
System.Xml.Serialization;
namespace AcessaDados
{
/// <summary>
/// Classe com as caracteristicas comuns de todas as tabelas.
/// As propriedades dessa classe começam com _ para não serem confundidas com os campos do banco
/// </summary>
public abstract class clsTabelaBase
{
protected string _nomeDaTabela = string.Empty;
private string _select = string.Empty;
private string _delete = string.Empty;
private string _insert = string.Empty;
private string _update = string.Empty;
private string _sq_help = string.Empty;
private SqlCommand _ComandoInsert { get; set; }
private SqlCommand _ComandoDelete { get; set; }
private SqlCommand _ComandoUpdate { get; set; }
protected clsBancoDeDados _banco = null;
/// <summary>
/// Armazena o objeto que que acessará o banco de dados
/// </summary>
[XmlIgnore]
public clsBancoDeDados Banco
{
get
{
if (_banco == null) _banco = new clsBancoDeDados();
return _banco;
}
set
{
_banco = value;
}
}
/// <summary>
/// Todas as tabelas deverão ter um campo chave de auto-numeração chamado [Id]
/// </summary>
public virtual int Id { get; set; }
/// <summary>
/// Cria comandos para o Crud de acordo com os campos.
/// Os nomes da classe herdada precisam ser os MESMOS da tabela.
/// </summary>
private void CriaComandos()
{
if (this.Banco == null) throw new Exception("Não foi setado um banco de dados para esta
classe");
//Classes precisam ter um nome correspondente com as tabelas
_nomeDaTabela = "tbl_" + this.GetType().ToString().Replace("AcessaDados.cls", "");
//Modelos para as operações basicas da tabela
_select = "SELECT * FROM " + "[" + _nomeDaTabela + "]";
_delete = "DELETE FROM " + "[" + _nomeDaTabela + "] WHERE ID = @Id";
_insert = "INSERT INTO [" + _nomeDaTabela + "] ( {0} ) VALUES ( {1} )";
_update = "UPDATE [" + _nomeDaTabela + "] SET {0} WHERE [ID] = @Id";
_sq_help = "EXEC SP_HELP " + "[" + _nomeDaTabela + "]";
1
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTabelaBase.cs
74
75
76
77
78
79
80
81
82
83
84
85
86
DataSet ds = Banco.ExecutaDataSet(_sq_help);
string sets = string.Empty;
string valores = string.Empty;
string campos = string.Empty;
_ComandoDelete = new SqlCommand();
_ComandoInsert = new SqlCommand();
_ComandoUpdate = new SqlCommand();
// Cria parametros para os comandos
foreach (DataRow dr in ds.Tables[1].Rows) //Tabela 1 contem as informações dos camos da
tabela
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
{
string NomeDoCampo = (string)dr["Column_Name"];
if (NomeDoCampo == "Id") continue;
string TipoDoCampo = (string)dr["Type"];
SqlDbType Tipo = SqlDbType.NVarChar;
Tipo = (SqlDbType)Enum.Parse(typeof(SqlDbType), TipoDoCampo, true);
sets += ", [" + NomeDoCampo + "]";
valores += ", @" + NomeDoCampo;
campos += ", [" + NomeDoCampo + "] = @" + NomeDoCampo;
SqlParameter parametro = new SqlParameter("@" + NomeDoCampo, Tipo);
parametro.IsNullable = true;
_ComandoInsert.Parameters.Add(parametro);
parametro = new SqlParameter("@" + NomeDoCampo, Tipo);
parametro.IsNullable = true;
_ComandoUpdate.Parameters.Add(parametro);
}
//Ajusta o sql do comando
_insert = string.Format(_insert, sets.Substring(1), valores.Substring(1));
_update = string.Format(_update, campos.Substring(1));
//Tratamento especial para o campo Id
SqlParameter ParametroId = new SqlParameter("@Id", SqlDbType.Int);
ParametroId.IsNullable = true;
_ComandoDelete.Parameters.AddWithValue("@Id", 0);
ParametroId = new SqlParameter("@Id", SqlDbType.Int);
ParametroId.IsNullable = true;
_ComandoUpdate.Parameters.AddWithValue("@Id", 0);
//Coloca o comando sql no seu respectivo comando
_ComandoDelete.CommandText = _delete;
_ComandoInsert.CommandText = _insert;
_ComandoUpdate.CommandText = _update;
}
/// <summary>
/// Percorre os parametros e as propriedades da classe para sajustar seus valores quando os
nomes não iguais
/// </summary>
/// <param name="Comando"></param>
private void CarregaPropriedadesNosParametros(SqlCommand Comando)
{
SqlParameterCollection parametros = Comando.Parameters;
PropertyInfo[] propiedades = this.GetType().GetProperties();
foreach (var p in propiedades)
{
foreach (SqlParameter parametro in parametros)
{
if ("@" + p.Name == parametro.ParameterName)
{
2
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTabelaBase.cs
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
object valor = p.GetValue(this, null);
if (valor == null)
parametro.Value = DBNull.Value;
else
parametro.Value = p.GetValue(this, null);
}
}
}
}
public List<T> CarregaPelaTabela<T>(DataTable tabela) where T : clsTabelaBase, new()
{
List<T> ret = new List<T>();
PropertyInfo[] propiedades = this.GetType().GetProperties();
for (int c = 0; c < tabela.Rows.Count; c++)
{
DataRow linha = tabela.Rows[c];
T novo = new T();
foreach (var p in propiedades)
{
foreach (DataColumn coluna in tabela.Columns)
{
if (p.Name == coluna.ColumnName)
{
try
{
if (linha[coluna] == DBNull.Value)
{
DefaultValueAttribute attr = new DefaultValueAttribute(p.GetValue
(novo, null));
p.SetValue(novo, attr.Value, null);
}
else p.SetValue(novo, linha[coluna], null);
}
catch (Exception ex)
{
throw new Exception("Erro Tabela (" + tabela.TableName + ") campo (" +
coluna.ColumnName + ")." + ex.Message);
}
}
}
}
ret.Add(novo);
}
return ret;
}
/// <summary>
/// Transfere os dados de uma linha de uma tabela para uma classe.
/// Obs os campos e as propriedades da tabela devem ter o mesmo nome
/// </summary>
/// <param name="Linha">Linha a ser carregada na classe</param>
public void CarregaPelaLinha(DataRow linha)
{
PropertyInfo[] propiedades = this.GetType().GetProperties();
foreach (var p in propiedades)
{
foreach (DataColumn coluna in linha.Table.Columns)
{
if (p.Name == coluna.ColumnName)
{
if (linha[coluna] == DBNull.Value)
{
3
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTabelaBase.cs
218
DefaultValueAttribute attr = new DefaultValueAttribute(p.GetValue(this,
null));
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
p.SetValue(this, attr.Value, null);
}
else p.SetValue(this, linha[coluna], null);
}
}
}
}
public virtual void Incluir()
{
if (_ComandoInsert == null) CriaComandos();
CarregaPropriedadesNosParametros(_ComandoInsert);
this.Id = Banco.ExecutaInsert(_ComandoInsert);
}
public virtual void Excluir()
{
//if (_ComandoDelete == null) CriaComandos();
//CarregaPropriedadesNosParametros(_ComandoDelete);
//Banco.ExecutaNonQuery(_ComandoDelete);
_nomeDaTabela = "tbl_" + this.GetType().ToString().Replace("AcessaDados.cls", "");
string MarcaComoApagado = "DELETE FROM " + "[" + _nomeDaTabela + "] WHERE ID = " + this.Id.
ToString();
Banco.ExecutaNonQuery(MarcaComoApagado);
ApagaFilhos(_nomeDaTabela, this.Id);
}
protected virtual void ApagaFilhos(string TabelaPai, int Id)
{
string procuraFilhos = @"Select
object_name(rkeyid) TabelaPai,
object_name(fkeyid) TabelaFilho,
c1.name ColunaFilha,
c2.name ColunaPai
From
sys.sysforeignkeys s Inner join sys.syscolumns c1
on ( s.fkeyid = c1.id And s.fkey = c1.colid )
Inner join syscolumns c2
on ( s.rkeyid = c2.id And s.rkey = c2.colid )
where object_name(rkeyid) = '" + TabelaPai + "'";
DataSet ds = Banco.ExecutaDataSet(procuraFilhos);
for (int c = 0; c < ds.Tables[0].Rows.Count; c++)
{
string MarcaComoApagado = "DELETE FROM [" + ds.Tables[0].Rows[c]["TabelaFilho"] + "]
WHERE [" + ds.Tables[0].Rows[c]["ColunaFilha"] + "] = " + this.Id.ToString();
Banco.ExecutaNonQuery(MarcaComoApagado);
}
}
public virtual void Alterar()
{
if (_ComandoUpdate == null) CriaComandos();
CarregaPropriedadesNosParametros(_ComandoUpdate);
Banco.ExecutaNonQuery(_ComandoUpdate);
}
public virtual void Filtra()
{
if (string.IsNullOrEmpty(_select)) CriaComandos();
string sql = _select + " WHERE [id] = " + Id.ToString();
DataSet ds = Banco.ExecutaDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
CarregaPelaLinha(ds.Tables[0].Rows[0]);
else
this.Id = 0;
}
/// <summary>
/// Faz alterações no banco de acordo com Id o objeto
4
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTabelaBase.cs
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317 }
318
/// </summary>
public virtual void Update()
{
if (this.Id == 0)
{
ValidaInclusao();
Incluir();
}
else if (this.Id > 0)
{
ValidaAlteracao();
Alterar();
}
else
{
ValidaExclusao();
this.Id = this.Id * -1;
Excluir();
}
}
public abstract void ValidaAlteracao();
public abstract void ValidaInclusao();
public abstract void ValidaExclusao();
}
5
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTipo_Servidor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using
using
using
using
using
1
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsTipo_Servidor : clsTabelaBase
{
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public string Tipo { get; set; }
public string Descricao { get; set; }
public int Cod_Status { get; set; }
public List<clsTipo_Servidor> Todas()
{
string sql = @"select [T].* from tbl_Tipo_Servidor [T]";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return this.CarregaPelaTabela<clsTipo_Servidor>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public DataSet Todas(string VOID)
{
string sql = @"select [T].*, [S].[descricao] as [Status] from tbl_Tipo_Servidor [T]
INNER JOIN Tbl_Status [S]
on ([S].[Id] = [T].[Cod_Status])";
DataSet ds = this.Banco.ExecutaDataSet(sql);
return ds;
}
public DataSet Pesquisar(string VALOR)
{
string sql = @"select [T].*, [S].[descricao] as [Status] from tbl_Tipo_Servidor [T]
INNER JOIN Tbl_Status [S]
on ([S].[Id] = [T].[Cod_Status]) WHERE [T].[Descricao] LIKE '%" + VALOR + "%'"
;
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 }
68
DataSet ds = this.Banco.ExecutaDataSet(sql);
return ds;
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_Servidor WHERE cod_tipo_servidor = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, Id * -1);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação cancelada, é necessário excluir os servidores deste Tipo
primeiro!");
}
}
}
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTurma_Classe.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using
using
using
using
using
1
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsTurma_Classe : clsTabelaBase
{
public int id_curso { get; set; }
public string descricao { get; set; }
public List<clsTurma_Classe> Todas(string CodCurso, string CodDisciplina)
{
string sql = @"select [T].* from tbl_Turma_Classe [T]
INNER JOIN Tbl_Curso [C]
on ([C].[Id] = [T].[Id_Curso])
Where [C].[ID] = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodCurso, CodDisciplina);
return this.CarregaPelaTabela<clsTurma_Classe>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public List<clsTurma_Classe> Pesquisar(string CodCurso, string CodDisciplina, string VALOR)
{
string sql = @"select [T].* from tbl_Turma_Classe [T]
INNER JOIN Tbl_Curso [C]
on ([C].[Id] = [T].[Id_Curso])
Where [C].[ID] = @1 AND [T].[descricao] LIKE '%" + VALOR + "%'";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodCurso, CodDisciplina);
return this.CarregaPelaTabela<clsTurma_Classe>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
}
public DataSet Relatorio(string CodInstituicao, string CodCurso, string CodDisciplina, string DE
, string ATE)
{
string sql = @" SELECT AVG([P].[nota]) as [Media] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].[Id_Instituicao])
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].[Id_Curso])
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].[Id_Turma_Classe])
WHERE
[I].[Id] = @1
AND [C].[ID] = @2
AND [D].[Id_Disciplina] = @3 " +
//AND [P].[Id_Turma_Classe] = @4
//AND [P].[id_usuario] = @5
"AND [P].[dt_prova] >=@4 AND [P].[dt_prova] <= @5";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao, CodCurso, CodDisciplina,
DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet Relatorio1(string CodInstituicao, string CodCurso, string CodDisciplina, string
DE, string ATE)
{
string sql = @" SELECT DISTINCT [U].[Id], [U].[Nome] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].[Id_Instituicao])
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].[Id_Curso])
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].[Id_Turma_Classe])
WHERE
[I].[Id] = @1
AND [C].[ID] = @2
AND [D].[Id_Disciplina] = @3 " +
//AND [P].[Id_Turma_Classe] = @4
//AND [P].[id_usuario] = @5
"AND [P].[dt_prova] >=@4 AND [P].[dt_prova] <= @5";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao, CodCurso, CodDisciplina,
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTurma_Classe.cs
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
2
DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet Relatorio11(string CodInstituicao, string CodCurso, string CodDisciplina, string
DE, string ATE, string CodAluno)
{
string sql = @" SELECT [P].[dt_prova] as [Data], AVG([P].[nota]) as [Media] FROM tbl_Provas
[P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].[Id_Instituicao])
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].[Id_Curso])
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].[Id_Turma_Classe])
WHERE
[I].[Id] = @1
AND [C].[ID] = @2
AND [D].[Id_Disciplina] = @3
AND [P].[id_usuario] = @4
AND [P].[dt_prova] >=@5 AND [P].[dt_prova] <= @6
GROUP BY [P].[dt_prova]";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao, CodCurso, CodDisciplina,
CodAluno, DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet RelatorioMediaDatas(string CodInstituicao, string CodCurso, string CodDisciplina,
string DE, string ATE, string CodAluno)
{
string sql = @"select distinct [P].[dt_prova] as [data], avg([P].[nota]) as [media] from
tbl_provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].[Id_Instituicao])
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].[Id_Curso])
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].[Id_Turma_Classe])
WHERE
[I].[Id] = @1
AND [C].[ID] = @2
AND [D].[Id_Disciplina] = @3
AND [P].[id_usuario] = @4
AND [P].[dt_prova] >=@5 AND [P].[dt_prova] <= @6
GROUP BY [P].[dt_prova]";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao, CodCurso, CodDisciplina,
CodAluno, DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
public DataSet RelatorioDatas(string CodInstituicao, string CodCurso, string CodDisciplina,
string DE, string ATE, string CodAluno)
{
string sql = @" SELECT DISTINCT [P].[dt_prova] as [Data] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].[Id_Instituicao])
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].[Id_Curso])
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].[Id_Turma_Classe])
WHERE
[I].[Id] = @1
AND [C].[ID] = @2
AND [D].[Id_Disciplina] = @3
AND [P].[id_usuario] = @4
AND [P].[dt_prova] >=@5 AND [P].[dt_prova] <= @6
GROUP BY [P].[dt_prova]";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao, CodCurso, CodDisciplina,
CodAluno, DateTime.Parse(DE), DateTime.Parse(ATE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
return ds;
}
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTurma_Classe.cs
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
public string Relatorio12(string CodInstituicao, string CodCurso, string CodDisciplina, string
DE, string ATE, string CodAluno)
{
string sql = @" SELECT TOP 1 AVG([P].[nota]) as [Media] FROM tbl_Provas [P]
INNER JOIN Tbl_Usuario [U] on ([P].[Id_Usuario] = [U].[Id])
INNER JOIN Tbl_Instituicao [I] on ([I].[Id] = [U].[Id_Instituicao])
INNER JOIN Tbl_Curso [C] on ([C].[Id_Instituicao] = [I].[Id])
INNER JOIN Tbl_Curso_Disciplina [D] on ([C].[Id] = [D].[Id_Curso])
INNER JOIN Tbl_Turma_Classe [TC] on ([TC].[Id] = [P].[Id_Turma_Classe])
WHERE
[I].[Id] = @1
AND [C].[ID] = @2
AND [D].[Id_Disciplina] = @3
AND [P].[id_usuario] = @4
AND [P].[dt_prova] >=@5
GROUP BY [P].[dt_prova]";
DataSet ds = this.Banco.ExecutaDataSet(sql, CodInstituicao, CodCurso, CodDisciplina,
CodAluno, DateTime.Parse(DE));
//return this.CarregaPelaTabela<clsProvas>(ds.Tables[0]); //popula classe com a tabela
(Automaticamente)
if (ds.Tables[0].Rows.Count > 0)
{
return ds.Tables[0].Rows[0][0].ToString().Replace(",",".");
}
return "0";
}
public string RetornaID(string CodCurso, string Nome)
{
string sql = "select ID from tbl_turma_Classe WHERE id_Curso = @1 AND Descricao LIKE '%" +
Nome + "%'";
DataSet ds = Banco.ExecutaDataSet(sql, CodCurso);
string retorno = "";
if (ds.Tables[0].Rows.Count > 0)
{
retorno = ds.Tables[0].Rows[0][0].ToString();
}
if (retorno != "")
{
return retorno;
}
else
{
this.Update(); //Grava a nova Turma
//Pega o ultimo ID
sql = "select Max(ID) from tbl_turma_Classe";
ds = Banco.ExecutaDataSet(sql);
return ds.Tables[0].Rows[0][0].ToString();
}
}
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_Turma_Classe WHERE descricao = @1 and id_curso = @2";
DataSet ds = this.Banco.ExecutaDataSet(sql, descricao, id_curso);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Esta Turma já esta cadastrada!");
}
}
3
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTurma_Classe.cs
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219 }
220
public override void ValidaExclusao()
{
string sql = "SELECT TOP 1 * FROM Tbl_Turma_Usuario WHERE id_turma_classe = @1";
DataSet ds = this.Banco.ExecutaDataSet(sql, Id * -1);
if (ds.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação cancelada, é necessário excluir os Alunos desta Turma
primeiro!");
}
string sql1 = "SELECT TOP 1 * FROM Tbl_Provas WHERE id_turma_classe = @1";
DataSet ds1 = this.Banco.ExecutaDataSet(sql1, Id * -1);
if (ds1.Tables[0].Rows.Count > 0)
{
throw new Exception("Operação cancelada, é necessário excluir as provas desta turma
primeiro!");
}
}
}
4
C:\Users\Andrei\Documents\FRE\AcessaDados\clsTurma_Usuario.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Data;
namespace AcessaDados
{
public class clsTurma_Usuario : clsTabelaBase
{
public int id_usuario { get; set; }
public int id_turma_classe { get; set; }
public override void ValidaAlteracao()
{
}
public override void ValidaInclusao()
{
}
public override void ValidaExclusao()
{
}
}
}
1
Apêndice D
Telas do Sistema
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
Seja bem vindo a Ferramenta de Relatórios Estatísticos (FRE).
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
A Ferramenta
O objetivo desta ferramenta é a partir da identificação/estimativa
do perfil de aprendizagem de um aprendiz e da observação desse perfil ao
longo do tempo, apresentar uma analise estatística através da extração de
relatórios e gráficos, relacionando esse perfil a alguns indicadores
relevantes no processo de ensino-aprendizagem e, através dessa analise
estatística, permitir que o professor tome decisões sobre mudanças e
ações sobre estratégias pedagógicas de forma a estimular e favorecer a
melhor forma para o processo de construção do conhecimento associado a
um determinado perfil.
1
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
Login
Entre com seu usuário e senha para acesso
Usuário:
Senha:
Entrar
Ainda não é cadastrado? Cadastre-se aqui
Esqueceu sua senha? Clique aqui
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
Cadastramento de Usuário
Complete com seus dados para efetuar o cadastro
Nome:
Usuário:
Senha:
Confirmação:
RG:
E-mail:
Instituição:
Formação:
Cadastrar
2
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
Recuperar Senha
Digite o E-mail cadastrado para envio da senha
E-Mail:
Entrar
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
Recuperar Senha
Confirmação de envio de E-mail
Sua senha foi encaminhada ao E-mail
cadastrado , em alguns instantes acesse sua
caixa postal.
Retornar
3
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
Recuperar Senha
E-mail não cadastrado
O E-mail informado não está cadastrado no
sistema, por favor tente novamente ou efetue
um novo cadastro.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Seja bem vindo – Andrei Wellington
No menu Importação de Dados você pode realizar a importação dos dados
de uma prova gerados em formato CSV.
No menu Cadastros, você pode incluir ou realizar manutenção em
Instituições, cursos, disciplinas turmas, usuários e formação acadêmica.
No menu Relatórios você pode acessar os relatórios temporais gerados
através dos dados importados previamente.
No menu Sair você encerra o trabalho com a ferramenta.
4
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
• Importação dados FIPA
• Importação
de arquivo
TXT
Seja bem
vindo – Andrei
Wellington
No menu Importação de Dados você pode realizar a importação dos dados
de uma prova gerados em formato CSV.
No menu Cadastros, você pode incluir ou realizar manutenção em
Instituições, cursos, disciplinas turmas, usuários e formação acadêmica.
No menu Relatórios você pode acessar os relatórios temporais gerados
através dos dados importados previamente.
No menu Sair você encerra o trabalho com a ferramenta.
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Importação de dados - FIPA
Importação de Dados FIPA
Serão importados dados de alunos, usuários e perfis.
Importar
5
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Importação de dados - FIPA
Importação de Dados FIPA
Dados Importados com sucesso.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Importação de dados – Arquivo TXT
Informe o nome do arquivo a ser importado
Escolher Arquivo
Nenhum arquivo selecionado
Importar
6
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Importação de dados – Arquivo TXT
Informe o nome do arquivo a ser importado
Escolher Arquivo
Dados.txt
Importar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Importação de dados – Arquivo TXT
Informe o nome do arquivo a ser importado
Os dados do arquivo informado foram
importados com sucesso.
Retornar
7
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Importação de dados – Arquivo TXT
Informe o nome do arquivo a ser importado
Os dados do arquivo informado não puderam ser
importados, por favor confira o layout e tente
novamente.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
• Tipos de servidor
• Servidores de banco de dados
Seja bem vindo – Andrei Wellington
• Instituição
• Curso
• Disciplina
No menu Importação de Dados
você pode realizar a importação dos dados
Turma CSV.
de uma prova gerados em•formato
• Formação Acadêmica
• Perfil
de Acesso
No menu Cadastros, você
pode
incluir ou realizar manutenção em
• Usuário
Instituições, cursos, disciplinas turmas, usuários e formação acadêmica.
• Digitação de nota por turma
• Digitação de nota por aluno
No menu Relatórios você pode acessar os relatórios temporais gerados
através dos dados importados previamente.
No menu Sair você encerra o trabalho com a ferramenta.
8
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de tipo de servidor
Incluir Tipo
Ordem
1
Busca:
Tipo
1
2
2
Ordem
Nome breve
Descrição
Origem dos dados
Status
Ativo
Destino dos dados
Ativo
Nome Completo
Mostrando de 1 até 2 de 2 registros
|
Instruções
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de tipo de servidor
Ao acessar o cadastro de tipo de servidor, serão mostradas as informações sobre os tipos de servidor
disponíveis, podemos ainda realizar uma busca utilizando o campo de busca.
Busca:
Incluir Tipo
Caso não seja encontrada, podemos utilizar o botão
novo registro.
Caso seja necessário, podemos utilizar o ícone
para realizar a inclusão de um
para realizar as alterações em um registro.
Retornar
9
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de tipo de servidor
Complete os dados abaixo
Dados dos Servidores:
Tipo:
Descrição:
Status:
Salvar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de tipo de servidor
Complete os dados abaixo
Dados cadastrados com sucesso.
Retornar
10
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastros gerais
Incluir Servidor
Ordem
1
Busca:
Nome
FIPA
Endereço
192.168.254.24
Banco
fipa
Usuário
fipa
Senha
12345
Tipo
Origem
2
FRE
192.168.254.24
fre
fre
12345
Destino
Ordem
Nome breve
Nome Completo
Mostrando de 1 até 2 de 2 registros
|
Instruções
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastros gerais
Ao acessar os cadastros gerais, serão mostradas as informações de conexão ao banco de dados, podemos
ainda realizar uma busca utilizando o campo de busca.
Busca:
Caso não seja encontrada, podemos utilizar o botão
novo registro.
Caso seja necessário, podemos utilizar o ícone
Incluir Servidor
para realizar a inclusão de um
para realizar as alterações em um registro.
Retornar
11
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastros gerais
Complete os dados abaixo
Dados dos Servidores:
Nome:
Endereço:
Banco:
Usuário:
Senha:
Tipo:
Salvar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastros gerais
Complete os dados abaixo
Dados cadastrados com sucesso.
Retornar
12
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Instituição
Incluir Instituição
Ordem
1
Nome breve
UFABC
Busca:
Nome Completo
Universidade Federal do ABC
2
FSA
Centro Universitário Fundação Santo André
Ordem
Nome breve
Nome Completo
Mostrando de 1 até 2 de 2 registros
|
Instruções
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Instituição - Instruções
Ao acessar o cadastro de instituições, serão mostradas todas as instituições cadastradas, podemos ainda
realizar uma busca utilizando o campo de busca.
Busca:
Caso não seja encontrada, podemos utilizar o botão
nova instituição
Caso seja necessário, podemos utilizar o ícone
Incluir Instituição
para realizar a inclusão de uma
para realizar as alterações em um registro.
Retornar
13
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Instituição
Digite o nome breve e completo da instituição
Nome breve:
Nome completo:
Cadastrar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Instituição
Cadastramento de Instituição
Instituição cadastrada com sucesso.
Retornar
14
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Instituição
Cadastramento de Instituição
A instituição que você tentou cadastrar já está
cadastrada no sistema.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Alteração do cadastro de Instituição
Altere o nome breve e completo da instituição
Nome breve:
Nome completo:
Salvar
15
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Alteração do cadastro de Instituição
Alteração de Cadastro de Instituição
Cadastro de Instituição alterada com sucesso.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Curso
Selecione a Instituição para acessar o cadastro
Instituição:
Prosseguir
16
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Curso - UFABC
Incluir Curso
Ordem
1
Busca:
Nome do Curso
BCH
Descrição
Bacharelado em Ciências e Humanidades
2
INF
Engenharia da Informação
Ordem
Nome do Curso
Descrição
Mostrando de 1 até 2 de 2 registros
|
Instruções
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Curso - UFABC - Instruções
Ao acessar o cadastro de curso, serão mostrados todos os cursos na instituição selecionada, podemos ainda
realizar uma busca utilizando o campo de busca.
Busca:
Caso não seja encontrada, podemos utilizar o botão
novo curso.
Caso seja necessário, podemos utilizar o ícone
Incluir Curso
para realizar a inclusão de um
para realizar as alterações em um registro.
Retornar
17
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Curso - UFABC
Complete com as informações para cadastrar o curso
Curso:
Inserir
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Curso - UFABC
Cadastramento de Curso
Curso cadastrado com sucesso.
Retornar
18
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Curso - UFABC
Cadastramento de Curso
O curso que você tentou cadastrar já está
cadastrado no sistema.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Alteração do Cadastro de Curso - UFABC
Alteração do cadastro de Curso
Curso:
Alterar
19
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Alteração do Cadastro de Curso - UFABC
Alteração do cadastro de Curso
Curso alterado com sucesso.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Disciplina
Selecione as informações abaixo para continuar
Instituição:
Curso:
Prosseguir
20
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Disciplina – UFABC – Engenharia da Informação
Incluir Disciplina
Ordem
1
Busca:
Nome da Disciplina
INF001
Descrição
Métodos Matemáticos
2
INF002
Introdução a Engenharia da Informação
Ordem
Nome da Disciplina
Descrição
Mostrando de 1 até 2 de 2 registros
|
Instruções
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Disciplina – UFABC – Engenharia da Informação
Ao acessar o cadastro de disciplinas , serão mostradas todas as disciplinas do curso e instituição selecionada,
podemos ainda realizar uma busca utilizando o campo de busca.
Busca:
Caso não seja encontrada, podemos utilizar o botão
nova disciplina.
Caso seja necessário, podemos utilizar o ícone
Incluir Disciplina
para realizar a inclusão de uma
para realizar as alterações em um registro.
Retornar
21
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Disciplina – UFABC – Engenharia da Informação
Complete com os dados para efetuar o cadastro
Disciplina:
Inserir
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Disciplina – UFABC – Engenharia da Informação
Cadastramento de Disciplina
Cadastramento de Disciplina realizado com sucesso.
Inserir
22
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Disciplina – UFABC – Engenharia da Informação
Cadastramento de Disciplina
A disciplina que você tentou cadastrar já está
cadastrada no sistema
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Turma
Selecione as informações abaixo para continuar
Instituição:
Curso:
Disciplina:
Inserir
23
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Turma – FSA – Contábeis – Lab. Contabilidade
Incluir Turma
Ordem
1
Busca:
Turma
4AC
2
4BC
Ordem
Turma
Mostrando de 1 até 2 de 2 registros
|
Instruções
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Turma – FSA – Contábeis – Lab. Contabilidade
Ao acessar o cadastro de turmas , serão mostradas todas as disciplinas do curso, instituição e disciplina
selecionada, podemos ainda realizar uma busca utilizando o campo de busca.
Busca:
Caso não seja encontrada, podemos utilizar o botão
nova turma.
Caso seja necessário, podemos utilizar o ícone
Incluir Turma
para realizar a inclusão de uma
para realizar as alterações em um registro.
Retornar
24
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Turma – FSA – Contábeis – Lab. Contabilidade
Selecione as informações abaixo para continuar
Turma:
Inserir
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Turma – FSA – Contábeis – Lab. Contabilidade
Cadastramento de Turma
Cadastramento de Turma realizado com sucesso.
Retornar
25
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Turma – FSA – Contábeis – Lab. Contabilidade
Cadastramento de Turma
A turma que você tentou cadastrar já está cadastrada
no sistema
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Formação Acadêmica
Incluir Formação
Ordem
1
Busca:
Formação Acadêmica
Graduação
2
Pós Graduação – Strictu Sensu
Ordem
Formação Acadêmica
Mostrando de 1 até 2 de 2 registros
|
Instruções
26
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Formação Acadêmica
Ao acessar o cadastro de Formação Acadêmica, serão mostradas todas as formações cadastradas, podemos
ainda realizar uma busca utilizando o campo de busca.
Busca:
Incluir Formação
Caso não seja encontrada, podemos utilizar o botão
nova formação acadêmica.
Caso seja necessário, podemos utilizar o ícone
para realizar a inclusão de uma
para realizar as alterações em um registro.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Formação Acadêmica
Complete com os dados para efetuar o cadastro
Formação Acadêmica:
Inserir
27
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Formação Acadêmica
Cadastramento de Formação Acadêmica
Cadastramento de Formação Acadêmica realizado
com sucesso.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Formação Acadêmica
Cadastramento de Formação Acadêmica
A Formação Acadêmica que você tentou cadastrar já
está cadastrada no sistema
Retornar
28
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Perfil de Acesso
Incluir Perfil
Ordem
1
Perfil de Acesso
Administrador
2
Professor
3
Ordem
Aluno
Perfil de Acesso
Busca:
Mostrando de 1 até 3 de 3 registros
|
Instruções
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Perfil de Acesso
Ao acessar o cadastro de Perfis de Acesso, serão mostrados todos os perfis cadastrados, podemos ainda
realizar uma busca utilizando o campo de busca.
Busca:
Caso não seja encontrado, podemos utilizar o botão
novo perfil de acesso.
Caso seja necessário, podemos utilizar o ícone
Incluir Perfil
para realizar a inclusão de um
para realizar as alterações em um registro.
Retornar
29
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Perfil de Acesso
Complete com os dados para efetuar o cadastro
Perfil de Acesso:
Inserir
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Perfil de Acesso
Cadastramento de Perfil de Acesso
Cadastramento de Perfil de Acesso realizado com
sucesso.
Retornar
30
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Perfil de Acesso
Cadastramento de Perfil de Acesso
O Perfil de Acesso que você tentou cadastrar já está
cadastrado no sistema
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Usuário
Incluir Usuário
Busca:
Ordem Login
1
Admin
Nome
Administrador
E-mail
[email protected]
2
Andrei Wellington
[email protected]
Aluno de teste 1
[email protected]
Andrei
3
aluno1
Ordem
Perfil de Acesso
Mostrando de 1 até 3 de 3 registros
|
Instruções
31
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Usuário
Ao acessar o cadastro de usuários, serão mostradas todos os perfis cadastrados, podemos ainda realizar uma
busca utilizando o campo de busca.
Busca:
Caso não seja encontrado, podemos utilizar o botão
novo usuário.
Caso seja necessário, podemos utilizar o ícone
Incluir Usuário
para realizar as alterações em um registro.
Para alterar a senha de um usuário basta clicar no ícone
Podemos ainda utilizar o ícone
para realizar a inclusão de um
.
para excluir um usuário.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Usuário
Complete com os dados para efetuar o cadastro
Nome:
Usuário:
Senha:
Confirmação:
RG:
E-mail:
Instituição:
Formação:
Perfil:
Inserir
32
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Usuário
Cadastramento de Usuário
Cadastramento de Usuário realizado com sucesso.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de Usuário
Cadastramento de Usuário
O usuário que você tentou cadastrar já está
cadastrada no sistema, tente a alteração do cadastro.
Retornar
33
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de notas de uma turma
Complete com os dados para efetuar o cadastro
Instituição:
Curso:
Disciplina:
Turma:
Selecionar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de notas de uma turma
Data da Prova:
Professor (a): Andrei Wellington
Disciplina: 4AC - Contábeis
Nome do Aluno
Aluno de teste 1
Nota
Aluno de teste 2
Aluno de teste 3
Aluno de teste 4
Aluno de teste 5
Aluno de teste 6
Nome do Aluno
Nova Seleção
Nota
|
Encerrar
Salvar
|
Instruções
Retornar
34
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de notas de uma turma - Instruções
Notas
Somente serão aceitas notas em intervalos de 0,5 e menores ou iguais a 10.
Arredondamento
se maior ou igual a 0 e menor ou igual a 0,24 => será considerado 0
se maior ou igual a 0,25 e menor ou igual a 0,74 => será considerado 0,5
se maior ou igual a 0,75 e menor ou igual a 0,99 => será considerado 1
Depois de digitar as notas , o professor precisa clicar em “Salvar”, mesmo que ainda falte digitar algumas notas .
Antes de sair da tela é sempre necessário salvar para que as notas sejam gravadas no banco de dados.
Depois de ter digitado e conferido todas as notas , o professor terá que encerrar a digitação clicando no link “
Encerrar ”. Com isso estará encerrando o processo de digitação de notas para a prova e liberando para
utilização nos relatórios.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de notas de uma turma
Cadastramento de Notas
Cadastramento de Notas realizado com sucesso.
Retornar
35
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de notas de uma turma
Cadastramento de Notas
As Notas que você tentou cadastrar já estão
cadastradas no sistema, tente a alteração do cadastro.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de nota de um aluno
Complete com os dados para efetuar o cadastro
Instituição:
Curso:
Disciplina:
Turma:
Selecionar
36
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de nota de um aluno
Professor (a): Andrei Wellington
Disciplina: 4AC – Lab. Contabilidade
Data da Prova:
Nome do Aluno
Selecione o aluno e informe a nota
Nota
Aluno:
Nota:
Salvar
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de nota de um aluno
Cadastramento de Nota
Cadastramento de Nota realizado com sucesso.
Retornar
37
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Cadastro de nota de um aluno
Cadastramento de Nota
A Nota que você tentou cadastrar já esta cadastrada
no sistema, tente a alteração do cadastro.
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Seja bem vindo – Andrei Wellington
Relatórios
Sair
• Relatório de acompanhamento por disciplina
• Relatório de acompanhamento por turma
• Relatório de acompanhamento individual
No menu Importação de Dados você pode realizar a importação dos dados
de uma prova gerados em formato CSV.
No menu Cadastros, você pode incluir ou realizar manutenção em
Instituições, cursos, disciplinas turmas, usuários e formação acadêmica.
No menu Relatórios você pode acessar os relatórios temporais gerados
através dos dados importados previamente.
No menu Sair você encerra o trabalho com a ferramenta.
38
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por disciplina
Selecione as informações abaixo para continuar
Instituição:
Curso:
Disciplina:
Data Inicial:
Data Final:
Prosseguir
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por disciplina
Professor (a): Andrei Wellington
Disciplina: 4AC – Lab. Contabilidade
Período: 01/01/2013 a 20/05/2013
7,2
7,0
6,8
6,6
6,4
6,2
6,0
5,8
5,6
5,4
prova 1
prova 2
prova 3
Retornar
39
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de Perfil de Aprendizagem
Professor (a): Andrei Wellington
Turma: Pré-Calculo
Período: 01/01/2013 a 20/05/2013
Perfil Predominante da Turma: Lógico Matemático
18
17
16
15
14
LINGUÍSTICA
LÓGICO-MATEMÁTICA
12
ESPACIAL
10
CORPORAL-CINESTÉSICA
8
8
MUSICAL
INTERPESSOAL
6
INTRAPESSOAL
4
2
3
NATURALISTA
3
2
1
Retornar
0
0
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por disciplina – Gráfico alunos por grupo
Professor (a): Andrei Wellington
Disciplina: Pré-Calculo
Período: 01/01/2013 a 20/05/2013
30
25
25
20
17
15
10
7
5
0
1
Grupo B
Grupo A
Grupo C
Retornar
40
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por disciplina – Gráfico de Atividades
Professor (a): Andrei Wellington
Disciplina: Pré-Calculo
Período: 01/01/2013 a 20/05/2013
10
9,8
9,6
Atividade 1
9,4
Atividade 2
Atividade 3
9,2
Atividade 4
9
Atividade 5
8,8
Atividade 6
8,6
Atividade 7
8,4
8,2
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por turma
Selecione as informações abaixo para continuar
Instituição:
Curso:
Disciplina:
Turma:
Data Inicial:
Data Final:
Prosseguir
41
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por turma
Professor (a): Andrei Wellington
Turma: 4AC – Lab. Contabilidade
Período: 01/01/2013 a 20/05/2013
Perfil Predominante da Turma: Lógico Matemático
Nome do Aluno
Aluno de teste 1
Nota 1
Nota 2
Nota 3
5,0
6,0
7,0
Aluno de teste 2
8,0
7,0
6,0
Aluno de teste 3
7,5
8,0
6,5
Aluno de teste 4
6,0
7,0
6,5
Aluno de teste 5
4,0
8,0
6,0
Aluno de teste 6
4,0
6,0
8,0
Nota 1
Nota 2
Nota 3
5,75
7,0
6,7
Nome do Aluno
Média:
Prosseguir
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por turma
Professor (a): Andrei Wellington
Turma: 4AC – Lab. Contabilidade
Período: 01/01/2013 a 20/05/2013
Perfil Predominante da Turma: Lógico Matemático
Geral
9,0
8,0
7,0
6,0
5,0
prova 1
4,0
prova 2
3,0
prova 3
2,0
1,0
0,0
Aluno 1 Aluno 2 Aluno 3 Aluno 4 Aluno 5 Aluno 6
Prosseguir
42
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento por turma
Professor (a): Andrei Wellington
Turma: 4AC – Lab. Contabilidade
Período: 01/01/2013 a 20/05/2013
Perfil Predominante da Turma: Lógico Matemático
Média
8,0
7,0
6,0
5,0
4,0
3,0
2,0
1,0
0,0
prova 1
prova 2
prova 3
Retornar
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento individual
Selecione as informações abaixo para continuar
Instituição:
Curso:
Disciplina:
Turma:
Aluno:
Data Inicial:
Data Final:
Prosseguir
43
Ferramenta de Relatórios Estatísticos
Início
Importação de Dados
Cadastros
Relatórios
Sair
Relatório de acompanhamento individual
Professor (a): Andrei Wellington
Disciplina: Laboratório de Contabilidade
Período: 01/01/2013 a 20/05/2013
Aluno: Aluno 4
Perfil do Aluno: Lógico Matemático
7,2
7,0
6,8
6,6
6,4
6,2
6,0
5,8
5,6
5,4
prova 1
prova 2
prova 3
Retornar
Ferramenta de Relatórios Estatísticos
Início
A Ferramenta
Login
Até mais, obrigado por utilizar a Ferramenta de Relatórios Estatísticos (FRE).
44
Download

Universidade Federal do ABC Curso de Pós Graduação em