Acreditações

Propinas UE (2025/2026)
Propinas fora da UE (2025/2026)
A licenciatura em Engenharia e Informática tem a duração de três anos, correspondentes à obtenção 180 créditos ECTS, repartidos entre 162 em unidades curriculares obrigatórias e 18 em optativas dos quais 6 em Competências Transversais.
Plano de Estudos para 2025/2026
Unidades curriculares | Créditos | |
---|---|---|
1º Ano | ||
Fundamentos de Arquitetura de Computadores
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Sistemas Operativos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Introdução à Programação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Algoritmos e Estruturas de Dados
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Cálculo II
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Microprocessadores
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Álgebra Linear
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Cálculo I
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Mecânica e Electricidade
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Ética e Deontologia
2.0 ECTS
|
Optativas > Competências Transversais > Obrigatórias | 2.0 |
2º Ano | ||
Teoria da Computação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Programação Orientada para Objetos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Probabilidades e Processos Estocásticos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Tópicos de Matemática para Computação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Bases de Dados
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Fundamentos de Redes de Computadores
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Concepção e Desenvolvimento de Sistemas de Informação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Projeto de Programação Multiparadigma
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Desenho e Análise de Algoritmos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Inteligência Artificial
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
3º Ano | ||
Engenharia de Software
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Programação Concorrente e Distribuída
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Projeto de Integração de Sistemas de Informação Distribuídos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Interacção Pessoa-Máquina
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Desenvolvimento para A Internet e Aplicações Móveis
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Agentes Autónomos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Arquitetura de Redes
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Cibersegurança em Desenvolvimento de Software
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Fundamentos de Arquitetura de Computadores
+ OA1 - Compreender o funcionamento de um computador moderno, reconhecendo os seus componentes principais e funcionalidades;
+ OA2 - Compreender o funcionamento de circuitos digitais lógicos e aritméticos, e projectar circuitos deste tipo a partir da especificação de um problema;
+ OA3 - Explicar o funcionamento de circuitos sequenciais síncronos e projectar circuitos deste tipo para controlo de outros elementos num sistema digital;
+ OA4 - Analisar o funcionamento de bancos de registos e memórias e sua utilização no contexto de um computador digital;
+ OA5 - Compreender como se combinam os vários componentes para a execução de instruções individuais e programas completos.
CP1. Arquitectura de um computador
+ Arquitectura básica: controle, datapath, memória e I/O
+ Código máquina, linguagem assembly, e linguagens de alto nível
+ Representação da Informação
+ Bases numéricas e numeração binária
+ CP2. Lógica Combinatória
+ Operações sobre bits
+ Álgebra de Boole
+ Tabelas de verdade
+ Portas Lógicas
+ CP3. Circuitos Combinatórios
+ Formas normalizadas e mapas de Karnaugh
+ Projecto circuitos combinatórios
+ Descodificadores e multiplexadores
+ Circuitos lógicos e aritméticos
+ CP4. Circuitos Sequenciais
+ Trincos e Flip-flops
+ Modelos de circuitos sequenciais
+ Projecto de circuitos sequenciais
+ CP5. Registos e Memórias
+ Registos e bancos de registos
+ Transferência de registos
+ Tipos de memórias
+ Bancos de memória
+ CP6. Arquitectura Processador
+ Arquitectura de Von-Neumann
+ Instruction Set Architecture (ISA)
+ Datapath e unidades de controlo
+ CPUs modernos
A UC pode ser realizada através de 2 modalidades de avaliação:
1. Avaliação ao longo do semestre
A avaliação ao longo do semestre é composta por:
+ (70%) 2 testes: 1 teste realizado a meio do semestre, em data a definir, e um 2.º teste realizado na primeira data da época de exame;
+ (20%) Trabalhos de laboratório em grupo, realizados semanalmente durante as aulas de laboratório;
+ (10%) Mini-testes online, realizados semanalmente na plataforma de e-learning.
A nota final é calculada através de uma média ponderada destas 3 vertentes de acordo com os pesos apresentados tendo em conta que:
+ A aprovação na componente dos testes obriga à obtenção de uma nota mínima de 7,5 valores em ambos os testes;
+ A falta a 2 ou mais sessões de laboratório resulta na reprovação automática nesta componente da avaliação;
+ A não entrega de 4 ou mais mini-testes online resulta na reprovação automática nesta componente da avaliação;
+ Para efeitos do cálculo das notas os trabalhos em falta são cotados com 0 valores;
A reprovação em qualquer das componentes de avaliação ao longo do semestre obriga à realização da avaliação por exame final.
2. Avaliação por exame final
A avaliação por exame final é composta por 1 único exame realizado em qualquer das épocas de exame disponíveis, que corresponderá a 100% da nota final.
+ Logic and Computer Design Fundamentals, 5th Edition, Morris Mano e Charles Kime, Prentice-Hall, 2015
+ Sebenta e Caderno de exercícios de Fundamentos de Arquitetura de Computadores, disponíveis no sistema de e-learning
+ Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 2ª Edição, Guilherme Arroz, José Monteiro e Arlindo Oliveira, IST Press, 2009
+ Computer Organization and Design, 5th Edition, David Patterson and John Hennessy, Morgan Kaufmann, 2014
Sistemas Operativos
OA1: Distinguir tipos, funções e características de sistemas operativos (SO)
OA2: Descrever aspetos de gestão de processos e algoritmos relacionados
OA3: Descrever os vários mecanismos de comunicação e sincronização entre processos
OA4: Descrever formas de gestão de memória em sistemas multi-programados e comparar os algoritmos associados. Explicar os métodos de gestão de memória virtual
OA5: Descrever os princípios e as formas de acesso e utilização aos dispositivos de entrada/saída
OA6: Explicar os aspetos de implementação de sistemas de ficheiros mais comuns
OA7: Identificar os mecanismos de segurança de um SO e descrever diversos tipos de ataque e formas de defesa
OA8: Usar a linha de comandos para trabalhar num servidor linux remoto; programar em shell; utilizar comandos de manipulação de texto e administração
OA9: Programar ao nível do sistema, usando as funcionalidades dos SO, tendo em conta os modelos de programação sequencial e concorrente
CP1: Introdução aos Sistemas Operativos, Processos.
CP2: Concorrência e gestão de processos.
CP3: Escalonamento de processos
CP4: Sincronização entre processos. Semáforos
CP5: Comunicação entre processos
CP6: Gestão de Memória: Modelos e algoritmos
CP7: Memória Virtual
CP8: Entradas e Saídas
CP9: Sistema de Ficheiros
CP10: Utilização do Linux
CP11: Comandos shell e programação em shell
CP12: Mecanismos de comunicação e sincronização
Esta UC é feita apenas por avaliação contínua, não contemplando avaliação apenas por Exame Final.
Componentes da avaliação:
* TRAB (12.5% x 3): Trabalho de grupo ou individual, realizado em 3 etapas
* TPC (12.5%): 9 questionários para preencher em casa (os 8 melhores são contabilizados)
* PE (50%): Prova Escrita a realizar:
1) Em duas etapas:
* Teste 1 (25%): prova escrita realizada durante o semestre; nota mínima de 8 valores.
* Teste 2 (25%): prova escrita realizada na 1ª época de avaliação; nota mínima de 8 valores.
* Média conjunta dos Teste 1 e Teste 2 >= 9,5 valores.
2) Avaliação por teste único (50%), nas datas de 1ª época, 2ª época ou em época especial.
Requisitos: TRAB+TPC >= 9,5 valores, PE >= 9,5 valores
Para mais informações, ver a secção "Observações".
- José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues (2012), Sistemas Operativos, 2ª edição, FCA, ISBN: 978-9-727-22756-3
- Andrew Tanenbaum, Herbert Bos (2014), Modern Operating Systems, 4th Edition, Pearson Prentice-Hall, ISBN: 978-1-292-06142-9
- Andrew Tanenbaum, Albert Woodhull (2006), Operating Systems Design and Implementation, 3rd edition, Prentice-Hall, 2006, ISBN: 978-0-131-42938-3
- Paulo Trezentos, Susana Nunes (2008), Linux para PCs, 3ª edição, FCA, ISBN: 978-972-722-603-0
- Paulo Trezentos, António Cardoso (2006), Fundamental do Linux, 3ª edição, FCA, ISBN: 978-972-722-514-9
- William Stallings (2018), Operating Systems Internals and Principles, 9th edition, Pearson, ISBN-13: 978-0-134-70006-9
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2018), Operating System Concepts, 10th edition, Wiley, ISBN: 978-1-119-32091-3
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2014), Operating Systems Concepts Essentials, 2nd edition, Wiley, ISBN: 978-1-118-84397-0
Introdução à Programação
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 matriciais.
OA3. Desenvolver classes de objetos simples.
OA4. Escrever e compreender código Java.
CP1. Funções independentes
CP2. Variáveis e estruturas de controlo
CP3. Funções dependentes
CP4. Vetores
CP5. Valores compostos
CP6. Procedimentos e referências
CP7. Matrizes
CP8. Classes de objetos
CP9. Ficheiros e I/O
A avaliação da UC é realizada ao longo do semestre. As componentes de avaliação e respectivos pesos na nota final são os seguintes:
a) Teste Intercalar a realizar na semana de paragem (25%); nota mínima: 20%
b) Projeto Individual (15%); nota mínima: 30%
c) Teste Final a realizar na época de exames (60%); nota mínima: 40%
Notas:
1. As questões do Teste Final serão relacionadas com o tema do Projeto Individual.
2. Existirão duas possibilidades de realização do Teste Final, na primeira e segunda época de exames.
3. Não existe a possibilidade de aprovação à UC apenas por exame para 100% da nota.
4. A realização de teste em Época Especial implica a entrega e discussão de Projeto Individual (25%) e realização de teste escrito (75%).
5. Não é possível utilizar notas de componentes de avaliação obtidas em edições anteriores da UC.
Y. Daniel Liang, "Introduction to Java programming : comprehensive version", 10th Ed., Pearson, 2015.
Algoritmos e Estruturas de Dados
Concluída a disciplina o aluno deverá ser capaz de:
OA1. Compreender algoritmos de ordenação e pesquisa apropriados a soluções computacionais;
OA2. Identificar, reescrever e examinar formas comuns de organização de dados e algoritmos associados (com e sem gestão dinâmica de memória, com algoritmos iterativos ou recursivos);
OA3. Estimar a complexidade e desempenho de algoritmos sobre estruturas de dados alternativas,
OA4. Esboçar novas formas de organização de dados e algoritmos associados adequadas a novos problemas computacionais.
CP1. O problema Union-Find
CP2. Análise de Algoritmos
CP3. Stacks, Filas, Listas e Sacos
CP4. Filas Prioritárias
CP5. Tabelas de Símbolos Elementares
CP6. Árvores de Pesquisa Equilibradas
CP7. Tabelas de Dispersão
CP8. Ordenação Elementar: Selectionsort; Insertionsort; Shellsort
CP9. Ordenação Avançada: Mergesort; Quicksort; Heapsort
CP10. Complexidade dos problemas de ordenação
Avaliação ao longo do semestre: 10 exercícios individuais de programação (25%), sem nota mínima e entregues semanalmente e dois testes escritos (75 %), o primeiro a meio do semestre e o segundo coincidindo com o exame de 1ª época. Cada um dos testes escritos tem nota mínima de 7,5 valores. A presença nas aulas não é obrigatória.
ou
Exame final individual(100%) – 1ª época, 2ª época e Época Especial
(Algorithms, Part I - MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, Addison-Wesley, 2012
D. Harel, Algorithmics: the Spirit of Computing, 3th edition, Addison-Wesley, 2004
F. Santos and C. Conti, Algoritmos e Estruturas de Dados - Exercícios, ISCTE-IUL, 2022.
Cálculo II
OA1: Compreender os conceitos e técnicas do cálculo diferencial em Rn.
OA2: Aplicar a diferenciabilidade no estudo da otimização.
OA3: Compreender as definições e calcular integrais em Rn.
OA4: Aplicar integrais duplos e triplos no cálculo de áreas, volumes, centro de massa e densidade de probabilidade.
OA5: Utilizar métodos numéricos para integração.
OA6: Compreender as definições de cálculo vetorial e aplicar os teoremas da análise vetorial a problemas de física.
1) Cálculo Diferencial em Rn
1.1.Funções de várias variáveis
1.2.Limites e continuidade
1.3.Derivadas parciais,direcionais e gradiente
1.4.A regra da cadeia e o algoritmo backpropagation
1.5.Teoremas da função implícita e da função inversa
1.6.Derivadas de ordem superior e fórmula de Taylor
2) Otimização em várias variáveis
2.1.Otimização analítica vs otimização numérica
2.2.Extremos livres
2.3.Métodos numéricos: descida máxima e método de Newton
3) Cálculo Integral em Rn
3.1.O integral de Riemann em Rn
3.2.Teorema de Fubini
3.3.Mudança de variável
3.4.Integrais duplos e triplos
3.5.Aplicações:cálculo de áreas,volumes,centros de massa e densidade de probabilidade
3.6.Métodos numéricos:integração numérica(método de Monte Carlo)
4)Análise Vetorial
4.1.Geometria das curvas
4.2.Geometria das superfícies
4.3.Integrais de linha: teorema fundamental
4.4.Integrais de superfície
4.5.Teoremas de Green, Stokes e da divergência
Os alunos podem optar por uma das seguintes modalidades de avaliação:
-Avaliação ao longo do semestre- Mini testes em aula (30%) + Teste (70%).
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Os professores responsáveis reservam-se o direito de fazer orais sempre que considerem necessário.
Stewart, J. (2016) Calculus, Early Transcendentals, 8th Edition,Cengage Learning.
Lipsman, R. L., & Rosenberg, J. M. (2017). Multivariable Calculus with MATLAB. Springer International Publishing AG.
Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Microprocessadores
OA1. Compreender o significado de medidas de desempenho e saber quantificar o ganho trazido por modificações numa arquitectura.
OA2. Saber de que modo são geralmente estruturadas as instruções-máquina.
OA3. Saber de que forma se processa a execução de um programa, compreendendo os principais mecanismos nela envolvidos.
OA4. Distinguir os principais elementos numa arquitectura básica de um processador e saber de que forma se relacionam entre si.
OA5. Compreender o conceito de pipeline e saber identificar conflitos de estruturais, de dados e de controlo.
OA6. Compreender o funcionamento de uma memória cache.
OA7. Compreender o funcionamento e desenho das arquitecuras paralelas actuais.
OA8. Saber como escrever um programa paralelo em MPI.
CP1. Medidas de desempenho
- Análise do desempenho;
- Factores que influenciam o desempenho;
- Lei de Amdahl e speed-up;
- Benchmarks
CP2. Conjunto de instruções
- Formatos de instrução
- Operações com Registos e Memórias
- Procedimentos e utilização da pilha
- Compilação e optimização
- RISC vs CISC: ARM, x86
CP3. Unidade aritmética
- Representação em vírgula flutuante (FP);
- Arquitectura para FP.
CP4.Arquitectura básica de um processador
- Fases de uma instrução
- Unidade de controlo e datapath
- Processamento uni-ciclo e multi-ciclo.
- Pipelining: Desempenho, e conflitos:
- Melhoria do desempenho
CP5. Sistemas de memória
- Hierarquias de memória;
- Memória cache;
CP6. Arquitecturas paralelas
- Medidas de desempenho;
- Arquitecturas de memória partilhada;
- Arquitecturas de memória distribuída;
- Arquitecturas baseadas em GPU.
A avaliação pode ser efectuada ao longo do semestre ou apenas por exame final:
A - Avaliação ao longo do semestre: A avaliação é feita por 2 testes escritos, um efectuado durante o período lectivo e o outro na data do exame de 1ª época. Cada teste conta 50% para a nota final e não tem nota mínima.
B - Avaliação por exame: A avaliação é feita por um exame final (em 1ª época ou em 2ª época ou em época especial) com um peso de 100% na nota final. Nota mínima: 9.5 valores.
David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 5ª Edição, IST Press, 2020.
J. Cavanagh, X86 Assembly Language and C fundamentals, CRC Press, 2013.
A. Tanenbaum, Structured Computer Organization , 6th Ed., Prentice Hall, 2012.
Álgebra Linear
No final da UC o aluno deverá ser capaz de:
OA1. Conhecer a estrutura de espaço vetorial IR^n e os conceitos de subespaço vetorial, dependência linear de vetores, base e dimensão.
OA2. Aplicar o método de Gram-Schmidt para obter uma base ortonormada.
OA3. Resolver e classificar sistemas de equações lineares.
OA4. Conhecer a noção de matriz e dominar a álgebra matricial.
OA5. Calcular, interpretar e aplicar determinantes de matrizes quadradas.
OA6. Identificar funções lineares (e matrizes de funções lineares) entre espaços vetorias.
OA7. Calcular e interpretar valores e vetores próprios. Diagonalizar matrizes. Determinar potências inteiras de matrizes diagonalizávies.
OA8. Aplicar a decomposição em valores singulares de uma matriz à compressão de imagem.
OA9. Classificar formas quadráticas.
CP1. Vetores e Sistemas de equações lineares
1.1 O espaço vetorial R^n.
1.2 Produto interno e norma
1.3 Combinação e dependência linear.
1.4 Base e dimensão.
1.5 Coordenadas de um vetor.
1.6 Ortonormalização de Gram-Schmidt
1.7 Sistemas de equações lineares.
1.8 Método de eliminação de Gauss. Classificação.
CP2. Matrizes
2.1 Matrizes elementares e de permutação
2.2 Álgebra de matrizes.
2.3 Transposição e inversão de matrizes. Propriedades.
2.4 Decomposição LU.
CP3. Determinantes. Definição. Propriedades.
CP4. Funções lineares
4.1Transformação linear e matriz de uma transformação linear
4.2 Núcleo e imagem de uma função.
4.3 Espaço nulo e espaço das colunas. Teorema da dimensão.
4.4 Mudança de base
CP5. Valores e vetores próprios
5.1 Definição. Subespaços próprios.
5.2 Diagonalização
5.3 Formas quadráticas.
5.4 Decomposição em valores singulares aplicada à compressão de imagem.
Os alunos podem optar por uma das seguintes modalidades de avaliação:
- Avaliação ao longo do semestre:
- 6 mini-testes (25%): prova escrita realizada em aula, com a duração de 15
minutos;
- Prova escrita (75%): prova escrita na 1a época do período de avaliação, com nota
mínima de 8.5 valores.
Os alunos em avaliação ao longo do semestre têm a classificação de zero valores nas fichas de avaliação não realizadas.
Os alunos deverão realizar os mini-testes na turma em que estão inscritos.
Para o cálculo da nota final nesta componente serão consideradas as 5 melhores notas
obtidas nos 6 mini-testes.
Para os alunos que escolham esta modalidade, o resultado final considerado é o melhor
entre a avaliação ao longo do semestre e a avaliação por exame.
- Avaliação por exame: realização de uma prova escrita (100%) na 1a ou 2a época do
período de avaliação.
A nota mínima de aprovação na unidade curricular é de 10 valores.
Os professores responsáveis reservam-se o direito de fazer orais sempre que considerem
necessário.
Apoio teórico fornecido pelos docentes.
Caderno de exercícios fornecido pelos docentes.
Strang, G. (2023). Introduction to Linear Algebra (sixth edition) Wellesley-Cambridge Press.
Blyth, T.S., & Robertson, E. F. (2009) Basic Linear Algebra, Wellesley-Cambridge Press.
Burden, R. L., & Faires, J. D. (2015) Numerical analysis, Cengage Learning.
Lay, D., Lay, S., & McDonald, J. (2016) Linear Algebra and Its Applications (fifth edition) Pearson.
Cálculo I
No final da UC o aluno deverá ser capaz de:
OA1. Compreender e calcular derivadas e interpretar o resultado obtido.
OA2. Compreender e determinar aproximações lineares e de ordem superior.
OA3. Compreender e calcular explicitamente as primitivas de algumas funções elementares.
OA4. Compreender e aplicar o teorema fundamental do cálculo diferencial e o teorema fundamental do cálculo integral.
OA5. Compreender e calcular integrais e suas aplicações.
OA6. Compreender e aplicar métodos numéricos para resolver equações não lineares e aplicados à derivação e integração.
OA7. Compreender séries numéricas e representar funções em séries de potências.
1) Cálculo Diferencial em R
1.1. Limites e continuidade
1.2. Diferenciabilidade
1.3. Fórmula de Taylor
1.4. Análise de erros
1.5. Métodos numéricos para resolução de equações a uma variável - métodos da bissecção e de Newton
1.6. Derivação numérica e optimização numérica
2 ) Cálculo Integral em R
2.1. Primitivas
2.2. Integrais
2.3. Teorema fundamental do cálculo integral
2.4. Aplicações geométricas
2.5. Integração numérica
3) Séries numéricas e séries de potências
3.1. Sucessões
3.2. Séries
3.3. Critérios de convergência
3.4. Séries de potências e aplicações
Existem duas modalidades de avaliação:
1. Avaliação ao longo do semestre, composta por:
- Dois Mini-Testes sobre MATLAB feitos em aula (5% + 5%)
- Teste 1 (45%): prova escrita realizada durante o semestre com nota mínima de 7.5 valores
- Teste 2 (45%): prova escrita realizada na 1ª época de avaliação com nota mínima de 7.5 valores.
2. Avaliação por exame: realização de um exame (com um peso de 100%), na 1ª época ou na 2ª época do período de avaliação.
A nota mínima de aprovação na unidade curricular é de 10 valores.
Os docentes reservam-se ao direito de fazer uma prova oral a um aluno de modo a comprovar os conhecimentos adquiridos.
K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013.
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015.
Sérgio Mendes, Apontamentos da UC, 2023.
J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018.
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018.
Mecânica e Electricidade
OA 1 - Compreender os vários tipos de movimento a uma e duas dimensões, identificar as suas causas, e ser capazes de resolver problemas envolvendo um ou mais objectos sobre a influência da gravidade, tracção de cordas e forças de contacto.
OA 2 - Compreender os conceitos de trabalho e energia e ser capazes de resolver problemas envolvendo mecanismos de conversão entre diversas formas de energia.
OA 3 - Analisar o movimento de um objecto em órbita circular sobre a influência de um campo gravítico.
OA 4 - Compreender o conceito de campo e analisar problemas simples envolvendo os campos eléctrico e magnético.
OA 5 - Compreender e analisar circuitos eléctricos simples envolvendo resistências, condensadores e bobinas.
CP 1. Modelos, Unidades e Cálculo
CP 2. Movimento unidimensional
CP 3. Movimento bi-dimensional
CP 4. Leis de Newton
CP 5. Energia
CP 6. Energia Potencial
CP 7. Gravitação e Campos de Forças
CP 8. Campo eléctrico
CP 9. Potencial eléctrico
CP 10. Corrente Eléctrica e Resistência
CP 11. Capacidade e dieléctricos
CP 12. Campo magnético e bobinas
A disciplina pode ser realizada de duas maneiras:
i) Avaliação por exame
Prova escrita no final do semestre, numa das épocas de avaliação disponíveis
ii) Avaliação periódica
Dois testes escritos + 10 mini-testes online realizados ao longo do semestre (30 minutos cada) - 6 obrigatórios. O 1.º teste é realizado no decorrer do semeste. O 2.º teste é realizado no dia do 1.º exame. A nota final é calculada como 0.9*(T1 + T2) / 2 + 0.1 * MT, onde MT é a nota dos mini-testes.
- Physics for Scientists and Engineers, 9th Edition, Autores: R. A. Serway & J. W. Jewett, Edição Thomson/Brooks Cole, disponível na livraria do ISCTE. (Inglês)
- Physics for Poets, 5th Edition, Autor: R. H. March, Edição McGraw-Hill Higher Education. (Inglês, divulgação, vista geral de toda a física e sua evolução histórica, pouca ou nenhuma matemática)
- Feynman Lectures on Physics, Autor: R. P. Feynmann, Edição Addison Wesley (Inglês, física de nível universitário)
- Introdução à Física, 2ª Edição, Autores: J. D. Deus, M. Pimenta, A. Noronha, T. Peña & P. Brogueira, Edição McGraw-Hill. (Português, física de nível universitário)
- Princípios de Física, Volume 3, Eletromagnetismo, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
- Princípios de Física, Volume 1, Mecânica Clássica, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
Ética e Deontologia
Ao concluir a UC, os estudantes deverão ser capazes de:
OA1.Reconhecer os princípios fundamentais da ética e da deontologia profissional no âmbito da engenharia e tecnologia.
OA2. Aplicar modelos de tomada de decisão ética — como o consequencialismo, a ética da virtude e a deontologia — na resolução de dilemas profissionais em engenharia e tecnologia.
OA3. Identificar e analisar criticamente dilemas éticos em contextos tecnológicos complexos, com destaque para a análise de impactos sociais, legais e ambientais das decisões técnicas.
OA4. Desenvolver propostas de conduta profissional alinhadas com os códigos de ética nacionais e internacionais (OE, IEEE, ITU).
CP1: Fundamentos de Ética e Deontologia
- Código de Ética da Ordem dos Engenheiros
- Princípios, valores e deveres profissionais
CP2: Tomada de Decisão Ética: introdução
- Quadros éticos: deontologia, consequencialismo, ética da virtude
- Aplicabilidade na prática profissional e organizacional
CP3: Dilemas Tecnológicos e Impactos Societais
- IA e algoritmos de decisão: imparcialidade, justiça algorítmica ou não discriminação
- Big Data, vigilância e privacidade (inclui, de forma sumária, GDPR e ePrivacy)
- Inovar com responsabilidade: enquadramento legal e princípios éticos
CP4: Ética, Responsabilidade Social e sustentabilidade
- Cidadania tecnológica, impacto ambiental, justiça social
- O engenheiro como agente ético de mudança
A unidade curricular prevê duas modalidades de avaliação: avaliação ao longo do semestre e avaliação por exame.
Avaliação ao longo do semestre (ALS):
Assenta na articulação entre a aprendizagem colaborativa e a avaliação individual das competências de análise ética, pensamento crítico e apropriação de conceitos fundamentais. Inclui dois momentos complementares:
1. Apresentação em grupo (50%) - Os estudantes organizam-se em 5 grupos para preparar e apresentar um exercício de reflexão, com base em propostas de trabalho suscitadas pelo/a docente sobre o tema da aula anterior. Cada grupo realiza uma apresentação oral numa das aulas ao longo do módulo. A avaliação incide sobre o conteúdo, clareza e coesão da apresentação, bem como a qualidade da participação na discussão.
2. Nota escrita individual (50%) - Cada estudante elabora um texto individual sobre o tema abordado na apresentação do seu grupo, ou sobre outro tema acordado com o docente, demonstrando apropriação crítica dos conceitos e reflexão ética pessoal.
Avaliação por exame:
A avaliação por exame é composta por uma prova escrita individual (100%), a realizar no período oficial de avaliações, e incide sobre a totalidade dos conteúdos lecionados na UC. Poderá incluir, quando necessário, uma prova oral complementar. São admitidos/as a esta modalidade os/as estudantes que por ela tenham optado, ou que não tenham obtido aprovação na avaliação ao longo do semestre.
Ethics, Technology, and Engineering: An Introduction, 2nd Edition, Ibo van de Poel & Lamber Royakkers, ISBN: 978-1-119-87943-5, September 2023, Wiley-Blackwell.
ANACOM (2023). Código de Ética e de Conduta dos Trabalhadores da ANACOM - 2023. in: www.anacom.pt/render.jsp?categoryId=335958
Ordem dos Engenheiros (2016). Código de Ética e Deontologia. In: https://www.ordemengenheiros.pt/fotos/editor2/regulamentos/codigo_ed.pdf
IEEE Code of Ethics (2020). In: https://www.ieee.org/about/corporate/governance/p7-8.html
Engineering professors Council (2025). Engineering Ethics Toolkit. In: https://epc.ac.uk/resources/toolkit/ethics-toolkit/ AA.VV. (2018).
The impact of Artificial Intelligence on communication networks and services. ITU Jornal ICT Discoveries. Special Issue, 1 (1). ITU (2008).
Monteiro, F. & Sousa, A. (2024a). Decentring engineering education beyond the technical dimension: ethical skills framework. London Review of Education, 22 (1), 23.
Monteiro, F. & Sousa, A. (2024b). Pedagogical innovation to captivate students to ethics education in engineering. Journal of Applied Research in Higher Education, 16 (4), 1029-1041.
Monteiro, F. & Sousa, A. (2024c). An educational board game to promote the engagement of electric engineering students in ethical building of a sustainable and fair future. The Journal of Environmental Education, 55, (2), 138-152.
Ethical issues in engineering. DG Johnson. 1991
Hold Paramount - The Engineer'S Responsibility To Society. P. Vesilind, 2011.
Teoria da Computação
Concluída a disciplina o aluno deverá ser capaz de:
O1. Interpretar e formular definições rigorosas;
O2. Analisar consequências lógicas das definições;
O3. Descrever vários modelos computacionais e assinalar as suas limitações.
O4. Descrever linguagens através de gramáticas.
O5. Resolver problemas computacionais utilizando os modelos computacionais aprendidos.
O6. Manipular os formalismos aprendidos na construção de analisadores léxicos e sintácticos.
CP1. Notação matemática e técnicas de demonstração
CP2. Autómatos Finitos e Linguagens Regulares
CP3. Autómatos de Pilha e Linguagens Livres de Contexto
CP4. Máquinas de Turing, Linguagens Recursivamente Enumeráveis e Tese de Church-Turing.
Avaliação ao longo do semestre: 10 mini avaliações semanais online individuais (10%) e dois testes escritos (90 %), o primeiro a meio do semestre e o segundo coincidindo com o exame de 1ª época. Não existem notas mínimas de aprovação nos testes escritos. A presença nas aulas não é obrigatória.
ou
Exame final individual(100%) – 1ª época, 2ª época e Época Especial
F. Santos, Teoria da Computação - Exercícios, ISCTE-IUL, 2015.
F. Santos, Teoria da Computação - Folhas de Apoio, ISCTE-IUL, 2013.
J. Martin, Introduction to Languages and the Theory of Computation, McGraw-Hill, (3ª edição)2003, (4ª edição) 2011.
D. Mandrioli e C. Ghezzi, Theoretical Foundations of Computer Science, John Wiley, 1987
J. Hopcroft, R. Motwani e J. Ullman, Introduction to Automata Theory, Languages and Computation, Addison Wesley, 2001.
N. Cutland, Computability: An Introduction to Recursive Function Theory, Cambridge University Press, 1980.
Programação Orientada para Objetos
No final do período letivo o aluno deverá ser capaz de:
OA1. Usar uma linguagem de programação orientada para objetos para desenhar, implementar, testar e depurar pequenas aplicações.
OA2. Entender e aplicar os conceitos de abstração, encapsulamento, herança e polimorfismo.
OA3. Saber utilizar as estruturas de dados fundamentais de uma biblioteca (pilhas, filas, árvores, tabelas de dispersão).
OA4. Aplicar 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 em casos simples.
CP1. Pacotes e encapsulamento
CP2. Leitura e escrita de ficheiros
CP3. Exceções e tratamento de erros
CP4. Polimorfismo and interfaces
CP5. Classes anónimas e lambdas
CP6. Herança
CP7. Coleções e classes genéricas
CP8. Introdução aos padrões de desenho
Sendo uma UC de caráter eminentemente prático, este UC não tem avaliação por exame a 100%, só havendo avaliação ao longo do semestre. Na avaliação ao longo do semestre há 2 modalidades: A e B.
Modalidade A (necessário presença nas aulas práticas que tem avaliações e fazer o Teste 1):
- Participação na aula (10%, grupos de 2)
- Prova escrita (Teste 1) a meio do semestre (40%, individual, nota mínima de 8 valores)
- Projeto (50%, grupos de 2, discussão na última semana de aulas, nota mínima de 8 valores)
Modalidade B:
- Prova escrita (Teste 1) a meio do semestre (50%, individual, nota mínima de 8 valores)
- Projeto (50%, grupos de 2, discussão na última semana de aulas, nota mínima de 8 valores)
Independentemente da modalidade seguida:
- pode substituir o teste 1, caso este tenha nota <8, pela Prova escrita na data da 1ª época (individual, nota mínima de 8 valores);
- a nota da componente "Projeto" é limitada pelo desempenho demonstrado individualmente numa discussão oral, de acordo com a seguinte regra:
· Muito bom desempenho - sem limite;
· Bom desempenho - limite de 16 val;
· Desempenho suficiente - limite de 12 val;
· Mau desempenho na discussão - reprovado à UC.
A avaliação em época especial é composta por projeto e Prova escrita, valendo 50% cada componente.
Melhoria de nota só pode ser feita repetindo o processo de avaliação no ano seguinte.
Folhas de apoio disponíveis no e-learning.
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 Aplication Programming Interface)
Probabilidades e Processos Estocásticos
No final da UC o aluno deverá ser capaz de:
OA1. Compreender a axiomática e os principais teoremas das probabilidades.
OA2. Compreender e usar o conceito de variável aleatória.
OA3. Conhecer as principais distribuições de probabilidade.
OA4. Compreender e identificar processos estocásticos.
OA5. Conhecer as principais leis das probabilidades.
OA6. Gerar computacionalmente funções de distribuição e variáveis aleatórias. Obter soluções numéricas para problemas formulados estatisticamente.
CP1: Teoria de Probabilidade
1.1 Exp. aleatória, espaço de resultados, acontecimentos
1.2 Noção de probabilidade, interpretação de Laplace e frequencista. Axiomática de Kolmogorov
1.3 Probabilidade condicionada. Probabilidades compostas e total. T. de Bayes. Independência
CP2: Variáveis aleatórias (v.a.’s)
2.1 V.a.’s uma dimensão. Funções probabilidade e de distribuição
2.2 V.a.’s multidimensionais. Distribuições conjuntas, marginais e condicionais. Covariância e correlação
2.3 Combinações lineares de v.a.’s
CP3: Teoremas Centrais
3.1 Desigualdades de Markov e Chebyshev
3.2 Lei dos Grandes Números
3.3 Teorema Limite Central
3.4 Função geradora de momentos
CP4: Processos estocásticos
4.1 Processos estocásticos discretos. Processos de contagem e de Poisson
4.2 Processos de Poisson combinados e repartidos
4.3 Processos estocásticos contínuos. Movimentos Browniano - com Drift e Geométrico
4.4 Cadeias de Markov a tempo discreto. Equações de Chapman-Kolmogorov
4.4 Aplicações e algoritmos
A nota mínima de aprovação na unidade curricular é de 9.5 valores.
Avaliação principal (AP):
Modalidades de avaliação - Os alunos podem optar por uma das seguintes modalidades de avaliação:
Avaliação ao longo do semestre, composta por:
Teste intercalar (60%): teste escrito realizado, numa data a definir, durante o período das aulas; nota mínima de 8.0 valores.
Frequência (40%): prova escrita realizada na 1ª época de avaliação; nota mínima de 8.0 valores.
Avaliação por exame: realização de uma prova escrita (com um peso de 100%), na 1ª época ou na 2ª época do período de avaliação.
Avaliação opcional (AO): Realização de um trabalho/estudo com cotação máxima de quatro (3.0) valores.
- Em caso de aprovação na AP a nota final (NF) é calculada pela fórmula: NF = min{20, AP + AO}
- Provas orais: Os alunos com a nota igual ou superior a 17 valores na NF que não realizaram a AO poderão ser chamados a prova oral. A nota à disciplina será igual ao max{17, NPO}, onde NPO (entre 17 e 20 valores) designa a nota da prova oral. Se não houver comparência nessa prova, a nota final será de 17 valores.
Nota 1: Os alunos repetentes dispõem das mesmas modalidades de avaliação, sujeitas às mesmas regras.
Nota 2: Os docentes responsáveis reservam-se o direito de fazer orais sempre que considerem necessário.
Ross, S. M. Introduction to Probability and Models 11th edition, Academic Press, 2014.
Morais M.C., Probabilidades e Estatística, Teoria, Exemplos e Exercícios, IST Press, 2020.
Morais M. C., Stochastic Processes Theory, Examples & Exercises, IST Press, 2024.
Material pedagógico que aparecerá regularmente no Moodle.
Durrett, R.G., Essentials of Stochastic Processes (3rd ed.), Springer, 2016.
Krishnan, V., Probability and Random Processes, Wiley, 2015.
Montgomery, D. Runger, G.C., Applied Statistics and Probability for Engineers. Wiley& Sons, 2003.
Tópicos de Matemática para Computação
No final da UC o aluno deverá ser capaz de:
OA1. Determinar e interpretar transformadas de Fourier discretas.
OA2. Utilizar métodos e propriedades de análise de Fourier no contexto de processamento de sinal, tratamento de imagem e compressão de dados.
OA3. Implementar em python (numpy) exemplos concretos das aplicações referidas no ponto anterior.
OA4. Utilizar técnicas de aritmética modular e propriedades da fatorização de números naturais no contexto de criptografia.
OA5. Implementar em python (numpy) exemplos concretos das aplicações referidas no ponto anterior.
OA6. Determinar arquiteturas básicas de redes neuronais para aplicar em problemas de regressão e classificação.
OA7. Aplicar algoritmos de otimização numérica no contexto de problemas de aprendizagem automática com redes neuronais.
OA8. Implementar em python (numpy e Keras) o descrito nos últimos dois pontos.
CP1. A transformada de Fourier discreta.
1.1. Números complexos
1.2. Produto interno e ortogonalidade.
1.3. Propriedades fundamentais de ondas e sinais.
1.4. A transformada de Fourier discreta e FFT.
1.5. Convolução discreta.
1.6. Tratamento e compressão de som e imagem; implementação em python.
CP2.
2.1. Aritmética modular.
2.2. Números primos e fatorização.
2.3. Congruências.
2.4. Introdução à criptografia.
2.5. Implementação em Python de métodos básicos de criptografia.
CP3. Redes Neuronais:
3.1. Introdução à aprendizagem automática supervisionada.
3.2. Otimização numérica: descida do gradiente e variantes.
3.3. Regressão e classificação linear.
3.4. Redes neuronais profundas.
3.5. O algoritmo Backpropagation.
3.6. Reconhecimento de imagem; implementação em python (numpy e Keras).
Aprovação com classificação não inferior a 10 valores numa das modalidades:
- Avaliação ao longo do semestre versão 1: 3 testes (75%) + 3 avaliações práticas presenciais em python (25%), ou
- Avaliação ao longo do semestre versão 2: Exame realizado na primeira época (75%) + 3 avaliações práticas presenciais em python (25%), ou
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Aprovação em avaliação ao longo do semestre v1 requer uma nota mínima de 8.0 em 20 em cada um dos testes.
- Aprovação em avaliação ao longo do semestre v2 requer uma nota mínima de 8.0 em 20 no exame.
- O 3º teste realizar-se-á durante a 1ª época de exames.
- No caso da avaliação ao longo do semestre v1, os alunos poderão realizar pela primeira vez, ou repetir, 1 dos testes, e apenas 1, durante a 2ª época de exame, o que pode requerer a inscrição em melhoria junto dos serviçoes académicos.
- A participação na aula e a apresentação de trabalho extra através da resolução de "desafios", que vão ser propostos ao longo do semestre, resultará numa possível bonificação até 1 valor.
- As avaliações práticas presenciais serão realizados em grupos, formados idealmente por 3 alunos. No caso destas avaliações conterem uma componente competitiva, parte da sua avaliação irá refletir a classificação relativa dos grupos nessa competição.
- Notas superiores ou iguais a 19, em qualquer das modalidades anteriores, poderão estar sujeitas a uma defesa de nota.
- Todos os momentos de avaliação podem estar sujeitos a uma prova oral, caso o professor considere que há necessidade de algum tipo de clarificação.
- João L. Costa, Slides e Notebooks da cadeira.
- Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
- Goodfellow, I and Bengio, Y and Courville, A, "Deep Learning", MIT press, 2016
- Chollet, F., "Deep Learning with Python: Second Edition", Manning Publications, 2021.
- Rousseau, C and Saint-Aubin, Y., "Mathematics and Technology", Springer 2008.
- "Discrete Mathematics and its Applications, Eighth Ediiton", McGraw Hill 2019.
Bases de Dados
Com esta unidade curricular o aluno deverá ficar apto a:
OA1. Desenvolver mecanismos de Abstração;
OA2. Desenvolver estruturação de informação;
OA3. Desenvolver capacidade de utilizar eficazmente linguagens de pesquisa de informação;
OA4. Implementar uma solução de aplicação dos conceitos aprendidos.
Os conteúdos programáticos (CP) são os seguintes:
CP1 - Linguagem UML, Diagrama de Classes
CP2 - Modelo relacional
1. Desenho de esquemas relacionais
2. Relações e chaves primárias
3. Chaves estrangeiras e regras de integridade
4. Otimizações e índices
5. Transposição de um modelo conceptual para um modelo relacional
CP3 - Linguagem SQL
1. Querys Simples;
2. Funções de Agregação
3. SubQuerys;
CP4 - Automatismos SQL
1. Triggers
2. Stored Procedures e Funções
CP5 - Transações e concorrência
CP6 – Introdução ao PHP/MySQL
Avaliação ao longo do semestre:
- Projeto em grupo, com ponderação de 40% em duas entregas faseadas;
- Teste individual escrito, com ponderação de 50% a realizar na data da 1ª época; e
- Quatro testes intercalares online, com ponderação de 10% a realizar ao longo do semestre.
Condicionante para aprovação: nota mínima de 8,00 valores (em 20), sem arredondamento para o projeto e para o teste.
Caso o aluno reprove ou não atinja a nota mínima no teste individual escrito, pode recorrer à data da 2ª época para repetir a realização desta componente de avaliação. Para as componentes de projeto e testes intercalares online não haverá possibilidade de novas entregas ou repetições.
Alunos que pretendam fazer melhoria de nota poderão fazer o exame, a realizar na data da 2ª época. Nenhuma das restantes componentes é suscetível de melhoria.
Avaliação por exame:
- Exame escrito individual, sem consulta, com toda a matéria (100%).
Realiza exame final – na 1ª época, 2ª época ou época especial (segundo as regras do conselho pedagógico) quem não tenha concluído com sucesso a avaliação ao longo do semestre, com uma nota média superior ou igual a 10 (em 20).
- Ramos, Pedro Nogueira (2012). Desenhar Bases de Dados com UML, 2ª Edição, Edições Sílabo, ISBN: 978-972-618-474-4.
- Gouveia, Feliz (2021). Bases de Dados - Fundamentos e Aplicações, 2ª Edição Aumentada, FCA Editora, ISBN: 978-972-722-901-7.
- Damas, Luís (2017). SQL, 14ª Edição, FCA Editora, ISBN 978-972-722-829-4.
- Alturas, Bráulio (2022). Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, ISBN 978-989-561-265-9.
- Booch, Grady; Rumbaugh, James & Jacobson, Ivar (2005). The Unified Modeling Language User Guide, 2nd Edition, Addison-Wesley, ISBN 978-032-126-797-9.
- Ramakrishnan, Raghu & Gehrke, Johannes (2002). Database Management Systems, 3rd Edition, McGraw-Hill, ISBN 978-007-246-563-1.
- Caldeira, Carlos Pampulim (2011). A Arte das Bases de Dados, Edições Sílabo, ISBN 978-972-618-627-4.
- Date, Christopher J. (2004). An introduction to Database Systems, 8th Edition, Addison-Wesley, ISBN 978-032-119-784-9.
- Elmasri, Ramez & Navathe, Shamkant (2010). Fundamentals of Database Systems, 6th Edition, Addison-Wesley, ISBN 978-013-608-620-8.
- Laudon, Kenneth & Laudon, Jane (2009). Management Information Systems, 11th Edition, Prentice Hall, ISBN 978-013-607-846-3.
- McNurlin, Barbara; Sprague Jr., Ralph & Bui, Tung (2009). Information Systems Management, 8th Edition, Prentice Hall, ISBN 978-013-243-715-8.
- Pereira, José Luís (1998). Tecnologias de Bases de Dados, 3ª Edição, FCA Editora, ISBN 978-972-722-143-1.
- Silberschatz, Avi; Korth, Henry F. & Sudarshan, S. (2010). Database System Concepts, 6th Edition, Addison-Wesley, ISBN 978-007-352-332-3.
Fundamentos de Redes de Computadores
OA1: identificar e distinguir os diferentes modelos de referência para as redes de computadores
OA2: identificar e descrever as principais funcionalidades de cada um dos níveis dos modelos de referência OSI e TCP/IP
OA3: resolver problemas e casos de estudo para cada um dos três primeiros níveis do modelo de referência OSI
OA4: ser capaz de realizar experiências, recolher e analisar dados das mesmas que permitam observar o comportamento e desempenho de diferentes tecnologias
OA5: ser capaz de avaliar o desempenho de diferentes tecnologias usando técnicas analíticas e de simulação.
CP1. Introdução às redes de computadores
a. Classificação de redes e suas tecnologias
b. Serviços, protocolos e modelos de referência (OSI e TCP/IP)
CP2. Nível físico
a. Caracterização e influência do meio físico
b. Multiplexagem e comutação
CP3. Nível ligação de dados
a. Funcionalidades fundamentais do nível ligação de dados
b. Protocolos de controlo de erro e fluxo e sua análise
c. A família de protocolos IEEE 802
d. Interligação de redes locais (VLANs e STP)
CP4. Nível rede
a. Encaminhamento e expedição. Arquitectura de um router.
b. O protocolo IPv4 (pacotes, encaminhamento, fragmentação)
c. Endereçamento no protocolo IPv4 e IPv6. NAT.
d. Algoritmos de encaminhamento
e. Interligação de redes. Protocolos de encaminhamento RIP, OSPF e BGP.
f. Protocolos principais na Internet: ICMP, ARP e DHCP.
Pode ser realizada num dos seguintes modos:
1. Avaliação ao longo do semestre:
- Uma prova escrita a realizar durante a época de exames com nota mínima de 8.0 valores - (45%)
- Oito trabalhos de laboratório em grupo - (20%)
- Um trabalho prático de grupo que deve ser entregue na penúltima semana de aulas - (25%)
- Oito mini-testes online - (10%)
2. Avaliação por exame.
O exame é composto de uma prova escrita (50%) com nota mínima de 8 val. e de uma prova prática (50%). Ambas as provas devem ser realizadas na mesma época de exame, i.e. em 1ª época, em 2ª época ou em época especial.
* Computer Networks: A Systems Approach; Larry Peterson, Bruce S. Davie; Morgan Kaufman, 2022 (6th edition).
* Computer Networking: A Top-Down Approach; James F. Kurose, Keith W. Ross; Pearson Education, 2022 (8th edition).
* Computer Networks; Andrew S. Tanenbaum; Pearson, 2021 (6th edition)
* Internetworking with TCP/IP Volume 1: Principles, Protocols, and Architectures; Douglas E. Comer; Prentice Hall, 2013 (6th edition)
* Local Area Networks; Gerd Keiser; MacGraw Hill, 2002 (2nd edition)
* Data Networks; Dimitri P. Bertsekas and Robert Gallager; Prentice Hall, 1992 (2nd Edition)
* Data and Computer Communications; William Stallings; Prentice Hall, 2013 (10th edition)
Concepção e Desenvolvimento de Sistemas de Informação
OA1. Identificar os requisitos para a CDSI e as principais fases e actividades de CDSI;
OA2. Transformar requisitos em especificação técnica e modelos de um SI;
OA3. Utilizar ferramentas de modelação de SI;
OA4. Utilizar tecnologias de implementação Low-Code e introdução a serviços para a implementação de SI, API com protocolos REST;
OA5. Construir experiência de trabalho em equipa, no contexto da realização do projecto de CDSI, desenvolvendo as capacidades de discussão, de tolerância, aceitação e respeito das opiniões dos colegas (soft skills);
OA6. Co-construir soluções baseadas em pensamento crítico, resolução criativa de problemas, colaboração, observação crítica, negociação e tomada de decisão colaborativa;
OA7. Aplicar estratégias de proposição de soluções refletidas, trabalho autónomo baseado na pesquisa de soluções e construção sustentada de argumentação;
OA8. Desenvolver as capacidades de comunicação oral e escrita e de discussão técnica do trabalho.
CP1. Introdução à concepção e desenvolvimento de SI;
CP2. Ciclo de vida de desenvolvimento de SI;
CP3. Análise de requisitos para a concepção e desenvolvimento de SI;
CP4. Especificação e concepção de SI, diagramas UML;
CP5. Modelização de processos no contexto dos SI em BPMN;
CP6. Tecnologias de implementação Low-Code;
CP7. Tecnologias de integração no contexto dos SI: Arquitecturas Orientadas a Serviços, Application Programming Interfaces (API) e REST.
Avaliação ao longo do semestre:
A avaliação na UC é exclusivamente efetuada por avaliação ao longo do semestre por ser uma UC iminentemente prática através de projecto. A nota individual resulta de vários componentes: da avaliação dos relatórios intercalares, relatório final, apreciação do desempenho do/a aluno/a ao longo do semestre (envolvimento nas discussões semanais, na sua capacidade de exposição e discussão técnica), orais e teste individual, da seguinte forma:
- Participação em aula (10%): avalia a presença, incluindo a presença obrigatória em 80% das aulas, envolvimento e contributos individuais dos estudantes nas discussões e em atividades práticas.
- Teste individual (20%) a realizar em época intercalar;
- Fase 1 do projecto: entrega, discussões semanais, apresentação oral (30%), a realizar durante o semestre;
- Fase 2 do projecto: entregas, discussões semanais (30%) a realizar durante o semestre após a fase 1;
- Fase 3 do projecto: entrega do relatório de testes (10%) a realizar no final do semestre.
- As notas das fases 2 e 3 têm em conta a componente demonstração e discussão oral do projeto final a realizar durante a 1ª época.
A média ponderada de cada uma destas componentes (não inferior a 8 valores em cada uma das componentes) constitui a nota final.
Não existe avaliação por exame e a época especial consiste num complemento à avaliação ao longo do semestre, se necessário.
A época especial é reservada a casos especiais previstos no Regulamento Geral de Avaliação de Conhecimentos e Competências (RGACC), Artigo 14.º Época especial: https://www.iscte-iul.pt/conteudos/estudantes/informacao-academica/regulamentos-formularios/1025/regulamentos
Caso sejam utilizados recursos e ferramentas de Inteligência Artificial, estes devem ser mencionados de forma clara nos resultados. Tal como se referenciam artigos, livros, websites e outras fontes utilizadas num trabalho, o uso de IA deve também ser referenciado e utilizado apenas como ferramenta de apoio e pesquisa. Nesse sentido, sempre que a IA for empregue para a realização de uma determinada tarefa, essa contribuição deve ser mencionada, garantindo que a originalidade e a integridade académica se mantêm. Por exemplo, cada estudante poderá incluir uma breve declaração, no final de um trabalho, em que explique o papel da IA no processo desenvolvido para a realização do trabalho. As ferramentas de IA não podem ser usadas para gerar trabalhos inteiros ou plagiar conteúdo. Caso isto aconteça, haverá penalização da avaliação.
Whitten, J.L. and Bentley, L.D., Systems Analysis and Design Methods, McGraw-Hill, USA, 7th edition, 2007.
Avison, D. and Fitzgerald, G., Information Systems Development: methodologies, techniques, and tools, McGraw-Hill Education ? Europe, 4th ed., 2006.
Seidl, Martina et al., UML@Classroom: An Introduction to Object-Oriented Modeling, Springer, 2012.
Brambilla, Marco et al., Model-Driven Software Engineering in Practice, Morgan & Claypool Publishers, 2012.
Magal, R. S. and Word, J., Essentials of Business Processes and Information Systems, John Wiley & Sons, Inc., USA, 2009.
Erl, T., Service-Oriented Architecture: Analysis and Design for Services and Microservices, Pearson Education, Prentice Hall, USA, 2nd ed., 2019.
Hohpe, G. and Woolf, B., Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley, 2004.
Gold-Bernstein, B. and Ruh, W., Enterprise Integration: The Essential Guide to Integration Solutions, Addison-Wesley, 2005.
Modelling information system processes: https://www.modeling-guidelines.org/
Modelling processes and UML with Signavio tutorials:
http://elearning.uml.ac.at/quiz
https://documentation.signavio.com/suite/en-us/Content/workflow-accelerator/userguide/tutorials/intro.htm
https://documentation.signavio.com/suite/en-us/Content/process-manager/userguide/intro.htm
https://www.signavio.com/video/signavio-tutorial-videos/
https://www.signavio.com/bpmn-introductory-guide/
https://documentation.signavio.com/pdfs/en/Process-Manager-User-Guide-en.pdf
https://www.uml.org/
Schmuller, Joseph.; Sams Teach Yourself UML in 24 Hours, 3rd Edition, Sams Publishing, 2004.
Fowler, M.; UML Distilled, Third Edition, Addison-Wesley, 2004.
Booch, Grady, Rumbaugh, James, Jacobson, Ivar; The Unified Modeling Language User Guide, Second Edition, Addison-Wesley, 2005.
Dennis, A., Wixom, B. H., Tegarden, D.; System Analysis and Design UML Version 2.0, John Wiley and Sons, 2009.
Arlow, J., Neustadt, I.; UML2 and the Unified Process, Second edition, Addison-Wesley, 2005.
Implementing systems with OutSystems low-code:
https://success.outsystems.com/Documentation
https://www.outsystems.com/training/paths/18/becoming-a-reactive-web-developer/
https://www.outsystems.com/training/courses/123/modeling-data/
https://www.outsystems.com/training/courses/128/modeling-data-relationships/
https://www.outsystems.com/training/courses/116/integrating-with-web-services/
https://www.outsystems.com/training/courses/184/modeling-business-processes/
https://www.outsystems.com/training/paths/16/becoming-a-front-end-developer-in-outsystems/
https://www.outsystems.com/training/courses/124/reactive-ui-development-101/
https://www.outsystems.com/training/courses/129/building-reactive-web-forms/
https://www.outsystems.com/training/courses/130/form-validations/
Projeto de Programação Multiparadigma
Ao completar com sucesso esta unidade curricular, o estudante estará apto a:
OA1: entender os princípios da programação funcional;
OA2: escrever programas puramente funcionais;
OA3: diferienciar os benefícios das características do paradigma funcional comparativamente com outros paradigmas de programação;
OA4: implementar aplicações multiparadigma, com uma componente interativa, de média dimensão;
OA5: trabalhar em equipa.
Os conteúdos programáticos (CP) são:
CP1: Introdução ao paradigma funcional em programação e aos seus conceitos fundamentais;
CP2: Conceitos avançados de programação funcional (funções puras, funções de ordem superior, composições de funções, imutabilidade);
CP3: Introdução às tecnologias essenciais de suporte à programação em equipa;
CP4: Programação orientada a eventos;
CP5: Padrões para interface do utilizador;
CP6: Integração de programas multiparadigma;
Avaliação ao longo do semestre com Prova Escrita individual (PE) realizada durante o período de avaliação e, Projeto (PRJ) realizado em trabalho de grupo com 2 entregas (durante o período letivo), discussão e aferição individual do PRJ.
As classificações possíveis na aferição individual são A, B ou C, definindo a nota do PRJ (np):
A - np = à classif. do PRJ
B - np = 80% da classif. do PRJ
C - reprov. à UC
Classificação final:
40%PE + 60%np
Nota mínima 9.5 valores em ambos PE e np
Não existe avaliação por exame
Assiduidade não é usada cm critério de avaliação ou reprovação
Estudantes sem nota mínima no projeto (ou que não o realizem) não têm acesso à prova escrita, ficando automaticamente reprovados à UC.
Em caso de reprovação na 1ª época, o aluno pode voltar a realizar a prova escrita na 2ª época (e na época especial se a ela tiver acesso) mantendo a nota do Projeto.
Não é possível melhorar a nota do projeto entre as avaliações de 1ª e de 2ª época.
A obrigatoriedade de nota mínima no projeto também se aplica à Época Especial. Caso o estudante já tenha realizado e obtido nota mínima no projeto durante o período normal de lecionação da UC, o mesmo será considerado para a Época Especial. Caso ainda não tenha realizado o projeto, deverá entregá-lo até à data definida e realizar a discussão.
Backfield, J. (2014). Becoming Functional: Steps for Transforming Into a Functional Programmer. ISBN 978-1449368173.
Chiusano, P., & Bjarnason, R. (2014). Functional Programming in Scala. ISBN 978-1617290657.
Wampler, D., & Payne, A. (2015). Programming Scala: Scalability = Functional Programming + Objects. ISBN 978-1491949856
Schildt, H. (2015). Introducing JavaFX 8 Programming. ISBN 978-0071842556.
Tidwell, J., Brewer, C., & Valencia, A. (2020). Designing Interfaces: Patterns for Effective Interaction Design. ISBN 978-1492051961.
Hutton, G. (2007). Programming in Haskell. ISBN 978-0521692694.
Coplien, J. O. (1998). Multi-Paradigm Design for C++. ISBN 978-0201824674.
Desenho e Análise de Algoritmos
Ao completar com sucesso esta unidade curricular, o estudante estará apto a:
OA1: Identificar as estratégias mais apropriadas para o problema a resolver.
OA2: Construir e implementar os algoritmos necessários para a resolução pretendida.
OA3: Analisar a complexidade de diferentes algoritmos e perceber o que isso pode implicar na aplicação desses algoritmos a problemas reais.
OA4: Compreender os principais algoritmos e estruturas de dados utilizados em grafos.
Os conteúdos programáticos (CP) são:
CP1: Análise de algoritmos e Teoria da Complexidade: casos para análise e algoritmos de aproximação.
CP2: Estratégias de desenho de algoritmos: incremental, dividir-e-conquistar, aleatoriedade, ávida (greedy), programação dinâmica.
CP3: Grafos: estrutura de dados e algoritmos (árvores de cobertura, travessias, caminhos mais curtos, algoritmos de fluxo).
A avaliação pode ser efetuada ao longo do semestre ou por exame final.
Avaliação ao longo do semestre: E x 0.20 + T x 0.60 + M x 0.20 = 100%.
(E) Exercícios semanais:
- Matéria até a última aula dada.
- Não tem nota mínima.
(T) Testes intercalares:
- 2 testes de igual ponderação e com nota mínima de 7.5 valores;
- 1º teste: na semana intercalar;
- 2º teste: no dia do exame de 1ª Época.
(M) Minitrabalhos:
- Realizados em grupo de 2 pessoas.
- Não tem nota mínima.
Exame final: 1ª, 2ª Épocas e Época Especial = 100%.
- Thomas Cormen, Charles Leiserson, Ronald L. Rivest and Clifford Stein (2022). Introduction to Algorithms. 34th ed., MIT Press. (CP1 e CP2)
- Robert Sedgewick and Kevin Wayne (2011). Algorithms 4th Edition, Addison-Wesley. (CP3)
- John Kleinberg and Eva Tardos (2005). Algorithm Design, Addison-Wesley.
- Tim Roughgarden (2022). Algorithms Illuminated: Omnibus Edition. Cambridge: CUP.
- David Williamson and David Shmoys (2010). The Design of Approximation Algorithms, Cambridge University Press.
Inteligência Artificial
Após a conclusão da UC, os alunos devem
(OA1) Ter consciência das vantagens e desafios da utilização de abordagens de IA para o desenvolvimento de sistemas e modelos, em particular métodos de procura, de representação e raciocínio, de adaptação e de aprendizagem automática;
(OA2) Saber identificar os requisitos dos sistemas e/ou dos modelos a criar;
(OA3) Escolher as abordagens tecnológicas mais adequadas aos requisitos de AO2: métodos de procura, de representação e raciocínio, de adaptação e de aprendizagem automática.
(OA4) Compreender e saber usar as abordagens apresentadas na UC para o desenvolvimento de sistemas e na modelação da realidade.
(CP1) Noções fundamentais de IA com destaque para a abordagem baseada em procura
(CP2) Algoritmos de procura: profundidade primeiro e largura primeiro, A*
(CP3) Noções básicas de aprendizagem automática: supervisionada, por reforço, e não supervisionada
(CP4) Algoritmos genéticos
(CP5) Redes neuronais feedforward multicamada com backpropagation
(CP6) Noções fundamentais relativas a conhecimento, representação, e arquitetura de sistemas baseados em conhecimento
(CP7) Lógica de predicados de primeira ordem: representação e dedução
(CP8) Conhecimento declarativo representado em Programação em Lógica
(CP9) Sistemas de Regras baseadas na Fuzzy Logic
Avaliação ao longo do semestre:
- 2 Testes Intercalares (Nota Mínima em cada teste 8.5) [35% cada]
- 2 projectos (Nota Mínima em cada projecto 9.5) [15% cada]
As notas dos projetos serão resultado de uma avaliação prática realizada durante uma oral, nas datas indicadas no respetivo enunciado. Um dos projetos será entregue a meio do semestre e o outro na última semana de aulas. Apesar de os projetos serem desenvolvidos em grupo, a nota atribuída a cada estudante do grupo será individualizada, com base no desempenho de cada um na avaliação prática associada a cada projeto.
Avaliação por exames: [100%]
- Primeira época
- Segundo época
- Época Especial
Os testes e os exames podem ter grupos de perguntas com nota mínima
Para ter acesso aos testes e exame, é necessário concluir todas as atividades da matéria lecionada até ao momento no Moodle.
Pode ser exigido aos alunos que se inscrevam em provas de avaliação.
A cadeira assenta fundamentalmente nos apontamentos para as aulas sobre Sistemas Baseados em Conhecimento, e nos livros [Russell e Norvig 2003] sobre Inteligência Artificial, [Clocksin e Mellish 1994] sobre Prolog, e [Graham 1996] sobre LISP.
Clocksin, W.F. e Mellish, C.S. 2003. Programming in Prolog Using the ISO Standard(Quinta Edição). Springer Verlag (existe na biblioteca, embora seja a quarta edição).
Russell, S.; e Norvig, P. 2003. Artificial Intelligence: a Modern Approach, Prentice Hall. Capítulos 3 a 9. (existente na biblioteca).
Graham, P. 1996. ANSI Common Lisp. PrenticeHall.
Linguagem de Programação Prolog
Bratko, I. 1990. Prolog Programming for Artificial Intelligence. Addison Wesley Publishing Company (existente na biblioteca).
Lógica de Predicados e Forma Clausal
Michael R. Genesereth, Nils J. Nislsson. 1987. ?Logical Foundations of Artificial Intelligence?. Morgan Kaufman Publishers (Capítulos 2, 3 e 4)
Sistemas Baseados em Conhecimento (Perspectiva teórica)
- Ronald Brachman, Hector Levesque. 2004. "Knowledge Representation and Reasoning". Morgan Kaufmann
- Mark Stefik. 1995. Introduction to Knowledge Systems?. Morgan Kaufmann
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 tais como análise de requisitos, desenho e análise de software, implementação, inspeção de código, gestão de configurações, construção, entrega e implantação de software;
OA4. Avaliar e melhorar a qualidade do produto em Engenharia de Software.
CP1 - Processo da engenharia de software
CP2 - Gestão de configurações e construção de software
CP3 - Requisitos de software
CP4 - Testes de software
CP5 - Desenho de software
CP6 - Métricas de qualidade e melhoria do produto
CP7 - Evolução, entrega e implantação de software.
Avaliação ao longo do semestre:
Projeto prático em grupo com peso de 50% (nota individualizada e mínima de 9.5 em 20).
Frequência (1ª época) com peso de 50% (nota mínima 9.5 em 20).
A nota final pode ser majorada até 1.6 valores (com limite máximo de 20 valores), através da realização individual de Quizzes nas aulas teórico-práticas, ao longo do semestre. A avaliação dos Quizzes é opcional, não tem nota mínima, soma à nota final calculada com as componentes de projeto e frequência, nunca penalizando a nota final.
Exame final (100%): 1ª época, 2ª época e época especial.
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.
Pressman, R. S., & Maxim, B. R. (2014). Software Engineering: A Practitioner’s Approach (8th ed.). New York, NY: McGraw-Hill Professional.
Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring. Boston, MA: Addison Wesley.
Ieee Computer Society. (2014). Guide to the software engineering body of knowledge (swebok(r)) (P. Bourque & R. E. Fairley, Eds.). IEEE Computer Society Press.
Guerreiro, S. (2015). Introdução à Engenharia de Software, FCA Editora.
Pinto, J.P., Tscharf, C. (2019). SCRUM - A gestão ágil de projetos, FCA Editora.
Schach, S. R. (2010). Object-oriented and classical software engineering (8th ed.). New York, NY: McGraw-Hill Professional.
IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices. (2004). Software Engineering Code of ethics and Professional Practice. Science and Engineering Ethics.
Programação Concorrente e Distribuída
Após a conclusão desta unidade curricular o aluno deverá ficar apto a:
OA1. Saber programar usando o paradigma da programação por eventos.
OA2. Adquirir competências básicas de programação gráfica em Java - Swing.
OA3. Apreender a noção de processo ligeiro.
OA4. Compreender os problemas de sincronização de processos ligeiros no acesso a recursos partilhados.
OA5 Compreender os mecanismos de coordenação de processos bem como os seus principais problemas como Deadlock, Livelock e Starvation.
OA6. Conhecer os principais padrões de coordenação de processos ligeiros.
OA7. Conhecer as arquiteturas clássicas do paradigma de programação distribuída e algoritmos concorrentes e distribuídos.
CP1. Introdução.
CP2. Programação gráfica por eventos em SWING.
CP3. Noção de Processo Ligeiro. Ciclo de vida de um processo ligeiro.
CP4. Sincronização, cadeados.
CP5. Coordenação de processos ligeiros.
CP6. Bloqueio explícito. Starvation e deadlock.
CP7. Estudo de alguns dos problemas clássicos da programação concorrente.
CP8. Pools de processos ligeiros.
CP9. Programação em rede
CP10. Arquiteturas distribuídas.
As aulas estão organizadas em blocos teóricos e de exercícios. As teóricas caracterizam-se por blocos de exposição encadeados com exemplos e exercícios. Nas aulas de exercícios, os alunos devem resolver um conjunto de problemas. Adicionalmente espera-se dos alunos ~6 horas de trabalho semanal para completar os exercícios das aulas e realizar o projeto final.
|
É obrigatória a inscrição para as provas escritas.
A avaliação é efectuado por um projeto e uma frequência.
O projeto tem dois momentos de avaliação: uma entrega intercalar e uma oral numa das últimas semanas de aulas.
As classificações possíveis no Projeto Individual são (A, B, C, D). A classificação obtida no projeto não tem peso na nota final, mas define um limite máximo para a mesma:
A-max. 20
B-max. 16
C-max. 12
D-reprovação à UC
Nota final é apenas dada pela classificação da frequência.
Introduction to Java Programming, Y. Daniel Liang, 2009 Pearson.
Foundations of Multithreaded, Parallel, and Distributed Programming, Gregory R. Andrews, 1999 Addison Wesley
Principles of Concurrent and Distributed Programming, M. Ben-Ari, 2006 Addison Wesley
JAVA Threads, Third Edition, Scott Oaks & Henry Wong, 2004 O'Reilly.
http://download.oracle.com/javaee/5/tutorial/doc/
Tutorial for J5EE:
http://download.oracle.com/javase/tutorial/index.html
Tutorial for J6SE:
Projeto de Integração de Sistemas de Informação Distribuídos
1. Armazenar de forma eficiente e segura grandes volumes de dados;
2. Aceder, transportar e integrar informação dispersa por várias aplicações;
3. Monitorização automática de acessos aos dados (auditoria);
4. Desenvolver soft skills: Resolução de Problemas, Trabalho de Equipe e Observação Crítica.
1 Migrações (coerentes, incrementais) recorrendo a scripts e acessos remotos através de web services (REST/php);
2. Redundância e distribuição de dados para gerir tolerância a falhas em grandes volumes de dados;
3. Utilização de MongoDB/JSON para armazenar e extrair grandes volumes de dados;
4. Programação PLSQL para automatizar controlo de segurança;
5. Breve introdução ao desenvolvimento de aplicações Android;
6. Protocolo MTTQ como forma de comunicar com sensores.
Toda a avaliação tem por base o projeto de grupo apesar de ser individual. A nota individual resulta:
a) relatórios inicial (20 %)
b) relatório final (35 %) entregue na última semana de aulas
c) questionário individual no momento da discussão final (15%)
d) discussão final (30%) na semana a seguir à entrega do relatório final e apreciação do desempenho do aluno ao longo do semestre (envolvimento nas discussões semanais, na sua capacidade de exposição e discussão técnica)
Aprovação: nota final de 9.5 desde que nota de d) seja superior ou igual a 40%, caso contrário reprova.
A não comparência em 80% de reuniões semanais. Implica a reprovação na uc
Não existe avaliação por exame e a época especial consiste numa entrega de relatório complementar à avaliação ao longo do semestre
Para a restante matéria existem inúmeros tutorais e artigos na internet com qualidade e grau de dificuldade adequados aos alunos da licenciatura
NoSQL Database: New Era of Databases for Big data Analytics - Classification, Characteristics and Comparison, A B M Moniruzzaman,?Syed Akhter Hossain, 2013 (https://arxiv.org/abs/1307.0191)
Interacção Pessoa-Máquina
OA1: adquirir, compreender e dominar fundamentos de IPM Interacção Pessoa-Máquina;
OA2: desenvolver a capacidade de definir e criar um protótipo, a sua interface, com definição de funcionalidades, usabilidade, público-alvo, testes e avaliação
OA3: ser capaz de implementar a iteração final do protótipo, em 3D, na forma de uma App ou num contexto de página Web
CP1: Factores humanos, psicologia e design de sistemas interactivos; O computador, dispositivos de entrada de texto, dispositivos de posição e selecção, output, processamento
CP2: Técnicas de interacção, paradigmas de interacção, design e layout de ecrãs, percepção de cor e implicações, o uso de cor no design de interacção H-C
CP3: Análise de tarefas e interacção H-C
CP4: Estilos de diálogo; semântica; análise de diálogo e design
CP5: Protótipos low-fidelity (lo-fi); protótipos lo-fi versus hi-fi
CP6: Usabilidade
CP7: Modelos de utilizador
CP8: Técnicas de avaliação; avaliação heurística
CP9: Multimédia e web design; Vídeo digital para web e multimédia, e o design de interacção H-C
CP10: CAD e modelação 3D em SolidEdge; CNC e impressão 3D
Avaliação por Exame (100%) – 1ª Época, 2ª Época e Época Especial, ou Avaliação ao longo do semestre composta por: Teste escrito 1 (35%); Teste escrito 2 (35%); Teste escrito 3 ou miniProjeto (30%); Teste escrito 3 realizado em simultâneo com Exame 1 no período de avaliação; Exames e Testes escritos são individuais e o miniProjeto é em grupo; o miniProjeio pode estar sujeito a discussão oral, caso os docentes considerem necessário; Testes escritos têm nota mínima de 8 valores; miniProjeto não tem nota mínima; os 30% da nota do Teste escrito 3 ou miniProjeto são aplicados ao máximo dos dois.
BibliografiaA Dix, J Finlay, G Abowd, R Beale, "Human-Computer Interaction", 3rd ed., Prentice Hall, ISBN: 0-13-046109-1, 2004
C Lewis, J Rieman, TASK-CENTERED USER INTERFACE DESIGN, A Practical Introduction, shareware, 1994.
M Retting, Prototyping for Tiny Fingers, Communications of the ACM, April 1994, Vol.37, No.4, pp 21-27
PF Lopes, Computer Aided Design, creating 3D with Solid Edge (6 modules), Tutorial modules, video for e-learning/b-learning, ISCTE-IUL, 2006
C Myhill, Get Your Product Used in Anger! (Before Assuming You Understand its Requirements), interactions, may+june 2003
L MIGNONNEAU, C SOMMERER, Designing emotional, metaphoric, natural and intuitive interfaces for interactive art, edutainment and mobile communications, Computers & Graphics 29 (2005) 837-851
PF Lopes, D Jardim, I Alexandre, Math4Kids, Proc. First Iberian Workshop on Serious Games and Meaningful Play (SGaMePlay'2011), Chaves, Portugal, June, 2011, ISBN: 978-989-96247-5-7, pp 711-716.
Jenny Preece, Ivonne Rogers, Helen Sharp, Interaction Design: beyond human-computer interaction, John Wiley & Sons, ISBN 0-471-49278-7, 2002
PF. Lopes, J. Reis, F. Santos, S. Eloy, A. Paio, V. Rato, at all, Shaping emergent cities for all, SIGraDi 2011, XV Congreso de la Sociedad Iberoamericana de Grafica Digital, 16-18 de Novembro 2011, Santa Fé, Argentina, pp. 106-108. ISBN: 978-987-657-679-6
Desenvolvimento para A Internet e Aplicações Móveis
Um aluno quando termina esta UC deve ser capaz de:
OA1. Conhecer e compreender os conceitos e as tecnologias de base para o desenvolvimento para a Web.
OA2. Conhecer os conceitos relativos ao desenvolvimento para a Web do lado do cliente e aplicar as tecnologias adequados respetivas.
OA3. Conhecer os conceitos relativos ao desenvolvimento para a Web do lado do servidor e aplicar as tecnologias adequados respetivas.
OA4. Integrar o desenvolvimento do lado do cliente com o do servidor num modelo coerente com capacidade para executar as tarefas típicas de uma aplicação Web.
OA5. Conhecer e compreender os conceitos principais para o desenvolvimento de software para móveis.
OA6. Aplicar as tecnologias adequadas ao desenvolvimento de software para móveis.
OA7. Conhecer e compreender os conceitos principais para o desenvolvimento de redes IoT.
OA8. Aplicar as tecnologias adequadas ao desenvolvimento de redes IoT.
CP1 [Introdução]
A história da Web;
Antigas e atuais linguagens de programação para a Web;
Standards W3C;
Arq. cliente/servidor;
Arq. MVC para a Web.
CP2 [Programação do lado do cliente]
Principais linguagens de formatação e de programação para a Web;
Bibliotecas para a programação de aplicações Web;
CP3 [Programação do lado do servidor]
Arquitecturas Cliente/Servidor;
Acesso a BDs a partir da Web;
Modelo de dados no site Web e correspondente interação com a BDs;
Gestão de sessões;
Intro. à segurança do lado do servidor.
CP4 [Programação para móveis]
Linguagens nativas inter-plataformas;
Ferramentas híbridas.
CP5 [Internet of Things (IoT)]
Sensores;
Soluções de design pr redes IoT;
Protocolos de cadeias logísticas conectadas;
Gestão de Big Data proveniente de IoT;
Recursos de programação para IoT;
Intro. à seg. em IoT.
Dada a natureza prática dos conteúdos lecionados, a avaliação será realizada ao longo do semestre, não existindo avaliação por exame.
Avaliação de 1ª época:
• Exercícios (10%), realizados na aula e em grupo.
• Teste (40%), realizado individualmente. Obrigatório, com nota mínima de 7 valores.
• Projeto (50%), realizado em grupo, incluindo relatório e software. Obrigatório, com nota mínima de 7 valores. Em caso de dúvidas acerca da avaliação do projeto a equipa docente poderá chamar o grupo para uma discussão oral.
Avaliação de 2ª época:
• Possibilidade de repetir o teste (40%), apenas para quem reprovou no teste realizado na 1ª época.
• Serão consideradas as notas obtidas ao longo do semestre relativas aos Exercícios (10%) e ao projeto (50%).
A presença nas aulas não é obrigatória.
Os alunos inscritos em época especial realizarão apenas as componentes Teste (50%) e Projeto (50%).
A melhoria de nota apenas poderá ser realizada através de avaliação no ano letivo seguinte.
Rao M. (2018). Internet of Things with Raspberry Pi 3: Leverage the power of Raspberry Pi 3 and JavaScript to build exciting IoT projects. Ed: Packt Publishing. ISBN-10: 1788627407. ISBN-13: 978-1788627405.
Horton J. (2015). Android Programming for Beginners. Ed: Packt Publishing. ISBN-10: 1785883267. ISBN-13: 978-1785883262.
Vincent W. S. (2018). Build websites with Python and Django. Ed: Independently published. ISBN-10: 1983172669. ISBN-13: 978-1983172663.
Dean J. (2018). Web Programming with HTML5, CSS, and JavaScript. Ed: Jones & Bartlett Learning. ISBN-13: 978-1284091793. ISBN-10: 1284091791.
Ryan J. (2013). A History of the Internet and the Digital Future. Ed: Reaktion Books. ISBN-13: 978-1780231129
Lambert M. and Jobsen B. (2017). Complete Bootstrap: Responsive Web Development with Bootstrap 4. Ed: Impackt Publishing. ISBN-10: 1788833406. ISBN-13: 978-1788833400.
Freeman A. (2017). Pro Angular. Ed: APress. ISBN-10: 1484223063. ISBN-13: 978-1484223062.
Jones P. (2018). jQuery UI. Ed: CreateSpace Independent Publishing Platform. ISBN-10: 1719389667. ISBN-13: 978-1719389662.
Amundsen M. (2017). RESTful Web Clients: Enabling Reuse Through Hypermedia. Ed: O'Reilly Media
Downey A. B. (2015). Think Python: How to Think Like a Computer Scientist. Ed: O'Reilly Media. ISBN-10: 1491939362. ISBN-13: 978-1491939369.
Agentes Autónomos
Pretende introduzir-se os conceitos e conhecimentos práticos fundamentais à utilização e ao desenvolvimento de agentes que,« controlem autonomamente o seu comportamento e comuniquem com outros agentes.
Após a conclusão da UC, os alunos devem
(OA1) Ter consciência das vantagens e desafios da utilização e desenvolvimento de sistemas de agentes artificiais;
(OA2) Saber identificar os requisitos relativamente aos agentes a desenvolver, em termos dos papéis de agente (agente roles) e de comunicação para qualquer problema específico;
(OA3) Escolher e implementar as abordagens mais adequadas à criação de controladores autónomos para o comportamento de agentes
(OA4) Conhecer uma linguagem de comunicação de agentes e as suas principais características
(OA5) Conhecer mecanismos necessários à coordenação de agentes.
(P1) Agentes autónomos e sociedades de agentes, incluindo as definições básicas e as características: persistência no tempo, autonomia, e adaptação a alterações do mundo.
(P2) Comunicação entre agentes (linguagens de comunicação e de conteúdo)
(P3) Mecanismos de controlo: Algoritmos de planeamento e regras de produção
(P4) Plataforma de agentes e software para o desenvolvimento de agentes
Avaliação ao longo do semestre: trabalho em aula + projeto + teste
Trabalho em aula: Ainda que a assiduidade não seja contabilizada em si, é essencial que os alunos compareçam regularmente às aulas onde será avaliado o seu conhecimento do projeto que o grupo está a desenvolver. Esta classificação é individual e contará 20% da nota final
Projeto (de grupo): O projeto é avaliado pela primeira apresentação de planeamento (10%), a apresentação final (10%) e pelo relatório (30%). Caso seja óbvia uma assimetria na participação no trabalho os membros do mesmo grupo poderão ter notas diferentes
Teste individual: O teste vale 30% da nota final e será feito na 1ª época de avalição (quem não puder, justificadamente, fazer o teste nessa época pode fazer o teste na 2ª época)
A avaliação em época especial consiste de um projeto individual e um teste, que valem, cada um, 50% da nota. O projeto deve ser acordado com o coordenador da UC previamente e a sua entrega será na semana anterior à época especial.
Course Notes + Course Software
FIPA. 2000. FIPA Communicative Act Library Specification. http://www.fipa.org/specs/fipa00037/SC00037J.pdf
Agent Communication:
Nils Nilsson. 1982. Principles of Artificial Intelligence. Springer-Verlag Berlin Heidelberg
Arquitetura de Redes
OA1 - Explicar o funcionamento das redes de uma forma integrada, identificando e implementando diferentes soluções existentes para o suporte de aplicações e serviços.
OA2 - Explicar, distinguir e avaliar os diferentes protocolos e serviços disponíveis para a comunicação extremo-a-extremo e comunicação entre aplicações sobre a rede.
OA3 - Explicar a arquitetura da rede de transporte, das redes definidas por software e da mobilidade. Distinguir e avaliar as diferentes arquiteturas existentes.
OA4 - Distinguir as diferentes abordagens e soluções para redes multimédia e para o multicast. Distinguir e avaliar as diferentes técnicas existentes para as mesmas.
OA5 - Configurar diferentes arquiteturas de redes, identificando e implementando diferentes soluções de uma forma integrada. Detetar e corrigir erros na sua configuração.
CP1 - Interligação de redes. Interligação e encaminhamento em redes IP. NAT. Protocolos de Encaminhamento: OSPF e BGP. Arquitetura de um router. Redes IPv6. Mobilidade: arquiteturas.
CP2 - Comunicação extremo a extremo. Endereçamento e multiplexagem. Protocolos UDP e TCP. Gestão da ligação TCP. Controlo de fluxo e de congestão.
CP3 - Redes de transporte. Redes definidas e configuradas por software: Arquitetura SDN, OpenFlow, NFV. Mobilidade: arquiteturas e encaminhamento.
CP4 - Serviços e aplicações de rede. Modelos de comunicação. Definição de protocolos em ABNF e ASN1. Serviços de nomes: DNS, etc.; Correio eletrónico; Arquitetura WWW. Infraestruturas de servidores. Redes de distribuição de conteúdos, GSLB.
CP5 - Redes multimédia. Arquiteturas e endereçamento. IGMP e multicast. Protocolos DVMRP, PIM, MOSPF. Aplicações multimédia. Arquiteturas para streaming. VoIP. Protocolos RTSP, RTP, RTCP, SIP. Escalonamento e policiamento. Serviços integrados. RSVP. Serviços diferenciados.
Resumo do processo de avaliação.
Avaliação ao longo do semestre:
65% - provas escritas - 30% - 1ª prova escrita a meio do semestre sobre CP1 e CP2, e 35% e 2ª prova escrita no dia mesmo dia do exame de 1ª época sobre CP3, CP4 e CP5. É necessária nota mínima de 8 valores na média ponderada arredondada das provas escritas.
35% - 5 laboratórios, com peso de 9%, 9%, 7%, 5%, 5%, por ordem decrescente da avaliação em cada laboratório. A avaliação dos laboratórios é em grupo, com uma componente individual por aluno. É necessária nota mínima de 8 valores à média ponderada arredondada dos laboratórios.
Avaliação em 1ª Época:
Prova escrita com 100% sobre CP1 a CP5
Avaliação em 2ª Época:
Prova escrita com 100% sobre CP1 a CP5
Avaliação em época especial:
Prova escrita com 100% sobre CP1 a CP5
Computer Networking: A Top-Down Approach Featuring the Internet, James F. Kurose, Keith W. Ross, Addison Wesley.
Acetatos e outro material de apoio na plataforma de e-Learning
TCP/IP Protocol Suite, Forouzan, McGrawHill
Data Communications and Networking, Forouzan, McGrawHill
Computer Networks and Internets with Internet Applications, Comer, Pearson
Computer Networks, A systems Approach, Peterson & Davie, Morgan Kaufmann
Network Systems Design using Network Processors, Comer, Prentice Hall
High-Speed Networks and Internets: Performance and Quality of Service, Stallings, Prentice Hall
Engenharia de Redes Informáticas, E. Monteiro e F Boavida, FCA
Tecnologia de Sistemas Distribuídos, J Marques e P Guedes, FCA Editora de Informática
TCP/IP Teoria e Prática, Fernando Boavida e MArio Bernardes, FCA Editora de Informática
Computer Networks, Andrew Tanenbaum, Prentice Hall
Cibersegurança em Desenvolvimento de Software
Compreender os conceitos fundamentais: identificar vulnerabilidades, ameaças e vectores de ataque
Implementar medidas de segurança: Reconhecer ataques, aplicar técnicas de criptografia, encriptação e autenticação.
Proteger redes: Utilizar infra-estruturas de distribuição de chaves, certificados digitais e firewalls.
Desenvolver software seguro: Aplicar práticas de codificação seguras, realizar testes de segurança e compreender CDNs.
Aplicar princípios de segurança: Implementar estratégias de confidencialidade, integridade, disponibilidade e gestão de riscos. Gerir a autenticação
Adotar estratégias de proteção: Implementar privilégios mínimos, design aberto, predefinições à prova de falhas e defesa em profundidade.
Navegar em questões legais e de privacidade: Compreender os princípios de privacidade e o cenário jurídico.
Abordar considerações éticas: Enfrentar dilemas éticos e equilibrar a segurança com a privacidade e o desempenho.
Módulo 1: Introdução à Cibersegurança; Vulnerabilidades, Ameaças e Ataques
Módulo 2: Segurança da Informação; Criptografia, Encriptação e Autenticação.
Módulo 3: Segurança de rede: Infra-estruturas de distribuição de chaves e certificação digital; Firewalls e segurança no nível do aplicativo
Módulo 4: Ciclo de vida de desenvolvimento de software seguro (SDLC):
Práticas de codificação segura; testes de segurança; redes de distribuição de conteúdo.
Módulo 5: Conceitos de segurança transversais:
Confidencialidade, Integridade e Disponibilidade; Risco, Pensamento Adversarial e Pensamento de Sistemas.
Módulo 6: Autenticação e Autorização:
Técnicas de controlo de acesso; Conceito de confiança e fiabilidade.
Módulo 7: Princípios de proteção: Mínimo Privilégio, Design Aberto, Padrões à Prova de Falhas; Defesa em Profundidade e Defesa em Camadas.
Módulo 8: Privacidade e questões legais.
Módulo 9: Considerações éticas; Tensões entre segurança, privacidade e desempenho.
Esta UC pode ser realizada por avaliação ao longo do semestre ou por exame.
Avaliação ao longo do semestre:
35% - 1ª prova escrita, com nota mínima de 8 valores
35% - 2ª prova escrita, com nota mínima de 8 valores
30% - 4 laboratórios (7,5% cada), com média ponderada mínima de 8 valores.
Na 2ª época, é possível concluir a avaliação ao longo do semestre para todos os estudantes que tenham obtido nota superior ou igual a 8 valores na componente laboratorial e que não tenham realizado a UC na 1ª época. A avaliação será feita através da realização de uma prova escrita, com um peso de 70% e nota mínima de 8 valores.
Avaliação por exame: exame escrito que incide sobre toda a matéria, com um peso de 100%, em todas as épocas.
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
Optativas recomendadas
A escolha de uma unidade curricular optativa, em pelo menos um dos semestres do 3.º ano, deve incidir sobre uma das áreas científicas do Departamento de Ciências e Tecnologias da Informação (DCTI), nomeadamente Informática.
Recomenda-se a seguinte seleção:
Objetivos
A Licenciatura em Engenharia Informática destina-se a formar profissionais capazes de responder com agilidade aos desafios organizacionais em que a tecnologia possa valorizar as componentes do conhecimento e da inovação, não se limitando a uma intervenção ao nível da eficiência e informatização dos processos.
A formação geral da Licenciatura oferece ao aluno as competências técnicas e científicas para desempenhar funções em qualquer área da Engenharia Informática, das quais se destacam:
- integrar equipas de desenvolvimento de sistemas informáticos complexos, por exemplo nas áreas da banca, seguros, administração central, multinacionais, etc.;
- especificar, conceber e desenvolver sistemas de informação adequados aos objetivos e necessidades das empresas e à sua cultura organizacional;
- conceber, desenvolver e manter redes de computadores;
- gerir e organizar o conhecimento de uma empresa em diversos formatos e conteúdos.
Acreditações
