Acessibilidade

Programação na Internet - LEIC

Curso Licenciatura em Engenharia Informática e de Computadores
Unidade Curricular

Programação na Internet

Obrigatória X
Opcional  
Área Científica Informática e Computadores
Ano: 3º Semestre:  ECTS: 6 Total de Horas: 160
Horas de Contacto T: TP:67,5 PL: S: OT:
Docente

José Luís Falcão Cascalheira

T - Teórica; TP - Teórico-prática; PL - Prática Laboratorial; S - Seminário; OT - Orientação Tutorial.

  • Objetivos da aprendizagem

     

    1. Conhecer os principais elementos constituintes da arquitetura da World Wide Web
    2. Compreender o protocolo HTTP
    3. Demonstrar conhecimento teórico-prático sobre as principais normas associadas à componente de cliente (web browser)
    4. Conhecer os principais padrões de apresentação utilizados na componente de servidor
    5. Compreender, utilizar e estender uma tecnologia de servidor, com significativa adoção industrial, para criação de aplicações Web
    6. Desenhar e implementar aplicações Web de pequena e média complexidade, que incluem funcionalidades de autenticação, manutenção de estado de conversação, visualização e edição de dados
    7. Desenvolvimento de software em grupo, utilizando como suporte um sistema de controlo de versões distribuído, para manter os artefactos de software desenvolvidos e produzir documentação
  • Conteúdos programáticos

     

    1. A arquitetura da World Wide Web: Identificação de recursos (URIs), interação (protocolo HTTP) e representação (HTML).
    2.  Distribuição de conteúdos web (protocolo HTTP).
    3.  Infraestruturas de suporte à criação da interface com o utilizador em aplicações web e respetivo modelo de programação.
    4.  Componente de cliente (Web browser): descrição, formatação visual, manipulação programática e atualizações totais e parciais da interface gráfica.
    5.  Componente de servidor: distribuição de conteúdos estáticos; geração dinâmica de conteúdos; modelo de programação no servidor, utilizando o padrão MVC; manutenção de estado (de visualização, de sessão e de aplicação); interceção de pedidos.
    6.  Consequências da distribuição no modelo de programação e respetivas arquiteturas de referência. Mecanismos de cache.
    7.  Concretização dos temas estudados através do desenvolvimento de aplicações Web de pequena e média complexidade com suporte para persistência de dados.
  • Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da unidade curricular

    Esta unidade curricular representa, para a maioria dos alunos, o primeiro contacto com as problemáticas inerentes ao desenvolvimento de aplicações distribuídas, concretizadas sobre a plataforma Web. São introduzidos os principais elementos constituintes desta plataforma (I a III do conteúdo programático). Apresenta-se a componente de cliente (web browser) e as respetivas tecnologias normalizadas que lhe estão associadas (IV). Descreve-se a componente de servidor, identificando os principais padrões arquiteturais usados no seu desenvolvimento, demonstrados na prática através de uma infraestrutura de servidor com significativa adoção industrial (V). O desenvolvimento de uma aplicação Web de pequena ou média complexidade é usada para praticar os conceitos e tecnologias transmitidas e colocar os alunos perante alguns os problemas associados ao desenvolvimento deste tipo de aplicações (VI e VII). 

     

  • Metodologia de ensino e avaliação

    Ensino teórico-prático, com 30 aulas (15 aulas de 3 horas e 15 de 1,5 horas). As aulas destinam-se à apresentação e explicação dos temas e à demonstração da sua aplicação prática. Os tópicos principais são ainda explorados através da realização de uma aplicação Web ao longo do semestre, por grupos de 2 ou 3 alunos. O desenvolvimento desta aplicação é dividido em 3 etapas, cada uma introduzindo novos requisitos, incorporando assim os temas que vão sendo apresentados.

     

    Os resultados (1) a (6) são avaliados individualmente através do teste escrito realizado no final do semestre (T) e na avaliação de cada etapa do trabalho prático realizado durante o semestre (P). Durante o acompanhamento dos trabalhos de grupo realizados nas aulas práticas são avaliados os resultados (6) e (7). Todos os resultados da aprendizagem são também avaliados na discussão final dos trabalhos de grupo. A nota final é atribuída segundo a seguinte fórmula: 40%*T + 60%*P.

     

  • Demonstração da coerência das metodologias de ensino com os objetivos de aprendizagem da unidade curricular

    Nas sessões teóricas são apresentados os conceitos fundamentais para o desenvolvimento de aplicações para a Web. Nas sessões práticas, estes conceitos são complementados através de exemplos relacionados com o trabalho, praticados e consolidados no seu desenvolvimento. A realização das etapas do trabalho tem uma complexidade gradualmente crescente, de modo a incorporar os novos temas que vão sendo tratados ao longo do semestre. Em cada etapa é criada documentação que fica disponível online, integrada no sistema de controlo de versões usado. Esta documentação inclui as funcionalidades implementadas e decisões tomadas em cada etapa. Na etapa final é criada documentação no mesmo suporte na forma de relatório final, que descreve a totalidade do trabalho desenvolvido, a sua arquitetura, decisões de implementação e respetivas fundamentações.

     

     

     

  • Bibliografia principal

     

    • W3C Technical Architecture Group, Architecture of the World Wide Web, Volume One, http://www.w3.org/TR/webarch/, 2004.
    • Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616.
    • M. Haverbeke, Eloquent JavaScript: A Modern Introduction to Programming, No Starch Press, 2011. ISBN 9781593272821,  http://eloquentjavascript.net
    • J. Wilson, Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales, The Pragmatic Bookshelf, 2017. ISBN 9781937785734