DESENVOLVIMENTO DE UMA PLATAFORMA DE ENSINO A DISTÂNCIA COM APLICAÇÃO DE ALGORÍTIMOS DE APRENDIZADO DE MAQUINA PARA INDICAÇÃO DE CURSOS

Centro Universitário Estácio do Ceará

DESENVOLVIMENTO DE UMA PLATAFORMA DE ENSINO A DISTÂNCIA COM APLICAÇÃO DE ALGORÍTIMOS DE APRENDIZADO DE MAQUINA PARA INDICAÇÃO DE CURSOS

Miqueias da silva penha

Introdução

Nessa sociedade altamente tecnológica em que vivemos, é valido a inserções de novos currículos escolares voltados para novas tecnologias (Mercado, 2002, p. 13), com base na afirmação o sistema proposto deverá auxiliar a escola (professores, coordenadores e a direção) a fazer analise dos resultados afim de obter quais as maiores dificuldades que alunos tiverem com relação ao conteúdo do simulado que é baseado no material estudado em sala de aula.

A ideia de criação do sistema para auxiliar escola no avaliação dos alunos através de simulados partiu da própria equipe de desenvolvimento de software do Colégio Ari de Sá, onde foi bem recebida pela direção, coordenadores e professores, pois visa auxiliar os mesmos na captação de informações para uma analise avaliativa do conteúdo repassado em sala de aula, afim de saber como anda o desempenhos dos alunos e se o conteúdo está sendo fixado de forma satisfatória.

Esse trabalho é considerado como pesquisa aplicada porque faz o estudo dos processos de aplicação de sistemas de simulados para desempenho escolar e tecnologias para desenvolvimento para web, onde visa o desenvolvimento de um sistema que auxilie a escola a avaliar seus alunos de forma sistêmica e objetiva com dados extraídos dos simulados realizados.

A pesquisa aplicada pode ser considerada como uma pesquisa prática, caracterizada pelo fato do pesquisador ser incentivado pela necessidade de conhecer, e fazer a aplicação imediata dos resultados e a pesquisa fazer uma contribuição para fins práticos (Barros, 2002).

Para a realização do trabalho foi levantado os dados sobre: processos de realização de sistemas de simulados, as tecnologias que serão utilizadas no desenvolvimento do sistema, tecnologias empregadas, procedimentos para desenvolvimento, criação da modelagem e implementação do sistema.

Todos os dados coletados foram feitos de livros, artigos e sites especializados. Para o desenvolvimento do sistema foram empregadas algumas ferramentas, sendo elas: PHP (Linguagem de script open source de uso geral), Codeigniter (Framework MVC de desenvolvimento de aplicações em PHP), MySql (Sistema de gerenciamento de banco de dados), Bootstrap (Coleção de ferramentas para criação de websites e aplicações web), Sublime Text (Editor de texto e código-fonte multiplataforma), Astah (Software para modelagem UML), Mysql Workbench (Ferramenta visual para design, desenvolvimento e administração de base de dados do Mysql), MVC (modelo de arquitetura de software que separa a representação da informação da interação do usuário com ele), Orientação a Objetos (programação que implementa-se um conjunto de classes que definem os objetos presentes no sistema de software).

A seguir são apresentados conceitos e teorias utilizadas para desenvolver esse trabalho. Alguns assuntos que são abordados: Técnicas empregadas em Sistemas Simulados, Metodologia utilizada para o desenvolvimento do sistema. 

Tecnologias abordadas são: Orientação a Objetos, MVC, PHP, Codeigniter, Mysql. Detalhes do sistema também são apresentados assim como seu funcionamento e o seu processo de desenvolvimento.

Resumo

Este trabalho apresenta o desenvolvimento de uma plataforma de ensino a distância com aplicação de algorítimos de aprendizado de maquina para indicação de cursos, pensando em melhorar a disseminação educação por meio da internet de forma organizada e inteligente. A plataforma pretende ajudar as pessoas a interagir com os cursos através da modalidade de Educação à Distância (EAD), fazendo uso de algorítimos inteligentes que aprendem com os gostos dos alunos fazendo indicação de cursos que os mesmo teriam interesse. Serão usadas tecnologias livres indo do editor de código até os servidor de hospedagem que é gratuito para pequenos projetos. Com o grande numero de dispositivos moveis no mundo é quase impossível de se manter um sistema web sem que o mesmo não seja compatível com esses dispositivos e telas, pensando nisso o sistema será responsivo, podendo ser acessado de qualquer dispositivo que disponha de um navegador e internet. As tecnologias usadas para o desenvolvimento da aplicação foram a linguagem Python junto com o framework backend Django, o framework frontend bootstrap e o banco de dados PosgreSQL.

Palavras-chave: Educação a Distância. Machine Learning. Python. PosgreSQL.

Abstract

This is your abstract. The abstract follow the same rules from Resumo, and usually is it’s translation. The same rules are applied to the keywords.

Palavras-chave: Mettzer. Formatting. Academic work.

Introdução

Segundo Nunes (2010, p. 1), a Educação a Distância é de grande importância para atender grandes quantidade de alunos, e se torna mais efetiva que outras modalidades e quase sem perda de qualidade nos serviços disponibilizados. Isso é possível por causa das novas tecnologias nas áreas da tecnologia da informação e comunicação, pois estão sendo criadas novas possibilidades para os processos de ensino-aprendizagem a distância. Essas novas abordagens têm aparecido por causa da utilização crescente de multimídias e ferramentas de comunicação a distância para a produção de cursos, pois com o avanço das mídias digitais e a ampliação da internet, tornou-se possível o acesso de grandes quantidades de informações, permitindo assim a interação e a colaboração entre pessoas que estão distantes geograficamente ou em contextos diversos.

A crescente demanda por educação, devido não somente à expansão populacional como, sobretudo às lutas das classes trabalhadoras por acesso à educação, ao saber socialmente produzido, concomitantemente com a evolução dos conhecimentos científicos e tecnológicos está exigindo mudanças em nível da função e da estrutura da escola e da universidade (Preti, 1996, p. 18).

Segundo Maia e Mattar (2007, p. 23), no dias de hoje em dezenas de países, de todos os graus de desenvolvimento, fazer atendimento de milhões de pessoas através da edução a distancia em todos os seus níveis, usando todos os tipos de sistemas, muito formais ou não.

OBJETIVOS

Geral

Desenvolver uma plataforma para ambiente web de cursos online fazendo uso de algorítimos de aprendizado de maquina para fazer indicação de cursos que sejam de interesse dos alunos.

Específicos

  • Permitir o cadastro de alunos através e-mail e senha.
  • Exibir cursos disponíveis na plataforma.
  • Permitir que professores façam comunicados nos cursos.
  • Disponibilizar cursos para a inscrição.
  • Permitir que professores possam criar cursos e adicionar vídeos e materiais.
  • Permitir o acesso a materiais e vídeos dos cursos.
  • Disponibilizar avaliação dos cursos que os alunos estão fazendo
  • Fazer pesquisa de quais áreas os alunos tem interesse
  • Exibir Indicação de cursos que os alunos teriam interesse

JUSTIFICATIVA

A ideia principal deste trabalho é disponibilizar cursos online de forma organizada e fazendo o ambiente aprender com os alunos quais tipos de cursos ele tem mais interesse.

ESCOPO E DELIMITAÇÃO DO TRABALHO

Este projeto produzirá uma plataforma para a web. Utilizando somente tecnologias e ferramentas gratuitas como: Python, Django, PosgreSQL, a Editor de Texto Visual Studio Code, Astah para a modelagem conceitual do sistema UML, dentre outras.

FUNDAMENTAÇÃO TEÓRICA

Geral

Este capítulo apresenta uma revisão bibliográfica conduzida no decorrer deste projeto. Foram considerados trabalhos relacionados a edução a distância, desenvolvimento e uso de algorítimos de aprendizado de maquina com Python, plataformas web que se apresentaram ser relevantes ao projeto. Iniciando-se a partir de uma visão mais geral até um cenário local.

METODOLOGIA

O projeto dará origem a uma plataforma de educação a distancia voltada para o ambiente web, onde irá se adaptar a vários tipos de dispositivos e telas fazendo os da responsividade, pois para se chegar a todos os dispositivos é preciso ter a visão de projetar sites responsivos. É uma verdade que a web é muito flexível e temos que fazer com que os nossos sites tenham essa  mesma característica. Segundo Zemel (2012, p. 10), desenvolver para a web única:

Não se trata de uma “moda” ou um hype da internet; não se trata de algo que chegou, vai angariar alguns fãs e sumir na próxima estação. O Web Design Responsivo é uma nova forma de pensar a web e, dentro de pouco tempo, será tão vital e importante aos desenvolvedores e à experiência do usuário quanto o próprio HTML ou o CSS.


Como linguagem de programação foi utilizado o Python com framework Django que faz uso do Model-Template-View (MTV) uma variante do design pattern Model-View-Controller (MVC), estas ferramentas tem um grau de abstração muito alto deixando o desenvolvimento focado nas regras de negócios pesando na alta produtividade e produção de código limpo. Será utilizada a Linguagem de Modelagem Unificada (UML) para a modelagem e levantamento de requisitos, o processo de engenharia de software RATIONAL UNIFIED PROCESS (RUP), o banco de dados PostgreSQL, e no frontend será utilizado o framework Bootstrap para o desing das paginas.

RUP

Rational Unified Process (RUP) é o processo da engenharia de software que prover uma forma disciplinada para assumir tarefas e responsabilidades dentro ambiente de desenvolvimento de software, onde o objetivo é garantir que a produção do software tenha alta qualidade e fique dentro dos prazos e orçamentos previstos (Kruchten, 2013, p. 14). Tendo sido adquirido através da UML e do Processo Unificado de Desenvolvimento de Software, ele disponha de todos os modelos genéricos dos processos, dar apoio a interação e garanti boas praticas na especificação e no projeto (Sommerville, 2007, p. 54). Ele faz uso das seis melhores praticas do desenvolvimento de software com um grau de sucesso muito satisfatório nos projetos e organizações(Kruchten, 2013, p. 14). Algumas das melhores práticas usadas são (Sommerville, 2007, p. 56):

  • Interatividade no desenvolvimento do software: planejamento dos incrementos do software com base nas necessidades do cliente e desenvolver e entregar o mais rápido possivel características do sistema que são prioridade no processo do desenvolvimento.
  • Gerenciamento dos requisitos: criar documentação os requisitos do cliente e manter os requisitos sempre atualizados em relação a mudanças, fazer analise de impactos das mudanças no sistema previamente, antes de serem aceitas.
  • Faz uso de arquiteturas com base em componentes: Faz a estrutura do sistema com base em componentes, reduzir a quantidade de software a ser desenvolvido afim de diminuir custos e riscos.
  • Modelagem do software de forma visual: Fazer uso do modelos gráficos da UML para reproduzir as visões de forma estática e dinâmica do software.
  • Verificação da qualidade do software: dar garantia de que o software irá atender os padrões de qualidade exigido pela empresa.
  • Faz o controle das mudanças do software: gerenciamento das mudanças do software, fazendo uso de uma sistema de gerenciamento de mudanças, procedimentos e ferramentas de gerenciamento de configuração.

O RUP é constituído de quatro fases do processo de software, que estão relacionados aos negócios mais do que a assuntos mais técnicos (Sommerville, 2007, p. 54). São elas:

  • Concepção: o objetivo dessa fase é fazer um caso de negócios para o sistema. Nessa parte deve-se fazer a identificação de todas as entidades externas (pessoas e sistemas) irão ter alguma interação. Tais informações serão utilizadas para fazer avaliações as contribuições para o novo sistema do negócio.
  • Elaboração: O objetivo dessa fazer é de se ter o domínio do problema, é criar um conjunto de ferramentas para se fazer a arquitetura do sistema, executar o plano do projeto e fazer a identificação dos principais riscos. No final dessa fazer se espera que já tenha o modelo dos casos de uso do sistema, a descrição da arquitetura e o plano de desenvolvimento do software.
  • Construção: fase que está fortemente ligada ao projeto, programação e teste. Essas partes do sistema podem ser desenvolvidas em paralelo e podem se integrar durante esta fase. Por fim deve se ter um sistema funcionando e sua documentação disponibilizada para os usuários.
  • Transição: Na ultima fase deve se fazer a transferência do sistema da parte do desenvolvimento para a produção, onde ele deve funcionar em um ambiente real. Muitos dos modelos de software ignora essa fase, pois as vezes pode ser muito problemática. No final dessa fazer espera-se ter um sistema funcionando corretamento em ambiente de produção e documentado.
Workflows no Rational Unified Process

WorkflowDescrição
Modelagem de NegóciosOs processos de negócio são modelados usando casos de uso de negócios.
RequisitosOs agentes que interagem com o sistema são identificados e os casos de uso são desenvolvidos para modelar os requisitos do sistema.
Análise e ProjetoUm modelo de projeto é criado e documentado usando modelos de arquitetura, modelos de componente, modelos de objetos e modelos de sequencia.
ImplementaçãoOs componentes de sistema são implementados e estruturados em subsistemas de implementação. A geração automática de código com base os modelos de projeto ajuda a acelerar esse processo.
TesteO teste é um processo iterativo realizado em conjunto com a implementação. O teste de sistema segue o término da implementação.
ImplantaçãoUma versão do produto é criada, distribuída aos usuários e instalada no local de trabalho.
Gerenciamento de Configuração e MudançaEste workflow de apoio gerencia mudanças no sistema.
Gerenciamento de Projetos Este workflow de apoio gerencia o desenvolvimento do sistema.
AmbienteEste workflow está relacionado à disponibilização de ferramentas apropriadas de software para a equipe de desenvolvimento.

Sommerville (2007, p. 55)

Astah Community

Astah Community é um software de modelagem UML que suporta a UML 2, a principio era conhecido como JUDE que estava ligado ao Ambiente para Desenvolvedores UML e Java, foi criado pela Change Vision, Inc e está disponível para diversos sitemas operacionais (LIMA, 2016). Nesse projeto foi usado o Astah Community que é uma versão gratuita do software para comunidade, pois o mesmo atende de forma satisfatória as necessidades do projeto.

Python

Segundo Borges (2014, p. 15) a linguagem Python foi concebida por Guido Van Rossum, no Instituito Nacional de Pesquisa para matématica e Ciencia da computação da Holanda (CWI), no inicio tinha como foco ajudar físicos e engenheiros. O Python foi criado através de outra linguagem chamada de ABC. É uma linguagem de fácil aprendizado e de simples escrita, muito utilizada em cursos básicos de programação.

A linguagem inclui diversas estruturas de alto nivel (listas, dicionários, data/hora, complexos e outras) e uma vasta coleção de módulos prontos para uso, além de frameworks de terceiros que podem se adicionados. Por se orientadas a objetos até o tipos básicos são objetos, ela é interpretada através de bytecode pela maquina virtual Python tornando o código portável. (Borges, 2014, p. 14) 

Algumas características da linguagem Python segundo Violin(2009):

  • Legível – Identação obrigatória
  • Interpretada – Compila bytecode e interpreta (.pyc, .pyo)
  • Multiplataforma – Windows, Linux/Unix, MacOS
  • Tipagem forte e dinâmica
  • Multiparadigma – Procedural, Funcional e Orientado a Objetos.
  • Usada em várias aplicações: Web, desktop, sistemas embarcados, sistemas 3D.
  • Não há declarações, apenas instruções (ações).

Como explica Borges (2014, p. 14, 15)  Python é uma liguagem de código aberto, ela pode ser utilizada como uma liguagem principal no desenvolvimento de sistemas, também pode usada como liguagem de script  além de poder ser usada como linguagem de script para ajudar a automatizar tarefas e adiconar funcionabilidades a sistemas.

Django

Django é um framework Web para o desenvolvimento aplicações ágeis, ele foi escrito em Python, e utiliza o padrão Model-View-Template(MVT) que é uma variante do Model-View-Comtroller (MVC) também faz uso do Mapeamento Objeto-Relacional (ORM) para transformar objetos em estados no banco de dados. Fazendo uso da licença BSD hoje se encontra-se na versão 1.10.3. O nome Django teve origem do nome do músico de jazz Django Reinhardt (Moip Labs, 2011).

No ano de 2003, alguns desenvolvedores do World Online (Adrian Holovaty e Simon Willison) deixaram de lado o PHP e passaram a fazer uso do Python afim de desenvolver seus websites. Enquanto desenvolviam intensivamente sites ricamente interativos tais como Lawrence.com eles passaram a extrair um framework para o desenvolvimento web de forma genérica, que passaram a construir aplicações Web muito mais rápido. Eles tabalharam nesse framework constantemente, trazendo novas melhorias durante anos, em 2005, World Online abriu o código-fonte do software resultando no Django (Djangoproject, 2016).

  • Características do Django segundo Moip Labs (2011).
    • Mapeamento Objeto-Relacional (ORM): com o ORM do Django você define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizar SQL (o que também é possivel);
    • Interface Administrativa: no Django é possivel gerar automaticamente uma interface para administração para os modelos criados através do ORM;
    • Formulários: é possível gerar formulários automaticamente através dos modelos de dados;
    • URLs Elegantes: no Django não há limitações para criação de URLs elegantes e de maneira simples;
    • Sistema de Templates: o Django tem uma linguagem de ”templates” poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python;
    • Sistema de Cache: o Django possui um sistema de ”cache” que se integra ao memcached ou em outros frameworks de cache.
    • Internacionalização: Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
  • DRY – Não se repita
    • DRY – Don’t Repeat Yourself, que pode ser traduzido para “não se repita”. Em uma aplicação que tenha de manipular dados vindos de uma tabela na base de dados, as operações de inclusão, exclusão e alteração são praticamente iguais para todas as tabelas envolvidas. Não teria sentido repetir o esforço para desenvolver esse código-fonte várias vezes, e a geração dessas funções poderia ser automatizada por alguma ferramenta contida no framework.

PostgreSQL

Segundo Midani (2008, p. 25)  o postgreSQL é um sistema gerenciamento de banco de dados (SGBD) relacional, que armazena informações de soluções de informática, e também administra o acesso a essas informações, e seu código fonte é aberto.

O PostgreSQL teve seu inicio no projeto chamado de POSTGRES na Universidade Berkeley, na Califórnia (EUA), em 1986. Uma equipe orientada pelo professor Michael Stonebraker foi direcionada para criar o modelo e as regras de um novo sistema de armazenamento de dados, que teve o apoio de vários órgãos, dentre eles o Army Research Office (ARO) e a National Science Foundation (NSF). (Midani, 2008, p. 26)

Características do PostgreSQL segundo (Postgresql, 2003).

  • Sub-consultas;
  • Controle de concorrência multi-versão (MVCC);
  • Integridade Referencial;
  • Funções armazenadas (Stored Procedures), que podem ser escritas em várias linguagens de programação (PL/PgSQL, Perl, Python, Ruby, e outras);
  • Gatilhos (Triggers);
  • Tipos definidos pelo usuário;
  • Esquemas (Schemas);
  • Conexões SSL;
  • Áreas de armazenamento (Tablespaces);
  • Pontos de salvamento (Savepoints);
  • Commit em duas fases;
  • Arquivamento e restauração do banco a partir de logs de transação;
  • Diversas ferramentas de replicação
  • Extensões para dados geoespaciais, indexação de textos, xml e várias outras.

UML

Segundo Booch (2000, et al.) sobre a Unified Modeling Language (UML) é uma linguagem gráfica muito utilizada no área de desenvolvimento de softwares, ela se destinada à especificação, construção, visualização e documentação de sistemas, criando assim uma linguagem comum para desenvolvedores e administradores de softwares e WebSites.

Essa linguagem de modelagem é a utilizada para criar os passos para se desenvolver um projeto. Segundo Bezerra (2006, p.15), o desenvolvimento da UML teve muitos participantes, e os principais foram Grady Booch, James Rumbaugh, Ivar Jacobson. Em 1997, a UML foi aceita como padrão pelo OMG. Passando a ter grande aceitação pela comunidade de desenvolvedores, ela é uma linguagem visual para desenhar sistemas orientados a objetos.

Segundo Bezerra (2008) a parte visual produzida no desenvolvimento de um sistema de software orientado a objetos (SSOO), pode-se usar diagramas da UML. Melo (2010) diz que que a UML é uma linguagem para especificação, visualização, construção e documentação de requisitos de sistemas.

Lima (2011, p 30) afirma que a UML além de flexível também é extensível e independente de processos ou linguagens de programação, que garante uma certa liberdade ao desenvolvedor para usar qualquer processo, metodologia ou linguagem de programação sem deixar de expressar clareza aos usuários e outros desenvolvedores, pois utiliza uma notação padrão, que é comum entre todos os ambientes e empresas.

Diagramas da UML

Diagrama de Casos de Uso

Diagramas de Classes

Diagrama de Transição de Estados

Diagrama de Atividades

Diagrama de Seqüência

Diagrama de Colaboração

Diagramas de Pacotes (Booch)

REQUISITOS

Sommerville (2007), afirma que os requisitos mostram as descrições dos serviços dentro do sistema, Esse requisitos são as necessidades do cliente, são dois os tipos de requisitos: Funcionais e os Não Funcionais.

  • Funcionais são os questão diretamente ligados as regras de negócios do software como: cadastrar usuário, exibir relatório de funcionários, etc…
  • Não funcionais são aqueles que estão somente ligado as funcionalidades do software como: disponibilidade, integridade segurança, etc…

A plataforma deve ter seu funcionamento na Web, com armazenamento em um banco de dados relacional, A plataforma será com cursos abertos a comunidade.

No seu primeiro acesso o usuário deve efetuar o seu cadastro para poder se inscrever nos cursos, ele deve fornecer um login, e-mail e senha como na figura (tal). Com cadastro concluído a aplicação irá mostrar todos os curso da plataforma conforme mostra a figura (tal), 

 Requisitos Funcionais

 Requisitos Não Funcionais

CASOS DE USo

SISTEMA PROPOSTO

No capitulo será exposto como foi desenvolvido a pesquisa e a motivação para criação do sistema.

Com uma sintaxe clara e concisa que favorece a legibilidade do código-fonte, tornando a linguagem mais produtiva. A linguagem inclui diversas estruturas de alto nível (listas, dicionários, data/hora, complexos e outras) e uma vasta coleção de módulos prontos para uso, além de Frameworks de terceiros que podem se adicionados. Por se orientadas a objetos até o tipos básicos são objetos, ela é interpretada através de bytecode pela maquina virtual Python tornando o código portável (Borges, 2014, p. 14).

JUSTIFICATIVA para o sistema

Diagrama de Casos de Uso

Especificações dos Casos de Uso

Modelo Conceitual de Classes

Modelo Conceitual de Dados

Conclusão

O sistema apresentado mostrou que possui grande aplicabilidade no ambiente…

Referências

BarrosAidil Jesus PaesProjeto de Pesquisa: Propostas Metodológicas. Petrópolis: Vozes, 2002. 127 p.

BorgesLuiz EduardoPYTHON: PARA DESENVOLVEDORES. 1. ed. São Paulo: Novatec, 2014. 315 p.

Brasil Governo FederalCelulares superam computadores no acesso à internet. Portal Brasil. 2016. Disponível em: <http://www.brasil.gov.br/infraestrutura/2016/04/pela-primeira-vez-celulares-superaram-computadores-no-acesso-a-internet-no-pais>. Acesso em: 17 Nov. 2016.

DjangoprojectDjango: Por que esse projeto existe?. 2016. Disponível em: <https://docs.djangoproject.com/pt-br/1.10/faq/general/>. Acesso em: 5 Dez. 2016.

FreitasRejane CunhaDutraMarlene de AlencarUsabilidade e Interatividade em Sistemas Web para Cursos Online. Revista Brasileira de Informática na Educação. Salvador, 2009. 58 p. Disponível em: <http://br-ie.org/pub/index.php/rbie/article/view/98/85>. Acesso em: 5 Dez. 2016.

Hack Josias RicardoPesquisa e Construção de Conhecimento. 1. ed. Florianópolis: LLV/CCE/UFSC, 2011. 126 p. Disponível em: <https://ead.ufsc.br/portugues/files/2012/04/livro-introdu%C3%A7%C3%A3o-a-EAD.pdf>. Acesso em: 17 Nov. 2016.

KruchtenPhilippeINTRODUÇAO AO RUP: RATIONAL UNIFIED PROCESS. 1. ed. CIENCIA MODERNA, 2013. 256 p.

LIMADAVI DEAstah Commmunity: Modele softwares com Astah Community. Techtudo. 2016. Disponível em: <http://www.techtudo.com.br/tudo-sobre/astah-commmunity.html>. Acesso em: 5 Dez. 2016.

MaiaCarmemMattarJoãoABC da EaD: A educação a distância hoje. 1. ed. São Paulo: Pearson Prentice Hall, 2007. 141 p.

MartinezMarina. Disponível em: <http://www.infoescola.com/engenharia-de-software/rup/>. Acesso em: 5 Dez. 2016.

MattaAlfredo Eurico RodriguesComunidades em rede de computadores: abordagem para a Educação a Distância. Disponível em: <http://www.nuted.ufrgs.br/edu3375_2009_2/links/semana_5/2003_Comunidades_Rede_Computadores_Alfredo_Matta.pdf>. Acesso em: 17 Nov. 2016.

MercadoLuis Paulo LeopoldoNovas Tecnologias na Educação: Reflexões Sobre a Prática. 1. ed. Maceió: Edufal, 2002. 210 p.

MidaniAndréPostgreSQL: Guia do Programador. 1. ed. Paraná: Novatec, 2008. 392 p.

Moip LabsO que é Django?. Moip. 2011. Disponível em: <https://labs.moip.com.br/blog/o-que-e-django/>. Acesso em: 5 Dez. 2016.

NunesIvônio BarrosNOÇÕES DE EDUCAÇÃO A DISTÂNCIA. 2010. 30 p. Disponível em: <http://www.educadores.diaadia.pr.gov.br/arquivos/File/2010/artigos_teses/EAD/NOCOESEAD.PDF>. Acesso em: 5 Dez. 2016.

PostgresqlIntrodução e Histórico. 2003. Disponível em: <https://wiki.postgresql.org/wiki/Introdu%C3%A7%C3%A3o_e_Hist%C3%B3rico>. Acesso em: 5 Dez. 2016.

PretiOreste PretiEDUCAÇÃO A DISTÂNCIA: uma prática educativa mediadora e mediatizada. Universidade Aberta do Brasil. Cuiabá, 1996. 53 p. Disponível em: <http://uab.ufmt.br/uploads/pcientifica/ead_pratica_educativa.pdf>. Acesso em: 5 Dez. 2016.

SommervilleIanEngenharia De Software. 8. ed. Pearson – Addison Wesley, 2007. 568 p.

TurchiSandra. 2015. Disponível em: <http://www.administradores.com.br/artigos/marketing/entenda-a-importancia-de-um-site-responsivo/89557/>. Acesso em: 5 Dez. 2016.

ViolinRenatoLinguagem Python: Características e Aplicações. 2009. Disponível em: <http://www2.dc.ufscar.br/~renato_violin/arquivos/Python.pptx>. Acesso em: 5 Dez. 2016.

ZemelTárcioWeb Design Responsivo: Páginas adaptáveis para todos os dispositivos. Casa do Código, 2012. 163 p.

feito

Use agora o Mettzer em todos
os seus trabalhos acadêmicos

Economize 40% do seu tempo de produção científica