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