Programação Web II

Conhecimentos de Base Recomendados

  • Desenvolvimento para a web: HTML, CSS, JavaScript; PHP e Bases de Dados;

Métodos de Ensino

Metodologias de Ensino

Nesta unidade curricular, a aprendizagem é promovida através de metodologias que combinam exposição teórica, demonstração prática e aplicação em contexto real de programação web:

  • Método expositivo: os conceitos fundamentais de programação web são apresentados e enquadrados pelo docente, recorrendo a exemplos práticos e discussões em sala. A exposição teórica serve sobretudo como base de apoio à componente prática, estruturando os conhecimentos que os alunos irão aplicar no desenvolvimento de projetos.
  • Método demonstrativo: as técnicas e boas práticas de desenvolvimento são exemplificadas pelo docente em tempo real, através da implementação de pequenos trechos de código e resolução de problemas comuns. Esta abordagem permite aos alunos observar não só o resultado final, mas também o processo de raciocínio e tomada de decisão na construção de soluções web.
  • Método interrogativo: ao longo das aulas, o docente promove a interação através de questões orientadas, revisões e pequenos desafios que ajudam a consolidar a matéria e a estimular o pensamento crítico. Este método contribui para que os alunos reflitam sobre diferentes formas de resolver um mesmo problema.
  • Métodos ativos: o aluno é colocado no centro do processo de aprendizagem, através do desenvolvimento de projetos e exercícios práticos que exigem autonomia, criatividade e trabalho colaborativo. A unidade curricular privilegia a realização de aplicações web reais, aproximando o contexto de sala de aula ao ambiente profissional. O docente assume o papel de orientador, facilitando a aprendizagem, incentivando a experimentação e guiando os alunos na adoção de boas práticas de programação.

Resultados de Aprendizagem

Objetivos:

A unidade curricular de Programação Web II tem como objetivo consolidar os conhecimentos adquiridos em Programação Web I, reforçando a utilização de JavaScript no lado do cliente e PHP no lado do servidor, com integração de bases de dados MySQL. Numa segunda fase, os estudantes serão introduzidos a novas tecnologias e metodologias de desenvolvimento, explorando a utilização de frameworks modernas (Laravel e React) que lhes permitam compreender e aplicar conceitos de arquitetura, separação de camadas e consumo de APIs, preparando-os para desafios mais avançados no desenvolvimento web.

 

Competências a Desenvolver

  • Consolidar a criação de aplicações web dinâmicas com JavaScript, PHP e MySQL.
  • Estruturar projetos web de forma modular e organizada, aplicando boas práticas de desenvolvimento.
  • Compreender os princípios da arquitetura MVC e a utilização de frameworks PHP (Laravel).
  • Implementar operações CRUD completas integradas com base de dados.
  • Criar interfaces modernas e responsivas, utilizando Admin Templates e bibliotecas gráficas.
  • Explorar a criação de componentes reutilizáveis no React e a sua interação com APIs.
  • Reforçar conceitos de autenticação e segurança em aplicações web.

Programa

Conteúdo Programático:

Parte I – Consolidação de Programação Web I

  • Revisão da estrutura de aplicações web (cliente, servidor e base de dados).
  • JavaScript: sintaxe, manipulação do DOM e tratamento de eventos.
  • PHP e MySQL: manipulação de formulários, integração com bases de dados, validação e sanitização.
  • Admin Templates: integração em projetos, criação de dashboards e visualização de dados.
  • Autenticação e Segurança: sessões e cookies, login e registo de utilizadores, hashing de passwords e prevenção de ataques comuns.

Parte II – Introdução a Novas Tecnologias

Laravel (PHP Framework):

  • Estrutura de um projeto Laravel.
  • Composer e Artisan.
  • Rotas, controladores e views com Blade.
  • Modelo de dados com Eloquent e migrações.
  • Implementação de operações CRUD.

React (Frontend Framework):

  • Estrutura de uma aplicação React.
  • Componentes, props e state.
  • Formulários e eventos em React.
  • Comunicação com APIs (fetch/axios).
  • Integração React ↔ Laravel: consumo de dados via API REST.
  • Projeto Final: desenvolvimento de uma aplicação web completa integrando Laravel (backend) e React (frontend).

Docente(s) responsável(eis)

Michael Teixeira

Métodos de Avaliação

A aprovação do aluno por avaliação contínua ficará condicionada ao cumprimento dos seguintes requisitos:

  • Frequência mínima de 75% das horas totais da unidade curricular, conforme previsto no Regulamento dos CTeSPs (Artigo 23.º, ponto 1).
  • Resolução e entrega dos exercícios práticos e fichas de trabalho ao longo do semestre – 20%.
  • Desenvolvimento, entrega e apresentação de um 1.º Projeto, acompanhado de relatório, com classificação igual ou superior a 9,5 valores – 40%.
  • Desenvolvimento, entrega e apresentação de um 2.º Projeto, acompanhado de relatório, com classificação igual ou superior a 9,5 valores – 40%.

As apresentações dos projetos poderão assumir a forma de defesa individual ou apresentação perante os pares, consoante definição do docente responsável pela unidade curricular.


    Estágio(s)

    NAO

    Bibliografia

    Base de Consolidação (PHP, MySQL, JavaScript):

    • Nixon, R. (2012). Learning PHP, MySQL, JavaScript & CSS (2ª ed.). O’Reilly Media.
    • Flanagan, D. (2020). JavaScript: The Definitive Guide (7ª ed.). O’Reilly.
    • Ullman, L. (2011). PHP & MySQL for Dynamic Web Sites (5ª ed.). Peachpit Press.
    • Duckett, J. (2014). JavaScript & JQuery: Interactive Front-End Development. Wiley.

    Novas Tecnologias (Laravel e React):

    • Stauffer, M. (2019). Laravel: Up & Running (2ª ed.). O’Reilly Media.
    • React Team. (2023). The React Documentation. Meta Open Source. Disponível em: https://react.dev
    • Laravel Documentation. (2023). The Laravel Documentation. Disponível em: https://laravel.com/docs

    Outros Recursos:

    • Outros livros, artigos e páginas web que se mostrarem relevantes ao longo do ano letivo.