Desenvolvimento de um Software Livre para Manipulação de Bases de URL’s e Geração Automática de Páginas WWW

 

Orientador: Roberto Marcondes Cesar Junior

Aluno: André Casado Castaño

 

MONOGRAFIA DE MAC 499

TRABALHO DE FORMATURA

 

 

Resumo do plano inicial

 

O projeto consiste na implementação de um programa, em linguagem PERL, para a criação de sites contendo revisões temáticas de recursos encontrados na Internet  como o Revision (http://www.ime.usp.br/~cesar/revision), um site que possui uma base de endereços organizada e comentada relacionada com visão computacional e tópicos ligados a esse assunto. O software criado deverá ser bastante versátil, permitindo outras aplicações, como a organização de depositórios de programas e arquivos desenvolvidos por grupos de pesquisa e mantidos disponíveis no WWW.

Nesse tipo de site existem várias páginas, cada uma delas representando um tópico (indicado por uma palavra-chave) diferente. Nessas páginas são encontrados apontadores para outros sites cujo conteúdo esteja ligado ao tópico (tema de interesse) em questão. Tais apontadores são classificados quanto à qualidade do seu conteúdo, podendo também possuir um comentário específico destacando alguma peculiaridade. Além disso, os apontadores destacarão palavras-chave responsáveis por indicar as páginas ligadas a eles.

Devido à grande quantidade de dados existente nas páginas desse tipo de site, é praticamente impossível um gerenciamento manual dos arquivos html que o formam. O site Revision, por exemplo, possui mais de 300 apontadores, mais de 70 palavras-chave e mais de 100 documentos html. Além disso, para cada novo apontador inserido, devem ser atualizadas todas as páginas para as quais ele apresenta assuntos relacionados.

O programa gerenciador deverá ser capaz de receber apenas os dados básicos de um determinado apontador (endereço na Internet, palavras-chave relacionadas, nível de relevância com cada um dos temas, comentários, etc.) que se deseja acrescentar e automaticamente modificar todos os arquivos que deverão possuir esse apontador em seu conteúdo. Será importante que o  gerenciador funcione de forma clara, facilitando a boa manutenção do site pelo seu webmaster.

O programa será criado na forma de freeware (software livre), sendo distribuído posteriormente.

 

Resumo do progresso realizado

 

O trabalho realizado foi quase integralmente utilizado no desenvolvimento dos dois softwares ligados a esta iniciação científica.

O programa RevieWWW funciona como esperado.

A partir de testes realizados com os dados do site Revision, o RevieWWW já está gerando todas as páginas do site com uma ótima eficiência e com resultados bastante satisfatórios.

O HTMatLab recebeu algumas novas funções e também foram melhoradas as documentações das funções já existentes.

Ambos os programas já estão incluindo a licença GPL para que estejam oficialmente sendo distribuídos como software-livre.

 

1 - Introdução

 

O plano inicial contido no relatório inicial deste projeto de Iniciação Científica previa, em linhas gerais, os seguintes pontos a serem desenvolvidos:

Meses 1 a 2: Projeto do software. Familiarização com o problema de criação de um software livre. Estudo da Bibliografia;

Meses 3 a 8: Programação do software projetado. Primeiros testes;

Mês 6: Elaboração do relatório parcial;

Meses 9 a 11: Teste e validação. Implementação de ajustes finais. Estabelecimento de estratégias de distribuição;

Mês 12: Elaboração do relatório final.

 

Neste relatório podem ser encontrados detalhes sobre o desenvolvimento do programa principal deste projeto de Iniciação Científica, bem como do Toolbox HTML para MATLAB que está sendo desenvolvido juntamente com o orientador.

 

 


2 - Detalhes do progresso realizado

 

2.1 - RevieWWW

 

2.1.1 - Especificação e implementação do sistema

 

Novamente, apresentamos o diagrama que serviu de base no desenvolvimento do programa RevieWWW na Figura 1:

 


Figura 1: Diagrama de blocos do programa RevieWWW.

 

O software RevieWWW foi desenvolvido basicamente utilizando-se o poder da linguagem Perl para manipular textos e expressões regulares (Larry Wall, 1996 e Sriram Srinivasan, 1997). Comparada com o programa anterior implementado em Matlab, esta nova versão baseada na linguagem Perl mostrou facilidade e poder muito maior na montagem dos códigos html das páginas geradas (Clinton Wong, 1997).

A versão feita em Matlab anteriormente pelo orientador deste projeto havia sido implementada de maneira específica para o site Revision. Além disso, todos os códigos html que formavam as páginas estavam misturados com o próprio código do programa gerador.

Esta nova versão foi feita tentando separar, do código do programa, o código html das páginas da saída, trazendo assim uma maior versatilidade ao programa que, atualmente, possui uma facilidade muito maior para que possam ser feitas várias modificações nos códigos das páginas que serão geradas.

O software apresentado neste projeto foi feito utilizando-se a linguagem Perl sob Windows 98. O interpretador da linguagem Perl para Windows pode ser encontrado no endereço http://www.perl.com.

Apesar disso, com algumas pequenas modificações, o programa pode ser utilizado sob Linux tendo as mesmas características de funcionamento da versão para Windows.

A nova versão do RevieWWW apresentou ótimos resultados com relação à eficiência, principalmente comparando-se com a versão anterior feita no Matlab.

A versão funcional do programa pode ser encontrada no endereço: http://www.linux.ime.usp.br/~casado/ic.html. Nesta página são apresentadas algumas informações relativas ao projeto, bem como documentação a seu respeito e exemplos de páginas geradas com o programa.

 


2.1.2 - Funcionamento do programa

 

 

O programa RevieWWW baseia-se em 4 arquivos:

 

·                    reviewww.pl - possui o código do programa.

·                    inicio.txt - armazena a localização dos diretórios de entrada e saída e algumas outras informações.

·                    layout.dad - guarda boa parte dos códigos que serão utilizados nas páginas geradas.

·                    dados.dad - base de dados com as informações que serão utilizadas na geração das páginas.

 

 

Para rodar o programa, basta entrar no diretório onde o programa foi copiado e digitar na linha de comando: perl reviewww.pl

Quando o programa começa a funcionar, ele procura o arquivo inicio.txt no mesmo diretório onde está o arquivo reviewww.pl e verifica se os diretórios de entrada e saída apresentados existem. Em caso afirmativo, o programa irá verificar a existência dos outros arquivos no diretório de entrada e, a partir disso, começará efetivamente a geração das páginas.

O conteúdo dos arquivos layout.dad e dados.dad são dependentes, visto que, no arquivo layout.dad, existem variáveis (palavras começadas pelo símbolo $) que são trocadas no momento da geração das páginas por informações específicas de cada entrada no arquivo dados.dad. O exemplo a seguir ilustra seu funcionamento.

Seja o arquivo dados.dad que contém apenas as seguintes informações:

$URL: {http://www.usp.br}

$TITLE: {USP}

$KEYWORDS: {Universidade}

$CIDADE {São Paulo}

 

::

 

$URL: {http://www.umc.br}

$TITLE: {UMC}

$KEYWORDS: {Universidade}

$CIDADE {Mogi das Cruzes}

 

No arquivo layout.dad, podemos usar a variável $CIDADE no trecho onde o programa RevieWWW fará a troca da variável pela informação de cada link:

 

codigo dos links:

{

<TR>

<TD WIDTH="50%">

<a href="$URL"> $TITLE </a> </TD>

<TD WIDTH="10%" VALIGN="MIDDLE">

<P ALIGN="CENTER">

<FORM>

<SELECT NAME="sitepub">

<OPTION VALUE=""> CIDADE:

<OPTION VALUE=""> $CIDADE

</SELECT>

</FORM>

</TD>

<TD WIDTH="20%" VALIGN="MIDDLE">

GENERAL COMMENTS

</TD>

</TR>

}

 

trocas: {$CIDADE}

 

A partir do exemplo acima, podemos notar que a variável $CIDADE indicada na linha trocas {$CIDADE} será trocada no trecho codigo dos links.

Desta forma, podemos acrescentar vários tipos de informações para cada link sendo apenas necessário atribuir essas informações a determinadas variáveis e incluir essas variáveis no arquivo layout.dad de modo que essa variável se apresente da maneira como se desejar. Esse fato representa uma melhoria considerável em relação ao programa original.

É importante dizer que as variáveis $URL, $TITLE, $KEYWORDS, $NEXT e $PREVIOUS possuem nome reservado pelo programa. $URL, $TITLE e $KEYWORDS são atributos necessários a todas as entradas de dados existentes no arquivo dados.dad, enquanto $NEXT e $PREVIOUS são palavras reservadas para se personalizar as teclas de acesso às páginas “adjacentes” a determinada página.

Vejamos, a seguir, descrições mais detalhadas de cada um dos arquivos que compõe o programa RevieWWW. Para facilitar a visualização, serão colocados comentários em itálico, sempre iniciados pelo símbolo #. Os exemplos utilizados aqui são retirados dos arquivos que geram o site Revision. Vale lembrar que, para o bom funcionamento do programa, não devem ser colocados comentários nos arquivos inicio.txt, dados.dad e layout.dad.

 

2.1.3 - O arquivo inicio.txt

 

O arquivo inicio.txt é composto das seguintes informações:

dir dos arquivos de entrada = #Caminho completo do diretório de entrada.

dir dos arquivos estaticos = #Caminho completo do diretório dos arquivos estáticos.

dir de saida = #Caminho completo do diretório onde serão colocados os arquivos gerados pelo programa.

dir dos arquivos semiestaticos = #Caminho completo do diretório dos arquivos semi-estáticos.

arquivos semiestaticos no menu esquerdo = #Escolher S se os arquivos semi-estáticos tiverem ligações diretas no menu de atalho rápido ou N se não tiverem.

[ordem de ligacao]

#Aqui devem ser colocados os nomes dos arquivos semi-estáticos, um em cada linha, na ordem que eles devem ser ligados pelos apontadores NEXT PREVIOUS.

 

2.1.4 - O arquivo layout.dad

 

O arquivo layout.dad armazena boa parte dos códigos html utilizados na geração das páginas. Dessa forma, esse é o arquivo que deve ser modificado caso se deseje alterar a aparência das páginas, bem como a forma como as informações serão dispostas nas páginas.

O arquivo está dividido em trechos identificados por um nome código seguido de “:”. Cada nome código será tratado como uma espécie de variável que armazenará todo o conteúdo dentro das chaves “{“ “}” correspondentes.

Vejamos, a seguir, quais trechos formam o arquivo:

 

codigo introducao next previous:

{

<hr>

<table border="0" width="84%">

  <tr>

$CODIGO #A variável $CODIGO será trocada pelos códigos existentes em codigo next e codigo previous que vem a seguir no arquivo layout.dad.

  </tr>

</table>

<hr>

<hr>

}

 

codigo previous:

#A variável $PREVIOUS é reservada pelo programa. Essa variável será substituída pelo nome do arquivo que será ligado como previous do arquivo atual.

{  <td><a href="$PREVIOUS" target=""><img src="iconani.gif" border=0 width=30 height=30>Previous Page</a></td>}

 

codigo next:

{<td>

    <div align="RIGHT">

#A variável $NEXT é reservada pelo programa. Essa variável será substituída pelo nome do arquivo que será ligado como next do arquivo atual.

      <a href="$NEXT" target=""><img src="iconani.gif" border=0 width=30 height=30>Next Page</a>

    </div>

  </td>}

 

 

#O código contido no campo header será o código inicial de todas as páginas geradas pelo programa.

header:

{<html>

<head>

<title> $TITLE </title>

<script language="JavaScript">

<!--

function MM_jumpMenu(targ,selObj,restore){ //v3.0     eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

  if (restore) selObj.selectedIndex=0;

\}

//-->

</script>

</head>

<body text="#000000" link="#0000ff" vlink="#800080" background="webbk.gif">}

 

#Aqui será colocado o código do menu esquerdo de atalhos diretos para todas as páginas geradas pelo site.

tabela esquerda:

{<table border="0" width="84%">

  <tr> 

    <td VALIGN="TOP" BGCOLOR="#ff0000" HEIGHT=170 align="LEFT" WIDTH="23%">

      <P ALIGN="CENTER"><A HREF="http://www.interjournal.org/"><IMG SRC="cover.jpg" BORDER=0 ></A></P>

      <I><FONT COLOR="#000080">

      <H1 ALIGN="CENTER">&nbsp;</H1>

      </font></I>

      <H1 ALIGN="CENTER"><A HREF="revision.htm" target="">ReVision</A></H1>

      <FONT COLOR="#000080">

      <P>&nbsp;</P>

      </FONT>

      <P>&nbsp;</P>

      <P>&nbsp;</P>

      <FONT COLOR="#000080"> 

      <P>&nbsp; </P>

      </FONT>

      <h3 align="CENTER"><font color="#0033FF">Go Directly!</font></h3>

      <form name="dropdown">

        <select name="menu1" onChange="MM_jumpMenu('parent',this,0)">

       $OPTIONS #A variável $OPTIONS será trocada por todas as opções, ou seja, todos as páginas que possuirão um campo no menu de atalhos diretos.

        </select>

      </form>

    </td>}

 

#Este é o código inicial da segunda coluna que conterá as informações da base de dados dados.dad.

codigo inicial da segunda coluna:

{

    <td VALIGN="TOP" COLSPAN=5 HEIGHT=170>

      <P ALIGN="LEFT">

      <table border="0" width="101%">

        <tr>

          <td NOWRAP>

            <p><img src="icon2.gif" border=0><font size="+3"> $TITLE </font> </p>

          </td>

        </tr>

        <tr>

          <td>

            <p> <TABLE BORDER CELLSPACING=1 BORDERCOLOR="#000000" WIDTH=756>}

 

 

#Aqui entra o código que será utilizado na apresentação de cada entrada da base de dados.

codigo dos links:

{

<TR>

<TD WIDTH="50%">

#A variável $URL e a variável $TITLE são reservadas pelo programa e serão substituídas pela $URL e pelo $TITLE de cada entrada da base de dados.

<a href="$URL"> $TITLE </a> </TD>

<TD WIDTH="20%" VALIGN="MIDDLE">

GRADE: $GRADE

</TD>

<TD WIDTH="10%" VALIGN="MIDDLE">

<P ALIGN="CENTER">

<FORM>

<SELECT NAME="sitepub">

<OPTION VALUE=""> ADDITIONAL INFO:

<OPTION VALUE="">

<OPTION VALUE=""> PUBLICATIONS:

<OPTION VALUE=""> Thesis $Thesis

<OPTION VALUE=""> Technical Reports $Technical Reports

<OPTION VALUE=""> Articles $Articles 

<OPTION VALUE=""> Tutorials $Tutorials

<OPTION VALUE="">

<OPTION VALUE="">DEMOS:

<OPTION VALUE=""> Animations $Animations

<OPTION VALUE=""> Interactive Applications $Interactive Applications

<OPTION VALUE="">

<OPTION VALUE="">RESOURCES:

<OPTION VALUE=""> Links $Links

<OPTION VALUE=""> Image Databases $Image Databases

<OPTION VALUE=""> Code/Programs $Source Code

</SELECT>

</FORM>

</TD>

<TD WIDTH="20%"  VALIGN="MIDDLE">

$GENERAL COMMENTS

</TD>

</TR>

}

 

 

#O campo trocas abaixo indica quais são as variáveis que deverão ser trocadas no trecho acima (codigo de links) por campos de mesmo nome existentes na entrada de dados.

trocas: {$Thesis, $Technical Reports, $Articles, $Tutorials, $Animations, $Interactive Applications, $Links, $Image Databases, $Source Code, $GRADE}

 

 

#O campo trocas especiais abaixo indica quais são as variáveis que deverão ser trocadas no trecho acima (codigo de links) por campos de mesmo nome existentes na entrada de dados. No caso das trocas especiais, será utilizado o primeiro trecho de código (o trecho inicial  está dividido por “||” “||” e o segundo trecho por “||” “|||”) caso a entrada na base de dados exista ou o segundo trecho se o campo da variável estiver vazio para determinada entrada.

trocas especiais:

{$GENERAL COMMENTS||

<script language="JavaScript">

 

function DisplayPage(Text) {  

displayWindow = window.open("",'messageWindow','scrollbars=yes,width=600,height=300')  

displayWindow.document.write("<HTML>")  

displayWindow.document.write("<HEAD><TITLE>COMMENTS</TITLE></HEAD>")  

displayWindow.document.write('<BODY background="webbk.gif">')  

displayWindow.document.write(Text)  

displayWindow.document.write('<form> ')  

displayWindow.document.write('<input type="button" value="RETURN!" onClick="self.close()"> ')  

displayWindow.document.write("</form>")

displayWindow.document.write("</BODY>")  

displayWindow.document.write("</HTML>")

displayWindow.document.close()

\}  

 

</script>  

<form>  

<input type="button" value="COMMENTS" onClick="DisplayPage('$GENERAL COMMENTS')">  

</form>

||COMMENTS|||

}

 

 

 

#Este é o código que deverá ser colocado no final das páginas geradas.

codigo final dos links:

{            </table>

          </td>

        </tr>

      </table>

    </td>

  </tr>

</table>

</body>

</html>}

 

 

 

2.1.5 - O arquivo dados.dad

O arquivo dados.dad contém a base de dados com as informações sobre os links que formarão as páginas geradas pelo RevieWWW. O arquivo é formado por entradas separadas por “\n::\n” onde \n representa o caractere nova linha.

Vejamos o exemplo de uma das entradas do site Revision.

 

 

 

#Os campos $URL, $TITLE e $KEYWORDS são obrigatórios para todas as entradas da base de dados!

#O campo $URL contém o endereço do link da entrada de dados.

$URL: {http://www.cs.columbia.edu/CAVE/physics-based-vision.html}

#O campo $TITLE contém o título do link da entrada de dados.

$TITLE: {Physics Based Vision} 

#O campo $KEYWORDS contém as palavras chaves a que esta entrada de dados pertencerá. No exemplo que mostramos a seguir, o link em questão pertencerá às páginas de título PATTERN_RECOGNITION, COMPUTER_GRAPHICS e PHYSICS .                  

$KEYWORDS: {PATTERN_RECOGNITION  COMPUTER_GRAPHICS  PHYSICS}

#Todos os campos abaixo são específicos do site Revision. Se não existirem referências de uso destas variáveis no arquivo layout.dad, essas informações não terão uso.

#É importante ressaltar que todas as variáveis devem vir seguidas de chaves. Desta forma, podemos perceber que as palavras “$PUBLICATIONS:”, “$DEMOS:” e “$RESOURCES – DATA AND CODE” não são usadas na geração das páginas e podem ser retiradas da entrada de dados sem nenhuma conseqüência nas páginas geradas. Estas entradas só permaneceram neste exemplo por terem sido herdadas da versão anterior do programa gerador das páginas e para uma melhor visualização de como ficarão as páginas geradas.   

$GRADE {**}

$PUBLICATIONS:

$Thesis {}

$Technical Reports {}

$Articles {*}

$Tutorials {}

$DEMOS:

$Animations {*}

$Interactive Applications {}

$RESOURCES - DATA AND CODE:

$Links {}

$Image Databases {}

$Source Code {}

$GENERAL COMMENTS {Good list of articles in related areas.}

 

::  #Separador de entradas.

 

 

2.1.6 - O arquivo reviewww.pl

 

Este é o arquivo principal que contém o código do programa. Não é necessário fazer nenhuma modificação neste arquivo para que o programa funcione corretamente.

Para executar a geração das páginas, basta chamar o interpretador perl com este arquivo e as páginas serão geradas.

 


2.1.7 – Exemplos de páginas geradas

Vamos ver dois exemplos de uma página do site Revision gerados pelo RevieWWW. No primeiro exemplo, foram utilizadas as seguintes opções no layout da página (no arquivo layout.dad):

<body text="#000000" link="#0000ff" vlink="#800080" background="webbk.gif">

<td VALIGN="TOP" BGCOLOR="#ff0000" HEIGHT=170 align="LEFT" WIDTH="23%">

 

No segundo exemplo, modificamos essas linhas para:

<body text="#FFFFFF" link="#55aa55" vlink="#cf909f" bgcolor="#114455">}

<td VALIGN="TOP" BGCOLOR="#1100ff" HEIGHT=170 align="LEFT" WIDTH="23%">

 

O resultado destas mudanças pode ser visto nas Figuras 2 e 3:

 

Figura 2: Exemplo de página gerada com uma imagem de fundo, links em azul e textos em preto.

 

Figura 3: Exemplo de página gerada com fundo em cor azul, links em verde e textos em branco.

 

 

2.2 – HTMatLab – Toolbox HTML para Matlab

 

O Toolbox HTML para MATLAB foi idealizado pelo orientador com o principal objetivo de facilitar a disponibilização de resultados obtidos no MATLAB através da Internet. Basicamente, esse Toolbox é composto por uma série de funções que possibilitam a criação de páginas HTML.

Um ponto extremamente importante no desenvolvimento deste Toolbox é que tem-se procurado fazê-lo de modo que seu uso seja simples para que efetivamente ele possa facilitar o trabalho dos pesquisadores, usuários do Matlab, que o utilizarem. Desta forma, este Toolbox continuará sendo melhorado, mas sempre procurando manter limites para que não haja um crescimento acentuado de complexidade em seu uso.

Os arquivos que compõe o HTMatLab podem ser encontrados e baixados gratuitamente no sítio deste Toolbox sob a licença GPL.

Foi apresentado um seminário sobre este Toolbox para os pesquisadores do IME–USP a fim de que eles passem a utilizá-lo e possam também contribuir para seu maior desenvolvimento.

Acredita-se que o Toolbox tenha grande utilidade pelo fato do Matlab ser um programa muito utilizado no meio acadêmico e também pela facilidade de uso dos comandos criados, de maneira que pode-se montar páginas com muita informação de forma relativamente simples.

O Toolbox está sendo distribuído pelo endereço:

http://www.vision.ime.usp.br/~casado/matlab/htmltoolbox/.

 

3 - Apresentações do projeto

 

Foi feito um artigo sobre este projeto de iniciação científica que concorreu no CTIC2001.

Também um seminário sobre o HTMatLab para alguns pesquisadores do IME-USP.

Mais uma vez é importante citar os sites mantidos pelo aluno relativos a este projeto de iniciação científica. São eles o site do toolbox HTML: http://www.vision.ime.usp.br/~casado/ e o site sobre o projeto inteiro, com ênfase no software RevieWWW: http://www.linux.ime.usp.br/~casado/ic.html.


4 – CONCLUSÕES DO PROJETO

 

O programa RevieWWW pode ganhar algumas características a mais que possam facilitar o seu uso, de acordo com o que o usuário queira. Além disso, ele apresentá grande versatilidade na modificação das páginas geradas e pode ser bastante modificado para ser utilizado com sites diferentes.

Com relação ao HTMatLab, é importante ressaltar que este toolbox foi desenvolvido com base na sua simplicidade de uso e nas necessidades dos alunos pesquisadores do Instituto. Seguindo estes objetivos e necessidades, o toolbox apareceu como uma grande realização.

Vale ressaltar que o ponto forte deste toolbox foi o fato de ele nascer de necessidades reais de usuários e, por conta disso, todas as funções criadas tem como objetivo facilitar a montagem de páginas html a partir de dificuldades que vão sendo encontradas durante a realização deste processo pelos usuários.

 

5 – DeSAFIOS ENCONTRADOS

 

O software RevieWWW que foi a base desta Iniciação Científica foi um desafio completo para o aluno pois foi feito utilizando-se a linguagem Perl, que o aluno jamais havia trabalhado. Além disso, foi o primeiro projeto grande realizado pelo aluno.

A linguagem Perl por si só é um grande desafio por ser uma linguagem extremamente complicada por possuir várias formas de escrever mesmas coisas. Foi muito importante documentar bastante o programa desenvolvido para que não fosse perdido muito tempo quando fosse necessário rever algum trecho de código escrito num período anterior.

 

6 – DISCIPLINAS MAIS IMPORTANTES

 

As diciplinas mais importantes cursadas foram: MAC-122 - Princípios de Desenvolvimento de Algoritmos, MAC-211 - Laboratório de Programação e MAC-242 - Laboratório de Programação II.

MAC-122 deu a base necessária para o desenvolvimento do projeto e as outras duas matérias deram uma boa idéia da linguagem Perl, bem como muitas dicas interessantes para implementar melhor o programa do projeto.

 

7 – RELAçÃO COM O ORIENTADOR

 

O orientador deste projeto, professor Roberto Marcondes, esteve sempre presente, cobrando resultados como deveria e sempre me auxiliando, principalmente com relatórios e seminários que foram feitos. Foi uma ajuda muito importante porque não havia um conhecimento prévio meu sobre isso.

Também foi muito importante a compreensão do Orientador com relação a grande dificuldade que eu tive durante todo o projeto por ter um tempo limitado na faculdade por problemas de distância com minha casa e também por alguns períodos difíceis passados durante todo o período do projeto. Creio que me esforcei para contornar estes problemas e sem dúvida contei com a ajuda do professor Roberto neste aspecto.

 

8 – APLICAÇÃO DOS CONCEITOS TEÓRICOS

 

Os conceitos aprendidos nas discipliinas do IME, principalmente nas disciplinas citadas como mais importantes, foram muito úteis para um bom desenvolvimento deste projeto de Iniciação Científica.

Acredito que as disciplinas que citei como mais importantes para meu projeto são muito importantes para todos os alunos do BCC porque dão uma ótima base para qualquer problema de computação.

 

Referências Bibliográficas

 

1.      Clinton Wong, Automating Tasks On The Web, Web Client Programming with Perl, O’Reilly, 1997.

2.      Larry Wall, Programming Perl, O’Reilly & Associates, 1996.

3.      Sriram Srinivasan, Advanced Perl Programming, O’Reilly, 1997.