Programação Web

Unidade Curricular / Curricular Unit
Programacão Web

Ciclo de Estudos / Study Cycle
Licenciatura em Engenharia Informática

Nome do Docente Responsável
Pedro Alexandre Reis Sá da Costa

Nome do Docente Adicional
José Faísca

Objectivos de aprendizagem (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
O objectivo desta unidade curricular é introduzir o aluno a um conjunto linguagens web e um conjunto de tecnologias que estão ligados aos servicos de web.
O aluno deverá ser capaz de compreender a arquitectura de uma aplicacão web de grande escala, deverá compreender a importância da seguranca das aplicacões web, e como esta aplicacão interage com os vários níveis da arquitectura.

Concretamente, o aluno deverá conseguir criar uma aplicacão web em Node.js que irá interagir com uma base de dados em MongoDB.

Intended learning outcomes (knowledge, skills and competences to be developed by the students)
The objective of this course is to introduce the student to a set of web languages and a set of technologies that are linked to web services.
The student should be able to understand the architecture of a large-scale web application, should understand the importance of web application security, and how this application interacts with various levels of architecture.
Specifically, the student should be able to create a web application in Node.js that will interact with a MongoDB database.

Conteúdos programáticos
O princípio da Internet
Internet Protocol Suite
HyperText Markup Language (HTML)
Cascading Style Sheets (CSS)
URLs and Links
JavaScript Básico
Programar em JavaScript
Document Object Model (DOM)
Eventos DOM
Introducão à programacão de Front End
Criar e estruturar Aplicacões Web
Comunicacão entre client/servidor (HTTP)
Servidor Web
Node.js
ExpressJS
Camada de Armazenamento (Database)
Base de dados SQL e NOSQL
Introducão ao PHP
Aplicacões Web Simples
Responsive Web
Cookies e Sessões
Autenticacão
Dados de entrada e Validacão
Gestão Full stack
Seguranca em Aplicacõe Web – Isolamento do Browser
Ataques de rede e de sessões
Outros Ataques (Injecão de Código, Ataques de Phishing, e DoS)
Aplicacões Web de Grande Escala
Centro de Dados
O Futuro da Web

Syllabus
Origins of the Internet
Internet Protocol Suite
HyperText Markup Language (HTML)
Cascading Style Sheets (CSS)
URLs and Links
JavaScript Basics
JavaScript Programing
Document Object Model (DOM)
DOM – Events
Intro to Front End Programming
Building Web Applications
Structure Applications
Browser/Server Communication (HTTP)
Web Servers
Node.js
ExpressJS
Storage Tier (Database)
SQL and NOSQL databases
Introduction to PHP
Single Page Applications
Responsive Web Design
Cookies and Session
Authentication
Input and Validation
Full stack state management
Web App Security – Browser Isolation
Network Attacks (Network and Session Attacks)
Other Attacks (Code Injection, Phishing Attacks, and DoS)
Large web scale applications
Data Centers
Future directions (FutureWebAppTech)

Demonstração da coerência dos conteúdos programáticos com os objectivos de aprendizagem da unidade curricular
Os conteúdos programáticos desta UC visam dotar os estudantes de um conjunto alargado de conhecimentos sobre aplicacões web, com um foco especial nas várias tecnologias que existem. Os estudantes ficam aptos a desenhar aplicacões web de grande escala tal como são usadas no mundo
real.

É expectável que o aluno seja capaz de conceber soluções web com uma arquitectura em grande escala apta a correr num centros de dados. O projeto em grupo fomenta o desenvolvimento de competências de comunicação interpessoal e de gestão de requisitos e de tempo disponível para a criacão de um projecto final.

Evidence of the syllabus coherence with the curricular unit’s intended learning outcomes
The program content of this UC aims to provide students with a wide range of knowledge about web applications, with a special focus on the various technologies that exist. Students are able to design large-scale web applications as they are used in the real world.

It is expected that the student will be able to design web solutions with a large-scale architecture capable of running in a data center. The group project encourages the development of interpersonal communication skills and the management of requirements and time available for the creation of a final project.

Metodologias de ensino (avaliação incluída)
A disciplina é teórico-prática, havendo uma alternância entre a componente expositiva e participativa. As aulas teóricas seguem o programa definido, apresentando os conceitos teóricos sustentados por exemplos práticos. A aprendizagem dos conceitos é validada através de pequenos exercícios e testes em papel, que permitem aos professores aferir da eficácia das suas explicações.
Nas aulas práticas, os alunos aplicam os conceitos teóricos à resolução de exercícios feitos de forma individual ou em grupo. As aulas práticas decorrem sempre em sintonia com as aulas teóricas da semana anterior.

Avaliação:
– Componente teórica (50%): É constituida por avaliacão continua ou final.
*Avaliacão contínua: Presenca (5%), 2 testes intermédio (10% cada) (minimo 8 valores), Exame Final (25%) (minimo 8 valores)
*Avaliacão Final: Presenca (5%), Exame Final (45%) (minimo 8 valores)
– Componente Prática (50%): 25% Project (minimo 8 valores), 15% Teste (minimo 8 valores), Participacão e Exercícios (10%)

Teaching methodologies (including assessment)
The course is theoretical and practical, with an alternation between the expository and participatory component. The theoretical classes follow the defined program, presenting theoretical concepts supported by practical examples. Concept learning is validated through small exercises and paper tests, which allow teachers to assess the effectiveness of their explanations.
In the practical classes, the students apply the theoretical concepts to the resolution of exercises done individually or in a group. The practical classes always follow in tune with the theoretical lessons of the previous week.
Evaluation:
– Theoretical component (50%): It consists of continuous or final evaluation.
*Continuous evaluation: Presence (5%), 2 midterm exams (10% each)
(min. 8 values), Final Exam (25%) (min. 8 values)
Final Evaluation: Presence (5%), Final Exam (45%) (min. 8 values)
*Practical Component (50%): 25% Project (min. 8 values), 15% Test (min. 8 values), Participation and Exercises (10%)

Demonstração da coerência das metodologias de ensino com os objectivos de aprendizagem da unidade curricular
As aulas teóricas fornecem aos alunos um conjunto de conhecimentos alargados sobre a arquitectura de aplicações web e as várias tecnologias usadas actualmente. As aulas práticas permitem que os alunos apliquem esses conhecimentos utilizando a linguagem Node.js, tendo como referência os exemplos dados na aula.

Evidence of the teaching methodologies coherence with the curricular unit’s intended learning outcomes
Theoretical classes provide students with a broad set of knowledge about the web application architecture and the various technologies currently used. The practical classes allow students to apply this knowledge using the language Node.js, with reference to the examples given in class.

Bibliografia Principal / Main Bibliography
Thinking in HTML, Aravind Shenoy, Packt Publishing
Eloquent JavaScript, 2nd Edition: A Modern Introduction to Programming, Marijn Haverbeke, No Startch Press
Node.JS Web Development, 3rd Edition, David Herron, Packt Publishing
Node.JS Construcão de Aplicacões Web, Luis Abreu, FCA
MEAN Stack Development 1st Edition, Elad Elrom

Universidade Lusófona


ECATI Escola de Comunicação, Arquitetura, Artes e Tecnologias da Informação

Departamento de Engenharia Informática e Sistemas de Informação
Edifício F, sala F.1.3
Direção — 217 515 500 (ext: 683)
Serviço de Apoio Tecnico-Admistrativo (SATA) — 17 515 500 (ext: 764)


Lisboa
Avenida do Campo Grande,
376 1749-024 Lisboa, Portugal
Tel.: 217 515 500 | email: info.cul@ulusofona.pt
Porto
Rua Augusto Rosa,
Nº 24, 4000-098 Porto - Portugal
Tel.: 222 073 230 | email: info.cup@ulusofona.pt

Gestão de conteúdos por Lucio Studer Ferreira © 2022 COFAC.