Acreditações
A licenciatura em Engenharia e Informática tem a duração de três anos, correspondentes à obtenção 180 créditos ECTS, repartidos entre 174 em unidades curriculares obrigatórias e 6 em optativas em Competências Transversais.
Plano de Estudos para 2024/2025
Unidades curriculares | Créditos | |
---|---|---|
Álgebra Linear
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Cálculo I
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Fundamentos de Arquitectura de Computadores
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 |
Mecânica e Electricidade
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Microprocessadores
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Sistemas Operativos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Bases de Dados
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Probabilidades e Processos Estocásticos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Programação Orientada para Objectos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Teoria da Computação
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 |
Concepção e Desenvolvimento de Sistemas de Informação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Desenho e Análise de Algoritmos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Fundamentos de Redes de Computadores
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Inteligência Artificial
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Projeto de Programação Multiparadigma
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 |
Processamento de Informação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Programação Concorrente e Distribuída
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 |
Engenharia de Software
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Interacção Pessoa-Máquina
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 |
Álgebra Linear
No final da UC o aluno deverá ser capaz de:
OA1. Dominar a linguagem vetorial e matricial.
OA2. Aplicar o método de Gram-Schmidt para obter uma base ortonormada.
OA3. Resolver e classificar sistemas de equações lineares.
OA4. Conhecer as operações matriciais.
OA5. Calcular, interpretar e aplicar determinantes.
OA6. Identificar, construir e analisar transformações lineares.
OA7. Calcular e interpretar valores e vetores próprios. Diagonalizar matrizes.
OA8. Classificar formas quadráticas.
1. 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.
2. 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.
3. Determinantes. Definição. Propriedades.
4. 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
5. 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 periódica:
- 6 fichas de avaliação (25%): prova escrita realizada em aula, com a duração de 15
minutos;
- Frequência (75%): prova escrita na 1a época do período de avaliação, com nota
mínima de 8.0 valores.
Os alunos em avaliação periódica têm a classicação de zero valores nas fichas de avaliação não realizadas.
Os alunos deverão realizar as fichas de avaliação na turma em que estão inscritos.
Para o cálculo da nota final nesta componente serão consideradas as 5 melhores notas
obtidas nas 6 fichas de avaliação.
Para os alunos que escolham esta modalidade, o resultado final considerado é o melhor
entre a avaliação periódica 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.
Title: Apoio teórico fornecido pelos docentes.
Caderno de exercícios fornecido pelos docentes.
G. Strang, Introduction to Linear Algebra, Wellesley-Cambridge Press, fourth edition, 2009.
T.S. Blyth and E.F. Robertson, Basic Linear Algebra, Wellesley-Cambridge Press, 2009.
Authors:
Reference:
Year:
Title: R. L. Burden, J. D.Faires, Numerical analysis, Cengage Learning, 2015.
Authors:
Reference:
Year:
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çãode.
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 Periódica, composta por:
- Dois Mini-Testes sobre MATLAB feitos em aula (5% + 5%), um Teste Intercalar (45%): prova escrita realizada durante o semestre; nota mínima de 7.5 valores.
- Frequência (45%): prova escrita realizada na 1ª época de avaliação; nota mínima de 7.5 valores.
2. Avaliação Final: 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.
Title: Sérgio Mendes, Apontamentos da UC., 2023, null,
K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013, null,
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015, null,
Authors:
Reference:
Year:
Title: J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018, null,
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018, null,
Authors:
Reference:
Year:
Fundamentos de Arquitectura de Computadores
OA1: Manipular e realizar operações aritméticas sobre números inteiros representados em diferentes bases de numeração;
OA2: Manipular expressões lógicas usando as propriedades da álgebra de Boole;
OA3: Projectar um circuito lógico combinatório a partir da especificação de um problema;
OA4: Projectar um circuito sequencial para controlo de outros elementos num sistema digital;
OA5: Simular e implementar um circuito digital utilizando um conjunto de circuitos integrados e/ou dispositivos de lógica programável;
OA6: Categorizar tipos de dipositivos de memória e projectar sistemas de memória de maior dimensão usando módulos de menores dimensões;
OA7: Identificar os principais elementos numa arquitectura básica de um processador e relacioná-los entre si;
OA8: Explicar de que forma se processa a execução de um programa, e identificar os principais mecanismos envolvidos;
CP1. Representação da informação
- Representação de números inteiros
- Operações aritméticas sobre inteiros
- Códigos alfanuméricos
CP2. Álgebra de Boole e funções lógicas
- Operações AND, OR e NOT
- Álgebra de Boole
- Funções lógicas
- Termos mínimos e soma de produtos
- Mapas de Karnaugh
CP3. Circuitos combinatórios
- Projecto de circuitos combinatórios
- Portas lógicas NAND, NOR e XOR
- Descodificadores e multiplexers
- Tempos de propagação
CP4. Circuitos sequenciais
- Latches e flip-flops
- Análise de circuitos sequenciais
- Diagrama e tabela de transição de estados
- Projecto de circuitos sequenciais
- Registos e contadores
CP5. Memórias
- Memórias RAM
- Memórias ROM
- Bancos de memória
CP6. Arquitectura de um processador
- Banco de registos
- Unidade funcional
- Micro-instruções
- Execução de programas
1. Avaliação periódica, composta por:
- Dois testes: um, a meio do semestre e outro no fim do semestre (peso conjunto de 70%). Nota mínima: 7,5 valores.
- Trabalhos de laboratório (20%): em grupo, realizados semanalmente durante as aulas de laboratório.
- Mini-testes online (10%): realizados semanalmente na plataforma de e-learning.
2. Avaliação por exame (100%): a nota na UC será a obtida num exame realizado em qualquer das 3 épocas de avaliação.
Title: João Oliveira, Tomás Brandão, Caderno de Exercícios de Fundamentos de Arquitetura de Computadores, 2016, Exercícios,
João Pedro Oliveira, Tomás Brandão, Textos de Apoio de Fundamentos de Arquitetura de Computadores, 2016, Sebenta,
Authors:
Reference:
Year:
Title: Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores - 2ª Edição, IST Press, 2019, Arroz 2019, https://istpress.tecnico.ulisboa.pt/produto/arquitectura-de-computadores-dos-sistemas-digitais-aos-microprocessadores/
Morris Mano, Charles Kime, Logic and Computer Design Fundamentals, 5th Edition, Pearson, 2015, Mano 2015, https://www.pearson.com/en-us/subject-catalog/p/logic--computer-design-fundamentals/P200000003256/9780134080154
Authors:
Reference:
Year:
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 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
CP10. Classes de objetos compostos
CP11. Encapsulamento e interfaces
Avaliação periódica, composta por:
15% Nota do teste Intercalar + 75% Nota da frequência + 10% Notas dos mini-testes online
[nota mínima de 8 valores na frequência e de C no projecto individual]
As classificações possíveis no Projeto Individual são (A, B, C, D). A classificação obtida no projeto define um limite máximo para a nota final:
A - max. 20
B - max. 16
C - max. 12
D - implica reprovação à UC
Title: Y. Daniel Liang, "Introduction to Java Programming", 5th Ed. Prentice-Hall, 2005. ISBN: 0-13-185721 - 5.
Authors:
Reference:
Year:
Title: João Pedro Neto, Programação, Algoritmos e Estruturas de Dados, Escolar Ed., 2004.
Authors:
Reference:
Year:
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 Periódica: 10 avaliações semanais online (10%) + 10 exercícios semanais de programação (20%) + 2 avaliações intercalares individuais (70%) + 1 projeto individual de programação (classificações A,B,C,D).
As notas do projeto são qualitativas e definem um limite para a nota final à UC: A - max. 20; B - max. 17; C - max. 13; D - reprovado.
ou
Exame Final individual (100%)
Title: (Algorithms, Part I - MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, Addison-Wesley, 2012
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
Cálculo II
OA1. Calcular derivadas parciais e as matrizes Jacobiana e Hessiana.
OA2. Determinar aproximações lineares e de ordem superior de funções de várias variáveis.
OA3. Determinar e caracterizar extremos de funções de várias variáveis.
OA4. Aplicar métodos numéricos de derivação e optimização.
OA5. Calcular integrais duplos e triplos.
OA6. Saber aplicar os integrais duplos e triplos ao cálculo de áreas, volumes, centro de massa, densidade de probabilidade.
OA7. Aplicar métodos numéricos de integração.
OA8. Calcular integrais de linha e superfície.
OA9. 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
Aprovação com classificação não inferior a 10 valores numa das modalidades:
- Avaliação periódica: 6 Mini testes em aula (20%) + Teste (80%).
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
Title: 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.
Authors:
Reference:
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference:
Year:
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.
Title: - 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)
Authors:
Reference:
Year:
Title: - 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)
Authors:
Reference:
Year:
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 periódica ou apenas por exame final:
A - Avaliação periódica: A avaliação é feita por 2 testes escritos, um efectuado durante o período lectivo e o outro na data 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.
Title: David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
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
Gestão de Memória
CP6: - Modelos e algoritmos de gestão de memória
CP7: - Memória Virtual
CP8: Entradas e Saídas
CP9: Sistema de Ficheiros
CP10: Administração e Segurança
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 Periódica, não contemplando 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 (contam 8 melhores)
* PE (50%): Prova Escrita a realizar em 1º ou 2ª época ou em época especial
Requisitos: TRAB+TPC >= 9.5 valores, PE >= 7 valores
A nota de TRAB+TPC está limitada a PE + 6 valores
Para mais informações ver a secção Observações
Title: - 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
Authors:
Reference:
Year:
Title: - 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
Authors:
Reference:
Year:
Bases de Dados
Dotar os alunos de conhecimentos sólidos sobre matérias nucleares na área das bases de dados ditas convencionais (sistemas de bases de dados suportados por modelos relacionais), nomeadamente: desenho de esquemas relacionais e interrogações suportadas pela linguagem SQL.
CP1 - Desenho de esquemas relacionais
CP2 - Linguagem UML, Diagrama de Classes
CP3 - Modelo relacional
1. Relações e chaves primárias
2. Chaves estrangeiras e regras de integridade
3. Otimizações e índices
4. Transações e concorrência
CP4 - Transposição de um modelo conceptual para um modelo relacional
CP5 - Linguagem SQL
1. Querys Simples;
2. Funções de Agregação
3. SubQuerys;
4. Triggers, Stored Procedures e Funções
CP6 – Introdução ao PHP/MySQL
I. AVALIAÇÃO EM ÉPOCA NORMAL
Dado o carácter eminentemente prático desta UC a sua avaliação consiste obrigatoriamente na realização das seguintes componentes:
- Projeto em grupo, com ponderação de 40% em duas entregas faseadas;
- Teste individual escrito, com ponderação de 50% a realizar em data de época normal; 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, 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 época de recurso 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.
Em situações excecionais de falta de comparência na data da época normal para a realização do teste individual escrito, poderá o aluno recorrer à data da época de recurso para realizar a prova. Estes casos serão sujeitos a comprovação e aceitação prévia junto dos serviços.
Alunos que pretendam fazer melhoria de nota poderão melhorar o teste individual escrito, a realizar em data da época de recurso. Nenhuma das restantes componentes é suscetível de melhoria.
II. AVALIAÇÃO EM ÉPOCA ESPECIAL
Os estudantes que reúnam condições para se submeterem a Época Especial, terão as seguintes componentes de avaliação:
- Projeto individual ou em grupo, com ponderação de 50% - a entregar na data oficial da avaliação de Época Especial;
- Teste individual escrito, com ponderação de 50% - a realizar em data de Época especial
O projeto terá a mesma estrutura do projeto realizado em época normal, no entanto difere a temática, que será proposta pelos alunos ao docente para aprovação. As exigências de dimensão do projeto serão proporcionais ao número de alunos do grupo. A dimensão máxima do grupo, as métricas relacionadas com a dimensão e os deadlines serão publicadas em enunciado próprio disponibilizado na plataforma de e-learning.
Também os estudantes que recorrerem a Época Especial têm a condicionante para aprovação de nota mínima de 8,00 valores, sem arredondamento, em cada uma das componentes de avaliação.
Title: Ramos, Pedro, Desenhar Bases de Dados com UML. Conceitos e Exercícios Comentados - 2ª Edição, Edições Sílabo, 2012, 978-972-618-474-4,
Gouveia, Feliz, Bases de Dados: Fundamentos e Aplicações - 2ª Edição Aumentada, FCA, 2021, 978-972-722-901-7,
Damas, Luís, SQL - Structured Query Language - 14ª Edição, FCA, 2017, 978-972-722-829-4,
Authors:
Reference:
Year:
Title: Ramakrishnan, Raghu & Gehrke, Johannes, Database Management Systems - 3rd Edition, McGrawHill, 2002, 978-007-246-563-1,
Booch, Grady; Rumbaugh, James & Jacobson, Ivar, The Unified Modeling Language User Guide - 2nd Edition, Addison-Wesley, 2005, 978-032-126-797-9,
Alturas, Bráulio, Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, 2022, 978-989-561-265-9,
Authors:
Reference:
Year:
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.
1)Teoria de Probabilidade.
1a) A axiomática de Kolmogorov.
1b) Variáveis aleatórias unidimensionais e multidimensionais.
1c) Função geradora de momentos
2) Teoremas Centrais
3a) Desigualdades de Markov e Chebyshev.
3b) Lei dos Grandes Números.
3c) Teorema do Limite Central.
4) Processos estocásticos
4a) Processos estocásticos discretos. Processos de Poisson.
4b) Processos estocásticos contínuos. Movimentos Browniano.
4c) Cadeias de Markov
4d) Simulação, aplicações e algoritmos
- Avaliação principal (AP):
- Avaliação contínua: 1º Teste (60%) e 2º Teste (40%): data do exame de 1ª época.
Nota mínima em ambos os testes 8.0 valores.
--Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Avaliação opcional (AO): Realização de um trabalho/estudo com cotação máxima de quatro (4.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.
Title: 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.
Material pedagógico que aparecerá regularmente no elearning.
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
Programação Orientada para Objectos
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
A avaliação pode ser realizada segundo uma das seguintes modalidades:
Modalidade A:
- Exercícios realizados em aula (20%, grupos de 2 ou individual)
- Prova escrita a meio do semestre (30%, individual, nota mínima de 7 val.)
- Projeto (50%, grupos de 2 ou individual)
Modalidade B:
- Prova escrita a meio do semestre ou em época especial (50%, individual, nota mínima de 7 val.)
- Projeto (50%, grupos de 2 ou individual)
Independentemente da modalidade seguida, 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.
Dado o caráter prático da UC não há lugar a avaliação por exame.
A avaliação em época especial segue a modalidade B.
Melhoria de nota só pode ser feita repetindo o processo de avaliação no ano seguinte.
Title: Folhas de apoio disponíveis no e-learning.
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
Authors:
Reference:
Year:
Title: 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)
Authors:
Reference:
Year:
Teoria da Computação
Concluída a disciplina o aluno deverá ser capaz de:
1. Interpretar e formular definições rigorosas;
2. Analisar consequências lógicas das definições;
3. Descrever vários modelos computacionais e assinalar as suas limitações.
4. Descrever linguagens através de gramáticas.
5. Resolver problemas computacionais utilizando os modelos computacionais aprendidos.
6. Manipular os formalismos aprendidos na construção de analisadores léxicos e sintácticos.
I Notação matemática e técnicas de demonstração
Objectos matemáticos básicos: conjuntos, funções, relações e linguagens; Lógica, demonstrações e o princípio de indução matemática.
II Autómatos Finitos e Linguagens Regulares
Linguagens regulares e expressões regulares. Autómatos finitos deterministas e não deterministas. Reconhecimento de linguagens regulares.
III Autómatos de Pilha e Linguagens Livres de Contexto
Linguagens livres de contexto e gramáticas livres de contexto. Autómatos de pilha. Reconhecimento de linguagens livres de contexto.
IV Máquinas de Turing e Linguagens Recursivamente Enumeráveis
Linguagens Recursivamente Enumeráveis. Máquinas de Turing. Tese de Church-Turing.
I Avaliação periódica: 10 mini avaliações semanais online (10%) e duas frequências (90 %). Na avaliação periódica é obrigatório efetuar no mínimo 7 mini avaliações online. A presença nas aulas não é obrigatória.
ou
II Exame final.
A presença nas aulas não é obrigatória.
Title: 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.
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
Tópicos de Matemática para Computação
No final da UC o aluno deverá ser capaz de:
OA1. Representar algumas funções em séries de Fourier.
OA2. Determinar transformadas de Fourier contínuas e discretas.
OA3. Conhecer e aplicar algumas propriedades básicas das séries e transformadas de Fourier
OA4. Utilizar métodos e propriedades de análise de Fourier no contexto de processamento de sinal, tratamento de imagem e compressão de dados.
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 (Keras) o descrito nos últimos dois pontos.
CP1. Números complexos e produto interno.
1.1. Números complexos
1.2. Funções complexas de variável real.
1.3. Produto interno e ortogonalidade.
1.4. Regressão linear; implementação em python.
CP2. Análise de Fourier e aplicações.
2.1. Séries de Fourier.
2.2. Transformada de Fourier.
2.3. Convolução (contínua).
2.4. Filtros; implementação em python.
CP3. A transformada de Fourier discreta.
3.1. A transformada de Fourier discreta e FFT.
3.2. Convolução discreta.
3.3. Programação dinâmica.
3.4. Wavelets e JPEG.
3.5. Tratamento e compressão de imagem; implementação em python.
CP4. Redes Neuronais:
4.1. Arquitetura básica, funções de ativação e funções de custo.
4.2. Problemas de regressão e problemas de classificação.
4.3. Teoremas de aproximação universal.
4.4. Otimização numérica: descida do gradiente e variantes.
4.5. O algoritmo Backpropagation.
4.6. Reconhecimento de imagem; implementação em python (Keras).
Aprovação com classificação não inferior a 10 valores numa das modalidades:
- Avaliação periódica versão 1: 4 testes (75%) + 4 mini-projetos em python (25%), ou
- Avaliação periódica versão 2: Exame realizado na primeira época (75%) + 4 mini-projetos em python (25%), ou
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Aprovação em avaliação periódica v1 requer uma nota mínima de 8.0 em 20 na média de cada um dos pares de testes T1+T2 e T3+T4.
- Aprovação em avaliação periódica v2 requer uma nota mínima de 8.0 em 20 no exame.
- No caso da avaliação periódica v1, os alunos poderão realizar 1 dos teste, e apenas 1, durante a 1ª época de exames. Caso faltem a 2 ou mais testes serão excluídos da avaliação periódica v1.
- 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.
- Os mini-projetos serão realizados em grupos, formados idealmente por 4 alunos. No caso dos mini-projetos 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, estarão sujeitas a uma defesa de nota.
Title: - João L. Costa, Slides da cadeira.
Authors:
Reference:
Year:
Title: - Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
- Rousseau, C and Saint-Aubin, Y., "Mathematics and technology", Springer 2008.
- Calin, O., "Deep Learning Architectures: A Mathematical Approach", Springer Series in the Data Sciences, 2020.
- Chollet, F., "Deep Learning with Python", Manning Publications, 2017.
Authors:
Reference:
Year:
Concepção e Desenvolvimento de Sistemas de Informação
O1. Identificar os requisitos para a CDSI e as principais fases e actividades de CDSI;
O2. Transformar requisitos em especificação técnica e modelos de um SI;
O3. Utilizar ferramentas de modelização de SI;
O4. Utilizar tecnologias de implementação Low-Code e introdução a serviços para a implementação de SI, Application Programming Interfaces com protocolos REST;
O5. 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);
O6. 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;
O7. 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;
O8. Desenvolver as capacidades de comunicação oral e escrita e de discussão técnica do trabalho.
P1. Introdução à concepção e desenvolvimento de SI;
P2. Ciclo de vida de desenvolvimento de SI;
P3. Análise de requisitos para a concepção e desenvolvimento de SI;
P4. Especificação e concepção de SI, diagramas UML;
P5. Modelização de processos no contexto dos SI;
P6. Tecnologias de implementação Low-Code;
P7. Tecnologias de integração no contexto dos SI: Arquitecturas Orientadas a Serviços, API e REST;
P8. Service-Oriented Computing no contexto dos SI.
A avaliação na UC é exclusivamente efetuada por avaliação contínua através de projecto: a nota individual resulta da avaliação dos relatórios intercalares, relatório final, 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), orais e breve questionário individual, da seguinte forma:
- Questionário individual: 20%
- Fase 1 do projecto (entrega, discussões semanais, oral): 30%
- Fases 2 e 3 do projecto (entregas, discussões semanais, oral): 50%
As datas das entregas do projecto serão indicadas pela docente coordenadora, sendo que a última entrega (fases 2 e 3 do projecto) ocorre na 1ª semana da época de avaliação (1ª época de exames) e as orais finais de demonstração decorrem durante a 1ª época de avaliação (de exames).
É obrigatória presença em 80% de reuniões semanais. Não existe avaliação por exame e a época especial consiste num complemento à avaliação contínua, se necessário.
Title: 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.
Authors:
Reference:
Year:
Title: 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/
Authors:
Reference:
Year:
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: Entender as implicações do uso de algoritmos versus heurísticas.
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: Dividir-e-Conquistar (Divide-and-Conquer), Programação Dinâmica (Dynamic Programming), Ávida (Greedy), Aleatoriedade (Randomization).
CP3- Grafos: representação, árvores de cobertura, travessias, caminhos mais curtos, algoritmos de fluxo.
Avaliação periódica: E x 0.20 + T x 0.60 + M x 0.20 = 100%
(a) Exercícios semanais (E):
- Matéria até a última aula dada.
(b) Testes intercalares (T):
- 2 testes (de igual ponderação);
- 1º teste: na semana intercalar;
- 2º teste: no dia do exame de 1ª Época.
(c) Minitrabalhos (M):
- 2 minitrabalhos (de igual ponderação);
- Realizados em grupo de 2 pessoas.
Exame: 1ª, 2ª Épocas e Época Especial = 100%.
Title: Cormen, Thomas, Charles Leiserson, Ronald L. Rivest and Clifford Stein (2022), Introduction to Algorithms. 34th ed., MIT Press.
John Kleinberg Eva Tardos (2005) Algorithm Design, Addison-Wesley.
Tim Roughgarden (2022). Algorithms Illuminated: Omnibus Edition. Cambridge: CUP.
Authors:
Reference:
Year:
Title: David Williamson, David Shmoys (2010) The Design of Approximation Algorithms, Cambridge University Press.
Authors:
Reference:
Year:
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 periódica:
- 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 - (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.
Title: * Computer Networks: A Systems Approach; Larry Peterson, Bruce S. Davie; Morgan Kaufman, 2021 (6th edition).
Authors:
Reference:
Year:
Title: * Computer Networking: A Top-Down Approach; James F. Kurose, Keith W. Ross; Pearson Education, 2021 (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)
Authors:
Reference:
Year:
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.
(P1) Noções fundamentais de IA com destaque para a abordagem baseada em procura
(P2) Algoritmos de procura: profundidade primeiro e largura primeiro, A*
(P3) Noções básicas de aprendizagem automática: supervisionada, por reforço, e não supervisionada
(P4) Algoritmos genéticos
(P5) Redes neuronais feedforward multicamada com backpropagation
(P6) Noções fundamentais relativas a conhecimento, representação, e arquitetura de sistemas baseados em conhecimento
(P7) Lógica de predicados de primeira ordem: representação e dedução
(P8) Conhecimento declarativo representado em Programação em Lógica
(P9) Sistemas de Regras baseadas na Fuzzy Logic
Avaliação periódica:
- 2 Testes Intercalares (Nota Mínima em cada teste 8.5) [30% primeiro, 40% segundo]
- 1 projecto [20%]
- 8 exercícios em aula (contam os 6 melhores). [10%]
Avaliação por exames
- Primeiro Exame [100%]
- Segundo Exame. [100%]
- Exame Época Especial [100%]
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.
Title: 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.
Authors:
Reference:
Year:
Title: 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
Authors:
Reference:
Year:
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: entender os benefícios das características do paradigma funcional comparativamente com outros paradigmas de programação;
OA4: desenhar e 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;
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 Periódica 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.
Title: 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.
Authors:
Reference:
Year:
Title: Hutton, G. (2007). Programming in Haskell. ISBN 978-0521692694.
Coplien, J. O. (1998). Multi-Paradigm Design for C++. ISBN 978-0201824674.
Authors:
Reference:
Year:
Agentes Autónomos
Pretende introduzir-se os conceitos e conhecimentos práticos fundamentais à utilização e ao desenvolvimento de agentes que, imersos numa sociedade mista de agentes e pessoas, controlem autonomamente o seu comportamento e comuniquem com utilizadores e 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 agentes imersos numa sociedade de atores humanos e de outros 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;
(OA3) Escolher e implementar as abordagens mais adequadas ao controlo autónomo do comportamento, tendo em vista os requisitos de AO2
(OA4) Dominar a linguagem de comunicação de agentes e a linguagem de conteúdo usada nessa comunicação
(OA5) Conhecer mecanismos necessários à coordenação de agentes em sociedade, tendo em vista os objetivos dos utilizadores.
(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) Análise concetual de sociedades de agentes a nível da identificação das competências / serviços / papéis, dos agentes e das mensagens que devem trocar
(P3) Descoberta, composição e prestação de serviços em sociedades de agentes
(P4) Mecanismos de controlo: Algoritmos de planeamento e regras de produção
(P5) Comunicação entre agentes (linguagens de comunicação e de conteúdo)
(P6) Plataforma de agentes e software para o desenvolvimento de agentes
Avaliação periódica ao longo do semestre: dois testes + mini projeto facultativo. Esta via de avaliação vale 100% da nota
Observação: nenhum elemento da avaliação ao longo do semestre é contabilizado no exame
Testes:
* Cada teste tem a nota mínima de 8 valores
* Classificação no conjunto dos dois testes: TESTES = 60% x Max(T1, T2) + 40% Min(T1, T2), em que T1 e T2 são as notas nos testes T1 e T2
Mini Projeto facultativo (realizado por grupos de 3 ou 4 alunos)
*Primeira fase: submissão inicial do trabalho. Classificação (MINPROJ): 0, 1, ou 2 valores. A nota é igual para todos os elementos do grupo
*Segunda fase (apresentação nos seminários de Agentes Autónomos)
Os N melhores trabalhos serão selecionados para apresentação nos seminários de Agentes Autónomos. N, que depende de fatores contextuais, será estabelecido em cada edição da UC.
Apresentações excecionais poderão render 1 valor adicional à nota do mini projeto (MINPROJ). A eventual melhoria de nota estende-se a todos os alunos do grupo envolvidos na apresentação.
A nota do mini projeto (MINPROJ) não piora com a apresentação.
Classificação do aluno ao longo do semestre: Min(20, TESTES + MINPROJ)
Avaliação por exame: exames nas três épocas de exame. Cada exame tem o peso de 100%. Aplicam-se as regras do Iscte quanto a melhoria de nota
Observação: nenhum elemento da avaliação ao longo do semestre é contabilizado no exame
Title: Course Notes + Course Software
Agent Platform and Software
Course Notes
Agent Communication:
Course notes + course software
Control mechanisms: Planning and Production Rules
Course notes
Conceptual analysis of agent societies. Service discovery, composition and provision
Course notes
Autonomous agents and agent societies
Authors:
Reference:
Year:
Title: 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
Control mechanisms: Search, Planning and Production Rules
Kouichi Matsuda. 2004. Personal Agent-Oriented Virtual Society. Advanced Knowledge International. ISBN-10: 0975100432. ISBN-13: 978-0975100431
Autonomous Agents and Agent Societies
Authors:
Reference:
Year:
Arquitetura de Redes
OA1 - Compreender 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 - Conhecer, 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 - Compreender a arquitetura da rede de transporte, das redes definidas por software e da mobilidade. Distinguir e avaliar as diferentes arquiteturas existentes.
OA4 - Conhecer 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 Periódica e 1ª Época:
30% - 1ª prova escrita (CP1 e CP2), and 35% - 2ª prova escrita (CP3, CP4 e CP5), e 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), e nota mínima de 8 valores à média ponderada arredondada dos laboratórios.
ou
100% - prova escrita (CP1 a CP5)
Avaliação 2ª época
65% - prova escrita (CP1 a CP5), com nota mínima de 8 valores.
35% - 5 laboratórios realizados durante o semestre (com peso de 9%, 9%, 7%, 5%, 5%, por ordem decrescente da avaliação em cada laboratório)
Nota mínima de 8 valores à média ponderada arredondada dos laboratórios.
ou
100% - prova escrita (CP1 a CP5)
Avaliação em época especial
100% - prova escrita (CP1 a CP5)
Title: 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
Authors:
Reference:
Year:
Title: 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
Authors:
Reference:
Year:
Processamento de Informação
Os alunos produzem um projeto real (como em contexto de trabalho) onde permitem aplicar os conhecimentos de programação com aspetos mais avançados que é a programação com aleatoriedade com a modelação e implementação de algoritmos eficazes e eficientes. Mostra-se que para o desenvolvimento de projetos completos é necessário misturar várias áreas do conhecimento, em particular da área das aleatoriedades (simplificação de expressões e elaboração dos algoritmos), da engenharia de software e da área onde se desenvolve o projeto. Esta UC é desenvolvida na necessidade de desenvolvimento do projeto e são ministrados os conteúdos relacionados com aleatoriedades, simplificação de expressões analíticas, técnicas de software e algoritmos mais eficientes para implementação no projeto. Os alunos também são ensinados e treinados com aspetos teórico-práticos onde o conhecimento é adquirido com a resolução de exercícios , algoritmos eficientes e programação e técnicas de validação do software.
1. Introdução
- Projetos típicos de aplicação no mundo real que implica um sólido conhecimento na programação com aleatoriedades
- Conceitos elementares das aleatoriedades na engenharia informática
- Requisitos para o desenvovimento de projetos
2. Planeamento, Organização e Desenvolvimento de Projetos
- Principais fases do projeto
- Principais módulos que constituem o projeto
- Planeamento do projeto
- Desenvolvimento
- Validação parcial e de conjunto
3. Probabilidades e variáveis aleatórias;
4. Desenvolviemnto analítico de operações fundamentais com aleatoriedades
5. Simplifificação de expresões analíticas com várias aleatoridades
6. Construção de modelos de sistemas para a construção de projetos
7. Implementação e validação dos algoritmos
Existem duas modalidades possíveis: Avaliação periódica: A avaliação é feita em duas partes. A primeira parte é constituída por dois trabalhos com problemas práticos e de projeto e a segunda parte por um exame. A nota dos trabalhos com problemas práticos tem o peso de 5% cada e o projeto 40% (com implementação e discussão do trabalho) totalizando 50% na nota final. Os outros 50% são obtidos com a nota da frequência ou exame. Na frequência ou exame a nota mínima é de 10 valores.
BibliografiaTitle: [3] W. L. Martinez and A. R. Martinez, Computational Statistics Handbook with Matlab, Chapman&Hall/CRC, (3rd edition), 2015.
[2] S. M. Ross, Introduction to Probability and Statistics for Engineers and Scientists, John Wiley & Sons, New York, (6th edition), 2021.
[1] D. C. Montgomery and G. C. Runger, Applied Statistics and Probability for Engineers, John Wiley & Sons, New York, (7th edition), 2018.
Authors:
Reference:
Year:
Title: [12] A. B. Carlson, P. B. Crilly, J. C. Rutledge, Communication Systems, 4th Ed., McGraw-Hill, 2002.
[11] D.D. Pestana e S.F. Velosa, Introdução à probabilidade e à Estatística, vol.1, Ed. Fundação Calouste Gulbenkian, 2002.
[10] J.P. Marques de Sá, Applied statistics using SPSS STATISTICA and MATLAB, Springer 2003.
[9] K. Cattermole and J. O´Reilly, Problems of Randomness in Communication Engineering, John Wiley & Sons, 1984.
[8] P. Beckmann, Probability in Communication Engineering, Harcourt, Brace & World Inc., 1967.
[7] A. Papoulis, S. U. Pillai, Probability, Random Variables and Stochastic Processes, 4th Ed., McGraw-Hill, 2002.
[6] B. J. Murteira, C. S. Ribeiro, J. Andrade e Silva e C. Pimenta. Introdução à Estatística, Mcgraw-Hill, Lisboa, 2002.
[5] B. J. Murteira. Probabilidades e Estatística, vol. I e II, Mcgraw-Hill, Lisboa, 1990 (2a edição).
[4] P. L. Meyer. Probabilidades. Aplicações à Estatística, Livros Técnicos e Científicos Editora S.A., Rio de Janeiro, 1981.
Authors:
Reference:
Year:
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.
Title: 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.
Authors:
Reference:
Year:
Title: http://download.oracle.com/javaee/5/tutorial/doc/
Tutorial for J5EE:
http://download.oracle.com/javase/tutorial/index.html
Tutorial for J6SE:
Authors:
Reference:
Year:
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 por projeto. O seu tema deverá estar alinhado com a totalidade ou parte do programa da UC.
Exercícios realizados na aula (10%).
Projeto (90%, incluindo trabalho de grupo (relatório e software) ? 40% e prova oral individual ? 50%).
Todas as componentes do projeto ? proposta, relatório, software e prova oral, são obrigatórias. A classificação mínima para cada componente é de 10 numa escala de 0 a 20.
Haverá apenas uma data limite para a entrega do projeto, com exceção dos alunos inscritos em época especial que poderão entregar durante esse período.
A presença nas aulas não é obrigatória.
Não existe exame final.
A melhoria de nota pode ser realizada através de entrega de novo projeto no ano letivo seguinte.
Title: 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
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
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 Periódica: Projeto prático em grupo com peso de 50% (nota individualizada e mínima de 9.5 em 20) e frequência (1ª época) com peso de 50% (nota mínima 9.5 em 20).
Exame final (100%): 1ª época, 2ª época e época especial.
Title: - Slides de Engenharia de Software, disponíveis na plataforma de e-learning, à medida que os temas forem introduzidos.
- Software Engineering, Ian Sommerville, 10th Edition, Addison-Wesley, 2016.
- Software Engineering: a Practitioner's Approach, Roger Pressman / Bruce R. Maxim, 8th edition, McGraw-Hill, 2014.
- Refactoring: Improving the Design of Existing Code, Martin Fowler with contributions by Kent Beck, John Brant, William Opdyke and Don Roberts, Object Technology Series, Addison-Wesley, 2000.
- Software Engineering Body of Knowledge (SWEBOK V3.0), IEEE Computer Society Professional Practices Committee, 2014.
- Introdução à Engenharia de Software, Sérgio Guerreiro, FCA Editora, 2015.
- SCRUM - A gestão ágil de projetos, João Paulo Pinto e Christiane Tscharf, FCA Editora, 2019.
Authors:
Reference:
Year:
Title: - Object-Oriented and Classical Software Engineering, Stephen Schach, 8th Edition, McGraw-Hill, 2011.
- The Object Constraint Language: Getting Your Models Ready for MDA, Jos Warmer, Anneke Kleppe, 2nd Edition, Pearson Education, 2003.
- A code of ethics and professional practice for software engineering, ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices, 2004.
Authors:
Reference:
Year:
Interacção Pessoa-Máquina
OA1: adquirir e compreender fundamentos de IPM através de texto/paper fornecido, sendo capaz de interpretar os conceitos, organizá-los e expô-los oralmente;
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%) ou Avaliação Periódica 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; 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 da nota do miniProjeto são aplicados ao máximo dos dois.
BibliografiaTitle: A 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.
Authors:
Reference:
Year:
Title: 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
Authors:
Reference:
Year:
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.
A UC é exclusivamente avaliada por projecto.A nota individual resulta: avaliação dos relatórios intercalares,relatório final,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),breve questionário individual no momento da discussão final.É obrigatória presença em 80% de reuniões semanais.Não existe avaliação por exame e a época especial consiste numa entrega de relatório complementar à avaliação contínua.
BibliografiaTitle: 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)
Authors:
Reference:
Year:
Plano de Estudos para 2024/2025
Unidades curriculares | Créditos | |
---|---|---|
Álgebra Linear
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Cálculo I
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Fundamentos de Arquitectura de Computadores
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 |
Mecânica e Electricidade
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Microprocessadores
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Sistemas Operativos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Bases de Dados
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Probabilidades e Processos Estocásticos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Programação Orientada para Objectos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Teoria da Computação
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 |
Concepção e Desenvolvimento de Sistemas de Informação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Desenho e Análise de Algoritmos
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Fundamentos de Redes de Computadores
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Inteligência Artificial
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Projeto de Programação Multiparadigma
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 |
Processamento de Informação
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Programação Concorrente e Distribuída
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 |
Engenharia de Software
6.0 ECTS
|
Unidades Curriculares Obrigatórias | 6.0 |
Interacção Pessoa-Máquina
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 |
Álgebra Linear
No final da UC o aluno deverá ser capaz de:
OA1. Dominar a linguagem vetorial e matricial.
OA2. Aplicar o método de Gram-Schmidt para obter uma base ortonormada.
OA3. Resolver e classificar sistemas de equações lineares.
OA4. Conhecer as operações matriciais.
OA5. Calcular, interpretar e aplicar determinantes.
OA6. Identificar, construir e analisar transformações lineares.
OA7. Calcular e interpretar valores e vetores próprios. Diagonalizar matrizes.
OA8. Classificar formas quadráticas.
1. 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.
2. 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.
3. Determinantes. Definição. Propriedades.
4. 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
5. 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 periódica:
- 6 fichas de avaliação (25%): prova escrita realizada em aula, com a duração de 15
minutos;
- Frequência (75%): prova escrita na 1a época do período de avaliação, com nota
mínima de 8.0 valores.
Os alunos em avaliação periódica têm a classicação de zero valores nas fichas de avaliação não realizadas.
Os alunos deverão realizar as fichas de avaliação na turma em que estão inscritos.
Para o cálculo da nota final nesta componente serão consideradas as 5 melhores notas
obtidas nas 6 fichas de avaliação.
Para os alunos que escolham esta modalidade, o resultado final considerado é o melhor
entre a avaliação periódica 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.
Title: Apoio teórico fornecido pelos docentes.
Caderno de exercícios fornecido pelos docentes.
G. Strang, Introduction to Linear Algebra, Wellesley-Cambridge Press, fourth edition, 2009.
T.S. Blyth and E.F. Robertson, Basic Linear Algebra, Wellesley-Cambridge Press, 2009.
Authors:
Reference:
Year:
Title: R. L. Burden, J. D.Faires, Numerical analysis, Cengage Learning, 2015.
Authors:
Reference:
Year:
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çãode.
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 Periódica, composta por:
- Dois Mini-Testes sobre MATLAB feitos em aula (5% + 5%), um Teste Intercalar (45%): prova escrita realizada durante o semestre; nota mínima de 7.5 valores.
- Frequência (45%): prova escrita realizada na 1ª época de avaliação; nota mínima de 7.5 valores.
2. Avaliação Final: 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.
Title: Sérgio Mendes, Apontamentos da UC., 2023, null,
K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013, null,
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015, null,
Authors:
Reference:
Year:
Title: J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018, null,
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018, null,
Authors:
Reference:
Year:
Fundamentos de Arquitectura de Computadores
OA1: Manipular e realizar operações aritméticas sobre números inteiros representados em diferentes bases de numeração;
OA2: Manipular expressões lógicas usando as propriedades da álgebra de Boole;
OA3: Projectar um circuito lógico combinatório a partir da especificação de um problema;
OA4: Projectar um circuito sequencial para controlo de outros elementos num sistema digital;
OA5: Simular e implementar um circuito digital utilizando um conjunto de circuitos integrados e/ou dispositivos de lógica programável;
OA6: Categorizar tipos de dipositivos de memória e projectar sistemas de memória de maior dimensão usando módulos de menores dimensões;
OA7: Identificar os principais elementos numa arquitectura básica de um processador e relacioná-los entre si;
OA8: Explicar de que forma se processa a execução de um programa, e identificar os principais mecanismos envolvidos;
CP1. Representação da informação
- Representação de números inteiros
- Operações aritméticas sobre inteiros
- Códigos alfanuméricos
CP2. Álgebra de Boole e funções lógicas
- Operações AND, OR e NOT
- Álgebra de Boole
- Funções lógicas
- Termos mínimos e soma de produtos
- Mapas de Karnaugh
CP3. Circuitos combinatórios
- Projecto de circuitos combinatórios
- Portas lógicas NAND, NOR e XOR
- Descodificadores e multiplexers
- Tempos de propagação
CP4. Circuitos sequenciais
- Latches e flip-flops
- Análise de circuitos sequenciais
- Diagrama e tabela de transição de estados
- Projecto de circuitos sequenciais
- Registos e contadores
CP5. Memórias
- Memórias RAM
- Memórias ROM
- Bancos de memória
CP6. Arquitectura de um processador
- Banco de registos
- Unidade funcional
- Micro-instruções
- Execução de programas
1. Avaliação periódica, composta por:
- Dois testes: um, a meio do semestre e outro no fim do semestre (peso conjunto de 70%). Nota mínima: 7,5 valores.
- Trabalhos de laboratório (20%): em grupo, realizados semanalmente durante as aulas de laboratório.
- Mini-testes online (10%): realizados semanalmente na plataforma de e-learning.
2. Avaliação por exame (100%): a nota na UC será a obtida num exame realizado em qualquer das 3 épocas de avaliação.
Title: João Oliveira, Tomás Brandão, Caderno de Exercícios de Fundamentos de Arquitetura de Computadores, 2016, Exercícios,
João Pedro Oliveira, Tomás Brandão, Textos de Apoio de Fundamentos de Arquitetura de Computadores, 2016, Sebenta,
Authors:
Reference:
Year:
Title: Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores - 2ª Edição, IST Press, 2019, Arroz 2019, https://istpress.tecnico.ulisboa.pt/produto/arquitectura-de-computadores-dos-sistemas-digitais-aos-microprocessadores/
Morris Mano, Charles Kime, Logic and Computer Design Fundamentals, 5th Edition, Pearson, 2015, Mano 2015, https://www.pearson.com/en-us/subject-catalog/p/logic--computer-design-fundamentals/P200000003256/9780134080154
Authors:
Reference:
Year:
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 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
CP10. Classes de objetos compostos
CP11. Encapsulamento e interfaces
Avaliação periódica, composta por:
15% Nota do teste Intercalar + 75% Nota da frequência + 10% Notas dos mini-testes online
[nota mínima de 8 valores na frequência e de C no projecto individual]
As classificações possíveis no Projeto Individual são (A, B, C, D). A classificação obtida no projeto define um limite máximo para a nota final:
A - max. 20
B - max. 16
C - max. 12
D - implica reprovação à UC
Title: Y. Daniel Liang, "Introduction to Java Programming", 5th Ed. Prentice-Hall, 2005. ISBN: 0-13-185721 - 5.
Authors:
Reference:
Year:
Title: João Pedro Neto, Programação, Algoritmos e Estruturas de Dados, Escolar Ed., 2004.
Authors:
Reference:
Year:
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 Periódica: 10 avaliações semanais online (10%) + 10 exercícios semanais de programação (20%) + 2 avaliações intercalares individuais (70%) + 1 projeto individual de programação (classificações A,B,C,D).
As notas do projeto são qualitativas e definem um limite para a nota final à UC: A - max. 20; B - max. 17; C - max. 13; D - reprovado.
ou
Exame Final individual (100%)
Title: (Algorithms, Part I - MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, Addison-Wesley, 2012
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
Cálculo II
OA1. Calcular derivadas parciais e as matrizes Jacobiana e Hessiana.
OA2. Determinar aproximações lineares e de ordem superior de funções de várias variáveis.
OA3. Determinar e caracterizar extremos de funções de várias variáveis.
OA4. Aplicar métodos numéricos de derivação e optimização.
OA5. Calcular integrais duplos e triplos.
OA6. Saber aplicar os integrais duplos e triplos ao cálculo de áreas, volumes, centro de massa, densidade de probabilidade.
OA7. Aplicar métodos numéricos de integração.
OA8. Calcular integrais de linha e superfície.
OA9. 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
Aprovação com classificação não inferior a 10 valores numa das modalidades:
- Avaliação periódica: 6 Mini testes em aula (20%) + Teste (80%).
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
Title: 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.
Authors:
Reference:
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference:
Year:
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.
Title: - 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)
Authors:
Reference:
Year:
Title: - 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)
Authors:
Reference:
Year:
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 periódica ou apenas por exame final:
A - Avaliação periódica: A avaliação é feita por 2 testes escritos, um efectuado durante o período lectivo e o outro na data 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.
Title: David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
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
Gestão de Memória
CP6: - Modelos e algoritmos de gestão de memória
CP7: - Memória Virtual
CP8: Entradas e Saídas
CP9: Sistema de Ficheiros
CP10: Administração e Segurança
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 Periódica, não contemplando 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 (contam 8 melhores)
* PE (50%): Prova Escrita a realizar em 1º ou 2ª época ou em época especial
Requisitos: TRAB+TPC >= 9.5 valores, PE >= 7 valores
A nota de TRAB+TPC está limitada a PE + 6 valores
Para mais informações ver a secção Observações
Title: - 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
Authors:
Reference:
Year:
Title: - 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
Authors:
Reference:
Year:
Bases de Dados
Dotar os alunos de conhecimentos sólidos sobre matérias nucleares na área das bases de dados ditas convencionais (sistemas de bases de dados suportados por modelos relacionais), nomeadamente: desenho de esquemas relacionais e interrogações suportadas pela linguagem SQL.
CP1 - Desenho de esquemas relacionais
CP2 - Linguagem UML, Diagrama de Classes
CP3 - Modelo relacional
1. Relações e chaves primárias
2. Chaves estrangeiras e regras de integridade
3. Otimizações e índices
4. Transações e concorrência
CP4 - Transposição de um modelo conceptual para um modelo relacional
CP5 - Linguagem SQL
1. Querys Simples;
2. Funções de Agregação
3. SubQuerys;
4. Triggers, Stored Procedures e Funções
CP6 – Introdução ao PHP/MySQL
I. AVALIAÇÃO EM ÉPOCA NORMAL
Dado o carácter eminentemente prático desta UC a sua avaliação consiste obrigatoriamente na realização das seguintes componentes:
- Projeto em grupo, com ponderação de 40% em duas entregas faseadas;
- Teste individual escrito, com ponderação de 50% a realizar em data de época normal; 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, 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 época de recurso 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.
Em situações excecionais de falta de comparência na data da época normal para a realização do teste individual escrito, poderá o aluno recorrer à data da época de recurso para realizar a prova. Estes casos serão sujeitos a comprovação e aceitação prévia junto dos serviços.
Alunos que pretendam fazer melhoria de nota poderão melhorar o teste individual escrito, a realizar em data da época de recurso. Nenhuma das restantes componentes é suscetível de melhoria.
II. AVALIAÇÃO EM ÉPOCA ESPECIAL
Os estudantes que reúnam condições para se submeterem a Época Especial, terão as seguintes componentes de avaliação:
- Projeto individual ou em grupo, com ponderação de 50% - a entregar na data oficial da avaliação de Época Especial;
- Teste individual escrito, com ponderação de 50% - a realizar em data de Época especial
O projeto terá a mesma estrutura do projeto realizado em época normal, no entanto difere a temática, que será proposta pelos alunos ao docente para aprovação. As exigências de dimensão do projeto serão proporcionais ao número de alunos do grupo. A dimensão máxima do grupo, as métricas relacionadas com a dimensão e os deadlines serão publicadas em enunciado próprio disponibilizado na plataforma de e-learning.
Também os estudantes que recorrerem a Época Especial têm a condicionante para aprovação de nota mínima de 8,00 valores, sem arredondamento, em cada uma das componentes de avaliação.
Title: Ramos, Pedro, Desenhar Bases de Dados com UML. Conceitos e Exercícios Comentados - 2ª Edição, Edições Sílabo, 2012, 978-972-618-474-4,
Gouveia, Feliz, Bases de Dados: Fundamentos e Aplicações - 2ª Edição Aumentada, FCA, 2021, 978-972-722-901-7,
Damas, Luís, SQL - Structured Query Language - 14ª Edição, FCA, 2017, 978-972-722-829-4,
Authors:
Reference:
Year:
Title: Ramakrishnan, Raghu & Gehrke, Johannes, Database Management Systems - 3rd Edition, McGrawHill, 2002, 978-007-246-563-1,
Booch, Grady; Rumbaugh, James & Jacobson, Ivar, The Unified Modeling Language User Guide - 2nd Edition, Addison-Wesley, 2005, 978-032-126-797-9,
Alturas, Bráulio, Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, 2022, 978-989-561-265-9,
Authors:
Reference:
Year:
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.
1)Teoria de Probabilidade.
1a) A axiomática de Kolmogorov.
1b) Variáveis aleatórias unidimensionais e multidimensionais.
1c) Função geradora de momentos
2) Teoremas Centrais
3a) Desigualdades de Markov e Chebyshev.
3b) Lei dos Grandes Números.
3c) Teorema do Limite Central.
4) Processos estocásticos
4a) Processos estocásticos discretos. Processos de Poisson.
4b) Processos estocásticos contínuos. Movimentos Browniano.
4c) Cadeias de Markov
4d) Simulação, aplicações e algoritmos
- Avaliação principal (AP):
- Avaliação contínua: 1º Teste (60%) e 2º Teste (40%): data do exame de 1ª época.
Nota mínima em ambos os testes 8.0 valores.
--Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Avaliação opcional (AO): Realização de um trabalho/estudo com cotação máxima de quatro (4.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.
Title: 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.
Material pedagógico que aparecerá regularmente no elearning.
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
Programação Orientada para Objectos
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
A avaliação pode ser realizada segundo uma das seguintes modalidades:
Modalidade A:
- Exercícios realizados em aula (20%, grupos de 2 ou individual)
- Prova escrita a meio do semestre (30%, individual, nota mínima de 7 val.)
- Projeto (50%, grupos de 2 ou individual)
Modalidade B:
- Prova escrita a meio do semestre ou em época especial (50%, individual, nota mínima de 7 val.)
- Projeto (50%, grupos de 2 ou individual)
Independentemente da modalidade seguida, 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.
Dado o caráter prático da UC não há lugar a avaliação por exame.
A avaliação em época especial segue a modalidade B.
Melhoria de nota só pode ser feita repetindo o processo de avaliação no ano seguinte.
Title: Folhas de apoio disponíveis no e-learning.
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
Authors:
Reference:
Year:
Title: 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)
Authors:
Reference:
Year:
Teoria da Computação
Concluída a disciplina o aluno deverá ser capaz de:
1. Interpretar e formular definições rigorosas;
2. Analisar consequências lógicas das definições;
3. Descrever vários modelos computacionais e assinalar as suas limitações.
4. Descrever linguagens através de gramáticas.
5. Resolver problemas computacionais utilizando os modelos computacionais aprendidos.
6. Manipular os formalismos aprendidos na construção de analisadores léxicos e sintácticos.
I Notação matemática e técnicas de demonstração
Objectos matemáticos básicos: conjuntos, funções, relações e linguagens; Lógica, demonstrações e o princípio de indução matemática.
II Autómatos Finitos e Linguagens Regulares
Linguagens regulares e expressões regulares. Autómatos finitos deterministas e não deterministas. Reconhecimento de linguagens regulares.
III Autómatos de Pilha e Linguagens Livres de Contexto
Linguagens livres de contexto e gramáticas livres de contexto. Autómatos de pilha. Reconhecimento de linguagens livres de contexto.
IV Máquinas de Turing e Linguagens Recursivamente Enumeráveis
Linguagens Recursivamente Enumeráveis. Máquinas de Turing. Tese de Church-Turing.
I Avaliação periódica: 10 mini avaliações semanais online (10%) e duas frequências (90 %). Na avaliação periódica é obrigatório efetuar no mínimo 7 mini avaliações online. A presença nas aulas não é obrigatória.
ou
II Exame final.
A presença nas aulas não é obrigatória.
Title: 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.
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
Tópicos de Matemática para Computação
No final da UC o aluno deverá ser capaz de:
OA1. Representar algumas funções em séries de Fourier.
OA2. Determinar transformadas de Fourier contínuas e discretas.
OA3. Conhecer e aplicar algumas propriedades básicas das séries e transformadas de Fourier
OA4. Utilizar métodos e propriedades de análise de Fourier no contexto de processamento de sinal, tratamento de imagem e compressão de dados.
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 (Keras) o descrito nos últimos dois pontos.
CP1. Números complexos e produto interno.
1.1. Números complexos
1.2. Funções complexas de variável real.
1.3. Produto interno e ortogonalidade.
1.4. Regressão linear; implementação em python.
CP2. Análise de Fourier e aplicações.
2.1. Séries de Fourier.
2.2. Transformada de Fourier.
2.3. Convolução (contínua).
2.4. Filtros; implementação em python.
CP3. A transformada de Fourier discreta.
3.1. A transformada de Fourier discreta e FFT.
3.2. Convolução discreta.
3.3. Programação dinâmica.
3.4. Wavelets e JPEG.
3.5. Tratamento e compressão de imagem; implementação em python.
CP4. Redes Neuronais:
4.1. Arquitetura básica, funções de ativação e funções de custo.
4.2. Problemas de regressão e problemas de classificação.
4.3. Teoremas de aproximação universal.
4.4. Otimização numérica: descida do gradiente e variantes.
4.5. O algoritmo Backpropagation.
4.6. Reconhecimento de imagem; implementação em python (Keras).
Aprovação com classificação não inferior a 10 valores numa das modalidades:
- Avaliação periódica versão 1: 4 testes (75%) + 4 mini-projetos em python (25%), ou
- Avaliação periódica versão 2: Exame realizado na primeira época (75%) + 4 mini-projetos em python (25%), ou
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Aprovação em avaliação periódica v1 requer uma nota mínima de 8.0 em 20 na média de cada um dos pares de testes T1+T2 e T3+T4.
- Aprovação em avaliação periódica v2 requer uma nota mínima de 8.0 em 20 no exame.
- No caso da avaliação periódica v1, os alunos poderão realizar 1 dos teste, e apenas 1, durante a 1ª época de exames. Caso faltem a 2 ou mais testes serão excluídos da avaliação periódica v1.
- 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.
- Os mini-projetos serão realizados em grupos, formados idealmente por 4 alunos. No caso dos mini-projetos 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, estarão sujeitas a uma defesa de nota.
Title: - João L. Costa, Slides da cadeira.
Authors:
Reference:
Year:
Title: - Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
- Rousseau, C and Saint-Aubin, Y., "Mathematics and technology", Springer 2008.
- Calin, O., "Deep Learning Architectures: A Mathematical Approach", Springer Series in the Data Sciences, 2020.
- Chollet, F., "Deep Learning with Python", Manning Publications, 2017.
Authors:
Reference:
Year:
Concepção e Desenvolvimento de Sistemas de Informação
O1. Identificar os requisitos para a CDSI e as principais fases e actividades de CDSI;
O2. Transformar requisitos em especificação técnica e modelos de um SI;
O3. Utilizar ferramentas de modelização de SI;
O4. Utilizar tecnologias de implementação Low-Code e introdução a serviços para a implementação de SI, Application Programming Interfaces com protocolos REST;
O5. 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);
O6. 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;
O7. 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;
O8. Desenvolver as capacidades de comunicação oral e escrita e de discussão técnica do trabalho.
P1. Introdução à concepção e desenvolvimento de SI;
P2. Ciclo de vida de desenvolvimento de SI;
P3. Análise de requisitos para a concepção e desenvolvimento de SI;
P4. Especificação e concepção de SI, diagramas UML;
P5. Modelização de processos no contexto dos SI;
P6. Tecnologias de implementação Low-Code;
P7. Tecnologias de integração no contexto dos SI: Arquitecturas Orientadas a Serviços, API e REST;
P8. Service-Oriented Computing no contexto dos SI.
A avaliação na UC é exclusivamente efetuada por avaliação contínua através de projecto: a nota individual resulta da avaliação dos relatórios intercalares, relatório final, 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), orais e breve questionário individual, da seguinte forma:
- Questionário individual: 20%
- Fase 1 do projecto (entrega, discussões semanais, oral): 30%
- Fases 2 e 3 do projecto (entregas, discussões semanais, oral): 50%
As datas das entregas do projecto serão indicadas pela docente coordenadora, sendo que a última entrega (fases 2 e 3 do projecto) ocorre na 1ª semana da época de avaliação (1ª época de exames) e as orais finais de demonstração decorrem durante a 1ª época de avaliação (de exames).
É obrigatória presença em 80% de reuniões semanais. Não existe avaliação por exame e a época especial consiste num complemento à avaliação contínua, se necessário.
Title: 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.
Authors:
Reference:
Year:
Title: 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/
Authors:
Reference:
Year:
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: Entender as implicações do uso de algoritmos versus heurísticas.
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: Dividir-e-Conquistar (Divide-and-Conquer), Programação Dinâmica (Dynamic Programming), Ávida (Greedy), Aleatoriedade (Randomization).
CP3- Grafos: representação, árvores de cobertura, travessias, caminhos mais curtos, algoritmos de fluxo.
Avaliação periódica: E x 0.20 + T x 0.60 + M x 0.20 = 100%
(a) Exercícios semanais (E):
- Matéria até a última aula dada.
(b) Testes intercalares (T):
- 2 testes (de igual ponderação);
- 1º teste: na semana intercalar;
- 2º teste: no dia do exame de 1ª Época.
(c) Minitrabalhos (M):
- 2 minitrabalhos (de igual ponderação);
- Realizados em grupo de 2 pessoas.
Exame: 1ª, 2ª Épocas e Época Especial = 100%.
Title: Cormen, Thomas, Charles Leiserson, Ronald L. Rivest and Clifford Stein (2022), Introduction to Algorithms. 34th ed., MIT Press.
John Kleinberg Eva Tardos (2005) Algorithm Design, Addison-Wesley.
Tim Roughgarden (2022). Algorithms Illuminated: Omnibus Edition. Cambridge: CUP.
Authors:
Reference:
Year:
Title: David Williamson, David Shmoys (2010) The Design of Approximation Algorithms, Cambridge University Press.
Authors:
Reference:
Year:
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 periódica:
- 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 - (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.
Title: * Computer Networks: A Systems Approach; Larry Peterson, Bruce S. Davie; Morgan Kaufman, 2021 (6th edition).
Authors:
Reference:
Year:
Title: * Computer Networking: A Top-Down Approach; James F. Kurose, Keith W. Ross; Pearson Education, 2021 (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)
Authors:
Reference:
Year:
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.
(P1) Noções fundamentais de IA com destaque para a abordagem baseada em procura
(P2) Algoritmos de procura: profundidade primeiro e largura primeiro, A*
(P3) Noções básicas de aprendizagem automática: supervisionada, por reforço, e não supervisionada
(P4) Algoritmos genéticos
(P5) Redes neuronais feedforward multicamada com backpropagation
(P6) Noções fundamentais relativas a conhecimento, representação, e arquitetura de sistemas baseados em conhecimento
(P7) Lógica de predicados de primeira ordem: representação e dedução
(P8) Conhecimento declarativo representado em Programação em Lógica
(P9) Sistemas de Regras baseadas na Fuzzy Logic
Avaliação periódica:
- 2 Testes Intercalares (Nota Mínima em cada teste 8.5) [30% primeiro, 40% segundo]
- 1 projecto [20%]
- 8 exercícios em aula (contam os 6 melhores). [10%]
Avaliação por exames
- Primeiro Exame [100%]
- Segundo Exame. [100%]
- Exame Época Especial [100%]
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.
Title: 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.
Authors:
Reference:
Year:
Title: 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
Authors:
Reference:
Year:
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: entender os benefícios das características do paradigma funcional comparativamente com outros paradigmas de programação;
OA4: desenhar e 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;
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 Periódica 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.
Title: 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.
Authors:
Reference:
Year:
Title: Hutton, G. (2007). Programming in Haskell. ISBN 978-0521692694.
Coplien, J. O. (1998). Multi-Paradigm Design for C++. ISBN 978-0201824674.
Authors:
Reference:
Year:
Agentes Autónomos
Pretende introduzir-se os conceitos e conhecimentos práticos fundamentais à utilização e ao desenvolvimento de agentes que, imersos numa sociedade mista de agentes e pessoas, controlem autonomamente o seu comportamento e comuniquem com utilizadores e 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 agentes imersos numa sociedade de atores humanos e de outros 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;
(OA3) Escolher e implementar as abordagens mais adequadas ao controlo autónomo do comportamento, tendo em vista os requisitos de AO2
(OA4) Dominar a linguagem de comunicação de agentes e a linguagem de conteúdo usada nessa comunicação
(OA5) Conhecer mecanismos necessários à coordenação de agentes em sociedade, tendo em vista os objetivos dos utilizadores.
(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) Análise concetual de sociedades de agentes a nível da identificação das competências / serviços / papéis, dos agentes e das mensagens que devem trocar
(P3) Descoberta, composição e prestação de serviços em sociedades de agentes
(P4) Mecanismos de controlo: Algoritmos de planeamento e regras de produção
(P5) Comunicação entre agentes (linguagens de comunicação e de conteúdo)
(P6) Plataforma de agentes e software para o desenvolvimento de agentes
Avaliação periódica ao longo do semestre: dois testes + mini projeto facultativo. Esta via de avaliação vale 100% da nota
Observação: nenhum elemento da avaliação ao longo do semestre é contabilizado no exame
Testes:
* Cada teste tem a nota mínima de 8 valores
* Classificação no conjunto dos dois testes: TESTES = 60% x Max(T1, T2) + 40% Min(T1, T2), em que T1 e T2 são as notas nos testes T1 e T2
Mini Projeto facultativo (realizado por grupos de 3 ou 4 alunos)
*Primeira fase: submissão inicial do trabalho. Classificação (MINPROJ): 0, 1, ou 2 valores. A nota é igual para todos os elementos do grupo
*Segunda fase (apresentação nos seminários de Agentes Autónomos)
Os N melhores trabalhos serão selecionados para apresentação nos seminários de Agentes Autónomos. N, que depende de fatores contextuais, será estabelecido em cada edição da UC.
Apresentações excecionais poderão render 1 valor adicional à nota do mini projeto (MINPROJ). A eventual melhoria de nota estende-se a todos os alunos do grupo envolvidos na apresentação.
A nota do mini projeto (MINPROJ) não piora com a apresentação.
Classificação do aluno ao longo do semestre: Min(20, TESTES + MINPROJ)
Avaliação por exame: exames nas três épocas de exame. Cada exame tem o peso de 100%. Aplicam-se as regras do Iscte quanto a melhoria de nota
Observação: nenhum elemento da avaliação ao longo do semestre é contabilizado no exame
Title: Course Notes + Course Software
Agent Platform and Software
Course Notes
Agent Communication:
Course notes + course software
Control mechanisms: Planning and Production Rules
Course notes
Conceptual analysis of agent societies. Service discovery, composition and provision
Course notes
Autonomous agents and agent societies
Authors:
Reference:
Year:
Title: 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
Control mechanisms: Search, Planning and Production Rules
Kouichi Matsuda. 2004. Personal Agent-Oriented Virtual Society. Advanced Knowledge International. ISBN-10: 0975100432. ISBN-13: 978-0975100431
Autonomous Agents and Agent Societies
Authors:
Reference:
Year:
Arquitetura de Redes
OA1 - Compreender 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 - Conhecer, 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 - Compreender a arquitetura da rede de transporte, das redes definidas por software e da mobilidade. Distinguir e avaliar as diferentes arquiteturas existentes.
OA4 - Conhecer 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 Periódica e 1ª Época:
30% - 1ª prova escrita (CP1 e CP2), and 35% - 2ª prova escrita (CP3, CP4 e CP5), e 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), e nota mínima de 8 valores à média ponderada arredondada dos laboratórios.
ou
100% - prova escrita (CP1 a CP5)
Avaliação 2ª época
65% - prova escrita (CP1 a CP5), com nota mínima de 8 valores.
35% - 5 laboratórios realizados durante o semestre (com peso de 9%, 9%, 7%, 5%, 5%, por ordem decrescente da avaliação em cada laboratório)
Nota mínima de 8 valores à média ponderada arredondada dos laboratórios.
ou
100% - prova escrita (CP1 a CP5)
Avaliação em época especial
100% - prova escrita (CP1 a CP5)
Title: 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
Authors:
Reference:
Year:
Title: 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
Authors:
Reference:
Year:
Processamento de Informação
Os alunos produzem um projeto real (como em contexto de trabalho) onde permitem aplicar os conhecimentos de programação com aspetos mais avançados que é a programação com aleatoriedade com a modelação e implementação de algoritmos eficazes e eficientes. Mostra-se que para o desenvolvimento de projetos completos é necessário misturar várias áreas do conhecimento, em particular da área das aleatoriedades (simplificação de expressões e elaboração dos algoritmos), da engenharia de software e da área onde se desenvolve o projeto. Esta UC é desenvolvida na necessidade de desenvolvimento do projeto e são ministrados os conteúdos relacionados com aleatoriedades, simplificação de expressões analíticas, técnicas de software e algoritmos mais eficientes para implementação no projeto. Os alunos também são ensinados e treinados com aspetos teórico-práticos onde o conhecimento é adquirido com a resolução de exercícios , algoritmos eficientes e programação e técnicas de validação do software.
1. Introdução
- Projetos típicos de aplicação no mundo real que implica um sólido conhecimento na programação com aleatoriedades
- Conceitos elementares das aleatoriedades na engenharia informática
- Requisitos para o desenvovimento de projetos
2. Planeamento, Organização e Desenvolvimento de Projetos
- Principais fases do projeto
- Principais módulos que constituem o projeto
- Planeamento do projeto
- Desenvolvimento
- Validação parcial e de conjunto
3. Probabilidades e variáveis aleatórias;
4. Desenvolviemnto analítico de operações fundamentais com aleatoriedades
5. Simplifificação de expresões analíticas com várias aleatoridades
6. Construção de modelos de sistemas para a construção de projetos
7. Implementação e validação dos algoritmos
Existem duas modalidades possíveis: Avaliação periódica: A avaliação é feita em duas partes. A primeira parte é constituída por dois trabalhos com problemas práticos e de projeto e a segunda parte por um exame. A nota dos trabalhos com problemas práticos tem o peso de 5% cada e o projeto 40% (com implementação e discussão do trabalho) totalizando 50% na nota final. Os outros 50% são obtidos com a nota da frequência ou exame. Na frequência ou exame a nota mínima é de 10 valores.
BibliografiaTitle: [3] W. L. Martinez and A. R. Martinez, Computational Statistics Handbook with Matlab, Chapman&Hall/CRC, (3rd edition), 2015.
[2] S. M. Ross, Introduction to Probability and Statistics for Engineers and Scientists, John Wiley & Sons, New York, (6th edition), 2021.
[1] D. C. Montgomery and G. C. Runger, Applied Statistics and Probability for Engineers, John Wiley & Sons, New York, (7th edition), 2018.
Authors:
Reference:
Year:
Title: [12] A. B. Carlson, P. B. Crilly, J. C. Rutledge, Communication Systems, 4th Ed., McGraw-Hill, 2002.
[11] D.D. Pestana e S.F. Velosa, Introdução à probabilidade e à Estatística, vol.1, Ed. Fundação Calouste Gulbenkian, 2002.
[10] J.P. Marques de Sá, Applied statistics using SPSS STATISTICA and MATLAB, Springer 2003.
[9] K. Cattermole and J. O´Reilly, Problems of Randomness in Communication Engineering, John Wiley & Sons, 1984.
[8] P. Beckmann, Probability in Communication Engineering, Harcourt, Brace & World Inc., 1967.
[7] A. Papoulis, S. U. Pillai, Probability, Random Variables and Stochastic Processes, 4th Ed., McGraw-Hill, 2002.
[6] B. J. Murteira, C. S. Ribeiro, J. Andrade e Silva e C. Pimenta. Introdução à Estatística, Mcgraw-Hill, Lisboa, 2002.
[5] B. J. Murteira. Probabilidades e Estatística, vol. I e II, Mcgraw-Hill, Lisboa, 1990 (2a edição).
[4] P. L. Meyer. Probabilidades. Aplicações à Estatística, Livros Técnicos e Científicos Editora S.A., Rio de Janeiro, 1981.
Authors:
Reference:
Year:
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.
Title: 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.
Authors:
Reference:
Year:
Title: http://download.oracle.com/javaee/5/tutorial/doc/
Tutorial for J5EE:
http://download.oracle.com/javase/tutorial/index.html
Tutorial for J6SE:
Authors:
Reference:
Year:
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 por projeto. O seu tema deverá estar alinhado com a totalidade ou parte do programa da UC.
Exercícios realizados na aula (10%).
Projeto (90%, incluindo trabalho de grupo (relatório e software) ? 40% e prova oral individual ? 50%).
Todas as componentes do projeto ? proposta, relatório, software e prova oral, são obrigatórias. A classificação mínima para cada componente é de 10 numa escala de 0 a 20.
Haverá apenas uma data limite para a entrega do projeto, com exceção dos alunos inscritos em época especial que poderão entregar durante esse período.
A presença nas aulas não é obrigatória.
Não existe exame final.
A melhoria de nota pode ser realizada através de entrega de novo projeto no ano letivo seguinte.
Title: 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
Authors:
Reference:
Year:
Title: 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.
Authors:
Reference:
Year:
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 Periódica: Projeto prático em grupo com peso de 50% (nota individualizada e mínima de 9.5 em 20) e frequência (1ª época) com peso de 50% (nota mínima 9.5 em 20).
Exame final (100%): 1ª época, 2ª época e época especial.
Title: - Slides de Engenharia de Software, disponíveis na plataforma de e-learning, à medida que os temas forem introduzidos.
- Software Engineering, Ian Sommerville, 10th Edition, Addison-Wesley, 2016.
- Software Engineering: a Practitioner's Approach, Roger Pressman / Bruce R. Maxim, 8th edition, McGraw-Hill, 2014.
- Refactoring: Improving the Design of Existing Code, Martin Fowler with contributions by Kent Beck, John Brant, William Opdyke and Don Roberts, Object Technology Series, Addison-Wesley, 2000.
- Software Engineering Body of Knowledge (SWEBOK V3.0), IEEE Computer Society Professional Practices Committee, 2014.
- Introdução à Engenharia de Software, Sérgio Guerreiro, FCA Editora, 2015.
- SCRUM - A gestão ágil de projetos, João Paulo Pinto e Christiane Tscharf, FCA Editora, 2019.
Authors:
Reference:
Year:
Title: - Object-Oriented and Classical Software Engineering, Stephen Schach, 8th Edition, McGraw-Hill, 2011.
- The Object Constraint Language: Getting Your Models Ready for MDA, Jos Warmer, Anneke Kleppe, 2nd Edition, Pearson Education, 2003.
- A code of ethics and professional practice for software engineering, ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices, 2004.
Authors:
Reference:
Year:
Interacção Pessoa-Máquina
OA1: adquirir e compreender fundamentos de IPM através de texto/paper fornecido, sendo capaz de interpretar os conceitos, organizá-los e expô-los oralmente;
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%) ou Avaliação Periódica 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; 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 da nota do miniProjeto são aplicados ao máximo dos dois.
BibliografiaTitle: A 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.
Authors:
Reference:
Year:
Title: 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
Authors:
Reference:
Year:
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.
A UC é exclusivamente avaliada por projecto.A nota individual resulta: avaliação dos relatórios intercalares,relatório final,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),breve questionário individual no momento da discussão final.É obrigatória presença em 80% de reuniões semanais.Não existe avaliação por exame e a época especial consiste numa entrega de relatório complementar à avaliação contínua.
BibliografiaTitle: 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)
Authors:
Reference:
Year:
Optativas recomendadas
As optativas têm de ser unidades curriculares de 1.º ciclo.
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