Propinas UE (2025/2026)
3700.00 €Plano de Estudos para 2025/2026
| Unidades curriculares | Créditos | |
|---|---|---|
| 1º Ano | ||
|
Introdução às Bases de Dados
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Programação II
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Princípios de Redes e Cibersegurança
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Programação em Java Script
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Introdução à Engenharia de Software
3.0 ECTS
|
Unidades Curriculares Obrigatórias | 3.0 |
|
Projecto Aplicado em Programação
9.0 ECTS
|
Unidades Curriculares Obrigatórias | 9.0 |
|
Arquitetura dos Sistemas Computacionais
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Programação para a Web
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
|
Programação I
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Introdução às Bases de Dados
"Desenvolver mecanismos de Abstracção;
Desenvolver estruturação de informação;
Aprofundar capacidade de formular interrogações relacionais."
"I - Introdução aos Sistemas de Gestão de Bases de Dados.
Desenho de esquemas relacionais
II Modelo relacional;
II.2.1 Relações e chaves primárias
II.2.2 Chaves estrangeiras e regras de integridade
II.2.3 Optimizações e índices
II.3 Transposição de um modelo Orientado a Objectos para um modelo relacional;
III Linguagem S.Q.L
III.1 Querys Simples;
III.2 Funções de Agregação;
III.3 SubQuerys;
III.4 Triggers e Stored Procedures;
IV Acesso a Bases de Dados através de JAVA"
"A nota é calculada por uma sucessão de 3 projetos práticos individuais de modo a avaliar a progressão do aluno ao longo do curso.
A nota final resulta da média das notas quantitativas de cada trabalho."
"Gouveia, Feliz Fundamentos de Base de Dados"" FCA Editora de Informática, 2014 Damas, L. SQL - Structured Query Language "" FCA Editora de Informática, 2005; http://plsql-tutorial.com/"
Date, C.J. "An introduction to Database Systems" Addison-Wesley Publishing Company, sexta edição, 1995 (I.2, I.3, I.4, II)
Programação II
"No final do período letivo o aluno deverá ser capaz de:
OA1. Usar uma linguagem de programação para desenhar, implementar, testar e depurar pequenas aplicações, numa linguagem orientada para objetos.
OA2. Definir e usar os conceitos de abstração, encapsulamento, herança e polimorfismo.
OA3. Escolher e usar as estruturas de dados fundamentais de uma biblioteca.
OA4. Usar mecanismos de controlo de erros.
OA5. Explicar a utilidade da utilização de padrões de desenho de software e demonstrar a sua utilização de padrões simples."
"CP1. Modularização física e encapsulamento
CP2. Herança e Polimorfismo
CP3. Interfaces
CP4. Coleções e classes genéricas
CP5. Biblioteca standard do Java (principais estruturas de dados)
CP6. Exceções e tratamento de erros
CP7. Leitura e escrita de ficheiros
CP8. Introdução ao planeamento de projetos, teste e documentação
CP9. Introdução aos padrões de desenho"
"A nota é calculada por uma sucessão de exercícios práticos (nas aulas 2 a 11), um teste e um projeto, de modo a avaliar a progressão do aluno ao longo do curso.
As classificações possíveis nos exrecícios são de 0-5. Os exercícios e projeto devem ser resolvidos aos pares.
A nota final será: 25% * 4* (média da classificação dos exercícios) + 25% teste de meio-de-semestre + 50% projeto."
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
"F. Mário Martins, ""Java 8 POO + Construções Funcionais"", FCA - Editora de Informática, 2017. ISBN: 978-972-722-838-6 (portuguese) Ken Arnold, James Gosling e David Holmes, ""The JavaTM Programming Language"", 3ª edição, Addison-Wesley, 2000. ISBN: 0-201-70433-1 Bruce Eckel, ""Thinking in Java"", 3ª edição, Prentice Hall, 2002. ISBN: 0-13-100287-2 Gamma, Helm, Johnson & Vlissides (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2. Java resources at http://java.sun.com; (tutorials and Java Application Programming Interface)"
Princípios de Redes e Cibersegurança
Ao concluir esta unidade curricular, os alunos deverão ser capazes de:
OA1: identificar e distinguir os diferentes modelos de referência para redes informáticas
OA2 - Conhecer, distinguir e avaliar os diferentes protocolos e serviços disponíveis para comunicação ponta a ponta e comunicação entre aplicações através da rede.
OA3 - Conhecer os diferentes métodos para garantir a segurança da informação e identificar soluções para potenciais ameaças à segurança.
OA4 - Distinguir, avaliar e implementar as diferentes técnicas de segurança existentes de forma integrada com outros protocolos.
CP1 - Introdução às redes. Camada física. Interconexão e encaminhamento em redes IP. NAT.
CP2 - Comunicação ponta a ponta. Endereçamento e multiplexação. Protocolos UDP e TCP. Noções de controlo de fluxo e congestionamento.
CP3 - Serviços (nomes, e-mail) e aplicações de rede; arquitetura WWW. Redes de distribuição de conteúdo.
CP4 - Segurança da informação: ataques e segurança da informação; criptografia, encriptação e autenticação.
CP5 - Segurança de rede: infraestruturas de distribuição de chaves e certificação digital; firewalls; segurança ao nível da aplicação.
Resumo do processo de avaliação:
50% - 1.ª prova escrita, com nota mínima exigida de 8/10 pontos.
50% - 2.ª prova escrita, com nota mínima exigida de 8/10 pontos.
Existe a possibilidade de um exame final com peso de 100% para aqueles que não fizerem as provas. O exame final será na mesma data da 2.ª prova escrita.
Acetatos e outro material de apoio na plataforma de e-Learning >> https://e-learning.iscte-iul.pt Mitnick, K. D., & Simon, W. L. (2011). Ghost in the wires: My adventures as the world's most wanted hacker. Little, Brown and Company. Computer Networking: A Top-Down Approach Featuring the Internet, James F. Kurose, Keith W. Ross, Addison Wesley.
Erickson, J. (2008). Hacking: The art of exploitation (2nd ed.). No Starch Press Hadnagy, C. (2018). Social engineering: The science of human hacking (2nd ed.). Wiley. Mitnick, K. D., & Vamosi, R. (2011). Ghost in the wires: My adventures as the world's most wanted hacker. Little, Brown and Company. Mitnick, K. D., & Vamosi, R. (2017). The art of invisibility: The world's most famous hacker teaches you how to be safe in the age of Big Brother and Big Data. Little, Brown and Company. Stuttard, D., & Pinto, M. (2011). The web application hacker's handbook: Finding and exploiting security flaws (2nd ed.). Wiley. Steinberg, J. (2019). Cybersecurity for dummies. For Dummies
Programação em Java Script
"Após a conclusão desta unidade curricular o aluno deverá ficar apto a:
OA1. Explicar os conceitos fundamentais para a programação em JavaScript.
OA2. Compreender os conceitos do React.js.
OA3. Compreender os mecanismos de consultar dados .
OA4. Desenvolver uma aplicação Web em React.js.
O método de ensino a utilizar consiste na alternância entre momentos de exposição e de demonstração que visam introduzir os conceitos, e momentos práticos onde os estudantes realizarão a aplicação dos mesmos em trabalhos e atividades propostas quer em aula, quer de forma autónoma, fora das aulas. A compatibilidade entre os objetivos e o método de ensino fica assim assegurada, uma vez que os objetivos da aprendizagem consistem essencialmente na compreensão de conceitos e sua posterior aplicação. "
"CP1. Fundamentos de JavaScript
CP2. Introdução ao React.js, JSX e TypeScript
CP3. Componentes React e propriedades – aplicação “single-page”;
CP4. Apresentação condicional de conteúdo;
CP5. Ciclo de vida dos componentes;
CP6. Estado e sincronização de componentes - Hooks useState e useEffect;
CP7. Contextos – Hook useContext;
CP8. Routers React e desenvolvimento de websites com múltiplos URLs;
CP9. Alimentação de conteúdos a partir de REST API;
CP10. Registo, login e logout de utilizadores;
CP11. Bibliotecas de componentes React– PrimeReact e reactstrap."
A classificação final da UC será a média aritmética das classificações obtidas numa sucessão de mini-projetos práticos (4) realizados individualmente ao longo da disciplina, e que terão alguma continuidade entre si.
"Laurence Lars Svekis, Maaike Van Putten, Rob Percival, JavaScript from Beginner to Professional, Packt Publishing, 2021. Mikhail Sakhniuk and Adam Boduch, ""React and React Native (5th Edition)"", Packt Publishing, 2024 "
"Jon Duckett, ""JavaScript and JQuery: Interactive Front-End Web Development"", Ed. John Wiley and Sons, Inc., 2017 Sebastian Springer, ""React: The Comprehensive Guide"", Rheinwerk Computing, 2023 Robin Wieruch, The Road to React (2024 Edition), independently published, 2024."
Introdução à Engenharia de Software
Após a conclusão desta unidade curricular o estudante deverá ficar apto a:
OA1. Aplicar um processo de engenharia ao desenvolvimento de software;
OA2. Desenvolver software em equipas de grande dimensão (>6 elementos);
OA3. Aplicar os princípios de engenharia de software em atividades como a gestão de requisitos, gestão de configurações e versões de software, construção de software, testes, entrega e implantação de software.
CP1 - Processo da engenharia de software
CP2 - Gestão de configurações e versões de software
CP3 - Construção de software
CP4 - Testes de software
CP5 - Desenvolvimento e operações em engenharia de software (DevOps)
Avaliação:
Realização de exercícios/fichas práticas em grupo, ao longo das aulas, com peso de 20% na nota final (sem nota mínima) e uma prova escrita realizada no final da unidade curricular, com peso de 80% na nota final (nota mínima 9.5 em 20).
Ou um único exame final com peso de 100% na nota final da unidade curricular.
Sommerville, I. (2016). Software Engineering, Global Edition (10th ed.). London, England: Pearson Education. Sommerville, I. (2021). Engineering software products: An introduction to modern software engineering. IEEE Computer Society. (2024). Guide to the software engineering body of knowledge 4.0. (Hironori Washizaki, Eds.). IEEE Computer Society Press.
Projecto Aplicado em Programação
OA1 - Implementar uma Aplicação Full-Stack
OA2 - Utilizar as Principais Tecnologias Web
OA3 - Entender os Princípios de Design de aplicações WEB
OA4 - Analisar e Resolver Problemas Complexos
OA5 - Integrar conceitos de módulos anteriores
OA6 - Trabalhar em ambientes colaborativos
OA7 - Apresentar e Demonstrar Funcionalidades de Aplicações
CP1- Início do Projeto e Definição de Requisitos
CP2- Configuração do Ambiente e Desenvolvimento do Backend
CP3- Desenvolvimento do Backend com Java
CP4- Desenvolvimento do Frontend com React.js
CP5- Implementação de Funcionalidades Específicas
CP6- Otimização e Preparação para Lançamento
CP7- Comunicação com o cliente
O processo de avaliação desta unidade curricular está estruturado de forma a avaliar o progresso dos alunos e os resultados da aprendizagem através de uma combinação de avaliações intermédias e da apresentação de um projeto final feito em grupos de 3 alunos.
1. Avaliações intermédias (Sprints)
O processo de avaliação inclui quatro avaliações intermédias, designadas por sprints, que, no seu conjunto, representam 40% da nota total. Cada sprint foi concebido para avaliar etapas específicas do ciclo de desenvolvimento do projeto.
Estrutura do Sprint:
1 Planeamento do projeto e definição de requisitos
- Foco: Clareza dos objectivos do projeto, recolha de requisitos e conceitos iniciais de design.
- Critérios de avaliação: Completude dos requisitos, análise de viabilidade e princípios iniciais de design.
2 Configuração do ambiente e desenvolvimento inicial de back-end
- Foco: Configurar o ambiente de desenvolvimento e implementar as principais funcionalidades de backend.
- Critérios de avaliação: Precisão da configuração, qualidade do código e funcionalidade dos componentes de back-end.
3 Desenvolvimento e integração de front-end
- Foco: Desenvolvimento da interface do utilizador e integração com serviços de backend.
- Critérios de avaliação: Design da interface do utilizador, capacidade de resposta e integração eficaz com APIs de backend.
4 Implementação de funcionalidades específicas e otimização
- Foco: Finalização das funcionalidades da aplicação e otimização do desempenho.
- Critérios de avaliação: Completude da funcionalidade, técnicas de otimização aplicadas e desempenho geral da aplicação.
Cada sprint será avaliado com base numa rubrica que avalia as contribuições individuais e do grupo, assegurando a responsabilidade e a colaboração.
2. Projeto final e apresentação
O projeto final e a apresentação constituem 60% da nota global. Esta componente avalia o culminar do trabalho do projeto, incluindo o produto final e a capacidade de comunicar eficazmente as suas características e funcionalidades.
Avaliação do Projeto Final:
- Funcionalidade do produto: Avaliação da aplicação concluída, incluindo todas as características implementadas, desempenho e experiência do utilizador.
- Qualidade do código: Avaliação da base de código para legibilidade, manutenção e aderência às melhores práticas.
- Documentação: Qualidade e integridade da documentação do projeto, incluindo manuais do utilizador e documentação técnica.
Apresentação final:
- Competências de apresentação: Clareza, organização e envolvimento durante a apresentação.
- Demonstração de funcionalidades: Capacidade de apresentar eficazmente as funcionalidades da aplicação e de responder a perguntas.
- Colaboração em equipa: Evidência de trabalho em equipa e contribuições individuais durante a apresentação.
O processo de avaliação foi concebido para fornecer feedback contínuo e oportunidades de melhoria ao longo do ciclo de vida do projeto.
J Sharma, Ashish Sarin, Getting Started with Spring Framework, Ed. Createspace Independent Publishing Platform, 2017. Laurence Lars Svekis, Maaike Van Putten, Rob Percival, JavaScript from Beginner to Professional, Packt Publishing, 2021. Mikhail Sakhniuk and Adam Boduch, React and React Native (5th Edition), Packt Publishing, 2024
Arquitetura dos Sistemas Computacionais
"OA1: Conhecer os princípios básicos de funcionamento de um sistema computacional
OA2: Distinguir claramente entre hardware e software e explicar como interagem
OA3: Identificar os principais componentes físicos de um computador e descrever as suas funções
OA4: Compreender e descrever diferentes arquiteturas de computadores
OA5: Compreender a forma como um computador executa programas e como comunica com outros computadores e com os utilizadores
OA6: Conhecer os componentes dos sistemas operativos (SO), descrever as suas funções e a forma como estão implementados em diferentes SO
OA7: Distinguir entre diferentes tipos de SO e as suas aplicações práticas
OA8: Usar a linha de comando, scripts e o ambiente gráfico dos SO para realizar tarefas de administração
OA9: Compreender a virtualização de hardware, de SO e a sua relevância na economia de recursos
OA10: Implementar a virtualização de hardware em hypervisors tipo I e na nuvem e, de componentes de SO no Docker."
"CP1: Introdução às bases de numeração 2, 8, 16; Codificação e representação da informação (ASCII e outros); Apresentação da Álgebra de Boole.
CP2: Estrutura dos computadores: Placa de sistema; CPU (arquitetura do processador); Memórias; BUS; Sistema de Armazenamento; Placas gráficas; Portas de comunicação; Periféricos.
CP3: Componentes dos Sistemas Operativos (SO): Gestão de processos; Hierarquia de memória e memória virtual; Gestão de entrada e saída; Sistema de Ficheiros; Administração e Segurança.
CP4: Estudo de comandos dos SO Linux e Windows.
CP5: Hypervisors tipo II (VMware, VirtualBox) – Criação, configuração dos SO, exportação e importação de máquinas virtuais (VMs) Windows (cliente e servidor), Linux (cliente, firewall e servidores de email, VoIP, armazenamento), e MacOS; Ligação das VMs em rede.
CP6: Clouds (Azure e outras) - Criação de VMs Windows e Linux; Acesso e utilização das VMs nas clouds."
"Presença obrigatória em 90% das aulas, apresentações e outros eventos considerados necessários à aprendizagem. Sendo as aulas teórica-práticas-laboratoriais é fundamental a presença e participação nas aulas;
É obrigatório realizar 80% dos trabalhos de práticos individuais;
O projeto de laboratório, em grupos, é obrigatório. Grupos de 3 ou 4 pessoas;
Pesos da avaliação sumativa:
Av1: 5 trabalhos práticos (5% cada): 25% -> 3 trabalhos práticos em grupo, um por cada tema (Hardware, SOs, Virtualização); 2 trabalhos práticos individuais, sobre um dos temas estudados;
Av2: 2 mini-testes: 25% -> testes de escolha múltipla, realizados individualmente, no Moodle em sala de aula, sem consulta. Cada mini-teste cobre metade da matéria;
Av3: Projeto de laboratório, com apresentação e demostração em grupo e discussão oral individual: 50% -> o trabalho de projeto é eliminatório.
Avaliação formativa:
- São disponibilizados exercícios e testes-tipo no Moodle para que os estudantes possam fazer auto-avaliação dos conhecimentos adquiridos;
- Para quem o requer são disponibilizados horários de dúvidas para debate e orientação da realização do projeto;"
"José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues, ""Sistemas Operativos"", FCA, 2012, ISBN 978-972-722-575-0 Paulo Trezentos e António Cardoso, ""Fundamental do Linux"", 3ª Edição, FCA, 2009, ISBN: 978-972-722-514-9 Abraham Silberschatz, ""Operating System Concepts"", 10th Edition, Wiley, 2018, ISBN: 978-1119456339 Recursos diversos referidos nas Obervações: https://www.acsov.pt/p/recursos.html"
"Textos, exercícios e guias de laboratório da autoria da equipa docente. Morris Mano, Charles Kime, ""Logic and Computer Design Fundamentals"", 5th Ed, Prentice Hall, 2015, ISBN: 978-1292096070 Guilherme Arroz, José Monteiro, Arlindo Oliveira, ""Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores - 2ª Edição"", IST Press, 2009 Andrew Tanenbaum, Todd Austin, ""Structured Computer Organization"", 6th Ed, Pearson, 2012, ISBN: 978-0132916523 A. Silberschatz, P. Galvin, G. Gagne,""Operating Systems Concepts Essentials"", 2nd Ed, Wiley, 2013, ISBN: 978-1118804926 A. S. Tanenbaum and H. Bos, ""Modern Operating Systems (4th Ed)"", Pearson Prentice-Hall, 2014, ISBN: 978-0133591620 W. Stallings, ""Operating Systems Internals and Principles"", 9th Ed, Pearson, 2017, ISBN: 978-0134670959 M. Portnoy, ""Virtualization Essentials"", 2nd Ed, 2016, Sybex, ISBN: 978-1119267720 S. Mohan Jain, ""Linux Containers and Virtualization: A Kernel Perspective"", Apress, 2020, ISBN: 978-1484262825"
Programação para a Web
"Após a conclusão desta unidade curricular o aluno deverá ficar apto a:
OA1. Explicar os conceitos fundamentais de uma arquitetura MVC para a Web, de Web Services e de uma arquitetura REST.
OA2. Modelar uma aplicação MVC para a Web baseada na Arquitetura Java Empresarial.
OA3. Programar uma aplicação MVC para a Web utilizando a Framework Spring em JAVA.
OA4. Programar Web Services e uma arquitetura REST."
"CP1. Documentação e Convenções de Código
CP2. Engenharia de Software
CP3. Automação Software com Maven
CP4. Arquitectura Java Empresarial
CP5. Framework Spring
CP6. Desenvolvimento Frontend Web
CP7. Desenvolvimento Web em Java
CP8. Framework Spring MVC
CP9. Erros e Logging
CP10. Web Services
CP11. Spring REST"
A classificação final da UC será a média aritmética das classificações obtidas numa sucessão de mini-projetos práticos (2) realizados individualmente ao longo da disciplina, e que terão alguma continuidade entre si.
J Sharma, Ashish Sarin, "Getting Started with Spring Framework", Ed. Createspace Independent Publishing Platform, 2017.
Ludovic Dewailly, "Building a RESTful Web Service with Spring", Ed. Packt Publishing, 2015
Programação I
"Após a conclusão desta unidade curricular o aluno deverá ficar apto a:
OA1. Desenvolver funções/procedimentos que implementem algoritmos simples.
OA2. Desenvolver código para manipular estruturas vetoriais e objetos.
OA3. Desenvolver classes de objetos simples (não envolvendo herança e polimorfismo), abordando a noção de encapsulamento.
OA4. Escrever e compreender código Java."
"CP1. Funções e parâmetros
CP2. Variáveis e estruturas de controlo
CP3. Invocação e recursividade
CP4. Vetores
CP5. Procedimentos e referências
CP6. Matrizes
CP7. Objetos simples
CP8. Classes de objetos
CP9. Objetos compostos
"
A nota final é baseada num projeto individual (50%) e um teste (50%). O projeto individual terá uma fase de acompanhamento nas semanas finais da UC, sendo a nota atribuída à globalidade do projeto e sua apresentação. O teste será realizado após o término da parte letiva.
Y. Daniel Liang, "Introduction to Java Programming and Data Structures", 12th Ed. Pearson 2021.