UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL
INSTITUTO DE INFORMÁTICA
DEPARTAMENTO DE INFORMÁTICA APLICADA
INF01041 – Trabalho de Diplomação em Informática Aplicada
Autenticação de Alunos e
Geração e Análise de log de Acessos em
Cursos de Ensino a Distância
por
GIOVANI DEMARTINI
Projeto de Diplomação
Profa. Nina Edelweiss
Orientadora
Porto Alegre, julho de 2001.
Sumário
Sumário ...........................................................................................................................................2
Lista de Figuras................................ ................................ ................................ ................................ 3
Lista de Tabelas ............................................................................................................................... 4
Resumo...........................................................................................................................................5
Abstract ...........................................................................................................................................6
1 Introdução .....................................................................................................................................7
1.1
Motivação........................................................................................................................... 8
1.2
Objetivos ............................................................................................................................ 8
2 Ensino a Distância ....................................................................................................................... 10
2.1
Definições e características ............................................................................................... 10
2.2
Ensino a Distância Mediado por Computador (EMDC) ......................................................... 14
2.3
Monitoração dos Alunos .................................................................................................... 15
3 Projeto ........................................................................................................................................ 17
3.1
Autenticação de Aluno....................................................................................................... 18
3.2
Geração dos Dados .......................................................................................................... 20
3.3
Análise do log ................................................................................................................... 23
3.3.1
Tempo total de percurso no módulo............................................................................. 23
3.3.2
Tempo médio de permanência nas páginas do módulo................................................. 23
3.3.3
Tempo médio de permanência por tipo de página......................................................... 24
3.4
Embutindo o script no HTML................................ ................................ .............................. 24
4 Ambiente de desenvolvimento................................ ................................ ................................ ...... 26
4.1
PHP ................................................................................................................................. 26
4.2
MySQL ............................................................................................................................. 27
4.3
Borland Delphi 5 ............................................................................................................... 29
5 Implementação ............................................................................................................................ 30
5.1
Autenticação de Aluno....................................................................................................... 31
5.2
Geração do log ................................................................................................................. 34
5.3
Relatórios de Análise do log............................................................................................... 35
5.4
Conversão do HTML ......................................................................................................... 39
6 Conclusão ................................................................................................................................... 44
Referências Bibliográficas............................................................................................................... 45
2
Lista de Figuras
Figura 3-1 Diagrama Esquemático das Ferramentas ........................................................................ 18
Figura 3-2 Autenticação de Aluno .................................................................................................... 19
Figura 5-1 Diagrama ER do esquema................................ ................................ .............................. 31
Figura 5-2 Código da função CheckLogin......................................................................................... 32
Figura 5-3 Código da função DoUserLogin....................................................................................... 33
Figura 5-4 Código da função DoUserLogoff................................ ................................ ...................... 34
Figura 5-5 Código da função LogAccess.......................................................................................... 35
Figura 5-6 Tempo total de percurso no módulo – Relatório Geral ................................ ...................... 36
Figura 5-7 Tempo total de percurso no módulo – Relatório Individual................................................. 37
Figura 5-8 Tempo médio de permanência – Relatório Geral ................................ .............................. 37
Figura 5-9 Tempo de permanência na página – Relatório Individual .................................................. 38
Figura 5-10 Tempo médio de permanência por tipo de página – Relatório resumido ........................... 38
Figura 5-11 Tempo médio de permanência por tipo de página – Relatório completo ........................... 39
Figura 5-12 Tela principal do conversor de HTML para PHP ............................................................. 40
Figura 5-13 Script inserido no início do HTML .................................................................................. 41
Figura 5-14 Script inserido após a tag <body> .................................................................................. 42
Figura 5-15 Script inserido antes da tag </body>................................ ................................ .............. 42
Figura 5-16 Exemplo de HTML antes da conversão.......................................................................... 42
Figura 5-17 Arquivo com o script PHP embutido e os links alterados ................................................. 43
3
Lista de Tabelas
Tabela 2-1: Evolução do EAD segundo a tecnologia de transmissão de informação adotada.............. 14
Tabela 3-1: Índices de aprendizagem ................................ ................................ .............................. 22
4
Resumo
Como a estratégia educacional de ensino a distância é caracterizada
pela separação (no espaço e no tempo) entre o professor e o aluno, o contato entre
esses dois personagens é mediado. Isto quer dizer que acontece por meio de outros
recursos que não a exposição oral de um docente. O ensino a distância mediado por
computador procura resolver os problemas das pessoas que necessitam qualificar-se,
mas não podem desenvolver o estudo de forma tradicional por variados motivos, tais
como: horário restrito e longas distâncias dos centros estudantis.
O presente trabalho tem como objetivo, a elaboração de um conjunto
de ferramentas que auxiliará e apoiará os professores e os tutores virtuais inteligentes
na análise do comportamento e na avaliação dos alunos dos cursos de ensino a
distância através da geração de um log (registro) de atividades e da posterior análise
desse log para a extração das informações.
A partir destes registros de log, uma ferramenta gera relatórios
possibilitando a análise individual do aluno e permitindo estimar o tempo por ele
despendido na execução das tarefas propostas.
Palavras-chave: ensino a distância, análise de log, autenticação, PHP.
5
Abstract
As the long distance teaching strategy is characterized by the
separation (in space and time) between teacher and student, contact between these
two parties is mediated; that is, it happens through resources other than oral exposure
of a teacher. Long-distance teaching mediated by a computer is a way of solving the
problems of people who need to study but cannot do so in a traditional manner for a
series of reasons, such as: time constraints and long distance to learning centers.
This paper aims at the elaboration of a set of tools which will assist
and support teachers and intelligent virtual tutors with the analysis of students'
behavior and performance in long-distance-teaching courses through the generation of
an activity log, which will later be analyzed for the extraction of information.
Through records of this log, one of the tools generates reports which
will allow individual analysis of the student as well as an estimate of the time spent by
him or her in the execution of the tasks proposed.
Keywords: long distance teaching, log analysis, authentication, PHP.
6
1 Introdução
A sociedade contemporânea está experimentando o que se
convencionou chamar “Era da Informação”, onde a informação passou a ser um fator
de produção de vital importância. Na Era da Informação, com o surgimento de
tecnologias interativas sofisticadas, as Instituições de Ensino estão buscando
melhorar a qualidade do ensino e procurando formas alternativas de ensinar com a
implantação do ensino a distância. A Internet é uma rede difundida mundialmente e a
WWW – World Wide Web, tem se mostrado como uma ferramenta poderosa e
largamente reconhecida como a chave para enfrentar o desafio de levar o
conhecimento a um maior número de pessoas, em um maior número de assuntos, de
forma eficaz e a um menor custo, pois a característica desta Era é a necessidade de
eficiência e resultados rápidos.
Como a estratégia educacional de ensino a distância é caracterizada
pela separação entre o professor e o aluno, o contato entre esses dois personagens é
mediado. Isto quer dizer que acontece por meio de outros recursos que não a
exposição oral de um docente [GON 96]. O termo “a distância” é apenas um aspecto
que faz com que os educadores vejam o processo educacional de um ângulo
diferente: o ato de transmitir informação, de oferecer oportunidades para que o
conhecimento seja construído, de organizar as condições de aprendizagem e assim
por diante.
O material impresso é ainda o recurso pedagógico mais utilizado, em
nosso país, para a concretização do ensino a distância. É o recurso material cuja
linguagem é dominada pela quase totalidade dos que desenvolvem esta estratégia de
ensino; talvez aí residam os motivos de sua maior utilização quando comparado a
outros recursos disponíveis. A linguagem dos outros meios – como a dos programas
de rádio, de televisão e de vídeo, é de domínio de um número bem menor de
profissionais; poucos, dentre os que dominam a linguagem desses meios, são
capazes de desenvolver programas educacionais de qualidade. Assim, a realização
adequada e responsável de ações de ensino a distância que incluam tais meios fica
na dependência de profissionais competentes que dominem sua linguagem. Isso, sem
dúvida, restringe seu uso nesta estratégia de ensino. Pelos comentários feitos, é
possível deduzir que o ensino a distância tem vários modos de acontecer. Mas, seja
qual for o modo adotado, as pesquisas na área indicam que aqueles que incluem
comunicação de dupla via (educador-educando) tem resultados iguais ou superiores
aos apresentados pelo ensino presencial [GON 96].
7
1.1 Motivação
As instituições que adotam o ensino a distância, necessitam de um
gerenciamento único das ações presenciais e “a distância” e, além disso, do
envolvimento de todos os agentes educacionais da instituição, sejam estes
administradores,
docentes
ou
técnicos
que
apoiam
pedagógica
ou
administrativamente o processo educacional. O envolvimento exige, também, o
esforço em aprender a lidar com um novo paradigma: no ensino a distância, não há
espaço para aulas – o espaço é da tutoria. Nesta estratégia de ensino, os materiais
“levam” o conteúdo ao aluno, não o professor. Onfim, no “a distância”, o aluno tem
que movimentar-se para construir a própria aprendizagem – não pode mais supor que
a aprendizagem só acontece a partir de uma aula dada.
A tutoria é um componente típico de ações de ensino a distância em
que a comunicação se dá nos dois sentidos. Ela assume diferentes formas,
dependendo da situação em que deve inserir-se, dos objetivos que pretende cumprir,
do público que se beneficiará dela e das condições dadas para sua concretização.
Ao assumir o papel de tutor no ensino a distância, o docente se põe à
disposição do aluno para auxiliá-lo na construção do próprio caminho: não mais dá
aulas; agora, ele orienta e reorienta a aprendizagem dos alunos, ajuda no
esclarecimento de suas dúvidas, identifica dificuldades, sugere novas leituras ou
atividades, organiza atividades de estudo e assim por diante.
No caso dos Sistemas Inteligentes de Ensino via Internet, como não
haverá mais a interação em sala de aula entre aluno-professor e aluno-aluno,
interação esta considerada de extrema importância no processo de ensinoaprendizagem, os professores estão desenvolvendo agentes inteligentes que possam
monitorar os alunos para que seja escolhido um caminho próprio para cada perfil do
estudante, suprindo desta forma, a lacuna criada com este tipo de ensino. Os tutores
virtuais poderão auxiliar os alunos mais adequadamente, quanto maior for a
quantidade de informações sobre o comportamento de cada aluno. Como os registros
dos acessos às páginas do curso de ensino a distância são armazenados e esses
registros podem fornecer o comportamento de cada aluno, isso auxiliará os tutores
virtuais na avaliação [AZE 00].
1.2 Objetivos
O presente trabalho tem como objetivo, a elaboração de um conjunto
de ferramentas que auxiliará e apoiará os professores e os tutores virtuais inteligentes
na análise do comportamento e na avaliação dos alunos dos cursos de ensino a
distância através da geração de um log de atividades e da posterior análise desse log
para a extração das informações.
8
Esse conjunto de ferramentas é composto da seguinte forma:
a.) uma aplicação desenvolvida utilizando uma linguagem de script embutido em
HTML do tipo server-side, responsável pela autenticação dos alunos antes de
permitir a navegação pelas páginas do curso de ensino a distância. A linguagem
de script escolhida foi o PHP (Hypertext Preprocessor);
b.) uma aplicação, também desenvolvida utilizando uma linguagem de script embutido
em HTML, responsável por registrar os acessos dos alunos nas páginas do curso
(geração do log);
c.) uma aplicação desktop com a finalidade de inserir os scripts PHP no HTML e
ajustar os links para manter a integridade das páginas do curso. Essa ferramenta
foi desenvolvida sob o ambiente de programação Delphi 5; e
d.) uma aplicação responsável pela extração e análise dos dados de acessos que
foram registrados, permitindo a visualização dos mesmos sob diversos aspectos.
Devido à versatilidade e facilidade de acesso, foi escolhido o ambiente Web/PHP
para geração e visualização dos relatórios.
No capítulo 2 são apresentados alguns aspectos gerais relacionados
a ensino a distância; o projeto de cada uma dessas ferramentas é apresentado no
capítulo 3; no capítulo 4 é apresentado o ambiente de desenvolvimento e as
ferramentas utilizadas; a descrição da implementação dos utilitários é apresentada no
capítulo 5 e no capítulo 6 serão apresentadas as conclusões deste estudo.
9
2 Ensino a Distância
2.1 Definições e características
Segundo [ARE 94], ensino a distância é “um sistema tecnológico de
comunicação bidirecional, q pode ser massivo e que substitui a interação pessoal, na
sal de aula, de professor e aluno, como meio preferencial de ensino, pela ação
sistemática e conjunta de diversos recursos didáticos e pelo apoio de uma
organização e tutoria que propiciam a aprendizagem independente e flexível dos
alunos”.
[CAR 98] apresenta várias definições clássicas de ensino a distância.
Cita-se, a seguir, algumas delas:
Ø Ricardo Marin Ibáñez: “Definir o ensino a distância em função de que não é
imprescindível que o professor esteja junto ao aluno não é de todo exato, embora
seja um traço meramente negativo. No ensino a distância, a relação didática tem
um caráter múltiplo. Há que se recorrer a uma pluralidade de vias. É um sistema
multimídia. O ensino a distância é um sistema multimídia de comunicação
bidirecional com o aluno afastado do centro docente e ajudado por uma
organização de apoio, para atender de modo flexível à aprendizagem de uma
população massiva e dispersa. Este sistema somente se configura com recursos
tecnológicos que permitam economia de escala”.
Ø Otto Peters: “O ensino a distância é um método de transmitir conhecimentos,
habilidades e atitudes, racionalizando, mediante a aplicação da divisão do trabalho
e de princípios organizacionais, assim como o uso extensivo de meios técnicos,
especialmente para o objetivo de reproduzir material de ensino de alta qualidade,
o que torna possível instruir um grande número de alunos ao mesmo tempo e
onde quer que vivam. É uma forma industrial de ensinar e aprender”.
Ø M. L. Ochoa: “Educação a distância é um sistema baseado no uso seletivo de
meios instrucionais, tanto tradicionais quanto inovadores, que promovem o
processo de auto-aprendizagem, para obter objetivos educacionais específicos,
com um potencial de maior cobertura geográfica que a dos sistemas educativos
tradicionais – presenciais”.
Ø José Luís García Llamas: “A educação a distância é uma estratégia educativa
baseada na aplicação da tecnologia à aprendizagem, sem limitação do lugar,
tempo, ocupação ou idade dos alunos. Implica novos papéis para os alunos e para
o professores, novas atitudes e novos enfoques metodológicos”.
10
Ø Michael G. Moore: “O ensino a distância é tipo de método de instrução em que as
condutas docentes acontecem à parte das discentes, de tal maneira que a
comunicação entre o professor e o aluno se possa realizar mediante textos
impressos, por meios eletrônicos, mecânicos ou por outras técnicas”.
Ø Miguel Casas Armengol: “A expressão Educação a distância cobre um amplo
espectro de diversas formas de estudo e estratégias educativas, que têm em
comum o fato de que não se cumprem mediante a tradicional e contínua
contigüidade física de professores e alunos em locais especiais para fins
educativos; esta nova forma educativa inclui todos o métodos de ensino nos quais,
devido à separação existente entre alunos e professores, as fases interativas e
pré-ativas do ensino são conduzidas mediante a palavra impressa e/ou elementos
mecânicos e eletrônicos”.
Ø Jaime Sarramona: “Educação a distância é uma metodologia de ensino em que as
tarefas docentes acontecem em um contexto distinto das discentes, de modo que
estas são, em relação às primeiras, diferentes no tempo, no espaço ou em ambas
as dimensões ao mesmo tempo”.
Ø Gustavo Cirigliano: “Educação a distância é um ponto intermediário de uma linha
contínua em cujos extremos se situam, de um lado, a relação presencial professoraluno, e, de outro, a educação autodidata, aberta, em que o aluno não precisa da
ajuda do professor. Na educação a distância, ao não haver contato direto entre
educador e educando, requer-se que os conteúdos sejam tratados de um modo
especial, ou seja, tenha uma estrutura ou organização que os torne passíveis de
aprendizado a distância. Essa necessidade de tratamento especial exigida pela
distância é o que valoriza o modelo de instrução, de maneira que se torne um
modo de tratar e estruturar os conteúdos para fazê-los assimiláveis. Na educação
a distância, ao se colocar o aluno em contato com o material estruturado, isto é,
com os conteúdos organizados segundo seu planejamento, é como se, no texto, o
material e – graças ao planejamento – o próprio professor estivesse presente”.
Portanto, o termo ensino a distância representa uma variedade de
modelos educacionais caracterizados não apenas pela separação (no espaço e/ou no
tempo) entre professor e aluno, como também pela comunicação (entre aluno e
professores) mediada por documentos impressos ou alguma forma de tecnologia.
Semelhante aos outros tipos de ensino, os vários modelos de ensino
a distância são construídos a partir de alguns componentes centrais: apresentação
dos conteúdos e interação entre escola, alunos e recursos; aplicação prática; e
avaliações. [MAR 97]
Os programas
características em comum:
de
ensino
11
a
distância
apresentam
algumas
1. Atendimento a uma população estudantil dispersa geograficamente
principalmente àquela que se encontra em zonas periféricas, que não dispõe das
instituições convencionais de educação). O docente não se faz presente, mas
transmite conhecimentos ao aluno, suscita sua aprendizagem (através do
planejamento da instrução e da elaboração dos recursos) e é também responsável
por dirimir as dúvidas que surgirem. Durante todo o processo ensinoaprendizagem
(desenvolvido
pela
instituição
de
ensino
e
pelo
PROFESSOR/TUTOR), o acompanhamento do aluno é indispensável e supera o
fator separação/distância, proporcionando a quem aprende a certeza de não estar
sozinho. Além disso, as novas tecnologias da informação e os modernos meios de
comunicação tornaram inesgotáveis as possibilidades de recepção de mensagens
educativas,
eliminando
fronteiras
espaço-temporais
e
propiciando
o
aproveitamento destas mensagens por grande número de pessoas dispersas
geograficamente.
2. Utilização de mecanismos de comunicação múltipla (permitindo enriquecer os
recursos de aprendizagem e eliminar a dependência do ensino face a face). Os
recursos técnicos de comunicação, atualmente acessíveis a boa parte da
população, têm possibilitado o grande avanço do ensino a distância, pois não
existem distâncias nem fronteiras para o acesso à informação e à cultura. As
novas tecnologias da comunicação propiciam a aprendizagem autônoma, pois o
aluno, mesmo a distância, ao longo de sua aprendizagem, pode, inúmeras vezes,
manter contato com o PROFESSOR/TUTOR, a instituição promotora do curso e
outros alunos. Desta forma, a distância diminui, a solidão é minimizada e a
individualização da aprendizagem é entrecortada por alguns momentos de
socialização. Existe a possibilidade de contato com um largo espectro de colegas
com os quais o estudantes podem colaborar numa quantidade bastante superior
do que podem encontrar em sua própria região, permitindo o acesso a um quadro
bastante extenso de professores e mentores, numa dimensão impossível para
uma única instituição educacional local [CRU 98].
3. Elaboração dos materiais didáticos sempre é entregue aos melhores
especialistas de cada área (possibilitando melhoria na qualidade da instrução).
Como a educação é um processo de comunicação mediatizada, no caso do EAD,
o texto, que é uma mensagem, está automaticamente sujeito às incidências das
dificuldades referidas, exigindo, exatamente por isto, maior cuidado na elaboração
didática e nos demais passos do processo. É fato, ainda, que se não for usada
uma metodologia de projeto instrucional adequada, com certeza o produto final
será de qualidade duvidosa. A elaboração de projetos de ensino a distância devem
considerar: os objetivos, as necessidades e características dos professores e
alunos, os requisitos de conteúdo e as limitações técnicas.
12
4. Possibilidade de personalização do processo de aprendizagem (em função da
necessidade de garantir uma seqüência acadêmica que responda ao ritmo do
rendimento do aluno). Os sistemas flexíveis de educação, de acordo com as novas
correntes educativas centradas na educação aberta, devem estar mais atentos
aos alunos individualmente, com suas exigências, motivações e necessidades, do
que às da instituição. Assim, o aluno poderá iniciar um curso quando desejar,
desenvolvendo-o de acordo com seu tempo disponível para estuar e ser ritmo de
aprendizagem. Pode haver, então, o processo de formação personalizada nos
conteúdos que o aluno estudará, escolhidos em função das exigências, dos
conhecimentos e das capacidades que ele possui. Assim, o EAD caracteriza-se
pela ausência de rigidez quanto aos requisitos de espaço (onde estudar?),
assistência às aulas e tempo (quando estudar?) e ritmo (em que velocidade
aprender?).
5. Desenvolvimento no aluno de habilidades para o trabalho independente e
para um esforço auto-responsável. “É possível que uma pessoa, dispondo de
bons recursos didáticos auto-instrucionais, seja capaz de aprender sozinha”
[GAR 94]. O conhecimento localizado é baseado no princípio do construtivismo, no
qual o aluno ativamente constrói uma representação interna do conhecimento
através de interação com o material a ser aprendido. Através do EAD, procura-se
não somente transmitir conhecimentos, mas tornara o aluno capaz de aprender a
aprender e aprender a fazer, de forma flexível, respeitando sua autonomia em
relação ao tempo, estilo, ritmo e método de aprendizagem, tornando-o consciente
de suas capacidades e possibilidades para sua autoformação. Segundo Chris
Dede [apud SIZ 99], aprender-através-de-fazer envolve participação e uma
seqüência individualizada de experiências construtivistas distribuídas através da
resolução de problemas inseridos no contexto do mundo real. Os modelos
pedagógicos utilizando a Internet devem induzir os alunos a dominar navegação
na web, buscando complementos educacionais, textos, bibliotecas e arquivos
como fontes de informação, como também interação com comunidades virtuais
que pesquisem ou estudem as mesmas áreas de interesse.
6. Formalização de vias de comunicação bidirecionais e freqüentes. A atividade
educativa, como processo de comunicação, é bidirecional, com o conseqüente
feedback entre docente e aluno. O diálogo consubstancia, assim, a otimização do
ato educativo.
7. Garantia de permanência do aluno em seu meio cultural e natural (evitando os
êxodos que incidem negativamente no desenvolvimento regional).
8. Apresentação de níveis de custos decrescentes (custos iniciais altos com a
produção de materiais instrucionais e de apoio e toda a sistemática operacional,
compensados com a economia em escala). Pode-se ensinar bem a distância,
usando os meios massivos de comunicação, suprindo com vantagem a ausência
13
do professor. Observa-se, então, a economia de escala, já que a mesma
vantagem, cujo planejamento e produção comportaram um custo, pode ser
massivamente recebida. A comunicação massiva não é possível na educação
presencial, pelas limitações espaço-temporais da sala de aula e da presença do
professor.
9. Combinação da centralização produção com a descentralização do processo
de aprendizagem. A educação a distância pode ser situada entre a educação
presencial (face a face) e a solitária (autodidata), pois conta com uma instituição
de ensino que tem por finalidade apoiar o aluno, motivando-o, facilitando e
avaliando continuamente sua aprendizagem. Enquanto na educação presencial há
uma relação de responsabilidade estabelecida entre professor/aluno, na educação
a distância ocorre a relação instituição/aluno.
2.2 Ensino a Distância Mediado por Computador (EMDC)
O ensino a distância já contabiliza mais de um século de existência e
foi sendo desenvolvido utilizando-se dos mais variados ferramentais pedagógicos
possíveis, dependendo de fatores tais como: as características da escola e dos
professores, o tipo de curso ministrado, a distribuição geográfica entre escola e
alunos e, principalmente, a tecnologia disponível e a relação custo/benefício para o
uso da mesma.
Segundo Loyola e Prates, [apud SIZ 99], a evolução da educação a
distância (EAD) pode ser dividida em três fases cronológicas, definidas em função da
tecnologia de transmissão de informação adotada, quais sejam: (i) geração textual; (ii)
geração analógica; e (iii) geração digital. (Tabela 2-1).
GERAÇÃO
PERÍODO
TEXTUAL
1881 – 1959
ANALÓGICA
1960 – 1989
DIGITAL
1990 – ...
CARACTERÍSTICA
Baseada no auto-aprendizado com suporte apenas em
simples textos impressos.
Baseada no auto-aprendizado com suporte em textos
impressos intensamente complementados com
recursos tecnológicos de multimídia tais como
gravações de vídeo e áudio.
Baseada no auto-aprendizado com suporte quase que
exclusivamente em recursos tecnológicos altamente
diferenciados
Tabela 2-1: Evolução do EAD segundo a tecnologia de transmissão de informação adotada
Os recursos tecnológicos atualmente utilizados em ED podem ser
balizados pelos seguintes fatores: (i) a alta interatividade e o baixo custo dos
14
modernos computadores pessoais; (ii) a eficiência e o baixo custo dos modernos
sistemas de telecomunicação digital e via satélite; e (iii) a amplitude e o custo
acessível das redes computacionais locais e remotas, tais como as intranets e
Internet.
As novas tecnologias, altamente interativas, permitiram o surgimento
dos Sistemas de Ensino a Distância Mediado por Computador (EDMC), tornando
questionável, inclusive, a eficiência pedagógica do sistema educacional convencional.
As atividades proporcionadas pelo uso de comunicação mediada pelo
computador permitem ao estudante uma compreensão mais imediata e profunda do
mundo em que vive, enriquecendo a formação de conhecimento em várias áreas de
estudo [SIZ 99].
Constata-se, entretanto, que a maioria dos softwares até então
utilizados para o ensino através do computador têm estruturas estáticas e prédefinidas. Este modelo está agora sendo substituído por softwares flexíveis, capazes
de oferecer um caminho próprio para cada perfil pessoal do estudante. Este novo
paradigma está bem situado tanto para um educação contínua, livre e autônoma (via
Internet, por exemplo) ou para apoiar a educação tradicional das salas de aula.
O trabalho realizado em organizações de ensino é um trabalho em
equipe, onde cada membro dessa equipe, um agente da organização, tem um
conjunto próprio de atribuições e responsabilidades e tem autonomia para a
realização de suas atividades. Essas atividades, contudo, não são independentes,
pois existe a manipulação de uma mesma informação em diferentes momentos
[NIC 98].
2.3 Monitoração dos Alunos
Considerando, como já foi exposto, que cada estudante tem limites
individuais de tempo na continuidade de uma tarefa específica, uma importante
característica em cursos remotos é a necessidade de definição de restrições
temporais em diferentes atividades. Necessária se faz, portanto, a monitoração do
conjunto individual de dados de cada estudante, devendo um tutor (professor)
acompanhar e direcionar as atividades de cada aluno.
O conjunto individual de dados deve abranger: (i) todas as atividades
executadas pelo estudante; (ii) o resultado de todos os exercícios praticados; e (iii) as
informações temporais associadas a cada atividade e a cada exercício.
A partir da avaliação de desempenho de cada estudante, devem ser
selecionados os diferentes conteúdos que a ele deverão ser apresentados. Assim,
15
visando auxiliar o desempenho do aluno no curso e, consequentemente, o melhor
aprendizado (interativo, dinâmico e contextualizado), deve-se definir a estratégia mais
adequada de desenvolvimento de atividades, através de: explicações, exemplos,
diagnósticos, simulações, hipóteses e conhecimentos.
O objetivo deste trabalho é a elaboração de um conjunto de utilitários
que auxiliem os tutores na análise do comportamento e na avaliação dos indivíduos
submetidos ao ensino a distância pela web. Esses utilitários irão possibilitar a
monitoração das atividades e a visualização dos resultados extraídos dessa
monitoração.
16
3 Projeto
Esse projeto visa implementar um conjunto de ferramentas semiintegrado com a finalidade de conseguir as informações estatísticas necessárias para
suportar o desenvolvimento de tutores e agentes inteligentes para ensino a distância,
possibilitando a geração dos dados e permitindo que o usuário tenha acesso a esses
dados de maneira organizada, em relatórios estruturados e objetivos.
Nesse
intuito,
foram
projetadas
ferramentas
com
as
seguintes
funcionalidades:
Ø efetuar a autenticação dos alunos, antes de poderem executar qualquer ação no
curso;
Ø gerar um registro de todos os acesso do aluno às páginas do curso;
Ø apresentar os dados conseguidos com esse registro de maneira a facilitar a
análise dos mesmos;
Ø automatizar a inserção de scripts nas páginas HTML com o objetivo de agilizar o
processo de publicação do curso.
Porém, como se trata de um protótipo, existem limitações que devem
ser ajustadas e melhoradas em trabalhos futuros.
Na Figura 3-1 é apresentado um diagrama que mostra como as
ferramentas se relacionam entre si e com os usuários.
17
Inserção
dos Scripts
Páginas
HTML
Autenticação
Páginas
PHP
Aluno
Geração do
Log
Tutor
Geração dos
Relatórios
BD
Relatórios
de Análise
Figura 3-1 Diagrama Esquemático das Ferramentas
3.1 Autenticação de Aluno
Para que seja possível a coleta dos dados de acessos de alunos
individualmente é necessário saber exatamente qual aluno está navegando pelas
páginas do curso. Portanto, antes de iniciar qualquer atividade que demande o
monitoramento, o aluno precisa se autenticar no servidor do curso de ensino a
distância. Essa autenticação se dá através da informação do seu nome de usuário e
sua senha.
Como as requisições de páginas de um servidor HTTP funcionam em
um modo stateless, ou seja, não são mantidas informações entre uma entre uma
requisição e outra que se siga, necessitamos de um mecanismo para a manutenção
de informações em uma mesma sessão de navegação. Esse mecanismo é fornecido
por aplicativos que rodam junto ao servidor HTTP.
Esses aplicativos podem ser arquivos executáveis, pré-compilados,
ou módulos, acoplados ao servidor HTTP, que interpretam linguagens de script
embutido em HTML (Server-side HTML-embedded scripting languages), os quais
geram a saída que será retornada pelo servidor HTTP em resposta à requisição.
Ambas as opções oferecem todas as funcionalidades necessárias
para a implementação completa do sistema de autenticação, como, por exemplo,
18
acesso a banco de dados e funções para encriptação da senha. Pela praticidade,
simplicidade e por outros motivos que serão melhor explicados no sub-capítulo 3.4, foi
feita a opção pelas linguagens de script embutido em HTML.
A autenticação é baseada na manutenção de uma, ou mais variáveis
de sessão que indicam se um aluno foi autenticado com sucesso e, em caso positivo,
qual o aluno que está autenticado. Variáveis de sessão são persistentes durante uma
sessão de navegação, isto é, mantêm seu valor entre uma requisição ao servidor e
outra. Essas variáveis são independentes para sessões diferentes, ou seja, cada
sessão mantém instâncias distintas de suas variáveis, por isso o fato de existirem
várias sessões concorrentes (vários alunos navegando no curso ao mesmo tempo)
não necessita ser levado em consideração.
Para a implementação do sistema de autenticação é necessário que
tenhamos uma tabela no banco de dados com, no mínimo, os seguintes atributos:
Ø USERNAME: Codinome para identificação do aluno. Esse campo deve ser uma
chave única, isto é, não pode haver dois alunos com o mesmo nome de usuário;
Ø SENHA: Armazena a senha do aluno encriptada. Para garantir a segurança, a
senha é armazenada utilizando um algoritmo de encriptação one-way, ou seja, não
é possível extrair, a partir do valor armazenado, a senha informada.
Essas informações podem estar na mesma tabela que contém as
demais informações do aluno.
A cada requisição de página essas variáveis de sessão são
consultadas para verificar se o requisitante foi autenticado ou não. Em caso positivo, a
transferência é efetuada transparentemente, caso contrário é apresentada a tela de
autenticação de aluno (Figura 3-2).
Figura 3-2 Autenticação de Aluno
Quando o sistema recebe um nome de usuário e uma senha ele
verifica, na tabela com os dados dos alunos, se existe um aluno com aquele nome de
usuário e se o valor da encriptação da senha recebida é igual ao valor armazenado.
19
Se as informações estiverem corretas, às variáveis de sessão são atribuídos os dados
do aluno que acaba de ser autenticado.
3.2 Geração dos Dados
A melhor opção para se conseguir as informações necessárias para a
análise é a geração de um log de acessos para as páginas do curso em particular. E,
visando facilidade para a consulta desses dados é interessante mantê-los, desde o
início, em uma tabela num banco de dados. Assim, é proposto um mecanismo para a
geração desse log.
Tendo sido efetuada a autenticação, o aluno está apto a iniciar ou
continuar a navegação através das páginas do curso. É nesse momento, durante a
navegação, que são obtidas as informações que virão a ser úteis na análise de
comportamento e na avaliação do aluno.
Para armazenarmos os dados relativos a esses acessos
necessitamos de uma tabela no banco de dados que armazene os seguintes dados:
Ø ALUNO: Identificador do aluno que está realizando o acesso;
Ø PAGINA: Identificador da página que está sendo acessada, a página corrente;
Ø DATA_HORA_IN: Data e hora que a página foi acessada, isto é, o momento em
que o aluno iniciou a leitura da página;
Ø PAGINA_FROM: Página da qual o aluno provém. É a página da qual o aluno teve
acesso à página corrente;
Ø DATA_HORA_OUT :Data e hora em que o aluno saiu da página, ou seja,
terminou a leitura da mesma;
Ø PAGINA_TO: Página para a qual o aluno foi quando saiu da página corrente.
Cada linha da tabela de log é preenchida em duas etapas. Os dados
de quem está acessando, qual página está sendo acessada, data e hora do acesso e
de onde o aluno provém na navegação são preenchidos no momento do acesso. Os
dados relativos à data e hora de saída da página e para qual página o aluno está indo
são gravados no próximo acesso a uma página. Assim, a data e hora de saída da
última página acessada é a data e hora de acesso da nova página e a página para
qual o aluno foi quando saiu da última página, é a página sendo acessada.
20
Para exemplificar, digamos que o aluno João realizou as seguintes
ações numa sessão de navegação do curso e vejamos como a tabela de log iria
sendo preenchida (por simplicidade, ignoramos a data):
a) Efetuou login, ou seja, autenticou-se;
aluno
Página
data_hora_in
pagina_from
data_hora_out
pagina_to
pagina_from
<null>
data_hora_out
pagina_to
pagina_from
<null>
Capítulo 1
data_hora_out
10:15
pagina_to
Capítulo 2
data_hora_in
10:00
10:15
10:25
pagina_from
<null>
Capítulo 1
Capítulo 2
data_hora_out
10:15
10:25
pagina_to
Capítulo 2
Exemplo 2.1
data_hora_in
10:00
10:15
10:25
pagina_from
<null>
Capítulo 1
Capítulo 2
data_hora_out
10:15
10:25
10:35
pagina_to
Capítulo 2
Exemplo 2.1
<null>
b) Acessou a página “Capítulo 1” às 10:00;
aluno
João
Página
Capítulo 1
data_hora_in
10:00
c) Dessa página foi para “Capítulo 2” às 10:15;
aluno
João
João
Página
Capítulo 1
Capítulo 2
data_hora_in
10:00
10:15
d) Foi, então, para “Exemplo 2.1” às 10:25;
aluno
João
João
João
Página
Capítulo 1
Capítulo 2
Exemplo 2.1
e) Efetuou logoff às 10:35;
Aluno
João
João
João
Página
Capítulo 1
Capítulo 2
Exemplo 2.1
Com essas informações é possível determinar os índices de
aprendizagem e indicadores de trajetória de aprendizagem de cada aluno. Esses
índices são apresentados na Tabela 3-1 [TAP 01].
21
Tipo
•
•
•
Tempo
•
•
•
Percurso
•
•
•
•
Movimento na
navegação
•
•
•
•
•
Índices
Tempo total de percurso no módulo
Tempo médio de permanência nas páginas do módulo
Tempo médio de permanência por tipo de página (conceitos,
exemplos ou exercícios)
Tempo médio de leitura por página (tempo na página dividido
pelo no de palavras)
Tempo médio de leitura por tipo de página
Total de páginas acessadas no módulo. Estas páginas devem
apresentar uma identificação que possibilite saber quais páginas
foram acessadas.
Total de retornos simples – volta à página anterior ou seqüência
anterior. Ex.: A à B e B à A
Paradas
a) Paradas Bruscas – Trocas rápidas de páginas durante uma
seqüência.
b) Paradas Grandes – Pelo tempo de permanência na página
Aceleração e desaceleração – significando facilidade ou
dificuldade de assimilar o conteúdo, respectivamente. Pode ser
verificado pelo tempo de permanência.
Mudanças bruscas de níveis (conteúdo, exemplos e
exercícios). Ex.: o aluno está lendo um conteúdo e bruscamente
vai para um exercício e começa a acertar todos os exercícios.
Chunks – Blocos de resolução fechados numa seqüência de
navegação com cortes. Ex.: | Com / Exem / Exerc | Exem / Exer.
Retroações – quando o aluno se depara com uma dificuldade
em uma página ‘X’ em função da interferência devido a um não
entendimento das páginas anteriores que o impede de
prosseguir e que acaba fazendo-o retornar às páginas
anteriores. Ex.: A à B à C à D | parada | D à C à B
Loopings – Fazer idas e voltas numa seqüência determinada.
Ex.: A à B à C à A à B à C à
Repetição de Scripts – conjunto de procedimentos repetidos e
“empacados” num domínio específico de ações cognitivas.
Esquemas mentais – são verificados pelos conjuntos
organizados de seqüências de navegação.
Tabela 3-1: Índices de aprendizagem
22
3.3 Análise do log
Do ponto de vista do Ensino a Distância, a análise do log é o objetivo
principal deste trabalho. Todos os mecanismos citados acima foram desenvolvidos
com a finalidade de gerar uma base de dados com informações suficientes para que
se possa avaliar tanto características dos alunos quanto do curso em si.
Com as informações do log de acessos gravadas no banco de dados,
é necessário, agora, um mecanismo que permita a visualização dessas informações
de maneira organizada e estruturada.
Para facilitar a análise, por parte do tutor ou qualquer pessoa ou
equipe responsável, a visualização se dará por meio de relatórios montados
dinamicamente. Devido à versatilidade e facilidade de acesso, foi escolhido o
ambiente Web como plataforma para geração e visualização desses relatórios.
A principal utilidade desses relatórios é apresentar a análise daqueles
índices de aprendizagem mostrados na Tabela 3-1. Apesar de a base de dados do log
conter informações suficientes para a análise de todos os índices citados, devido ao
curto período de tempo no qual o trabalho foi desenvolvido, apenas alguns relatórios
referentes aos índices de tempo foram implementados. Esses relatórios são
apresentados a seguir.
3.3.1 Tempo total de percurso no módulo
Esse relatório pode ser apresentado em duas maneiras:
a) uma listagem contendo todos os alunos com os respectivos tempos despendidos
no percurso do módulo;
b) um relatório individual, por aluno, apresentando os tempos gastos com cada
página do módulo e totalizando o tempo utilizado no módulo como um todo.
3.3.2 Tempo médio de permanência nas páginas do módulo
Esse relatório também pode ser visualizado de duas formas:
a) uma listagem com todas as páginas do módulo seguidas com os respectivos
tempos médios de permanência na página pelos alunos;
b) um relatório individual, por página, apresentando os tempos despendidos por cada
aluno na página e sumarizando o tempo médio de permanência na mesma.
23
3.3.3 Tempo médio de permanência por tipo de página
Como os outros, também tem duas formas de apresentação:
a) um relatório resumido, apresentando as médias calculadas sobre os tempos de
todos os alunos para cada tipo de página (conceito, exemplo e exercício);
b) um relatório completo, apresentando as médias de cada aluno para cada tipo de
página.
Todos os relatórios podem ser filtrados para somente considerar
acessos efetuados num determinado intervalo de tempo. Por exemplo, quando
deseja-se analisar os resultados de diferentes épocas do ano.
3.4 Embutindo o script no HTML
Devido à simplicidade da forma como o script é embutido no código
HTML, podemos automatizar essa tarefa visando facilitar a criação das páginas.
Assim, a equipe responsável pelo desenvolvimento das mesmas não necessita ter
conhecimento da linguagem de script. De fato, com as ferramentas disponíveis para
geração de documentos HTML, nem mesmo é necessário o conhecimento da
linguagem HTML, embora seja recomendável.
Uma vez que tenhamos as páginas do curso prontas, em formato
HTML, devemos embutir, em cada um dos arquivos, os scripts responsáveis pela
verificação da autenticação e pela gravação dos dados do log.
Para determinar se o arquivo sendo requisitado deve ser analisado
para o processamento de scripts, o servidor HTTP avalia a extensão do arquivo, por
isso, além de embutir os scripts, é necessário renomear os arquivos das páginas, que
devem ter extensão “.htm” ou “.html”, e substituir pela extensão correspondente ao
tipo do script.
Disso decorre o seguinte problema, os hyperlinks contidos nas
páginas HTML originais se tornarão corrompidos, pois eles referenciam os arquivos
com a extensão original (htm ou html). Então, além de renomear os arquivos, precisase fazer com que todas as referências continuem consistentes. Para isso, deve-se
utilizar um parser para linguagem HTML e analisar todas as tags correspondentes a
hyperlinks. Para cada uma dessas tags encontradas é verificado se a referência é
para uma página local, isto é, que faz parte do curso, caso seja, alteramos o conteúdo
da referência ajustando a extensão do nome de arquivo referenciado, caso não seja,
a referência é mantida intacta.
24
No capítulo 5.4, a respeito da implementação dessa ferramenta, é
apresentado um exemplo que mostra o arquivo antes e depois do processamento.
25
4 Ambiente de desenvolvimento
O conjunto de ferramentas apresentado foi desenvolvido em dois
ambientes diferentes. A parte que conta com acesso à web foi construída utilizando a
linguagem PHP acessando o banco de dados MySQL e a aplicação de conversão das
páginas foi construída no ambiente integrado de programação Borland Delphi 5. O
servidor HTTP utilizado foi o Apache versão 1.3 para windows.
4.1 PHP
O PHP (Hypertext Preprocessor) é uma linguagem de script embutido
em HTML. A maior parte de sua sintaxe é emprestada do C, Java e Perl com mais
algumas características únicas. O principal objetivo da linguagem é permitir o
desenvolvimento rápido de páginas web geradas dinamicamente.
O PHP foi concebido no final de 1994 por Rasmus Lerdorf. As
primeiras versões, não liberadas a público, foram usadas na sua home page para
monitorar os acessos. A primeira versão utilizada por outras pessoas esteve
disponível no início de 1995 e foi conhecida como “Personal Home Page Tools”.
Consistia de um parser muito simples que reconhecia apenas algumas poucas
macros especiais e um conjunto de utilitários que era usado em home pages na
época, basicamente um guestbook e um contador de acessos. O parser foi reescrito
na metade de 1995 e foi nomeado PHP/FI versão 2. O FI veio de outro pacote que
Rasmus havia escrito que interpretava forms de dados HTML. Ele combinou o
“Personal Home Page tools” com o “Form Interpreter” e adicionou suporte a mSQL, e
assim nasceu o PHP/FI. O PHP/FI cresceu em um ritmo impressionante e outras
pessoas começaram a contribuir com código para ele.
É difícil dar estatísticas reais, mas estima-se que no fim de 1996 o
PHP/FI estava sendo utilizado em no mínimo 15.000 websites em todo o mundo. Na
metade de 1997 esse número havia crescido para mais de 50.000. Nessa época
também se viu uma mudança no desenvolvimento do PHP, que deixou de ser o
projeto de estimação de Rasmus com um punhado de contribuições de outras
pessoas e se tornou um esforço de equipe muito mais organizado. O parser foi
reescrito do início por Zeev Suraski e Andi Gutmans e esse novo parser formou a
base para o PHP versão 3. Muito do código do PHP/FI foi portado para o PHP 3 e
muito foi completamente reescrito.
A última versão (PHP 4) utiliza o mecanismo de scripting de Zend
para proporcionar maior performance, suporta um conjunto ainda maior de bibliotecas
e extensões de terceiros e roda como um módulo nativo em todos os servidores web
populares.
26
Atualmente o PHP 3 (ou PHP 4) acompanha vários produtos
comerciais como o servidor web Stronghold da Red Hat. Uma estimativa baseada em
números fornecidos pela Netcraft aponta que o PHP está sendo utilizado em mais
5.100.000 sites no mundo todo, o que já é superior ao número de sites que utilizam o
servidor IIS da Microsoft, cerca de 5,03 milhões.
O script PHP é diferente dos scripts CGI escritos em outras
linguagens como Perl ou C – ao invés de escrever um programa com muitos
comandos para gerar saída HTML, é escrito um script HTML com algum código
embutido para realizar alguma operação ou gerar o conteúdo da página conforme
algum contexto. O código PHP é colocado entre tags as especiais “<?” e “?>” de início
e fim, respectivamente, que permitem que se entre ou saia do modo PHP.
O que distingue o PHP de algo como o Javascript client-side é que o
código é executado no servidor. O cliente recebe os resultados gerados por rodar
aquele script, sem ter uma maneira de determinar que código foi executado. É
possível, inclusive, configurar o servidor web para processar todos os arquivos HTML
com o processador do PHP, assim os usuários nem saberão que as páginas estão
sendo geradas dinamicamente.
Talvez a característica mais forte e mais significante do PHP é que ele
tem suporte à maioria dos bancos de dados mais populares (suporta mais de vinte
bancos de dados diferentes), tanto em plataformas Unix como Windows.
O PHP também tem suporte para utilização de outros serviços,
utilizando protocolos como IMAP, SNMP, NNTP, POP3, HTTP, entre outros [PHP 01].
4.2 MySQL
O MySQL é um SGBD (Sistema de Gerenciamento de Banco de
Dados) relacional com código aberto. Foi originalmente desenvolvido para manipular
bases de dados muito grandes com maior rapidez que as soluções existentes e tem
sido utilizado com sucesso em ambientes de produção com alta demanda. Apesar de
estar em constante desenvolvimento, o MySQL oferece um rico e muito útil conjunto
de funções. Conectividade, velocidade e segurança tornam o MySQL altamente
apropriado para acesso a bancos de dados na Internet.
O MySQL é um sistema cliente/servidor que consiste de um servidor
SQL multi-threaded que suporta diferentes backends, vários programas clientes e
bibliotecas, ferramentas administrativas e uma interface de programação.
Principais características do MySQL:
27
Ø totalmente multi-threaded usando threads do kernel. O que significa que pode
facilmente fazer uso de múltiplas CPUs se disponíveis;
Ø suporta APIs de C, C++, Eiffel, Java, Perl, PHP, Python e Tcl;
Ø roda em praticamente todos os sistemas operacionais atuais;
Ø suporte a vários tipos de dados: inteiros com ou sem sinal de 1, 2, 3, 4 e 8 bytes e
os tipos FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME,
DATETIME, TIMESTAMP, YEAR, SET e ENUM;
Ø junções rápidas utilizando one-sweep multi-join;
Ø suporte completo a operadores e funções nas cláusulas SELECT e WHERE das
consultas. Ex: SELECT CONCAT(first_name, " ", last_name) FROM tbl_name
WHERE income/dependents > 10000 AND age > 30;
Ø as funções SQL são implementadas através de uma biblioteca de classes
altamente otimizada e são tão rápidas quanto podem ser;
Ø suporte completo para as cláusulas GROUP BY e ORDER BY. Suporta para funções
de grupo (COUNT(), COUNT(DISTINCT), AVG(), STD(), SUM(), MAX() e
MIN());
Ø suporta LEFT OUTER JOIN e RIGHT OUTER JOIN com sintaxe SQL ANSI e
ODBC;
Ø suporte a consultas com tabelas de diferentes bases de dados;
Ø um sistema de privilégios e senhas flexível e seguro onde todo tráfego de senhas
é encriptado quando da conexão com o servidor;
Ø suporte para ODBC (Open-DataBase-Connectivity) para Win32. Todas as funções
do ODBC 2.5 e muitas outras;
Ø permite até 32 índices por tabela. Cada índice pode ser formado por 1 a 16
colunas ou partes de colunas. O tamanho máximo dos índices é de 500 bytes (isso
pode ser alterado no momento da compilação do MySQL);
Ø registros de tamanho fixo ou variável;
Ø tabelas hash em memória que são usadas como tabelas temporárias;
Ø manipula grandes bases de dados. Existem bases de usuários em MySQL com
60.000 tabelas e cerca de 5.000.000.000 de registros;
Ø escrito em C e C++. Testado com uma ampla gama de diferentes compiladores;
Ø um sistema rápido de alocação de memória baseado em threads;
Ø suporte completo a vários character sets, incluindo ISO-8859-1 (Latin1), big5, ujis,
e mais;
28
Ø todos os dados são salvos no character set escolhido. Todas as comparações de
colunas string normais são case insensitive;
Ø a ordenação é feita de acordo com o character set escolhido. É possível alterá-lo
quando o servidor MySQL é iniciado;
Ø são permitidos aliases em tabelas e colunas conforme o padrão SQL92;
Ø DELETE, INSERT, REPLACE e UPDATE retornam o número de linhas afetadas;
Ø nomes de funções não colidem com nomes de tabelas ou colunas. Por exemplo,
ABS é um nome de coluna válido. A única restrição é que para uma chamada de
função, não são permitidos espaços entre o nome da função e o ‘(‘ que o segue;
Ø clientes podem se conectar ao MySQL usando sockets TCP/IP, sockets Unix
(Unixes) ou Names Pipes (NT);
Ø o comando SHOW, específico do MySQL, pode ser usado para resgatar
informações sobre bases de dados, tabelas e índices. O comando EXPLAIN pode
ser usado para determinar como o otimizador resolve uma consulta [MYS 01];
4.3 Borland Delphi 5
Borland Delphi 5 é uma ferramenta RAD (Rapid Application
Development) para Windows 95/98 e NT, que foi lançado no ano de 1999 com o
objetivo de facilitar o desenvolvimento de grandes aplicações. O Delphi é um
ambiente de desenvolvimento integrado, é uma ferramenta altamente poderosa para
a construção de aplicações fortes e robustas, que provêem de alta performance e
produtividade. O Delphi é baseado na linguagem Object Pascal, e herda desta
linguagem todo o requinte, elegância e tradição da orientação a objetos.
Delphi é visual, orientado a objeto e baseado em componentes:
Ø Visual: o programador constrói as janelas e diálogos de suas aplicações
dinamicamente, minimizando a digitação de código;
Ø Orientado a Objeto: Delphi traz todas as características de uma poderosa
linguagem orientada a objeto - encapsulamento, herança e polimorfismo;
Ø Baseado em Componentes: Delphi fornece dezenas de componentes com os
quais o programador pode construir sua aplicações. E, por ser orientado a objeto,
permite a criação de novos componentes a partir de componentes antigos;
29
5 Implementação
Para o desenvolvimento dos módulos que utilizam PHP, foram
desenvolvidas algumas bibliotecas para a implementação das funções desejadas.
Segue, abaixo, a listagem dessas bibliotecas com as funções e a explanação de suas
responsabilidades:
a) config.lib.php – Esta biblioteca contém constantes para a configuração de
parâmetros do sistema, basicamente os parâmetros para a conexão com o banco
de dados.
b) path_info.lib.php – Contém as constantes de caminho dos arquivos fonte do
projeto, ou seja, sua localização no sistema de arquivos.
c) mysql_db.lib.php – Implementação da classe DB, que implementa as seguintes
funções para acesso ao banco de dados MySQL:
Ø connect(): Estabelece uma conexão com o banco de dados, utilizando os
parâmetros configurados no módulo config.lib. Possibilita a posterior execução
dos comandos SQL de consulta ou atualização.
Ø query($sql): Executa um comando SQL de consulta ou atualização do
banco de dados.
Ø next_record(): Se o último comando executado foi uma consulta e o
resultado não foi vazio, retorna um array associativo contendo a próxima linha
do resultado dessa consulta.
Ø num_rows(): Retorna o número de linhas resultantes de um comando de
consulta ao banco de dados.
Ø affected_rows(): Retorna o número de linhas afetadas por um comando de
atualização do banco de dados.
Ø clean_results(): Limpa o resultado de uma consulta.
Ø last_insert_id(): Se o último comando executado foi um INSERT em uma
tabela com campo auto-incrementado, retorna o valor inserido nesse campo.
d) utils.lib.php – Implementa as funções responsáveis por gerar os forms de dados
HTML utilizados na autenticação. São as seguintes:
Ø ShowFormLogin($form_name, $form_action): Gera o HTML para o
formulário apresentado na Figura 3-2, exibido quando o aluno não foi
autenticado.
Ø ShowFormLogoff($form_name, $form_action): Gera o HTML para o
form HTML de logoff, que exibe um botão para efetuar a ação.
30
e) check_login.lib.php – Implementa as funções para efetuar a autenticação
propriamente dita e para verificar se existe, ou não, aluno autenticado. As funções
desse módulo serão explanadas no sub-capítulo 5.1 abaixo.
f) log.lib.php – Implementa a função de gravar os logs de acesso às páginas. Este
módulo será detalhado no sub-capítulo 5.2 abaixo.
g) report.lib.php – Implementa uma classe com a função de gerar o HTML de
exibição dos relatórios. Sua implementação será discutida no sub-capítulo 5.3
abaixo.
Para armazenar as informações no banco de dados foram criadas
tabelas no banco de dados conforme o diagrama Entidade/Relacionamento abaixo
(Figura 5-1). As tabelas ALUNO e PAGINA apresentam apenas os dados que são
relevantes para o escopo deste trabalho.
Figura 5-1 Diagrama ER do esquema
5.1 Autenticação de Aluno
O módulo responsável por implementar todas as funcionalidades de
verificação de autenticação, como citado acima, é o check_login.lib. Esse
módulo exporta três variáveis variáveis globais. São elas:
a) $SessionIdAluno: se estiver vazia, indica que não existe um aluno autenticado.
Caso contrário, ela contém o identificador do aluno que efetuou login (ID_ALUNO
da tabela ALUNO). Portanto, em outro módulo, para determinar se existe aluno
autenticado ou mesmo para identificá-lo, basta acessar essa variável.
31
b) $SessionNomeAluno:
apresenta
o
mesmo
comportamento
que
$SessionIdAluno, porém armazena o nome completo do aluno que está
autenticado. Pode ser utilizada para fins de exibição no HTML.
c) $LoginErrorMsg: se não estiver vazia, indica que o acesso atual representa
uma tentativa fracassada de autenticação, e armazena a mensagem de erro que
deve ser exibida. Por exemplo, se o usuário digitou erroneamente seu nome de
usuário ou sua senha, $LoginErrorMsg irá conter a seguinte mensagem: “Nome
de usuário ou senha inválida”. Essa variável deve ser testada após a chamada da
função CheckLogin() (discutida adiante) para determinar se alguma mensagem
de erro deve ser exibida.
Ainda, nesse módulo, são implementadas três funções principais:
a) CheckLogin(): é a principal função do módulo e é a única que deve ser
chamada por outros módulos. Essa função cria uma nova sessão ou carrega os
dados da sessão ativa. Além disso, verifica as variáveis globais $do_login e
$do_logoff, que são enviadas quando o aluno faz uma requisição de login ou
logoff, respectivamente para efetuar a ação correspondente. O código fonte dessa
função é apresentado na Figura 5-2.
function CheckLogin()
{
global $do_login, $do_logoff; // Passadas por POST
session_start();
// Cria ou carrega os dados da sessão ativa
if ($do_login)
// Efetua o login ou logoff
DoUserLogin();
elseif ($do_logoff)
DoUserLogoff();
}
Figura 5-2 Código da função CheckLogin
b) DoUserLogin(): essa função é responsável por testar as variáveis recebidas em
uma requisição de login para verificar se trata-se de uma autenticação válida. Esse
teste é feito em uma consulta à tabela ALUNO no banco de dados, buscando pelo
nome de usuário e senha informados. Se estiverem corretos, as variáveis de
sessão $SessionIdAluno e $SessionNomeAluno serão criadas e atribuídas
de acordo, e poderão ser verificadas em qualquer ponto posterior da execução do
script para determinar se existe um aluno autenticado. Se a requisição de login
não for bem sucedida à variável global $LoginErrorMsg será atribuída a
mensagem de erro correspondente. O código fonte é apresentado na Figura 5-3.
32
function DoUserLogin()
{
global $user_login, $pwd_login; // Passadas por POST
global $LoginErrorMsg;
if (isset($user_login))
$user_login = trim ($user_login);
if (!$user_login )
// Username e senha não podem ser vazios
$LoginErrorMsg = "Por favor, informe o nome de usu&aacute;rio.";
elseif (!$pwd_login)
$LoginErrorMsg = "Por favor, informe a senha." ;
else
{
$DB = new DB();
$DB->Connect();
// Cria um objeto DB
// Conecta ao banco e executa a consulta
$DB->Query("SELECT id_aluno, nome FROM ".TBL_ALUNO." WHERE username = '$user_login'
and senha = password('$pwd_login')");
if ($DB->num_rows() == 0)
// Se o resultado for vazio dá msg de erro
$LoginErrorMsg = "Nome de usu&aacute;rio ou senha inv&aacute;lido!";
else
list($id_aluno, $nome ) = $DB->next_record();
}
if (!$LoginErrorMsg)
{
// Cria e atribui as variáveis de sessão
session_register("SessionIdAluno", "SessionNomeAluno");
global $SessionIdAluno, $SessionNomeAluno ;
$SessionIdAluno = $id_aluno ;
$SessionNomeAluno = $nome;
setcookie ("ck_username" , $user_login , time() + 60*60*24*365);
global $PHP_SELF;
echo "<script>location.replace(' $PHP_SELF ')</script>";
}
}
Figura 5-3 Código da função DoUserLogin
c) DoUserLogoff(): essa função é executada quando o aluno faz uma requisição
de logoff. É responsável por limpar e destruir as variáveis de sessão
$SessionIdAluno e $SessionNomeAluno, desta forma, quando essas
variáveis forem testadas saber-se-á que não existe aluno autenticado. O código
fonte é apresentado na Figura 5-4.
function DoUserLogoff()
{
global $SessionIdAluno, $SessionNomeAluno; // Variáveis de sessão
$SessionIdAluno = '';
33
$SessionNomeAluno = '';
// Destrói as variáveis
session_unregister("SessionIdAluno");
session_unregister("SessionNomeAluno");
global $PHP_SELF;
echo "<script>location.replace('$PHP_SELF')</script>";
}
Figura 5-4 Código da função DoUserLogoff
5.2 Geração do log
Uma vez que tenhamos a tabela no banco de dados, o mecanismo de
geração do log de acessos é bastante simples. Esse mecanismo é implementado no
módulo log.lib através da função LogAccess. Essa função realiza duas
operações:
a) insere uma entrada correspondente ao acesso atual. O identificador de qual aluno
está acessando é obtido pela leitura da variável de sessão $SessionIdAluno, a
informação de qual página está sendo acessada é conseguida na variável global
do PHP $PHP_SELF, o campo data_hora_in é preenchido com a data/hora atual
do servidor e o campo pagina_from é obtido através da variável global do PHP
$HTTP_REFERER.
b) atualiza a entrada da tabela de log correspondente ao último acesso. Quando uma
nova entrada é inserida, os campos relativos à data/hora de saída da página e
destino ficam em branco. No momento do próximo acesso essas informações são
preenchidas com a data/hora atual e página sendo acessada, respectivamente.
Para identificar a linha correspondente ao acesso atual no próximo
acesso, é armazenada uma variável de sessão com o identificador da linha que
acabou de ser inserida na tabela de log.
Além disso, para evitar que sejam geradas entradas consecutivas
para a mesma página (no caso do aluno utilizar a função reload do browser), é
guardado em uma variável de sessão o identificador da última página acessada.
Assim, as operações citadas acima só serão executadas se a página sendo acessada
for diferente da do último acesso. Na Figura 5-5 é apresentado o código fonte da
função LogAccess().
function LogAccess()
{
34
session_register ("LastIdLog" , "LastPage");
global $LastIdLog, $LastPage ;
global $HTTP_REFERER, $PHP_SELF;
global $SessionIdAluno;
if ($LastPage != $PHP_SELF)
{
$DB = new DB();
$now = time();
$url_from = parse_url($HTTP_REFERER);
$url_from = $pagina_from['path' ];
// Insere o registro correspondente ao acesso atual
$DB->Query ("INSERT INTO log (id_aluno, pagina, data_hora_in, pagina_from) ".
"VALUES ($SessionIdAluno , '$PHP_SELF', $now, ' $pagina_from')");
$url_to = $PHP_SELF;
// Atualiza a hora da saida e o destino do acesso anterior
if (isset($LastIdLog))
$DB->Query("UPDATE log SET data_hora_out = $now , pagina_to = '$pagina_to'
WHERE id_log = $LastIdLog");
$LastIdLog = $DB->last_insert_id();
$LastPage = $PHP_SELF;
}
}
Figura 5-5 Código da função LogAccess
5.3 Relatórios de Análise do log
O módulo responsável pela função de gerar o HTML de exibição dos
relatórios é o módulo report.lib. Esse módulo implementa a classe TReport,
cujas principais propriedades são apresentadas abaixo:
Ø ReportTitle – Armazena o título do relatório, que será exibido no topo da
página.
Ø ColumnHeaders – É um array que armazena os títulos das colunas do relatório;
Ø ReportQuery – Armazena a consulta SQL que será executada para trazer os
dados do relatório;
Ø GroupBy – Indica por qual coluna do resultado da consulta os dados devem ser
agrupados, se for vazia nenhum agrupamento é efetuado;
35
Ø GroupFooterFunction – Define a função que será utilizada para sumarizar os
dados de um grupo. Essa função pode ser qualquer das funções de grupo
suportadas em consultas SQL. Se nenhuma função for definida, não haverá linha
de sumário para os grupos.
Ø GroupFooterCaption – Define o texto que será exibido para a linha do sumário
do grupo.
A classe TReport possui um único método que deve ser acessado
externamente, o método PrintReport(), que é responsável por executar a consulta
ao banco de dados e gerar a saída do relatório no formato HTML. PrintReport()
deve ser chamado após todas as propriedades do objeto terem sido atribuídas de
acordo.
Nas figuras Figura 5-6 a Figura 5-11 são apresentados exemplos de
cada um dos relatórios. Para a emissão dos mesmos foi gerado um caso de teste com
poucos alunos, poucas páginas e alguns acessos.
Figura 5-6 Tempo total de percurso no módulo – Relatório Geral
36
Figura 5-7 Tempo total de percurso no módulo – Relatório Individual
Figura 5-8 Tempo médio de permanência – Relatório Geral
37
Figura 5-9 Tempo de permanência na página – Relatório Individual
Figura 5-10 Tempo médio de permanência por tipo de página – Relatório resumido
38
Figura 5-11 Tempo médio de permanência por tipo de página – Relatório completo
5.4 Conversão do HTML
Foi desenvolvida uma ferramenta para automatizar a operação de
conversão dos arquivos HTML para os arquivos PHP com os scripts embutidos e os
hyperlinks modificados. Essa ferramenta foi desenvolvida no ambiente integrado de
desenvolvimento Borland Delphi 5.
A tela principal do utilitário é apresentada na Figura 5-12, e os itens
apontados são descritos abaixo.
39
B
A
D
C
E
F
G
Figura 5-12 Tela principal do conversor de HTML para PHP
A – Botão “Abrir arquivo”. Ao ser pressionado, exibe uma janela padrão de abertura
de arquivo. É utilizado para abrir o arquivo HTML que se deseja processar.
B – Botão “Salvar arquivo”. Ao ser pressionado, salva o arquivo PHP gerado.
C – Botão “Processar HTML”. Ao ser pressionado, processa o arquivo HTML
previamente carregado embutindo os scripts e alterando as referências dos
hyperlinks.
D – Aba HTML. Quando essa aba está ativa, é apresentado o conteúdo do arquivo
HTML carregado.
E – Aba PHP. Quando essa aba está ativa, é apresentado o conteúdo gerado pelo
processamento do HTML.
F – Área de visualização de código. Nessa área são exibidos os códigos do arquivo
HTML ou PHP, conforme a aba selecionada.
G – Mensagens do parser. Nessa área são exibidas as mensagens geradas pelo
parser do HTML durante o processamento.
40
A utilização da ferramenta é bastante simples. Tudo que o usuário
precisa fazer é:
Ø Pressionar o botão “Abrir arquivo” e selecionar o arquivo HTML que será
processado;
Ø Pressionar o botão “Processar HTML” para efetuar o processamento;
Ø Pressionar o botão “Salvar arquivo” para gravar o arquivo PHP gerado.
Quando o comando “Processar HTML” é disparado, o arquivo HTML
carregado é processado por um analisador sintático para verificar sua integridade.
Durante esse processo todos os erros e avisos vão sendo reportados na área
destinada às mensagens do parser. O parser constrói, então, a árvore sintática
completa do HTML para adicionar as tags dos scripts na posição correta nessa
árvore. É, também, durante esse processo que se faz a alteração do conteúdo das
referências nos hyperlinks, para manter a consistência das mesmas após a mudança
na extensão dos nomes dos arquivos. Durante a análise sintática, quando uma tag
que contém uma referência a outra página do curso é encontrada, essa tag é inserida
na árvore com a referência corrigida. Ao final do processo essa árvore é novamente
transformada em texto, com os scripts embutidos e os hyperlinks alterados.
Os scripts PHP que foram escritos com o propósito de serem
embutidos no HTML posteriormente, foram esquematizados de forma a simplificar ao
máximo essa operação. A melhor maneira possível de ser obtida é separando em três
trechos de código que serão inseridos em pontos diferentes no HTML.
O primeiro trecho, deve ser inserido no início do arquivo,
ser processado pelo servidor antes de iniciar a transferência do arquivo.
parte do código mais importante, é responsável por verificar a autenticação
requisitante esteja autenticado, gravar o log do acesso. Esse trecho de
apresentado na Figura 5-13.
pois deve
Esta é a
e, caso o
código é
<?
require ($DOCUMENT_ROOT.'/lib/path_info.lib.php');
require (CHECK_LOGIN_LIB);
require (UTILS_LIB);
require (LOG_LIB);
CheckLogin();
if ($SessionIdAluno)
LogAccess();
?>
Figura 5-13 Script inserido no início do HTML
O segundo trecho de código deve ser inserido imediatamente após a
tag <body> do HTML. É responsável por testar se existe aluno autenticado e, em
41
caso negativo, ao invés de enviar o conteúdo da página, apresentar a tela de login
(Figura 3-2). Além disso, se o acesso representa uma tentativa mal sucedida de
autenticação, é nesse código que a mensagem de erro é enviada ao usuário. O
segundo bloco de código é apresentado na Figura 5-14.
<?
if (!$SessionIdAluno)
{
ShowFormLogin('form_login', $PHP_SELF);
if ($LoginErrorMsg)
{
echo "<center><font face='verdana, arial' color='red'>";
echo "$LoginErrorMsg<br>";
echo "</font></center> \n";
}
}
else
{
?>
Figura 5-14 Script inserido após a tag <body>
Observe que a última linha do script da Figura 5-14, antes de sair do
modo PHP (tag ?>), contém o caractere de início de bloco do PHP. Após esse código
aparece o conteúdo original da página HTML. Esse conteúdo está dentro do bloco
else que só será transferido se o aluno tiver efetuado login. O último trecho é
inserido imediatamente antes da tag </body> do HTML e não realiza operação
alguma, serve, simplesmente, para manter a sintaxe do PHP correta. Esse código ()
entra, novamente, no modo PHP; fecha o bloco else que ficou aberto e sai do modo
PHP.
<? } ?>
Figura 5-15 Script inserido antes da tag </body>
Na Figura 5-16 é apresentado o exemplo de um arquivo HTML e na
Figura 5-17 como ele ficaria após o processamento.
<html>
<head>
<title>Cap&iacute ;tulo 1</title>
</head>
<body>
<center>
<font face ='verdana, arial'>
<b>Cap&iacute ;tulo 1 - Iniciando o curso</b><br>
<a href='intro.htm'>Voltar para a Introdu&ccedil;&atilde;o</a>
</font >
</center>
</body>
</html>
Figura 5-16 Exemplo de HTML antes da conversão
42
<?
require ($DOCUMENT_ROOT.'/lib/path_info.lib.php');
require (CHECK_LOGIN_LIB);
require (UTILS_LIB);
require (LOG_LIB);
CheckLogin();
if ($SessionIdAluno)
LogAccess();
?>
<html>
<head>
<title>Cap&iacute;tulo 1</title>
</head>
<body>
<?
if (!$SessionIdAluno)
{
ShowFormLogin('form_login', $PHP_SELF);
if ($LoginErrorMsg)
{
echo "<center><font face='verdana, arial' color='red'>";
echo "$LoginErrorMsg<br>";
echo "</font></center> \n";
}
}
else
{
?>
<center>
<font face='verdana, arial'>
<b>Cap&iacute;tulo 1 - Iniciando o curso</b><br>
<a href='intro.php'>Voltar para a Introdu&ccedil;&atilde;o</a>
</font>
</center>
<?}?>
</body>
</html>
Figura 5-17 Arquivo com o script PHP embutido e os links alterados
Observe que o hyperlink que referenciava a página ‘intro.html’ no
arquivo original foi substituído por ‘intro.php’ no arquivo processado.
43
6 Conclusão
Utilizar a Web como tecnologia habilitada a suportar um programa de
EAD ou EDMC é perfeitamente viável, requerendo uma seqüência formal, uma
avaliação dos esforços individuais dos estudantes e resultados em ordem para
orientar o trabalho de tutoria. Um curso de EAD/EDMC deve ser modelado
considerando as novas tecnologias (no caso, a Internet) e o novo paradigma de
modelagem de softwares destinados ao ensino a distância, devendo ser flexível e
capaz de oferecer um caminho próprio para cada perfil pessoal do estudante.
Existem, no entanto, questões educacionais passíveis de discussão,
como: analisar o impacto da educação eletrônica no ensino vigente, analisar as
potenciais opções de educação eletrônica de baixo custo, redefinir o significado do
professor, revisar a formação (certificação) de professores, discutir sobre as formas
de avaliação (incluindo meios de verificar se o trabalho do aluno é original e
autêntico), definição de padrões que garantam a qualidade da educação a distância.
O objetivo deste trabalho foi implementar um ambiente semi-integrado
com o intuito de obter informações estatísticas sobre os acessos de alunos em cursos
de ensino a distância para auxiliar os tutores na análise de comportamento e na
avaliação desses alunos. E, também, possibilitar a visualização dos resultados
extraídos desses dados permitindo a monitoração dos indivíduos submetidos a essa
estratégia de ensino.
O modelo proposto foi avaliado com casos de
resultados satisfatórios. O que não significa, no entanto, que seja
sob qualquer aspecto. Apenas que é uma estratégia satisfatória,
relativamente simples e de fácil instalação em qualquer servidor
utilizar para execução do curso.
teste e apresentou
a melhor estratégia
com implementação
web que se deseje
Como sugestão para trabalhos futuros fica a implementação dos
relatórios referentes aos outros índices citados na Tabela 3-1.
44
Referências Bibliográficas
[ARE 94]
ARETIO, García L. Educación a distancia hoy. Madrid: UNED, 1994.
[AZE 00]
AZEVEDO, Luiz A. O. Análise de Alunos de Sistemas de Ensino via
Internet. Porto Alegre: CPGCC-UFRGS, 2000.
[CAR 98]
CARDOSO NETO, Celso. Conceitos sobre educação aberta continuada
e a distância. Rio de Janeiro: Centro Cultural de Ciência e
Tecnologia / UFRJ, 1998. Disponível em: http://www.cciencia.
ufrj.br/educnet/conceitd.htm em maio/2001.
[GON 96]
GONÇALVES, Consuelo T. F. Quem tem medo de ensino a distância.
Educação a Distância, Brasília, n. 7-8, 1996.
[MAR 97]
MARYLAND INSTITUTE FOR DISTANCE EDUCATION. Models of
Distance Education. USA: University of Meryland, 1997. Disponível
em: http://www.umuc.edu/ide/modlmenu.hmtl em maio/2001.
[MYS 01]
MySQL
Reference
Manual.
Disponível
http://www.mysql.com/documentation em maio/2001.
[NIC 98]
NICOLAO, M.; VICCARI, R.M.; EDELWEISS, N.; OLIVEIRA, J.P.M.
Modelagem Conceitual de Workflow para Cursos na Internet. IX
Simpósio Brasileiro de Informática Educativa – SIBIE ’98, Fortaleza,
CE, 1998. Anais (em CD).
[PHP 01]
PHP Manual. Disponível em http://www.php.net/docs.php em maio/2001.
[SIZ 99]
SIZILIO, Glaucia R.M.A. Estudo de Técnicas de Modelagem de Workflow
Aplicada a Modelagem de Cursos de Educação a Distância. Porto
Alegre: CPGCC-UFRGS, 1999.
[TAP 01]
Determinação de índices e indicadores das trajetórias de aprendizagem
de sujeitos submetidos ao ensino tutorializado assíncrono pela
Internet. Porto Alegre, 2001.
45
em
Download

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL