Grupo F5

     Subject: Programação na Web - grupo F5
        Date: Wed, 15 Apr 1998 18:33:57 -0300
        From: "Flavia Torres" 
Organization: Faculdade de Engenharia Eletrica e da Computacao - UNICAMP
  Newsgroups: feec.posgrad.IA368F
 


Programação na Web

Grupo F5
Antonio Tadeu Maffeis
Marcelo Morandini
Maria Angélica Calixto de A. Cardieri
Maria das Graças Junqueira M Tomazela
Maria Flávia Cunha de Figueiredo Torres

Introdução

    Discutimos em sala de aula os mecanismos de programação mais adequados
para a implementação das funcionalidades do cenário de um "curso sob medida
& prova virtual" [7], já trabalhado anteriormente.
    Consideramos como alternativas de implementação programas CGI, Java,
Java-Servlet, Channels, applets e scripts.

Funcionalidades

1. Compor as disciplinas através de material, exercício, provas e aulas, de
forma distribuída, aplicando ou não técnicas de grupo.

2. Estabelecer perfis para cada curso definido diferente visões.

3. Cadastrar atores com diferentes perfis e níveis de acesso (instrutor,
monitor, alunos, grupos de estudo).

4. Disponibilizar as disciplinas/aulas.

5. Acompanhar o andamento da disciplina.

6. Fornecer feed-back para alunos e professores.

7. Aplicar provas, testes, etc.

8. Corrigir e pontuar a prova pelo próprio sistema através de testes,
Instrutor "ad-hoc", auto-correção (disponibilizar gabaritos para auto
avaliação).

9. Disponibilizar resultados para eventuais consultas.

Implementações das funcionalidades

Funcionalidade 1

    Para o sistema apresentar essa funcionalidade será necessário uma base
de dados que contenha páginas HTML, applets, figuras, gráficos e todo tipo
de informação que será usada pelas matérias do curso virtual.
    Através de forms CGI será apresentada uma lista contendo link para todo
material disponível para uma disciplina. O usuário responsável pela
composição do material irá escolher os links desejados para a composição de
suas aulas, exercícios ou provas e enviará sua escolha através dos forms.
Uma vez escolhido essas informações serão armazenadas na base de dados.
    O uso de forms CGI é justificado pelos seus mecanismos de pesquisa e
pela facilidade de implementação para banco de dados distribuídos. O uso de
Java acabaria sobrecarregando o servidor para realização das consultas nas
diversas bases existentes.

Funcionalidade 2

    Pela implementação dessa funcionalidade ser bastante semelhante com a
anterior, também indicamos o uso de forms CGI.
    Serão apresentadas todas as aulas disponíveis para um curso e o
instrutor irá "montar" seu curso de acordo com a área do aluno. Por exemplo:
no curso de cálculo para Engenharia teremos as aulas 1,2, 3 e 4 e para
Análise teremos as aulas 1 e 4.

Funcionalidade 3

    O cadastramento, assim como as funcionalidades anteriores, será
implementado através de forms CGI com consulta e armazenagem de dados na
base.

Funcionalidade 4

    Como os curso disponibilizados são sob medida sua demanda é pré-definida
e os perfis de seus usuários também. Assim poderiam ser criados channels
para cada curso disponível.
    O uso de channels diminuiria muito o tráfego na rede e tornaria seu
acesso pelos usuários muito mais rápido. A identificação do perfil do aluno
seria feita no momento da "assinatura" do channel, através de forms CGI,
onde os campos de preenchimento seriam a identificação do aluno e a escolha
da disciplina dentro da sua área.

Funcionalidade 5

    Ao final de cada aula ou etapa da disciplina o aluno deverá preencher um
questionário com perguntas gerais sobre o tema abordado. Esse questionário
será apresentado na forma de forms CGI.

Funcionalidade 6

    Essa funcionalidade deve ser implementada por e_mail ou news, não
havendo a necessidade de uma programação específica para sua implementação.

Funcionalidade 7

    As questões serão implementadas em Java applets para poder existir um
controle do tempo de resposta disponível para o aluno.

Funcionalidade 8

    No caso das provas serem em forma de teste, sua correção poderá ser
feita pelo próprio sistema uma vez que o instrutor forneça o gabarito. Um
programa CGI pode ser o responsável por receber as repostas do aluno, fazer
a correção e calcular sua nota.
    Caso as provas sejam dissertativas, um outro form CGI será montado para
exibir a resolução da prova para o instrutor e permitir a correção e
pontuação. Antes de acessar a prova o instrutor deverá entrar com sua
identificação através de "User Authorization" do CGI.

Funcionalidade 9

    A requisição de um gabarito deve ser feita perante identificação através
de "User Auhorization" do CGI. Após a identificação serão apresentadas
páginas HTML com os resultados das questões.

Conclusão

    Optamos pelo uso de programas CGI na maioria das implementações por ser
uma tecnologia já bastante difundida e conhecida e pelas vantagens que
oferece.

    Uma grande vantagem é que os programas CGI podem ser escritos em
diversas linguagens de programação, como C/C++, Fortran, PERL, TCL, Any Unix
shell, Visual Basic e AppleScript. Dessa maneira, torna-se mais fácil
adaptar o programa ao sistema já existente.

    O uso da linguagem Java acabaria sobrecarregando o servidor no caso do
uso de base de dados distribuídas. Pois o servidor seria o responsável por
fazer toda comunicação entre o cliente browser e os dados armazenados.

Bibliografia

[1] CGI: The Common Gateway Interface for Server-side Processing - The Web
Developer's Virtual Library, 1997

[2] Overview of Applets in The Java Tutorial: Object-Oriented Programming
for the      Internet, 2nd Ed.Mary Campione, Kathy Walrath java.soft.com,
March 1998

[3] Stretching your Web $$$: What lies after HTML and CGI? Mini Srivathsa
     Javology 1(3), November 1996.

[4] Dynamic WebPages in Java: Servlets Benoît Marchal
     Digital Cat's Java Resource Center, November 1997.

[5] Java beyond the browser: The channel metaphor Bill Venners
     JavaWorld 1(10), December 1996.

[6] Prelude to CGI em Introduction to CGI/Perl, Capítulo 1
     Steven E. Brenner, Edwin Aoki
     M&T Books, 1996

[7] Formatos de Documentos na Web, Pimenta, Marcia de Fátima e Soares,Márcio
Vieira, abril 1998.
     Tópicos de Engenharia de Computação (IA368F)

ricarte@dca.fee.unicamp.br

Last modified: Wed Apr 29 17:12:03 BRA 1998