Ferramenta para Análise de Acesso de Uso de Objetos de Aprendizagem em Websites Rafael Silveira da Silveiraa , Cristian Cechinelb e Sandro da Silva Camargoa a Curso de Engenharia de Computação – Campus Bagé Universidade Federal do Pampa Caixa Postal 07, 96413-170 Bagé (RS) Brasil [email protected], [email protected] b Centro de Educação Aberta e a Distância Universidade Federal de Pelotas Felix da Cunha, 630 Centro, CEP 96010-000, Pelotas(RS), Brazil [email protected] Abstract. In this work is proposed a methodology for discovering patterns of access to Learning Objects, through data mining of web usage, ie, data is extracted from logs of websites that store all the information on how the user is related to Internet. The objective is to discover patterns of access to learning objects available on websites. The methodology used is based on the concept of KDD (Knowledge Discovery in Databases), which consists of four steps: data gathering, preprocessing, data mining and post-processing. In the first step is recorded the log file of a website that stores the learning objects. In pre-processing step was applied a filter in server logs, in order to extract only the necessary information and format them to use in the tool used for such data mining step. The third step is responsible for mining the data that were filtered and prepared in the previous step and the fourth and final step was responsible for analyzing the results generated in the mining step. Through this methodology, which can be expanded to other sites, it was possible to discover the behavior of users who make use of learning objects stored on the website. Resumo. Nesse trabalho é proposta uma metodologia para descoberta de padrões de acesso a Objetos de Aprendizagem, através de Mineração de dados de uso da web, ou seja, dados extraídos de logs de websites, que armazenam toda a informação de como o usuário se relaciona com a Internet. O objetivo do trabalho é descobrir padrões de acessos a Objetos de Aprendizagem disponibilizados em websites. A metodologia usada é baseada no conceito de KDD (Knowledge Discovery in Databases) - Descoberta de Conhecimento em Base de Dados, a qual é constituída de 4 etapas: coleta de dados, pré-processamento, mineração de dados e pós-processamento. Na primeira etapa é recolhido o arquivo de log de um website, que armazena Objetos de Aprendizagem. Na etapa de pré-processamento foi aplicado um filtro nos logs de servidores, para extrair somente as informações necessárias e deixá-los no formato da ferramenta utilizada para etapa de mineração desses dados. A terceira etapa é responsável por minerar os dados que foram filtrados e preparados na etapa anterior e a quarta e última etapa foi responsável por analisar os resultados gerados na etapa de mineração. Através dessa metodologia, que pode ser expandida para outros sites, foi possível descobrir o comportamento dos usuários que fazem uso dos Objetos de Aprendizagem armazenados no website. Keywords: Mineração de dados; Objetos de Aprendizagem; Website; Arquivos de log PACS: 01.50.H- Computers as Educational Aids 1. INTRODUÇÃO Uma das maiores fontes de informações que se tem hoje é a WWW (World Wide Web), mas essas informações não se encontram de uma forma organizada e muitas vezes é difícil achar o que realmente se está procurando. O custo de pesquisar em grandes volumes de dados existentes na web estimulou a criação de ferramentas automáticas para mineração e descoberta de informações existentes na mesma. A mineração na web pode ser amplamente definida como a descoberta e análise de informações úteis a partir da www, podendo ser dividida em: 1) Mineração de Conteúdo; 2) Mineração de Estrutura e 3) Mineração de Uso [1]. A mineração de conteúdo trabalha com a descoberta de informações úteis a partir do conteúdo web. No entanto, os conteúdos da web não são apenas texto, mas também dados em outros formatos como áudio, vídeo, imagens e também dados estruturados [2]. Um bom exemplo de mineração de conteúdo é o que é realizado por sites de busca. A mineração de estrutura aborda as relações das informações contidas entre os documentos da web, sendo que links apontando para um documento indicam a popularidade do documento, enquanto as ligações saindo de um documento indicam a riqueza ou, talvez, a variedade de temas abordados no mesmo [2], por exemplo, quando um trabalho é citado muitas vezes é sinal de que ele é importante, ou ainda, se ele faz referência a muitos outros, indica que ele pode ter uma grande variedade de tema. A mineração de uso é o processo de aplicação de técnicas de mineração de dados para a descoberta de padrões de uso a partir de dados da web [3], ou seja, tenta descobrir como o usuário se relaciona com a Internet, descrevendo quem acessou, quando e de onde veio o acesso, sendo utilizada por exemplo, em recomendações de produtos baseadas em compras anteriores. A mineração de dados de utilização da web (Web Usage Mining) é uma forma automática de descobrir padrões de acessos de usuários em servidores web [2]. Uma das formas que pode ser usada para essa descoberta é analisando arquivos de logs de servidores, que contem um grande volume de dados de todos os acessos ao servidor [4]. De posse desses dados aplicam-se algoritmos de mineração para processar, analisar e extrair conhecimentos dos mesmos [5]. Tal técnica é destinada a fornecer dados que ajudam a melhorar a qualidade do serviço de um website através de ferramentas assistentes de navegação que ajudam a gerenciar os dados da web [6]. Arquivos de log podem apresentar diferentes formatos em virtude da quantidade de servidores web existentes, mas é possível configurar os servidores para gerar um arquivo de log de acordo com uma especificação única. Esta especificação é o Common Logfile Format (CLF) tal qual detalhado pelo World Wide Web Consortium (W3C) [7]. A estrutura de um arquivo de log de acordo com o CLF é a seguinte: Endereço IP da máquina remota; RFC 931; Data e hora da requisição; Requisição solicitada pelo cliente; Código retornado para o cliente; Tamanho em bytes do arquivo solicitado e o Link anterior à requisição. Arquivos de logs são fontes valiosas de informações, pois, através deles, é possível descobrir como os usuários interagem com sites da web, através de seus Navegadores. Analisando esses dados é possível encontrar padrões de acesso e caminhos de navegação a determinados endereços eletrônicos, propiciando aos proprietários de tal endereço rastrear e descobrir o comportamento de seus clientes para gerenciar o site de modo que o usuário tenha seu espaço personalizado. Trabalhar com processamento de informações em logs está longe de ser uma tarefa simples, uma vez que, apesar desses arquivos possuírem um padrão bem definido, é necessário aplicar uma série de filtros para extrair a informação desejada. O presente trabalho tem como objetivo descrever uma metodologia usada para extrair informações de logs de acesso a Objetos de Aprendizagem disponíveis em um website. Esse trabalho está estruturado da seguinte maneira: A seção 2 apresenta um breve conceito de Mineração de Padrões de Sequência. A seção 3 descreve a metodologia adotada para a execução do trabalho. A seção 4 apresenta os resultados obtidos. E por fim seção 5 apresenta a conclusão e o que pode ser feito futuramente com o trabalho. 2. MINERAÇÃO DE PADRÕES SEQUENCIAIS Devido ao rápido aumento da quantidade de dados na Web e a heterogeneidade dos mesmos, a exploração e a descoberta de conhecimento através de dados da Web tornaram-se um processo difícil para a maioria dos utilizadores. Além disso, com a grande quantidade de transações comerciais feitas na Internet, aumenta o interesse das empresas em oferecer um serviço mais personalizado para aumentar a satisfação do cliente. A personalização de uma página Web pode ser definida como uma maneira de tentar melhorar a experiência do usuário com uma página da Internet. Identificar a necessidade do usuário e adaptar-se a ele dinamicamente é o principal objetivo da personalização [8]. Um dos métodos existentes para extrair informações de acesso a websites é a Mineração de logs de servidores. Diferentes ferramentas para aplicações de Mineração de logs da web estão sendo desenvolvidas para procurar padrões de navegação, pois, além de melhorar a estrutura do site, é importante na estratégia de marketing [9]. Uma das técnicas usadas para criação dessas ferramentas é a Sequential pattern mining, que tem como objetivo encontrar relações entre as ocorrências de eventos sequenciais para descobrir se existe uma ordem específica nessas ocorrências. Um padrão de sequência pode ser definido como um conjunto de passos que ocorre frequentemente numa ordem específica. Um dos fatores levados em consideração nessa metodologia é o tempo, pois, dados na web mudam o tempo todo de forma dinâmica. Quando o tempo é analisado para avaliar um conjunto de dados, o processo de extração da informação pode gerar resultados mais úteis e precisos [9]. Por exemplo, uma regra pode ser: quem Compra A bbbCompra B, se o tempo não for levado em consideração, não tem como saber em quanto tempo isso aconteceria. Se o tempo levado em consideração fosse de um mês, por exemplo, a regra seria mais precisa, pois, saberíamos que o evento aconteceria dentro do prazo de um mês. Existem algumas ferramentas disponíveis na web que aplicam a técnica de mineração de padrões sequenciais para extrair padrões de sequências de determinados eventos. Uma delas é a SPMF (Sequential Pattern Mining Framework), que tem como característica ser open-source (código aberto), escrita em Java e distribuída sob licensa GPL v3. Além dessas características, a ferramenta oferece mais de cinquenta implementações de algoritmos de Mineração de dados, entre eles, estão seis algoritmos específicos para Mineração de padrão de sequência (Em: <http://www.philippe-fournier-viger.com/spmf/>. Acesso em: 08 de Novembro de 2012). Um dos pontos positivos dessa ferramenta é o tipo de dado que serve como entrada. A figura 1 mostra o formato dos dados de entrada, que corresponde a uma tabela com duas colunas, sendo uma coluna o identificador e a outra a sequência de passos seguidos. Nesse caso cada linha da tabela corresponderá ao caminho percorrido por um IP diferente. FIGURA 1. Formato dos dados de entrada para a ferramenta SPMF 3. METODOLOGIA A metodologia do trabalho segue o conceito de KDD (Knowledge Discovery in Databases), ou seja, é um processo de várias etapas, não trivial, interativo e iterativo, para identificação de padrões compreensíveis, válidos, novos e potencialmente úteis a partir de grandes conjuntos de dados” [10]. Dentre as várias etapas desse processo, pode-se destacar como sendo as principais: a) Coleta de dados; b) Pré – Processamento; c) Mineração de Dados; d) Pós – Processamento, Ou seja, depois de recolhido o arquivo de log(coleta de dados), o mesmo passa por um processo de filtragem e limpeza dos dados (pré-processamento). Na terceira é usada a ferramenta SPMF para Mineração dos dados. A quarta e última etapa responsável pelo pós-processamento dos resultados obtidos na etapa de Mineração de dados. A figura 2 ilustra as etapas de desenvolvimento que compõem o trabalho. O trabalho foi desenvolvido a partir das seguintes etapas: 1) Recolher os arquivos de logs; 2) Aplicar um filtro nos arquivos para extrair as informações importantes e deixá-lo no formato da ferramenta SPMF; 3) Usar a ferramenta SPMF com a finalidade de descobrir padrões de acesso a objetos de aprendizagem e 4) Fazer uma interpretação dos resultados obtidos na etapa 3. FIGURA 2. Etapas da Metodologia 3.1 Coleta de dados - Recolhimento dos arquivos de logs O processo de recolhimento dos arquivos de log foi feita de maneira manual em um website que contem diversos Objetos de Aprendizagens armazenados, com a finalidade de auxiliar o ensino da disciplina de Algoritmos e Programação em linguagem de programação C. Esses Objetos de Aprendizagem possuem o formato de tutoriais (vídeos em flash) e foram criados a partir de gravações do desktop do computador enquanto algum determinado problema estava sendo programado[12]. Ao todo estão disponibilizados 24 (vinte e quatro) Objetos de Aprendizagem que abordam desde conteúdos básicos até os mais avançados do currículo da disciplina de Algoritmos e Programação. A Tabela 1 apresenta alguns dos conteúdos dos conteúdos abordados pelos tutoriais, divididos em 3 níveis de dificuldade: Introdutórios, Intermediários e Avançados. TABELA 1. Objetos de Aprendizagem disponibilizados no website Nível Introdutórios Intermediários Título - Objetivo Conteúdos Uso do Editor Kate (Para usar no Linux) - Introduzir o editor Kate como uma ferramenta para a digitação e compilação de códigos em C. 1) Formas de abrir o editor Kate no Linux; 2) Como criar e salvar um arquivo; 3) As partes do editor Kate; 4) Como acessar o terminal console no Kate. Apostila de Algoritmos e Programação 1) Todo conteúdo da disciplina de Algoritmos e Programação. Olá Mundo (usando a IDE Dev C++ no Windows) - Desenvolver, compilar e executar um programa Olá Mundo em C. 1) Como criar e salvar um arquivo; 2) Delimitadores de bloco; 3) Biblioteca Stdio.h; 4) Estrutura de um programa em C; 5) Significado do main(void) e do return; 6) Como escrever mensagens na tela. Como pular de linha; 7) Como e onde compilar; 8) Como e onde executar; Leitura e Escrita - Apresentar os tipos de variáveis int, float e char e como são realizadas suas declarações e introduzir o uso do comando de leitura scanf(). 1) Declaração de variáveis inteiras, reais e caracteres; 2) Solicitação de valores de entrada para o usuário; 3) Uso do comando de leitura scanf(); 4) Formatação de leitura de tipos de variáveis no C (%d %c %i). Operadores Aritméticos e Relacionais - Apresentar os operadores aritméticos de divisão inteira e resto de divisão inteira. 1) Operadores aritméticos para divisão inteira e resto de divisão inteira; 2) Operadores relacionais > e <; 3) Valores resultantes de operações relacionais. Estrutura de Condição IF ELSE Introduzir o uso da estrutura de condição IF ELSE e apontar a necessidade de estruturas de condição aninhadas. 1) Estrutura de condição IF ELSE; 2) Avaliação de expressões na estrutura de condição IF ELSE; 3) Escopo da estrutura IF ELSE (uso das chaves); 4) Demonstração de qual cláusula (if ou else) é executada dependendo dos valores de entrada. Estrutura de Condição Switch Demonstrar o funcionamento da estrutura de condição Switch no desenvolvimento de um pequeno menu de opções. 1) Estrutura de condição Switch; 2) Escopo da estrutura Switch; 3) Restrições de uso da estrutura de condição Switch (somente variáveis ordinais). Estrutura de Repetição For Apresentar a estrutura de repetição For. Estrutura de Repetição WHILE Demonstrar a utilização da estrutura de repetição While e compará-la com a estrutura de repetição For. 1) Estrutura de repetição For; 2) Uso de contadores; 3) Incremento de um contador i pertencente ao laço For. 1) Estrutura de repetição While; 2) Contadores; 3) Inicialização de contadores. Avançados Vetores - Demonstrar o funcionamento de vetores em C 1) Declaração de vetores; 2) Inicialização de vetores no momento da declaração; 3) Índices de vetores. Ponteiros - Explicar o conceito e o funcionamento de ponteiros em C 1) Declaração de ponteiros; 2) Inicialização de ponteiros; 3) Exemplos do uso de ponteiros Funções - Explicar o conceito e a importância de funções em C 1) Declaração de uma função; 2) Uso de uma função. 1) Todo conteúdo da disciplina de Algoritmos e Programação. 3.2 Pré-processamento - Aplicação do filtro O filtro foi desenvolvido, em Python, e será aplicado nos arquivos de logs. A finalidade do mesmo é fazer um pré-processamento para extrair conteúdos que não serão relevantes para a ferramenta e gerar um novo arquivo de texto com apenas as informações consideradas úteis para a aplicação, como: ip do usuário e endereço requisitado. Foi escolhida a linguagem de programação Python, pois, a mesma possui uma biblioteca específica para se trabalhar com Expressões Regulares, que facilitam muito na hora de se buscar por padrões de sequência de caracteres. A metodologia adotada para filtrar o arquivo de log foi a de extrair do mesmo apenas as informações de: a) IP do usuário e b) Requisição feita pelo usuário. O filtro executa a seguinte sequência de ações durante a filtragem do log: a) Faz uma varredura em todo arquivo linha por linha; b) Verifica a cada linha se o IP atual é igual ao IP anterior; b.1) enquanto o IP atual for igual ao IP anterior segue escrevendo, em um novo arquivo texto, a requisição do usuário na mesma linha; b.2) se o IP atual for diferente do IP anterior, escreve no novo arquivo, uma nova linha e depois a requisição; c) Após esse processo é feito uma verificação se o link solicitado pelo usuário possui a palavra-chave que caracteriza uma solicitação de acesso a um Objeto de Aprendizagem; c.1) no caso de o link possuir essa palavra-chave ele é mapeado para um número inteiro e escrito no novo arquivo; c.2) senão ele é descartado, pois, o usuário está acessando algum item do site que não é um Objeto de Aprendizagem. Com esse novo arquivo contendo apenas os acessos aos Objetos de Aprendizagem, onde cada linha representa o caminho percorrido por um usuário diferente, a última etapa do filtro é deixá-lo no formato aceito para ser usado como entrada na ferramenta SPMF. Esse formato é o seguinte: cada número inteiro (maior que zero), que representa o Objeto de Aprendizagem correspondente é representado pelo número -1(menos um) e cada final de linha, que representa o fim do caminho percorrido por um usuário, é representado pelo número -2(menos dois). Ao final da aplicação do filtro o arquivo de log que estava no formato conforme a figura 3, fica no formato aceito pela ferramenta SPMF conforme a figura 4. FIGURA 3. Formato de um arquivo de log sem filtro FIGURA 4. Formato de um arquivo de entrada aceito pela ferramenta SPMF Como pode ser observado nas figuras 3 e 4, a figura 3 mostra o formato original de um arquivo de log, que contem as seguintes informações: a) Nome do usuário remoto (IP) - uma identidade para o servidor conhecer o cliente que está solicitando a requisição para poder mandar a resposta; b) Data e hora – Informa a data e a hora da requisição ao link; c) Usuário autenticado - Usado para uma maior segurança, neste campo ficam armazenados login e senha do usuário; d) Link requisitado - Nome do arquivo requisitado ao servidor, o qual é composto por uma string que contém, além do nome, o tipo de método que será usado na recuperação do mesmo, por exemplo, GET; e) Status - código que informa ao cliente se a requisição pode ser atendida ou não; f) Tamanho em Bytes - retorna ao cliente o tamanho, em bytes, do arquivo solicitado; g) Link anterior – armazena a informação de onde o usuário estava antes de requisitar um novo arquivo ao servidor. A figura 4 mostra o arquivo filtrado, que contem apenas as informações de IP e link requisitado, onde cada linha representa um IP com todo o caminho percorrido pelos Objetos de Aprendizagem, ou seja, a sequência usada para acessar os Objetos. Para deixar o arquivo no formato de entrada da ferramenta SPMF, foi necessário separar cada acesso por o número -1 (menos um) e acrescentar ao final de cada acesso, ou troca de IP, o número -2 (menos 2) que simboliza uma nova linha ou um novo usuário (ID). 3.2 Mineração de Dados – Uso da ferramenta SPMF Como já foi dito anteriormente, a ferramenta SPMF possui mais de 50 (cinquenta) implementações de algoritmos para descoberta de padrões de sequência. Esses algoritmos encontram-se divididos em 4 (quatro) grupos: a) Sequential Patterm Mining Algorithms; b) Sequencial Rule Mining Algorithms; c) Frequent Itemset Mining Algorithms; d) Association Rule Mining Algorithms. Após várias simulações usando vários algoritmos de todos os grupos citados, o escolhido foi o PrefixSpan Algorithm [13]. A escolha deve-se ao fato do mesmo apresentar um modelo de entrada de dados muito parecido com o formato de um arquivo de log, onde se tem uma linha para cada identificador (IP) e duas colunas que representam o IP e o caminho percorrido, facilitando a transformação do arquivo de log no arquivo que servirá como entrada de dados da ferramenta. Os passos para o uso da ferramenta são os seguintes: Executa-se o arquivo Java spmf.jar; Na tela inicial (figura 5), escolhe-se o algoritmo que será usado na mineração, o arquivo que será usado como entrada, um nome e diretório para o arquivo de saída gerado pela ferramenta e o percentual de acerto que a ferramenta trabalhará; Após preencher todos os campos, clica-se no botão Run Algorithm e a ferramenta irá gerar um arquivo de acordo com a figura 6. FIGURA 5. Tela inicial da ferramenta SPMF FIGURA 6. Arquivo de saída da ferramenta SPMF O arquivo de saída mostra na primeira coluna o número inteiro que representa um Objeto de Aprendizagem mapeado, na segunda coluna o número -1(menos um) que representa um espaço e depois o número de vezes que tal sequência, ou apenas um Objeto, foi acessado. Como pode ser observado na figura 6 – linha 1, o Objeto de Aprendizagem 1(um) foi acessado 50 (cinquenta) vezes de forma isolada (sem nenhum acesso seqüencial a um outro Objeto de Aprendizagem). Ainda na linha 2 é possível observar que o acesso seqüencial aos Objetos de Aprendizagem 1 e 7 aconteceu 10 vezes. 4. RESULTADOS ENCONTRADOS Ao serem analisados os dados gerados pela ferramenta SPMF, em uma análise de 12 arquivos de log em diferentes meses do ano, é possível observar que a apostila de Algoritmos e programação é o Objeto mais acessado do site seguido do tutorial de uso do Dev C++, que é considerado um tutorial introdutório. Um fato relevante encontrado é que os tutoriais introdutórios são muito acessados, mas geralmente de forma isolada, ou seja, o usuário usa o tutorial e sai do site. Nos tutoriais mais avançados, percebe-se um menor uso, mas diferentemente dos introdutórios, o usuário interage com outros tutoriais também mais avançados. Outra observação feita foi o grande número de usuários que repetem o uso dos tutoriais 3 e 18 (uso do Dev C++ e Estrutura de Repetição while, respectivamente). O tutorial 17 (estrutura de Repetição while (sem contadores)), foi o que apresentou maior potencial de levar os usuários a acessarem outros tutoriais, o acesso ao tutorial 17 levou os usuários a acessarem também os tutoriais 16 (Estrutura de Repetição FOR – contagem crescente), 20 (Uso de Vetores) e 22 (Uso de Funções). Levando em consideração o número de acesso a um determinado tutorial e o número de vezes que, a partir dele, chega-se em outro tutorial pode-se afirmar que: a) Os caminhos percorridos que mais se repetiram foram dos usuários que acessaram o tutorial 11(Estrutura de Condição If Else Aninhada) e também acessaram os tutoriais 13 (Estrutura de Condição Switch) e 17 (Estrutura de Repetição While – sem contadores) (cerca de 29%); b) Dos que acessaram o tutorial 16 e também acessaram o tutorial 20 (cerca de 28%). c) Com aproximadamente 20%, aparece a sequência de acesso que leva do tutorial 13 ao tutorial 17; d) Aproximadamente 10%, dos usuários que acessam o tutorial 20, também acessam o tutorial 3(Olá Mundo – DEV C++). Esse foi o único caso encontrado em que o uso de um tutorial considerado avançado levou ao uso de um tutorial considerado introdutório. A figura7 exemplifica, através do arquivo gerado pela ferramenta SPMF, os resultados obtidos através de uma análise de um log com acessos aos tutoriais no período de um mês. FIGURA 7. Arquivo de saída da ferramenta SPMF com comentáros 5. CONCLUSÕES A metodologia descrita pelo presente trabalho, que visa procurar padrões de acesso a Objetos de Aprendizagem, pode ser expandida para demais sites, uma vez que, o formato do arquivo de log possui uma especificação única chamada de Common Logfile Format (CLF) tal qual detalhado pelo World Wide Web Consortium (W3C). Descobrir como os usuários se relacionam com os Objetos de Aprendizagem, ou outros itens de um site, pode ser útil na hora de tentar aumentar o número de acesso ao site. Usando o presente trabalho como exemplo, se o foco fosse aumentar o número de visitas ao site, seria interessante criar mais Objetos com conteúdo mais introdutório. Caso o foco fosse aumentar o tempo que cada usuário permanece no site, a criação de Objetos de Aprendizagem com conteúdo mais avançado, seria mais interessante. Com trabalhos futuros, é possível calcular o tempo médio que cada usuário gasta quando acessa o site, pois, a data e hora de cada acesso ficam registradas no arquivo de log. Além disso, pode ser usada a informação armazenada no campo Link anterior, do arquivo de log, para descobrir como cada usuário chega ao site com os Objetos armazenados, por exemplo, por sites de busca ou ferramentas como o Moodle. Outra consideração importante que deve ser levada em conta é a forma como são obtidos os IPs dos usuários, uma vez que, os acessos são sequenciais e em tempo real, um usuário pode ter sua sequencia de uso interrompida por outro usuário que está acessando o site no mesmo momento. Da mesma forma pode-se encontrar problemas como, por exemplo, tratar como usuários distintos uma mesma pessoa acessando os Objetos do seu Notebook e de seu Tablet. O filtro desenvolvido para extrair os Ips dos arquivos de log não trata esses problemas, o que pode ser feito também com trabalhos futuros. 8. AGRADECIMENTOS Este trabalho faz parte dos resultados do projeto IGUAL - Innovation for Equality in Latin American University (code DCIALA/19.09.01/10/21526/245-315/ALFAHI (2010)123) que é financiado pelo programa ALFA III da Comissão Européia. 7. REFERENCIAS K. P. Sankar, “Web Mining in Soft Computing Framework: Relevant, State of the Art and Future Directions” in IEEE Transactions on Neura Networks, v. 13, no. 5, Setembro 2002 . 2. R. Cooley, B. Mobasher and J. Sravastava, “Web mining: information and pattern Discovery on the World Wide Web” in Proceedings of the 9th IEEE International Conference on Tools with Artificial Intelligence, 1997. 3. J. Sravastava, Cooley R., M. Deshpand and T. Pang-Ning, Web usage mining: “Discovery and applications of usage patterns from Web data”. ACM SIGKDD Explorations, v.1, n.2, Janeiro de 2000. 4. G. R. Santos, “Utilização de técnicas data mining na busca de conhecimento na web”. 2000. 119. Monografia – Universidade Federal de Pelotas. Curso de Bacharelado em Informática do Instituto de Física e Matemática, Universidade Federal de Pelotas , Pelotas. 2001. 5. J. S. R. Baker, B. J. M. A. Carvalho and S. Isotani, “Mineração de Dados Educacionais: Oportunidades para o Brasil” in Revista Brasileira de Informática na Educação , v. 10, n. 2, 2011, pp. 45-57. 6. J. Borges, M. Levene, A Data Mining Model to Capture User Web Navigation Patterns. In: WBBKDD'99 - WORKSHOP ON WEB USAGE ANALYSIS AND USER PROFILING. San Diego, CA, USA. 1999. 7. A. G. Dias, “Avaliação do Acesso a Periódicos Eletrônicos na Web” in Ciência da Informação, v. 31, no. 1, 2002, pp.7-12. 8. D. Vora and S. Bojewar, “Design of a Tool Using Statistical Approach for Personalization and Usability Improvement” in ICWET 2011 - International Conference and Workshop on Emerging Trends in Technology . Mumbai, India. 2011. 9. Z. Qiankun, S. B. Sourav, “Sequential Pattern Mining: A Survey”. Nanyang Technological University. Singapure. 2003. 10. R. Goldschmidt and E. Passos, “Data Mining: Um guia prático”. Rio de Janeiro: Campus, 2005. 261 pp. 11. Y. Fu, K. Sandhu and M. Shih, “Clustering of web users based on access patterns” in: PROCEEDINGS OF THE 1999 KDD WORKSHOP ON WEB MINING, 2009. 12. C. Cechinel, A. V. Silveira, R. S. Silveira, E. Nunes, A. A. Moreira, G. B. Cogo, C. M. Betemps, and R. N. Tavares, “Desenvolvimento de Objetos de Aprendizagem parao o Apoio à Disciplina de Algoritmos e Programação,” in Anais do Workshop Ambientes de Apoio à Aprendizagem de Algoritmos e Programação - XIX Simpósio Brasileiro de Informática na Educação, 2008. 13. J. Pei, J. Han, J. Wang and H. Pinto, “Mining Sequential Patterns by Pattern-Growth: The PrefixSpan Approach” in IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, Vol. 16, No. 10, Outubro 2004. 14. SEQUENTIAL PATTERN MINING FRAMEWORK.. SPMF is an open-source data mining mining platform written in Java. Disponível em: http://www.philippe-fournier-viger.com/spmf/. Acesso em: 08 de nov. 2012 1.