Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. A Etapa Atual do Desenvolvimento do Sistema ENSINET* Eduardo Menna da Silva1, Eduardo Nunes Ferreira Bastos1, Antônio Carlos da Rocha Costa1, Graçaliz Pereira Dimuro1 1 Escola de Informática – Universidade Católica de Pelotas (UCPel) Caixa Postal 15.064 – 96.010-000 – Pelotas – RS – Brasil {edumenna,eduardob,rocha,liz}@ucpel.tche.br Abstract. This paper describes the present stage in the development of the ENSINET system, a web-based learning enviroment that is being constructed at UCPel. The paper focus on the adapted anchitecture, including conceptiol model, presenting alternatives of future work. Resumo. Este artigo descreve de forma sucinta a etapa atual do desenvolvimento do sistema ENSINET, um ambiente de apoio ao ensino semipresencial utilizando a Internet, em construção na UCPel. É dado enfoque à arquitetura adotada, incluindo ilustrações de diagramas e modelos, e apresentadas perspectivas futuras para o sistema. 1. Introdução O Projeto ENSINET/UCPel – Ensino Integrado dos Fundamentos Matemáticos da Computação via Internet [Dimuro et al. 1998; 2000], conduzido pelo Grupo de Programação na Web da UCPel, inicialmente objetivava a experimentação de uma metodologia de integração curricular entre matérias de matemática e fundamentos teóricos, no currículo do curso de Ciência da Computação. Uma das metas era a de promover o desenvolvimento autônomo dos alunos, através de atividades integradas semipresenciais, apoiadas em um ambiente baseado na Internet e com o auxílio de materiais didáticos interativos desenvolvidos. Dentro desta perspectiva, foi desenvolvido o ambiente ENSINET, segundo a concepção de software livre. O ambiente ENSINET, assim como tantos outros sistemas de apoio ao ensino baseado na Web (AulaNet, WebCT, ROODA, Teleduc, etc.), disponibiliza recursos e ferramentas da Internet, integradas em um único ambiente. Através desse tipo de sistema, o professor pode propor atividades não-presenciais, disponibilizar material de apoio para estas atividades, conduzir discussões, analisar as atividades realizadas, publicar avisos, apresentar conteúdos ou aplicações em forma de páginas da Web, etc. O ENSINET procura se diferenciar daqueles outros sistemas em função de: (i) ser um sistema de código aberto e livre, disponível para qualquer instituição interessada; (ii) ser customizável, fato este que facilita e flexibiliza o uso do ambiente, não impondo um padrão para apresentação e utilização dos materiais educacionais disponibilizados. * Este trabalho tem financiamento do CNPq e FAPERGS. Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. O sistema ENSINET foi implementado no ZOPE - Z Object Publishing Environment [ZOPE-Corporation 2003], um servidor de aplicações web multiplataforma integrado a um banco de dados transacional orientado a objetos, e para construção dos módulos, foi utilizada a linguagem de programação Python [Python Software Foundation 2003], a qual encapsula na sua estrutura de classes, o funcionamento interno da maioria das funcionalidades avançadas necessárias à construção de um website, como: renderização de documentos dinâmicos, reutilização e transparência de código, aspectos de segurança, entre outras. Atualmente, está em desenvolvimento a segunda versão deste sistema. Foram adaptadas algumas funcionalidades oriundas da primeira versão, e construídas novas ferramentas e módulos, numa abordagem 100% orientada a objetos. O site do projeto e do sistema em sua primeira versão podem ser acessados, respectivamente, em http://gmc.ucpel.tche.br/ensinet e http://ensinet.ucpel.tche.br. Na seção 2 do presente artigo, apresenta-se uma visão geral do sistema. Na seção 3, é feita uma abordagem à camada denominada ZTVM, descrevendo aspectos de seu Banco de Objetos e do framework ZOPE. A seção 4, apresenta conceitos sobre a camada Z-ServAprend, dando ênfase aos recursos estruturais e funcionais do ambiente. As conclusões e considerações finais encontram-se na seção 5. 2. Descrição do Sistema O sistema ENSINET está sendo desenvolvido com base em uma arquitetura robusta que permite aos desenvolvedores implementarem módulos independentes, de forma rápida e fácil. Estes módulos, denominados produtos, são programados na linguagem Python e inseridos no contexto do ZOPE, para publicação na forma de conteúdo HTML na web. A criação desses módulos possibilitou a implementação do sistema em camadas, tornando o trabalho de criação e atualização muito mais ágil e eficaz. Foram modeladas várias camadas, como ilustrado na figura 2.1 e explicado nas seções seguintes. Figura 2.1 Arquitetura do sistema ENSINET Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. 3. Camada ZTVM Esta camada, denominada Z Modelo Temporal de Versões, é a camada de mais baixo nível do sistema, e contém dois componentes. O primeiro representa os objetos fundamentais providos pelo ZOPE, enquanto o segundo descreve os objetos temporais versionados e monitorados e de acesso. 3.1. Componente ZOPE Os objetos básicos fornecidos pelo framework ZOPE permitem executar tarefas distintas, e assumem um desses três papéis: 1. Conteúdo: Objetos do ZOPE são como documentos, imagens e arquivos com tipos diferentes de dados textuais e binários. 2. Apresentação: são fornecidas linguagens de programação, DTML e ZPT, para facilitar o gerenciamento de conteúdo. 3. Lógica: são disponibilizadas algumas linguagens de programação como ZPT e Python. A idéia é separar a lógica de programação da interface que será mostrado para o usuário final. Com esses tipos definidos de papéis é possível criar pequenas aplicações, mas com o intuito de criar uma ferramenta mais flexível e que atendesse as necessidades do sistema, fez-se necessária à extensão desses objetos, criando-se assim, uma verdadeira API de desenvolvimento. Nesse contexto, o sistema ENSINET foi completamente implementado numa abordagem orientada a objetos, utilizando-se classes Python e para persistir os dados, o Banco de Dados Orientado a Objetos Transacional do ZOPE, denominado ZODB – Z Object DataBase. Com estes módulos é possível: • Instanciar o produto ENSINET, com todos os outros módulos do sistema criados e papéis e permissões sobre os objetos já previamente configurados; • Definir métodos comuns a todas as outras classes de aplicação, como por exemplo: verificar se usuário tem permissão sobre um determinado objeto, definir a barra de navegação do usuário no ambiente, enunciar os atributos essenciais e específicos do objeto, entre outras características; • Definir o tratamento de exceções, por uma interface amigável; • Utilizar recursos adicionais, como listas e dicionários persistentes, sem se preocupar com o mecanismo de persistência do banco de dados. 3.2. Componente Banco de Objetos TVM Este componente foi criado com a finalidade de estender as funcionalidades providas por objetos básicos do ZOPE, adicionando aspectos de tempo e versão. Foi proposta uma modificação ao Modelo Temporal de Versões [Moro 2001], criando-se conceitos de objeto temporal não-versionado, temporal versionado e não temporal versionado, denominado de Modelo de Objetos Temporais Versionados [Nieves 2003], ilustrado na figura 3.2.1. Este modelo baseia-se nos conceitos de versão e tempo para armazenar as versões do objeto, os seus tempos de vida, e o histórico das alterações feita nos valores Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. dos atributos e relacionamentos dinâmicos. Dessa maneira, o tempo é associado ao objeto, à versão, aos atributos e aos relacionamentos. A proposta do Modelo de Objetos Temporais Versionados [Nieves 2003] ainda não foi implementada para uso no ambiente, mas é de extrema importância para ferramentas futuras de monitoração e análise, visto que será possível, por exemplo, gerar estatísticas de acesso a uma determinada disciplina ou avaliar de forma mais criteriosa o uso do sistema pelos alunos. Figura 3.2.1 Hierarquia de classes do modelo TVOM Foram realizados estudos preliminares e conceituações sobre uma monitoração de usuários informada [Miranda 2003a], para implantação no sistema ENSINET. Essa monitoração permitirá, por exemplo, a inclusão de sites internos adaptativos, como proposto em [Dimuro et al. 2002]. A proposta de um modelo conceitual básico [Miranda 2003a], apresenta uma idéia de monitoração baseada em contextos de utilização, sendo caracterizado não apenas pela monitoração da navegação no ambiente, acesso aos objetos do sistema ou trocas de documentos entre usuários, mas por uma análise do ponto de vista do usuário, visando determinar as operações que são feitas por um usuário em um determinado contexto. Isto leva a cabo uma nova experiência: determinar o comportamento dos usuários procurando compreendê-lo do ponto de vista educacional, e não como é feito na maioria dos outros sistemas, onde é analisado pelo ponto de vista do administrador, através de logs de acesso, por exemplo. Todos estes modelos, idéias, e propostas estudados servem como uma base sólida para modelagem e implementação do modelo de objetos temporais e versionados, a ser realizado na próxima etapa de desenvolvimento do sistema ENSINET. 4. Camada ZServAprend Esta camada denominada Z Serviços de Aprendizagem, contém três componentes que se correlacionam para prover ferramentas e recursos disponibilizados no ambiente, bem como: banco de usuários, banco de componentes de aprendizagem e uma API de Serviços de Aprendizagem. Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. 4.1 Componente Banco de Usuários Todas as aplicações para web precisam administrar a segurança. Administrar a segurança significa controlar quem pode acessar a aplicação, e determinar o que cada usuário pode fazer. Segurança não é uma questão que pode ser adicionada para proteger o sistema. Pelo contrário, segurança deve ser um importante elemento do projeto que se deve levar em conta quando constrói aplicações. ZOPE fornece na sua distribuição padrão um objeto denominado Diretório de Usuários, onde é possível a criação de pastas de usuários. Um usuário define uma conta de usuário. Cada conta de usuário é formado por um nome, senha, papel (especifica o tipo de usuário) e opcionalmente, dados adicionais sobre quem utiliza o ZOPE. No sistema ENSINET foi imprescindível à implementação de um novo diretório de usuários, para adicionar novos conceitos aos usuários básicos providos pelo ZOPE. O usuário ENSINET possui métodos e atributos próprios, como: contexto atual no sistema, histórico do uso do sistema, perfil acadêmico e portfólio pessoal (espaço reservado para armazenar dados individuais). Para este componente foi criado um módulo, denominado ZUser, cuja finalidade é prover um mecanismo de suporte aos usuários do ambiente. Foram especificados métodos que fazem o gerenciamento de usuários e a conexão com o banco de dados ZODB e papéis que delimitam a contextura do ambiente. A seguir é explicado cada papel: • Administrador. Possui todo o controle do sistema, ficando a cargo dele gerenciar o diretório de usuários, disciplinas, entre outras ferramentas disponíveis; • Professor. Gerencia os conteúdos apresentados aos alunos e monitores, como, por exemplo: mural de avisos, atividades, fórum de discussões, downloads/uploads, etc; • Aluno. Possui permissão de visualização de conteúdos expostos pelo professor e de recursos disponibilizados na disciplina; • Monitor. Representa um aluno com mais privilégios, estando apto a gerenciar alguns módulos da disciplina; • Grupo. É um conceito de composição de usuários alunos e professores, que participam de uma determinada tarefa; • Visitante. É um usuário não cadastrado que pode apenas acessar e visualizar conteúdos previamente estabelecidos pelos administradores do sistema e professores das disciplinas. 4.2 Componente de Objetos de Aprendizagem O banco de componentes de aprendizagem representa os recursos disponibilizados no ambiente, e serve como base para construção das funcionalidades do ambiente na camada superior. Foram implementados vários módulos independentes, não limitando sua utilização ao sistema ENSINET. A seguir é apresentado cada um desses recursos. • ZAtividade. Representa a relação de tarefas propostas pelo professor com as respectivas datas de entrega. • ZMural. Realizado o cadastro de avisos com uma descrição e uma URL. Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. • ZFórum. Permite a criação de fórum de discussões entre os alunos. • ZAvaliação. Registradas as avaliações dos alunos cadastrados. • ZColeção. Espaço onde são disponibilizados os materiais de apoio que os alunos podem consultar para aprimorarem os conceitos trabalhados na disciplina. • ZDownloads. Área que fornece aos alunos acesso a arquivos relacionados com o conteúdo da disciplina; • ZUploads. Opção que permite que o aluno envie os trabalhos realizados para o professor. • ZLink. Relação de link’s para páginas com conteúdos relacionados com a disciplina e para aplicações integradas. Numa abordagem mais abstrata, pode-se compreender estes recursos como sendo Objetos de Aprendizagem (OA) [IEEE 2002] – entidade digital que pode ser usada, reusada ou referenciada durante a aprendizagem suportada pelo ambiente. Objetos de Aprendizagem são elementos de um novo tipo de ensino que utiliza a Internet como meio de informação. Atrelado a este fato, e por estar fortemente ligado a área da Computação, os OAs são fundamentados no paradigma de orientação a objetos. Como princípio, este paradigma valoriza principalmente a criação de componentes (objetos) que podem ser reusados em muitos contextos. E este é o objetivo dos OAs, sendo uma fonte de informação flexível abrangendo as mais diversas áreas e contendo referências distintas dependendo do ponto de vista que for analisado: projetistas educacionais podem criar pequenos componentes educacionais, que podem ser reusados várias vezes em diferentes contextos de aprendizagem [Miranda 2003a]. Um Objeto de Aprendizagem é um componente dividido em duas partes, como ilustrado na figura 4.2. Um arquivo, ou então um ponteiro para um outro arquivo, e um descritor. O arquivo contém dados na forma binária podendo ser uma imagem, texto, etc. ou então um ponteiro que referencia um endereço que contenha o dado. Já o descritor é responsável por descrever uma serie de informações a respeito deste arquivo. Existem alguns padrões que especificam as informações necessárias para compor um OA em ADLnet [ADL 2002; Miranda 2003b], mas este não é o foco do presente artigo. Figura 4.2 Pacote básico do Objeto de Aprendizagem Para a construção deste módulo foi desenvolvido um produto em ZOPE capaz de armazenar, em um repositório de dados, os objetos de aprendizagem instanciados no sistema ENSINET. Este repositório de dados serve como fonte de pesquisa não só para o ambiente, mas também a acessos externos. A flexibilidade do sistema gerenciador dos OAs esta relacionado com as várias definições que um arquivo pode receber ao estar armazenado no repositório de dados. Da maneira que foi implementado este módulo, cada arquivo pode ser associado a mais de um descritor. Esta flexibilidade do OA Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. permite que analisadores descrevam de forma distinta um mesmo arquivo, já que podem possuem pontos de vista que se divergem por não se tratar da mesma área de atuação ou qualquer outro motivo. O recurso que permite a instanciação de vários descritores possibilita que um arquivo ou fonte de informação possa ser encontrado no repositório, desvencilhando a informação da descrição inicialmente atribuída. O módulo Objeto de Aprendizagem desenvolvido pode ser agregado a qualquer sistema também desenvolvido em ZOPE e tem em sua estrutura interna uma classe denominada “ClasseDescritor” que é responsável pelo descritor do Objeto. Além da classe, este módulo possui uma interface de gerenciamento dos Objetos de Aprendizagem e métodos que trabalham com instanciação, edição, remoção, gerenciamento e busca dos OAs. O método de busca de Objetos possui campos referentes a todos as informações contidos no descritor do objeto. Desta maneira, as informações de pesquisa são buscadas nos descritores persistentes dentro do repositório de dados sendo retornando os Objetos de Aprendizagem que contém parte ou toda a informação inicialmente pesquisada. Como perspectiva futura para o incremento do produto Objeto de Aprendizagem, esperam-se tornar ainda mais flexível a questão dos descritores referente os arquivos. A intenção é criar descritores de grupos de arquivos sendo possível assim, a seleção de um conjunto de arquivos que compreenderão a um mesmo descritor em uma determinada instanciação do objeto. Outro objetivo futuro é tornar dinâmica a formalização do descritor. Em outras palavras, o que se pretende é fazer com que sejam acrescidos novos campos de informação do descritor conforme o administrador do repositório de OA sinta necessidade. Este processo desencadearia modificações na estrutura de do(s) descritor(s) que cada Objeto de Aprendizagem deixando em aberto para complementos futuros. A implementação deste descritor dinâmico desvencilharia o atual módulo do OA a um padrão de e-learning como o especificado em ADLnet [ADL 2002]. 5. Considerações Finais O ENSINET, sem dúvida alguma, pode se tornar uma ferramenta muito importante, não apenas para o curso de Informática, como também para outras escolas e universidades. Pode-se dizer que, este sistema vem suprir uma necessidade generalizada do ensino em nível de graduação, que é a carência da integração curricular, tornando-se uma peça fundamental para a consolidação da metodologia de integração curricular das diversas áreas do conhecimento, assim como a integração de atividades de ensino e pesquisa em diferentes níveis de ensino e a integração de atividades internas e externas (extensão). A utilização dos recursos da Internet associada às vantagens oferecidas por softwares livres, como ZOPE e Python, contribui de forma satisfatória para o ensino integrado, destacando-se a experiência de ensino semipresencial. Espera-se que, com a utilização de software livre, o desenvolvimento e utilização do sistema possa ser compartilhado com a comunidade ZOPE, visando à ampliação de suas funcionalidades e de sua aplicação como ferramenta de apoio ao ensino semipresencial. As próximas etapas do trabalho envolverão o desenvolvimento de recursos para monitoração e avaliação do ambiente, a ser realizada de forma continuada e interativa. Anais do II Simpósio de Informática da Região Centro / RS – Santa Maria, agosto de 2003. Isso possibilitará a construção de ferramentas importantes para auxiliar no processo de avaliação das interações realizadas entre os usuários e os objetos do sistema. Referências Bibliográficas ADL. Advanced distributed learning iniciative. Disponível em: http://www.adlnet.org. Acesso em: maio 2002. Dimuro, G. P., Costa, A. C. R. and Rodrigues, F. P. M. (1998) “Projeto ENSINET”, ESIN/UCPel, http://gmc.ucpel.tche.br/ensinet, May. Dimuro, G. P., Costa, A. C. R. and Rodrigues, F. P. M. (2000) “Uma experiência de ensino integrado dos fundamentos matemáticos da ciência da computação”, Revista Brasileira de Informática na Educação, n. 7, p. 65-75. Dimuro, G. P., Palazzo, L. A. M., Costa, A. C. R. and Miranda A, R. M. Sites Internos Adaptativos para o Sistema Ensinet, In: III Workshop de Software Livre, Porto Alegre, SBC, 2002. p.102-105. IEEE. IEEE learning technology standards committee (ltsc). Disponível em: http://ltsc.ieee.org. Acesso em: abril 2003. Miranda, R. M. “Monitoração de Usuários Informada: Conceituação e Estudo Preliminar para sua Implantação no Ambiente ENSINET”, Porto Alegre, PPGC/UFRGS, 2003. Miranda, R. M and Costa, A. C. R. (2003) “GROA: Um Sistema de Gerência de Repositórios de Objetos de Aprendizagem”, In: X Semana Acadêmica, PPGC/UFRGS, 2003, Porto Alegre. Disponível em: http://www.inf.ufrgs.br/pos/ppgc/semanaacademica/artigos2003/1291.pdf. Acesso em: julho 2003. Moro, M. M. “Modelo Temporal de Versões”, Porto Alegre, PPGC/UFRGS, 2001. Nieves, I. V. and Costa, A. C. R. (2003) “Estudo e Adaptação de um Modelo de Objetos Temporais Versionados para o Sistema ENSINET”, ESIN/UCPel, http://gmc.ucpel.tche.br/ensinet, May. Python Software Foundation (2003), http://www.python.org, May. ZOPE-Corporation (2003) ZOPE Community, http://www.zope.org, May.