Acessibilidade

Programação na Internet - LEIC

Curso Engenharia Informática e de Computadores
Unidade Curricular

Programação na Internet

Obrigatória X
Opcional  
Área Científica Engenharia Informática e de 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

    Os estudantes que terminam com sucesso esta unidade curricular serão capazes de:

    (1) Conhecer os principais elementos constituintes da arquitectura 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 adopçã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

  • Programa

    I. A arquitectura da World Wide Web: Identificação de recursos (URIs), interacção (protocolo HTTP) e representação (HTML).

    II. Distribuição de conteúdos web (protocolo HTTP).

    III. Infra-estruturas de suporte à criação da interface com o utilizador em aplicações web e respectivo modelo de programação.

    IV. Componente de cliente (Web browser): descrição, formatação visual, manipulação programática e actualizações totais e parciais da interface gráfica.

    V. 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); intercepção de pedidos.

    VI. Consequências da distribuição no modelo de programação e respectivas arquitecturas de referência. Mecanismos de cache.

    VII. 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 de coerência entre conteúdos programáticos e resultados da aprendizagem

    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 respectivas tecnologias normalizadas que lhe estão associadas (IV). Descreve-se a componente de servidor, identificando os principais padrões arquitecturais usados no seu desenvolvimento, demonstrados na prática através de uma infra-estrutura 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, estando previstas 30 aulas durante o  semestre a que correspondem 67,5 horas de contacto (15 aulas de 3 horas e 15 de 1,5 horas). O tempo total de trabalho do estudante é de 160 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, de modo a incorporar 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 e na avaliação de cada etapa do trabalho durante o semestre. 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.

  • Demonstração de coerência entre metodologias de ensino e resultados de aprendizagem

    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 arquitectura, decisões de implementação e respectivas 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.

    Marijn Haverbeke, Eloquent JavaScript, No Starch Press (http://eloquentjavascript.net), 2011.

    Steven Sanderson , Adam Freeman, Pro ASP.NET MVC 3 Framework, APress, 2011.