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 162 em unidades curriculares obrigatórias e 18 em optativas dos quais 6 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. Conhecer a estrutura de espaço vetorial IR^n e os conceitos de subespaço vetorial, dependência linear de vetores, base e dimensão.
OA2. Aplicar o método de Gram-Schmidt para obter uma base ortonormada.
OA3. Resolver e classificar sistemas de equações lineares.
OA4. Conhecer a noção de matriz e dominar a álgebra matricial.
OA5. Calcular, interpretar e aplicar determinantes de matrizes quadradas.
OA6. Identificar funções lineares (e matrizes de funções lineares) entre espaços vetorias.
OA7. Calcular e interpretar valores e vetores próprios. Diagonalizar matrizes. Determinar potências inteiras de matrizes diagonalizávies.
OA8. Aplicar a decomposição em valores singulares de uma matriz à compressão de imagem.
OA9. Classificar formas quadráticas.
CP1. Vetores e Sistemas de equações lineares
1.1 O espaço vetorial R^n.
1.2 Produto interno e norma
1.3 Combinação e dependência linear.
1.4 Base e dimensão.
1.5 Coordenadas de um vetor.
1.6 Ortonormalização de Gram-Schmidt
1.7 Sistemas de equações lineares.
1.8 Método de eliminação de Gauss. Classificação.
CP2. Matrizes
2.1 Matrizes elementares e de permutação
2.2 Álgebra de matrizes.
2.3 Transposição e inversão de matrizes. Propriedades.
2.4 Decomposição LU.
CP3. Determinantes. Definição. Propriedades.
CP4. Funções lineares
4.1Transformação linear e matriz de uma transformação linear
4.2 Núcleo e imagem de uma função.
4.3 Espaço nulo e espaço das colunas. Teorema da dimensão.
4.4 Mudança de base
CP5. Valores e vetores próprios
5.1 Definição. Subespaços próprios.
5.2 Diagonalização
5.3 Formas quadráticas.
5.4 Decomposição em valores singulares aplicada à compressão de imagem.
Os alunos podem optar por uma das seguintes modalidades de avaliação:
- Avaliação ao longo do semestre:
- 6 mini-testes (25%): prova escrita realizada em aula, com a duração de 15
minutos;
- Prova escrita (75%): prova escrita na 1a época do período de avaliação, com nota
mínima de 8.0 valores.
Os alunos em avaliação ao longo do semestre têm a classificação de zero valores nas fichas de avaliação não realizadas.
Os alunos deverão realizar os mini-testes na turma em que estão inscritos.
Para o cálculo da nota final nesta componente serão consideradas as 5 melhores notas
obtidas nos 6 mini-testes.
Para os alunos que escolham esta modalidade, o resultado final considerado é o melhor
entre a avaliação ao longo do semestre e a avaliação por exame.
- Avaliação por exame: realização de uma prova escrita (100%) na 1a ou 2a época do
período de avaliação.
A nota mínima de aprovação na unidade curricular é de 10 valores.
Os professores responsáveis reservam-se o direito de fazer orais sempre que considerem
necessário.
Title: Apoio teórico fornecido pelos docentes.
Caderno de exercícios fornecido pelos docentes.
Strang, G. (2023). Introduction to Linear Algebra (sixth edition) Wellesley-Cambridge Press.
Blyth, T.S., & Robertson, E. F. (2009) Basic Linear Algebra, Wellesley-Cambridge Press.
Authors:
Reference: null
Year:
Title: Burden, R. L., & Faires, J. D. (2015) Numerical analysis, Cengage Learning.
Lay, D., Lay, S., & McDonald, J. (2016) Linear Algebra and Its Applications (fifth edition) Pearson.
Authors:
Reference: null
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ção.
OA7. Compreender séries numéricas e representar funções em séries de potências.
1) Cálculo Diferencial em R
1.1. Limites e continuidade
1.2. Diferenciabilidade
1.3. Fórmula de Taylor
1.4. Análise de erros
1.5. Métodos numéricos para resolução de equações a uma variável - métodos da bissecção e de Newton
1.6. Derivação numérica e optimização numérica
2 ) Cálculo Integral em R
2.1. Primitivas
2.2. Integrais
2.3. Teorema fundamental do cálculo integral
2.4. Aplicações geométricas
2.5. Integração numérica
3) Séries numéricas e séries de potências
3.1. Sucessões
3.2. Séries
3.3. Critérios de convergência
3.4. Séries de potências e aplicações
Existem duas modalidades de avaliação:
1. Avaliação ao longo do semestre, composta por:
- Dois Mini-Testes sobre MATLAB feitos em aula (5% + 5%)
- Teste 1 (45%): prova escrita realizada durante o semestre com nota mínima de 7.5 valores
- Teste 2 (45%): prova escrita realizada na 1ª época de avaliação com nota mínima de 7.5 valores.
2. Avaliação por exame: realização de um exame (com um peso de 100%), na 1ª época ou na 2ª época do período de avaliação.
A nota mínima de aprovação na unidade curricular é de 10 valores.
Os docentes reservam-se ao direito de fazer uma prova oral a um aluno de modo a comprovar os conhecimentos adquiridos.
Title: K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013.
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015.
Authors:
Reference: null
Year:
Title: Sérgio Mendes, Apontamentos da UC, 2023.
J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018.
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018.
Authors:
Reference: null
Year:
Fundamentos de Arquitectura de Computadores
+ OA1 - Compreender o funcionamento de um computador moderno, reconhecendo os seus componentes principais e funcionalidades;
+ OA2 - Compreender o funcionamento de circuitos digitais lógicos e aritméticos, e projectar circuitos deste tipo a partir da especificação de um problema;
+ OA3 - Explicar o funcionamento de circuitos sequenciais síncronos e projectar circuitos deste tipo para controlo de outros elementos num sistema digital;
+ OA4 - Analisar o funcionamento de bancos de registos e memórias e sua utilização no contexto de um computador digital;
+ OA5 - Compreender como se combinam os vários componentes para a execução de instruções individuais e programas completos.
CP1. Arquitectura de um computador
+ Arquitectura básica: controle, datapath, memória e I/O
+ Código máquina, linguagem assembly, e linguagens de alto nível
+ Representação da Informação
+ Bases numéricas e numeração binária
+ CP2. Lógica Combinatória
+ Operações sobre bits
+ Álgebra de Boole
+ Tabelas de verdade
+ Portas Lógicas
+ CP3. Circuitos Combinatórios
+ Formas normalizadas e mapas de Karnaugh
+ Projecto circuitos combinatórios
+ Descodificadores e multiplexadores
+ Circuitos lógicos e aritméticos
+ CP4. Circuitos Sequenciais
+ Trincos e Flip-flops
+ Modelos de circuitos sequenciais
+ Projecto de circuitos sequenciais
+ CP5. Registos e Memórias
+ Registos e bancos de registos
+ Transferência de registos
+ Tipos de memórias
+ Bancos de memória
+ CP6. Arquitectura Processador
+ Arquitectura de Von-Neumann
+ Instruction Set Architecture (ISA)
+ Datapath e unidades de controlo
+ CPUs modernos
A UC pode ser realizada através de 2 modalidades de avaliação:
1. Avaliação ao longo do semestre
A avaliação ao longo do semestre é composta por:
+ (70%) 2 testes: 1 teste realizado a meio do semestre, em data a definir, e um 2.º teste realizado na primeira data da época de exame;
+ (20%) Trabalhos de laboratório em grupo, realizados semanalmente durante as aulas de laboratório;
+ (10%) Mini-testes online, realizados semanalmente na plataforma de e-learning.
A nota final é calculada através de uma média ponderada destas 3 vertentes de acordo com os pesos apresentados tendo em conta que:
+ A aprovação na componente dos testes obriga à obtenção de uma nota mínima de 7,5 valores em ambos os testes;
+ A falta a 2 ou mais sessões de laboratório resulta na reprovação automática nesta componente da avaliação;
+ A não entrega de 4 ou mais mini-testes online resulta na reprovação automática nesta componente da avaliação;
+ Para efeitos do cálculo das notas os trabalhos em falta são cotados com 0 valores;
A reprovação em qualquer das componentes de avaliação ao longo do semestre obriga à realização da avaliação por exame final.
2. Avaliação por exame final
A avaliação por exame final é composta por 1 único exame realizado em qualquer das épocas de exame disponíveis, que corresponderá a 100% da nota final.
Title: + Logic and Computer Design Fundamentals, 5th Edition, Morris Mano e Charles Kime, Prentice-Hall, 2015
+ Sebenta e Caderno de exercícios de Fundamentos de Arquitetura de Computadores, disponíveis no sistema de e-learning
Authors:
Reference: null
Year:
Title: + Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 2ª Edição, Guilherme Arroz, José Monteiro e Arlindo Oliveira, IST Press, 2009
+ Computer Organization and Design, 5th Edition, David Patterson and John Hennessy, Morgan Kaufmann, 2014
Authors:
Reference: null
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 matriciais.
OA3. Desenvolver classes de objetos simples.
OA4. Escrever e compreender código Java.
CP1. Funções independentes
CP2. Variáveis e estruturas de controlo
CP3. Funções dependentes
CP4. Vetores
CP5. Valores compostos
CP6. Procedimentos e referências
CP7. Classes de objetos
CP8. Matrizes
CP9. Ficheiros e I/O
CP10. Recursão
A avaliação da UC é realizada ao longo do semestre. As componentes de avaliação e respectivos pesos na nota final são os seguintes:
a) Submissão de exercícios semanalmente (10%); nota mínima: 60%.
b) Teste Intercalar a realizar a meio do semestre (25%); sem nota mínima.
c) Projeto Individual (25%); nota mínima: 20%.
d) Teste Final a realizar na época de exames (40%); nota mínima: 40%.
Notas:
1. A avaliação dos exercícios semanais é baseada apenas na contabilização das submissões devidamente realizadas (e não na avaliação dos exercícios em si).
2. Existirão duas possibilidades de realização do Teste Final, na primeira e segunda época de exames.
3. Não existe a possibilidade de aprovação à UC apenas por exame para 100% da nota.
4. A realização de exame de época especial implica a entrega e discussão de Projeto Individual (25%) e realização de Exame escrito (75%).
5. Não é possível utilizar notas de componentes de avaliação obtidas em edições anteriores da UC.
Title: Y. Daniel Liang, "Introduction to Java programming : comprehensive version", 10th Ed., Pearson, 2015.
Authors:
Reference: null
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 ao longo do semestre: 10 exercícios individuais de programação (25%), sem nota mínima e entregues semanalmente e dois testes escritos (75 %), o primeiro a meio do semestre e o segundo coincidindo com o exame de 1ª época. Cada um dos testes escritos tem nota mínima de 7,5 valores. A presença nas aulas não é obrigatória.
ou
Exame final individual(100%) – 1ª época, 2ª época e Época Especial
Title: (Algorithms, Part I - MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, Addison-Wesley, 2012
Authors:
Reference: null
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: null
Year:
Cálculo II
OA1: Compreender os conceitos e técnicas do cálculo diferencial em Rn.
OA2: Aplicar a diferenciabilidade no estudo da otimização.
OA3: Compreender as definições e calcular integrais em Rn.
OA4: Aplicar integrais duplos e triplos no cálculo de áreas, volumes, centro de massa e densidade de probabilidade.
OA5: Utilizar métodos numéricos para integração.
OA6: Compreender as definições de cálculo vetorial e aplicar os teoremas da análise vetorial a problemas de física.
1) Cálculo Diferencial em Rn
1.1.Funções de várias variáveis
1.2.Limites e continuidade
1.3.Derivadas parciais,direcionais e gradiente
1.4.A regra da cadeia e o algoritmo backpropagation
1.5.Teoremas da função implícita e da função inversa
1.6.Derivadas de ordem superior e fórmula de Taylor
2) Otimização em várias variáveis
2.1.Otimização analítica vs otimização numérica
2.2.Extremos livres
2.3.Métodos numéricos: descida máxima e método de Newton
3) Cálculo Integral em Rn
3.1.O integral de Riemann em Rn
3.2.Teorema de Fubini
3.3.Mudança de variável
3.4.Integrais duplos e triplos
3.5.Aplicações:cálculo de áreas,volumes,centros de massa e densidade de probabilidade
3.6.Métodos numéricos:integração numérica(método de Monte Carlo)
4)Análise Vetorial
4.1.Geometria das curvas
4.2.Geometria das superfícies
4.3.Integrais de linha: teorema fundamental
4.4.Integrais de superfície
4.5.Teoremas de Green, Stokes e da divergência
Os alunos podem optar por uma das seguintes modalidades de avaliação:
-Avaliação ao longo do semestre- Mini testes em aula (30%) + Teste (70%).
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Os professores responsáveis reservam-se o direito de fazer orais sempre que considerem necessário.
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: null
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference: null
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: null
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: null
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 efectuada ao longo do semestre ou apenas por exame final:
A - Avaliação ao longo do semestre: A avaliação é feita por 2 testes escritos, um efectuado durante o período lectivo e o outro na data do exame de 1ª época. Cada teste conta 50% para a nota final e não tem nota mínima.
B - Avaliação por exame: A avaliação é feita por um exame final (em 1ª época ou em 2ª época ou em época especial) com um peso de 100% na nota final. Nota mínima: 9.5 valores.
Title: David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Authors:
Reference: null
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: null
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
CP6: Gestão de Memória: Modelos e algoritmos
CP7: Memória Virtual
CP8: Entradas e Saídas
CP9: Sistema de Ficheiros
CP10: Utilização do Linux
CP11: Comandos shell e programação em shell
CP12: Mecanismos de comunicação e sincronização
Esta UC é feita apenas por Avaliação ao longo do semestre, 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 >= 9,5 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: null
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: null
Year:
Bases de Dados
Com esta unidade curricular o aluno deverá ficar apto a:
OA1. Desenvolver mecanismos de Abstração;
OA2. Desenvolver estruturação de informação;
OA3. Desenvolver capacidade de utilizar eficazmente linguagens de pesquisa de informação;
OA4. Implementar uma solução de aplicação dos conceitos aprendidos.
Os conteúdos programáticos (CP) são os seguintes:
CP1 - Linguagem UML, Diagrama de Classes
CP2 - Modelo relacional
1. Desenho de esquemas relacionais
2. Relações e chaves primárias
3. Chaves estrangeiras e regras de integridade
4. Otimizações e índices
5. Transposição de um modelo conceptual para um modelo relacional
CP3 - Linguagem SQL
1. Querys Simples;
2. Funções de Agregação
3. SubQuerys;
CP4 - Automatismos SQL
1. Triggers
2. Stored Procedures e Funções
CP5 - Transações e concorrência
CP6 – Introdução ao PHP/MySQL
Avaliação ao longo do semestre:
- Projeto em grupo, com ponderação de 40% em duas entregas faseadas;
- Teste individual escrito, com ponderação de 50% a realizar na data da 1ª época; e
- Quatro testes intercalares online, com ponderação de 10% a realizar ao longo do semestre.
Condicionante para aprovação: nota mínima de 8,00 valores (em 20), sem arredondamento para o projeto e para o teste.
Caso o aluno reprove ou não atinja a nota mínima no teste individual escrito, pode recorrer à data da 2ª época para repetir a realização desta componente de avaliação. Para as componentes de projeto e testes intercalares online não haverá possibilidade de novas entregas ou repetições.
Alunos que pretendam fazer melhoria de nota poderão fazer o exame, a realizar na data da 2ª época. Nenhuma das restantes componentes é suscetível de melhoria.
Avaliação por exame:
- Exame escrito individual, sem consulta, com toda a matéria (100%).
Realiza exame final – na 1ª época, 2ª época ou época especial (segundo as regras do conselho pedagógico) quem não tenha concluído com sucesso a avaliação ao longo do semestre, com uma nota média superior ou igual a 10 (em 20).
Title: - Ramos, Pedro Nogueira (2012). Desenhar Bases de Dados com UML, 2ª Edição, Edições Sílabo, ISBN: 978-972-618-474-4.
- Gouveia, Feliz (2021). Bases de Dados - Fundamentos e Aplicações, 2ª Edição Aumentada, FCA Editora, ISBN: 978-972-722-901-7.
- Damas, Luís (2017). SQL, 14ª Edição, FCA Editora, ISBN 978-972-722-829-4.
Authors:
Reference: null
Year:
Title: - Alturas, Bráulio (2022). Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, ISBN 978-989-561-265-9.
- Booch, Grady; Rumbaugh, James & Jacobson, Ivar (2005). The Unified Modeling Language User Guide, 2nd Edition, Addison-Wesley, ISBN 978-032-126-797-9.
- Ramakrishnan, Raghu & Gehrke, Johannes (2002). Database Management Systems, 3rd Edition, McGraw-Hill, ISBN 978-007-246-563-1.
- Caldeira, Carlos Pampulim (2011). A Arte das Bases de Dados, Edições Sílabo, ISBN 978-972-618-627-4.
- Date, Christopher J. (2004). An introduction to Database Systems, 8th Edition, Addison-Wesley, ISBN 978-032-119-784-9.
- Elmasri, Ramez & Navathe, Shamkant (2010). Fundamentals of Database Systems, 6th Edition, Addison-Wesley, ISBN 978-013-608-620-8.
- Laudon, Kenneth & Laudon, Jane (2009). Management Information Systems, 11th Edition, Prentice Hall, ISBN 978-013-607-846-3.
- McNurlin, Barbara; Sprague Jr., Ralph & Bui, Tung (2009). Information Systems Management, 8th Edition, Prentice Hall, ISBN 978-013-243-715-8.
- Pereira, José Luís (1998). Tecnologias de Bases de Dados, 3ª Edição, FCA Editora, ISBN 978-972-722-143-1.
- Silberschatz, Avi; Korth, Henry F. & Sudarshan, S. (2010). Database System Concepts, 6th Edition, Addison-Wesley, ISBN 978-007-352-332-3.
Authors:
Reference: null
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.
CP1: Teoria de Probabilidade
1.1 Exp. aleatória, espaço de resultados, acontecimentos
1.2 Noção de probabilidade, interpretação de Laplace e frequencista. Axiomática de Kolmogorov
1.3 Probabilidade condicionada. Probabilidades compostas e total. T. de Bayes. Independência
CP2: Variáveis aleatórias (v.a.’s)
2.1 V.a.’s uma dimensão. Funções probabilidade e de distribuição
2.2 V.a.’s multidimensionais. Distribuições conjuntas, marginais e condicionais. Covariância e correlação
2.3 Combinações lineares de v.a.’s
CP3: Teoremas Centrais
3.1 Desigualdades de Markov e Chebyshev
3.2 Lei dos Grandes Números
3.3 Teorema Limite Central
3.4 Função geradora de momentos
CP4: Processos estocásticos
4.1 Processos estocásticos discretos. Processos de contagem e de Poisson
4.2 Processos de Poisson combinados e repartidos
4.3 Processos estocásticos contínuos. Movimentos Browniano - com Drift e Geométrico
4.4 Cadeias de Markov a tempo discreto. Equações de Chapman-Kolmogorov
4.4 Aplicações e algoritmos
A nota mínima de aprovação na unidade curricular é de 9.5 valores.
Avaliação principal (AP):
Modalidades de avaliação - Os alunos podem optar por uma das seguintes modalidades de avaliação:
Avaliação ao longo do semestre, composta por:
Teste intercalar (60%): teste escrito realizado, numa data a definir, durante o período das aulas; nota mínima de 8.0 valores.
Frequência (40%): prova escrita realizada na 1ª época de avaliação; nota mínima de 8.0 valores.
Avaliação por exame: realização de uma prova escrita (com um peso de 100%), na 1ª época ou na 2ª época do período de avaliação.
Avaliação opcional (AO): Realização de um trabalho/estudo com cotação máxima de quatro (3.0) valores.
- Em caso de aprovação na AP a nota final (NF) é calculada pela fórmula: NF = min{20, AP + AO}
- Provas orais: Os alunos com a nota igual ou superior a 17 valores na NF que não realizaram a AO poderão ser chamados a prova oral. A nota à disciplina será igual ao max{17, NPO}, onde NPO (entre 17 e 20 valores) designa a nota da prova oral. Se não houver comparência nessa prova, a nota final será de 17 valores.
Nota: Os alunos repetentes dispõem das mesmas modalidades de avaliação, sujeitas às mesmas regras.
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: null
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: null
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
Sendo uma UC de caráter eminentemente prático, este UC não tem avaliação por exame a 100%, só havendo avaliação ao longo do semestre. Na avaliação ao longo do semestre há 2 modalidades: A e B.
Modalidade A (necessário presença em mais de 2/3 das aulas práticas e fazer o Teste 1):
- Participação na aula (25%, grupos de 2 ou individual)
- Prova escrita (Teste 1) a meio do semestre (25%, individual, nota mínima de 8 valores)
- Projeto (50%, grupos de 2 ou individual, entrega e discussão na última semana de aulas, nota mínima de 8 valores)
Modalidade B:
- Prova escrita a meio do semestre (25%), (individual, nota mínima de 8 valores)
- Prova escrita na data da 1ª época (25%, parte da matéria ou 50%, toda a matéria - neste caso pode substituir o teste 1, caso este tenha nota <8), (individual, nota mínima de 8 valores)
- Projeto (50%, grupos de 2 ou individual, entrega e discussão na última semana de aulas, nota mínima de 8 valores)
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.
A avaliação em época especial é composta por projeto e teste, valendo 50% cada componente.
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: null
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: null
Year:
Teoria da Computação
Concluída a disciplina o aluno deverá ser capaz de:
O1. Interpretar e formular definições rigorosas;
O2. Analisar consequências lógicas das definições;
O3. Descrever vários modelos computacionais e assinalar as suas limitações.
O4. Descrever linguagens através de gramáticas.
O5. Resolver problemas computacionais utilizando os modelos computacionais aprendidos.
O6. Manipular os formalismos aprendidos na construção de analisadores léxicos e sintácticos.
CP1. Notação matemática e técnicas de demonstração
CP2. Autómatos Finitos e Linguagens Regulares
CP3. Autómatos de Pilha e Linguagens Livres de Contexto
CP4. Máquinas de Turing, Linguagens Recursivamente Enumeráveis e Tese de Church-Turing.
Avaliação ao longo do semestre: 10 mini avaliações semanais online individuais (10%) e dois testes escritos (90 %), o primeiro a meio do semestre e o segundo coincidindo com o exame de 1ª época. Não existem notas mínimas de aprovação nos testes escritos. A presença nas aulas não é obrigatória.
ou
Exame final individual(100%) – 1ª época, 2ª época e Época Especial
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: null
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: null
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 (numpy e 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 (numpy e Keras).
Aprovação com classificação não inferior a 10 valores numa das modalidades:
- Avaliação ao longo do semestre versão 1: 4 testes (75%) + 4 mini-projetos em python (25%), ou
- Avaliação ao longo do semestre 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 ao longo do semestre v1 requer uma nota mínima de 8.5 em 20 na média de cada um dos pares de testes T1+T2 e T3+T4.
- Aprovação em avaliação ao longo do semestre v2 requer uma nota mínima de 8.5 em 20 no exame.
- No caso da avaliação longo do semestre v1, os alunos poderão realizar pela primeira vez, ou repetir, 1 dos testes, e apenas 1, durante as épocas de exame. 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 3 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, poderão estar sujeitas a uma defesa de nota.
Title: - João L. Costa, Slides da cadeira.
Authors:
Reference: null
Year:
Title: - Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
- Goodfellow, I and Bengio, Y and Courville, A, "Deep Learning", MIT press, 2016
- Chollet, F., "Deep Learning with Python: Second Edition", Manning Publications, 2021.
- Rousseau, C and Saint-Aubin, Y., "Mathematics and Technology", Springer 2008.
Authors:
Reference: null
Year:
Concepção e Desenvolvimento de Sistemas de Informação
OA1. Identificar os requisitos para a CDSI e as principais fases e actividades de CDSI;
OA2. Transformar requisitos em especificação técnica e modelos de um SI;
OA3. Utilizar ferramentas de modelização de SI;
OA4. Utilizar tecnologias de implementação Low-Code e introdução a serviços para a implementação de SI, API com protocolos REST;
OA5. Construir experiência de trabalho em equipa, no contexto da realização do projecto de CDSI, desenvolvendo as capacidades de discussão, de tolerância, aceitação e respeito das opiniões dos colegas (soft skills);
OA6. Co-construir soluções baseadas em pensamento crítico, resolução criativa de problemas, colaboração, observação crítica, negociação e tomada de decisão colaborativa;
OA7. Aplicar estratégias de proposição de soluções refletidas, trabalho autónomo baseado na pesquisa de soluções e construção sustentada de argumentação;
OA8. Desenvolver as capacidades de comunicação oral e escrita e de discussão técnica do trabalho.
CP1. Introdução à concepção e desenvolvimento de SI;
CP2. Ciclo de vida de desenvolvimento de SI;
CP3. Análise de requisitos para a concepção e desenvolvimento de SI;
CP4. Especificação e concepção de SI, diagramas UML;
CP5. Modelização de processos no contexto dos SI em BPMN;
CP6. Tecnologias de implementação Low-Code;
CP7. Tecnologias de integração no contexto dos SI: Arquitecturas Orientadas a Serviços, Application Programming Interfaces (API) e REST.
Avaliação ao longo do semestre:
A avaliação na UC é exclusivamente efetuada por avaliação ao longo do semestre por ser uma UC iminentemente prática através de projecto. A nota individual resulta de vários componentes: da avaliação dos relatórios intercalares, relatório final, apreciação do desempenho do/a aluno/a ao longo do semestre (envolvimento nas discussões semanais, na sua capacidade de exposição e discussão técnica), orais e teste individual, da seguinte forma:
- Participação em aula (10%): avalia a presença, incluindo a presença obrigatória em 80% das aulas, envolvimento e contributos individuais dos estudantes nas discussões e em atividades práticas.
- Teste individual (20%) a realizar em época intercalar;
- Fase 1 do projecto: entrega, discussões semanais, apresentação oral (30%), a realizar durante o semestre;
- Fase 2 do projecto: entregas, discussões semanais (30%) a realizar durante a penúltima semana do semestre;
- Fase 3 do projecto: entrega do relatório de testes (10%) a realizar na última semana do semestre.
- As notas das fases 2 e 3 têm em conta a componente demonstração e discussão oral do projeto final a realizar durante a 1ª época.
Não existe avaliação por exame e a época especial consiste num complemento à avaliação ao longo do semestre, se necessário.
A época especial é reservada a casos especiais previstos no Regulamento Geral de Avaliação de Conhecimentos e Competências (RGACC), Artigo 14.º Época especial: https://www.iscte-iul.pt/conteudos/estudantes/informacao-academica/regulamentos-formularios/1025/regulamentos
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: null
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: null
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: Compreender os principais algoritmos e estruturas de dados utilizados em grafos.
Os conteúdos programáticos (CP) são:
CP1: Análise de algoritmos e Teoria da Complexidade: casos para análise e algoritmos de aproximação.
CP2: Estratégias de desenho de algoritmos: incremental, dividir-e-conquistar, aleatoriedade, ávida (greedy), programação dinâmica.
CP3: Grafos: estrutura de dados e algoritmos (árvores de cobertura, travessias, caminhos mais curtos, algoritmos de fluxo).
A avaliação pode ser efetuada ao longo do semestre ou por exame final.
Avaliação ao longo do semestre: E x 0.20 + T x 0.60 + M x 0.20 = 100%.
(E) Exercícios semanais:
- Matéria até a última aula dada.
- Não tem nota mínima.
(T) Testes intercalares:
- 2 testes de igual ponderação e com nota mínima de 7.5 valores;
- 1º teste: na semana intercalar;
- 2º teste: no dia do exame de 1ª Época.
(M) Minitrabalhos:
- Realizados em grupo de 2 pessoas.
- Não tem nota mínima.
Exame final: 1ª, 2ª Épocas e Época Especial = 100%.
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: null
Year:
Title: David Williamson, David Shmoys (2010) The Design of Approximation Algorithms, Cambridge University Press.
Authors:
Reference: null
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 ao longo do semestre:
- Uma prova escrita a realizar durante a época de exames com nota mínima de 8.0 valores - (45%)
- Oito trabalhos de laboratório em grupo - (20%)
- Um trabalho prático de grupo que deve ser entregue na penúltima semana de aulas - (25%)
- Oito mini-testes online - (10%)
2. Avaliação por exame.
O exame é composto de uma prova escrita (50%) com nota mínima de 8 val. e de uma prova prática (50%). Ambas as provas devem ser realizadas na mesma época de exame, i.e. em 1ª época, em 2ª época ou em época especial.
Title: * Computer Networks: A Systems Approach; Larry Peterson, Bruce S. Davie; Morgan Kaufman, 2021 (6th edition).
Authors:
Reference: null
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: null
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.
(CP1) Noções fundamentais de IA com destaque para a abordagem baseada em procura
(CP2) Algoritmos de procura: profundidade primeiro e largura primeiro, A*
(CP3) Noções básicas de aprendizagem automática: supervisionada, por reforço, e não supervisionada
(CP4) Algoritmos genéticos
(CP5) Redes neuronais feedforward multicamada com backpropagation
(CP6) Noções fundamentais relativas a conhecimento, representação, e arquitetura de sistemas baseados em conhecimento
(CP7) Lógica de predicados de primeira ordem: representação e dedução
(CP8) Conhecimento declarativo representado em Programação em Lógica
(CP9) Sistemas de Regras baseadas na Fuzzy Logic
Avaliação ao longo do semestre:
- 2 Testes Intercalares (Nota Mínima em cada teste 8.5) [35% cada]
- 2 projectos (Nota Mínima em cada projecto 9.5) [15% cada]
As discussões orais finais dos projectos realizam-se em grupo após a entrega final, na(s) data(s) indicada(s) no seu enunciado. Um dos projectos será entregue terá entrega a meio do semestre e o outro na última semana de aulas. Apesar dos projectos serem desenvolvidos em grupo, a nota a atribuir a cada estudante do grupo é individualizada em função da contribuição do estudante para cada um dos projectos e da sua prestação na discussão oral.
Avaliação por exames: [100%]
- Primeira época
- Segundo época
- Época Especial
Os testes e os exames podem ter grupos de perguntas com nota mínima
Para ter acesso aos testes e exame, é necessário concluir todas as atividades da matéria lecionada até ao momento no Moodle.
Pode ser exigido aos alunos que se inscrevam em provas de avaliação.
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: null
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: null
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: diferienciar os benefícios das características do paradigma funcional comparativamente com outros paradigmas de programação;
OA4: implementar aplicações multiparadigma, com uma componente interativa, de média dimensão;
OA5: trabalhar em equipa.
Os conteúdos programáticos (CP) são:
CP1: Introdução ao paradigma funcional em programação e aos seus conceitos fundamentais;
CP2: Conceitos avançados de programação funcional (funções puras, funções de ordem superior, composições de funções, imutabilidade);
CP3: Introdução às tecnologias essenciais de suporte à programação em equipa;
CP4: Programação orientada a eventos;
CP5: Padrões para interface do utilizador;
CP6: Integração de programas multiparadigma;
Avaliação ao longo do semestre com Prova Escrita individual (PE) realizada durante o período de avaliação e, Projeto (PRJ) realizado em trabalho de grupo com 2 entregas (durante o período letivo), discussão e aferição individual do PRJ.
As classificações possíveis na aferição individual são A, B ou C, definindo a nota do PRJ (np):
A - np = à classif. do PRJ
B - np = 80% da classif. do PRJ
C - reprov. à UC
Classificação final:
40%PE + 60%np
Nota mínima 9.5 valores em ambos PE e np
Não existe avaliação por exame
Assiduidade não é usada cm critério de avaliação ou reprovação
Estudantes sem nota mínima no projeto (ou que não o realizem) não têm acesso à prova escrita, ficando automaticamente reprovados à UC.
Em caso de reprovação na 1ª época, o aluno pode voltar a realizar a prova escrita na 2ª época (e na época especial se a ela tiver acesso) mantendo a nota do Projeto.
Não é possível melhorar a nota do projeto entre as avaliações de 1ª e de 2ª época.
A obrigatoriedade de nota mínima no projeto também se aplica à Época Especial. Caso o estudante já tenha realizado e obtido nota mínima no projeto durante o período normal de lecionação da UC, o mesmo será considerado para a Época Especial. Caso ainda não tenha realizado o projeto, deverá entregá-lo até à data definida e realizar a discussão.
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: null
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: null
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 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 ao longo do semestre: dois testes + mini projeto facultativo. Esta via de avaliação vale 100% da nota
Testes:
* Cada teste tem a nota mínima de 8 valores
* Classificação no conjunto dos dois testes: TESTES = 60% x Max(NT1, NT2) + 40% x Min(NT1, NT2), em que NT1 e NT2 são as notas nos testes T1 e T2
* O primeiro teste será realizado sensivelmente a meio do semestre, na altura em que a matéria sobre agentes com objetivos começar a ser lecionada. O segundo teste será realizado depois de toda a matéria ter sido lecionada, centrando-se exclusivamente na segunda parte da matéria. De acordo com a vontade dos alunos, este segundo teste pode ser realizado no final do período letivo ou coincidentemente com a primeira data de exame.
Mini Projeto facultativo (realizado por grupos de 3 ou 4 alunos)
* Submissão do trabalho. Classificação (MINPROJ): 0, 1, ou 2 valores. A nota é igual para todos os elementos do grupo.
* O mini projeto centra-se exclusivamente na análise de cenários de aplicação de agentes. Pode pois ser entregue a partir do momento em que essa parte da matéria for dada, sensivelmente a meio do período letivo. A data exata da entrega será combinada com os alunos, de acordo com a sua disponibilidade, mas será igual para todos.
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: null
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: null
Year:
Arquitetura de Redes
OA1 - Explicar o funcionamento das redes de uma forma integrada, identificando e implementando diferentes soluções existentes para o suporte de aplicações e serviços.
OA2 - Explicar, distinguir e avaliar os diferentes protocolos e serviços disponíveis para a comunicação extremo-a-extremo e comunicação entre aplicações sobre a rede.
OA3 - Explicar a arquitetura da rede de transporte, das redes definidas por software e da mobilidade. Distinguir e avaliar as diferentes arquiteturas existentes.
OA4 - Distinguir as diferentes abordagens e soluções para redes multimédia e para o multicast. Distinguir e avaliar as diferentes técnicas existentes para as mesmas.
OA5 - Configurar diferentes arquiteturas de redes, identificando e implementando diferentes soluções de uma forma integrada. Detetar e corrigir erros na sua configuração.
CP1 - Interligação de redes. Interligação e encaminhamento em redes IP. NAT. Protocolos de Encaminhamento: OSPF e BGP. Arquitetura de um router. Redes IPv6. Mobilidade: arquiteturas.
CP2 - Comunicação extremo a extremo. Endereçamento e multiplexagem. Protocolos UDP e TCP. Gestão da ligação TCP. Controlo de fluxo e de congestão.
CP3 - Redes de transporte. Redes definidas e configuradas por software: Arquitetura SDN, OpenFlow, NFV. Mobilidade: arquiteturas e encaminhamento.
CP4 - Serviços e aplicações de rede. Modelos de comunicação. Definição de protocolos em ABNF e ASN1. Serviços de nomes: DNS, etc.; Correio eletrónico; Arquitetura WWW. Infraestruturas de servidores. Redes de distribuição de conteúdos, GSLB.
CP5 - Redes multimédia. Arquiteturas e endereçamento. IGMP e multicast. Protocolos DVMRP, PIM, MOSPF. Aplicações multimédia. Arquiteturas para streaming. VoIP. Protocolos RTSP, RTP, RTCP, SIP. Escalonamento e policiamento. Serviços integrados. RSVP. Serviços diferenciados.
Resumo do processo de avaliação.
Avaliação ao longo do semestre:
65% - provas escritas - 30% - 1ª prova escrita a meio do semestre sobre CP1 e CP2, e 35% e 2ª prova escrita no dia mesmo dia do exame de 1ª época sobre CP3, CP4 e CP5. É necessária nota mínima de 8 valores na média ponderada arredondada das provas escritas.
35% - 5 laboratórios, com peso de 9%, 9%, 7%, 5%, 5%, por ordem decrescente da avaliação em cada laboratório. A avaliação dos laboratórios é em grupo, com uma componente individual por aluno. É necessária nota mínima de 8 valores à média ponderada arredondada dos laboratórios.
Avaliação em 1ª Época:
Prova escrita com 100% sobre CP1 a CP5
Avaliação em 2ª Época:
Prova escrita com 100% sobre CP1 a CP5
Avaliação em época especial:
Prova escrita com 100% sobre CP1 a CP5
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: null
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: null
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: null
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: null
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: null
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: null
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: null
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: null
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 ao longo do semestre:
Projeto prático em grupo com peso de 50% (nota individualizada e mínima de 9.5 em 20).
Frequência (1ª época) com peso de 50% (nota mínima 9.5 em 20).
A nota final pode ser majorada até 1.6 valores (com limite máximo de 20 valores), através da realização individual de Quizzes nas aulas teórico-práticas, ao longo do semestre. A avaliação dos Quizzes é opcional, não tem nota mínima, soma à nota final calculada com as componentes de projeto e frequência, nunca penalizando a nota final.
Exame final (100%): 1ª época, 2ª época e época especial.
Title: Sommerville, I. (2016). Software Engineering, Global Edition (10th ed.). London, England: Pearson Education.
Sommerville, I. (2021). Engineering software products: An introduction to modern software engineering.
Pressman, R. S., & Maxim, B. R. (2014). Software Engineering: A Practitioner’s Approach (8th ed.). New York, NY: McGraw-Hill Professional.
Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring. Boston, MA: Addison Wesley.
Ieee Computer Society. (2014). Guide to the software engineering body of knowledge (swebok(r)) (P. Bourque & R. E. Fairley, Eds.). IEEE Computer Society Press.
Guerreiro, S. (2015). Introdução à Engenharia de Software, FCA Editora.
Pinto, J.P., Tscharf, C. (2019). SCRUM - A gestão ágil de projetos, FCA Editora.
Authors:
Reference: null
Year:
Title: Schach, S. R. (2010). Object-oriented and classical software engineering (8th ed.). New York, NY: McGraw-Hill Professional.
IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices. (2004). Software Engineering Code of ethics and Professional Practice. Science and Engineering Ethics.
Authors:
Reference: null
Year:
Interacção Pessoa-Máquina
OA1: adquirir, compreender e dominar fundamentos de IPM Interacção Pessoa-Máquina;
OA2: desenvolver a capacidade de definir e criar um protótipo, a sua interface, com definição de funcionalidades, usabilidade, público-alvo, testes e avaliação
OA3: ser capaz de implementar a iteração final do protótipo, em 3D, na forma de uma App ou num contexto de página Web
CP1: Factores humanos, psicologia e design de sistemas interactivos; O computador, dispositivos de entrada de texto, dispositivos de posição e selecção, output, processamento
CP2: Técnicas de interacção, paradigmas de interacção, design e layout de ecrãs, percepção de cor e implicações, o uso de cor no design de interacção H-C
CP3: Análise de tarefas e interacção H-C
CP4: Estilos de diálogo; semântica; análise de diálogo e design
CP5: Protótipos low-fidelity (lo-fi); protótipos lo-fi versus hi-fi
CP6: Usabilidade
CP7: Modelos de utilizador
CP8: Técnicas de avaliação; avaliação heurística
CP9: Multimédia e web design; Vídeo digital para web e multimédia, e o design de interacção H-C
CP10: CAD e modelação 3D em SolidEdge; CNC e impressão 3D
Avaliação por Exame (100%) – 1ª Época, 2ª Época e Época Especial, ou Avaliação ao longo do semestre composta por: Teste escrito 1 (35%); Teste escrito 2 (35%); Teste escrito 3 ou miniProjeto (30%); Teste escrito 3 realizado em simultâneo com Exame 1 no período de avaliação; Exames e Testes escritos são individuais e o miniProjeto é em grupo; o miniProjeio pode estar sujeito a discussão oral, caso os docentes considerem necessário; Testes escritos têm nota mínima de 8 valores; miniProjeto não tem nota mínima; os 30% da nota do Teste escrito 3 ou miniProjeto são aplicados ao máximo dos dois.
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: null
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: null
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.
Toda a avaliação tem por base o projeto de grupo apesar de ser individual. A nota individual resulta:
a) relatórios inicial (20 %)
b) relatório final (35 %) entregue na última semana de auias
c) 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) 15%
d) questionário individual no momento da discussão final (10%)
e) discussão final (20%) na semana a seguir à entrega do relatório final
Aprovação: nota final de 9.5 desde que nota média entre c) e e) b seja superior ou igual a 40%, caso contrário reprova.
É 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.
Title: 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: null
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. Conhecer a estrutura de espaço vetorial IR^n e os conceitos de subespaço vetorial, dependência linear de vetores, base e dimensão.
OA2. Aplicar o método de Gram-Schmidt para obter uma base ortonormada.
OA3. Resolver e classificar sistemas de equações lineares.
OA4. Conhecer a noção de matriz e dominar a álgebra matricial.
OA5. Calcular, interpretar e aplicar determinantes de matrizes quadradas.
OA6. Identificar funções lineares (e matrizes de funções lineares) entre espaços vetorias.
OA7. Calcular e interpretar valores e vetores próprios. Diagonalizar matrizes. Determinar potências inteiras de matrizes diagonalizávies.
OA8. Aplicar a decomposição em valores singulares de uma matriz à compressão de imagem.
OA9. Classificar formas quadráticas.
CP1. Vetores e Sistemas de equações lineares
1.1 O espaço vetorial R^n.
1.2 Produto interno e norma
1.3 Combinação e dependência linear.
1.4 Base e dimensão.
1.5 Coordenadas de um vetor.
1.6 Ortonormalização de Gram-Schmidt
1.7 Sistemas de equações lineares.
1.8 Método de eliminação de Gauss. Classificação.
CP2. Matrizes
2.1 Matrizes elementares e de permutação
2.2 Álgebra de matrizes.
2.3 Transposição e inversão de matrizes. Propriedades.
2.4 Decomposição LU.
CP3. Determinantes. Definição. Propriedades.
CP4. Funções lineares
4.1Transformação linear e matriz de uma transformação linear
4.2 Núcleo e imagem de uma função.
4.3 Espaço nulo e espaço das colunas. Teorema da dimensão.
4.4 Mudança de base
CP5. Valores e vetores próprios
5.1 Definição. Subespaços próprios.
5.2 Diagonalização
5.3 Formas quadráticas.
5.4 Decomposição em valores singulares aplicada à compressão de imagem.
Os alunos podem optar por uma das seguintes modalidades de avaliação:
- Avaliação ao longo do semestre:
- 6 mini-testes (25%): prova escrita realizada em aula, com a duração de 15
minutos;
- Prova escrita (75%): prova escrita na 1a época do período de avaliação, com nota
mínima de 8.0 valores.
Os alunos em avaliação ao longo do semestre têm a classificação de zero valores nas fichas de avaliação não realizadas.
Os alunos deverão realizar os mini-testes na turma em que estão inscritos.
Para o cálculo da nota final nesta componente serão consideradas as 5 melhores notas
obtidas nos 6 mini-testes.
Para os alunos que escolham esta modalidade, o resultado final considerado é o melhor
entre a avaliação ao longo do semestre e a avaliação por exame.
- Avaliação por exame: realização de uma prova escrita (100%) na 1a ou 2a época do
período de avaliação.
A nota mínima de aprovação na unidade curricular é de 10 valores.
Os professores responsáveis reservam-se o direito de fazer orais sempre que considerem
necessário.
Title: Apoio teórico fornecido pelos docentes.
Caderno de exercícios fornecido pelos docentes.
Strang, G. (2023). Introduction to Linear Algebra (sixth edition) Wellesley-Cambridge Press.
Blyth, T.S., & Robertson, E. F. (2009) Basic Linear Algebra, Wellesley-Cambridge Press.
Authors:
Reference: null
Year:
Title: Burden, R. L., & Faires, J. D. (2015) Numerical analysis, Cengage Learning.
Lay, D., Lay, S., & McDonald, J. (2016) Linear Algebra and Its Applications (fifth edition) Pearson.
Authors:
Reference: null
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ção.
OA7. Compreender séries numéricas e representar funções em séries de potências.
1) Cálculo Diferencial em R
1.1. Limites e continuidade
1.2. Diferenciabilidade
1.3. Fórmula de Taylor
1.4. Análise de erros
1.5. Métodos numéricos para resolução de equações a uma variável - métodos da bissecção e de Newton
1.6. Derivação numérica e optimização numérica
2 ) Cálculo Integral em R
2.1. Primitivas
2.2. Integrais
2.3. Teorema fundamental do cálculo integral
2.4. Aplicações geométricas
2.5. Integração numérica
3) Séries numéricas e séries de potências
3.1. Sucessões
3.2. Séries
3.3. Critérios de convergência
3.4. Séries de potências e aplicações
Existem duas modalidades de avaliação:
1. Avaliação ao longo do semestre, composta por:
- Dois Mini-Testes sobre MATLAB feitos em aula (5% + 5%)
- Teste 1 (45%): prova escrita realizada durante o semestre com nota mínima de 7.5 valores
- Teste 2 (45%): prova escrita realizada na 1ª época de avaliação com nota mínima de 7.5 valores.
2. Avaliação por exame: realização de um exame (com um peso de 100%), na 1ª época ou na 2ª época do período de avaliação.
A nota mínima de aprovação na unidade curricular é de 10 valores.
Os docentes reservam-se ao direito de fazer uma prova oral a um aluno de modo a comprovar os conhecimentos adquiridos.
Title: K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013.
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015.
Authors:
Reference: null
Year:
Title: Sérgio Mendes, Apontamentos da UC, 2023.
J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018.
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018.
Authors:
Reference: null
Year:
Fundamentos de Arquitectura de Computadores
+ OA1 - Compreender o funcionamento de um computador moderno, reconhecendo os seus componentes principais e funcionalidades;
+ OA2 - Compreender o funcionamento de circuitos digitais lógicos e aritméticos, e projectar circuitos deste tipo a partir da especificação de um problema;
+ OA3 - Explicar o funcionamento de circuitos sequenciais síncronos e projectar circuitos deste tipo para controlo de outros elementos num sistema digital;
+ OA4 - Analisar o funcionamento de bancos de registos e memórias e sua utilização no contexto de um computador digital;
+ OA5 - Compreender como se combinam os vários componentes para a execução de instruções individuais e programas completos.
CP1. Arquitectura de um computador
+ Arquitectura básica: controle, datapath, memória e I/O
+ Código máquina, linguagem assembly, e linguagens de alto nível
+ Representação da Informação
+ Bases numéricas e numeração binária
+ CP2. Lógica Combinatória
+ Operações sobre bits
+ Álgebra de Boole
+ Tabelas de verdade
+ Portas Lógicas
+ CP3. Circuitos Combinatórios
+ Formas normalizadas e mapas de Karnaugh
+ Projecto circuitos combinatórios
+ Descodificadores e multiplexadores
+ Circuitos lógicos e aritméticos
+ CP4. Circuitos Sequenciais
+ Trincos e Flip-flops
+ Modelos de circuitos sequenciais
+ Projecto de circuitos sequenciais
+ CP5. Registos e Memórias
+ Registos e bancos de registos
+ Transferência de registos
+ Tipos de memórias
+ Bancos de memória
+ CP6. Arquitectura Processador
+ Arquitectura de Von-Neumann
+ Instruction Set Architecture (ISA)
+ Datapath e unidades de controlo
+ CPUs modernos
A UC pode ser realizada através de 2 modalidades de avaliação:
1. Avaliação ao longo do semestre
A avaliação ao longo do semestre é composta por:
+ (70%) 2 testes: 1 teste realizado a meio do semestre, em data a definir, e um 2.º teste realizado na primeira data da época de exame;
+ (20%) Trabalhos de laboratório em grupo, realizados semanalmente durante as aulas de laboratório;
+ (10%) Mini-testes online, realizados semanalmente na plataforma de e-learning.
A nota final é calculada através de uma média ponderada destas 3 vertentes de acordo com os pesos apresentados tendo em conta que:
+ A aprovação na componente dos testes obriga à obtenção de uma nota mínima de 7,5 valores em ambos os testes;
+ A falta a 2 ou mais sessões de laboratório resulta na reprovação automática nesta componente da avaliação;
+ A não entrega de 4 ou mais mini-testes online resulta na reprovação automática nesta componente da avaliação;
+ Para efeitos do cálculo das notas os trabalhos em falta são cotados com 0 valores;
A reprovação em qualquer das componentes de avaliação ao longo do semestre obriga à realização da avaliação por exame final.
2. Avaliação por exame final
A avaliação por exame final é composta por 1 único exame realizado em qualquer das épocas de exame disponíveis, que corresponderá a 100% da nota final.
Title: + Logic and Computer Design Fundamentals, 5th Edition, Morris Mano e Charles Kime, Prentice-Hall, 2015
+ Sebenta e Caderno de exercícios de Fundamentos de Arquitetura de Computadores, disponíveis no sistema de e-learning
Authors:
Reference: null
Year:
Title: + Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 2ª Edição, Guilherme Arroz, José Monteiro e Arlindo Oliveira, IST Press, 2009
+ Computer Organization and Design, 5th Edition, David Patterson and John Hennessy, Morgan Kaufmann, 2014
Authors:
Reference: null
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 matriciais.
OA3. Desenvolver classes de objetos simples.
OA4. Escrever e compreender código Java.
CP1. Funções independentes
CP2. Variáveis e estruturas de controlo
CP3. Funções dependentes
CP4. Vetores
CP5. Valores compostos
CP6. Procedimentos e referências
CP7. Classes de objetos
CP8. Matrizes
CP9. Ficheiros e I/O
CP10. Recursão
A avaliação da UC é realizada ao longo do semestre. As componentes de avaliação e respectivos pesos na nota final são os seguintes:
a) Submissão de exercícios semanalmente (10%); nota mínima: 60%.
b) Teste Intercalar a realizar a meio do semestre (25%); sem nota mínima.
c) Projeto Individual (25%); nota mínima: 20%.
d) Teste Final a realizar na época de exames (40%); nota mínima: 40%.
Notas:
1. A avaliação dos exercícios semanais é baseada apenas na contabilização das submissões devidamente realizadas (e não na avaliação dos exercícios em si).
2. Existirão duas possibilidades de realização do Teste Final, na primeira e segunda época de exames.
3. Não existe a possibilidade de aprovação à UC apenas por exame para 100% da nota.
4. A realização de exame de época especial implica a entrega e discussão de Projeto Individual (25%) e realização de Exame escrito (75%).
5. Não é possível utilizar notas de componentes de avaliação obtidas em edições anteriores da UC.
Title: Y. Daniel Liang, "Introduction to Java programming : comprehensive version", 10th Ed., Pearson, 2015.
Authors:
Reference: null
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 ao longo do semestre: 10 exercícios individuais de programação (25%), sem nota mínima e entregues semanalmente e dois testes escritos (75 %), o primeiro a meio do semestre e o segundo coincidindo com o exame de 1ª época. Cada um dos testes escritos tem nota mínima de 7,5 valores. A presença nas aulas não é obrigatória.
ou
Exame final individual(100%) – 1ª época, 2ª época e Época Especial
Title: (Algorithms, Part I - MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, Addison-Wesley, 2012
Authors:
Reference: null
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: null
Year:
Cálculo II
OA1: Compreender os conceitos e técnicas do cálculo diferencial em Rn.
OA2: Aplicar a diferenciabilidade no estudo da otimização.
OA3: Compreender as definições e calcular integrais em Rn.
OA4: Aplicar integrais duplos e triplos no cálculo de áreas, volumes, centro de massa e densidade de probabilidade.
OA5: Utilizar métodos numéricos para integração.
OA6: Compreender as definições de cálculo vetorial e aplicar os teoremas da análise vetorial a problemas de física.
1) Cálculo Diferencial em Rn
1.1.Funções de várias variáveis
1.2.Limites e continuidade
1.3.Derivadas parciais,direcionais e gradiente
1.4.A regra da cadeia e o algoritmo backpropagation
1.5.Teoremas da função implícita e da função inversa
1.6.Derivadas de ordem superior e fórmula de Taylor
2) Otimização em várias variáveis
2.1.Otimização analítica vs otimização numérica
2.2.Extremos livres
2.3.Métodos numéricos: descida máxima e método de Newton
3) Cálculo Integral em Rn
3.1.O integral de Riemann em Rn
3.2.Teorema de Fubini
3.3.Mudança de variável
3.4.Integrais duplos e triplos
3.5.Aplicações:cálculo de áreas,volumes,centros de massa e densidade de probabilidade
3.6.Métodos numéricos:integração numérica(método de Monte Carlo)
4)Análise Vetorial
4.1.Geometria das curvas
4.2.Geometria das superfícies
4.3.Integrais de linha: teorema fundamental
4.4.Integrais de superfície
4.5.Teoremas de Green, Stokes e da divergência
Os alunos podem optar por uma das seguintes modalidades de avaliação:
-Avaliação ao longo do semestre- Mini testes em aula (30%) + Teste (70%).
- Avaliação por Exame (100%), em qualquer uma das épocas de exame.
- Os professores responsáveis reservam-se o direito de fazer orais sempre que considerem necessário.
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: null
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference: null
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: null
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: null
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 efectuada ao longo do semestre ou apenas por exame final:
A - Avaliação ao longo do semestre: A avaliação é feita por 2 testes escritos, um efectuado durante o período lectivo e o outro na data do exame de 1ª época. Cada teste conta 50% para a nota final e não tem nota mínima.
B - Avaliação por exame: A avaliação é feita por um exame final (em 1ª época ou em 2ª época ou em época especial) com um peso de 100% na nota final. Nota mínima: 9.5 valores.
Title: David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Authors:
Reference: null
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: null
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
CP6: Gestão de Memória: Modelos e algoritmos
CP7: Memória Virtual
CP8: Entradas e Saídas
CP9: Sistema de Ficheiros
CP10: Utilização do Linux
CP11: Comandos shell e programação em shell
CP12: Mecanismos de comunicação e sincronização
Esta UC é feita apenas por Avaliação ao longo do semestre, 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 >= 9,5 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: null
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: null
Year:
Bases de Dados
Com esta unidade curricular o aluno deverá ficar apto a:
OA1. Desenvolver mecanismos de Abstração;
OA2. Desenvolver estruturação de informação;
OA3. Desenvolver capacidade de utilizar eficazmente linguagens de pesquisa de informação;
OA4. Implementar uma solução de aplicação dos conceitos aprendidos.
Os conteúdos programáticos (CP) são os seguintes:
CP1 - Linguagem UML, Diagrama de Classes
CP2 - Modelo relacional
1. Desenho de esquemas relacionais
2. Relações e chaves primárias
3. Chaves estrangeiras e regras de integridade
4. Otimizações e índices
5. Transposição de um modelo conceptual para um modelo relacional
CP3 - Linguagem SQL
1. Querys Simples;
2. Funções de Agregação
3. SubQuerys;
CP4 - Automatismos SQL
1. Triggers
2. Stored Procedures e Funções
CP5 - Transações e concorrência
CP6 – Introdução ao PHP/MySQL
Avaliação ao longo do semestre:
- Projeto em grupo, com ponderação de 40% em duas entregas faseadas;
- Teste individual escrito, com ponderação de 50% a realizar na data da 1ª época; e
- Quatro testes intercalares online, com ponderação de 10% a realizar ao longo do semestre.
Condicionante para aprovação: nota mínima de 8,00 valores (em 20), sem arredondamento para o projeto e para o teste.
Caso o aluno reprove ou não atinja a nota mínima no teste individual escrito, pode recorrer à data da 2ª época para repetir a realização desta componente de avaliação. Para as componentes de projeto e testes intercalares online não haverá possibilidade de novas entregas ou repetições.
Alunos que pretendam fazer melhoria de nota poderão fazer o exame, a realizar na data da 2ª época. Nenhuma das restantes componentes é suscetível de melhoria.
Avaliação por exame:
- Exame escrito individual, sem consulta, com toda a matéria (100%).
Realiza exame final – na 1ª época, 2ª época ou época especial (segundo as regras do conselho pedagógico) quem não tenha concluído com sucesso a avaliação ao longo do semestre, com uma nota média superior ou igual a 10 (em 20).
Title: - Ramos, Pedro Nogueira (2012). Desenhar Bases de Dados com UML, 2ª Edição, Edições Sílabo, ISBN: 978-972-618-474-4.
- Gouveia, Feliz (2021). Bases de Dados - Fundamentos e Aplicações, 2ª Edição Aumentada, FCA Editora, ISBN: 978-972-722-901-7.
- Damas, Luís (2017). SQL, 14ª Edição, FCA Editora, ISBN 978-972-722-829-4.
Authors:
Reference: null
Year:
Title: - Alturas, Bráulio (2022). Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, ISBN 978-989-561-265-9.
- Booch, Grady; Rumbaugh, James & Jacobson, Ivar (2005). The Unified Modeling Language User Guide, 2nd Edition, Addison-Wesley, ISBN 978-032-126-797-9.
- Ramakrishnan, Raghu & Gehrke, Johannes (2002). Database Management Systems, 3rd Edition, McGraw-Hill, ISBN 978-007-246-563-1.
- Caldeira, Carlos Pampulim (2011). A Arte das Bases de Dados, Edições Sílabo, ISBN 978-972-618-627-4.
- Date, Christopher J. (2004). An introduction to Database Systems, 8th Edition, Addison-Wesley, ISBN 978-032-119-784-9.
- Elmasri, Ramez & Navathe, Shamkant (2010). Fundamentals of Database Systems, 6th Edition, Addison-Wesley, ISBN 978-013-608-620-8.
- Laudon, Kenneth & Laudon, Jane (2009). Management Information Systems, 11th Edition, Prentice Hall, ISBN 978-013-607-846-3.
- McNurlin, Barbara; Sprague Jr., Ralph & Bui, Tung (2009). Information Systems Management, 8th Edition, Prentice Hall, ISBN 978-013-243-715-8.
- Pereira, José Luís (1998). Tecnologias de Bases de Dados, 3ª Edição, FCA Editora, ISBN 978-972-722-143-1.
- Silberschatz, Avi; Korth, Henry F. & Sudarshan, S. (2010). Database System Concepts, 6th Edition, Addison-Wesley, ISBN 978-007-352-332-3.
Authors:
Reference: null
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.
CP1: Teoria de Probabilidade
1.1 Exp. aleatória, espaço de resultados, acontecimentos
1.2 Noção de probabilidade, interpretação de Laplace e frequencista. Axiomática de Kolmogorov
1.3 Probabilidade condicionada. Probabilidades compostas e total. T. de Bayes. Independência
CP2: Variáveis aleatórias (v.a.’s)
2.1 V.a.’s uma dimensão. Funções probabilidade e de distribuição
2.2 V.a.’s multidimensionais. Distribuições conjuntas, marginais e condicionais. Covariância e correlação
2.3 Combinações lineares de v.a.’s
CP3: Teoremas Centrais
3.1 Desigualdades de Markov e Chebyshev
3.2 Lei dos Grandes Números
3.3 Teorema Limite Central
3.4 Função geradora de momentos
CP4: Processos estocásticos
4.1 Processos estocásticos discretos. Processos de contagem e de Poisson
4.2 Processos de Poisson combinados e repartidos
4.3 Processos estocásticos contínuos. Movimentos Browniano - com Drift e Geométrico
4.4 Cadeias de Markov a tempo discreto. Equações de Chapman-Kolmogorov
4.4 Aplicações e algoritmos
A nota mínima de aprovação na unidade curricular é de 9.5 valores.
Avaliação principal (AP):
Modalidades de avaliação - Os alunos podem optar por uma das seguintes modalidades de avaliação:
Avaliação ao longo do semestre, composta por:
Teste intercalar (60%): teste escrito realizado, numa data a definir, durante o período das aulas; nota mínima de 8.0 valores.
Frequência (40%): prova escrita realizada na 1ª época de avaliação; nota mínima de 8.0 valores.
Avaliação por exame: realização de uma prova escrita (com um peso de 100%), na 1ª época ou na 2ª época do período de avaliação.
Avaliação opcional (AO): Realização de um trabalho/estudo com cotação máxima de quatro (3.0) valores.
- Em caso de aprovação na AP a nota final (NF) é calculada pela fórmula: NF = min{20, AP + AO}
- Provas orais: Os alunos com a nota igual ou superior a 17 valores na NF que não realizaram a AO poderão ser chamados a prova oral. A nota à disciplina será igual ao max{17, NPO}, onde NPO (entre 17 e 20 valores) designa a nota da prova oral. Se não houver comparência nessa prova, a nota final será de 17 valores.
Nota: Os alunos repetentes dispõem das mesmas modalidades de avaliação, sujeitas às mesmas regras.
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: null
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: null
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
Sendo uma UC de caráter eminentemente prático, este UC não tem avaliação por exame a 100%, só havendo avaliação ao longo do semestre. Na avaliação ao longo do semestre há 2 modalidades: A e B.
Modalidade A (necessário presença em mais de 2/3 das aulas práticas e fazer o Teste 1):
- Participação na aula (25%, grupos de 2 ou individual)
- Prova escrita (Teste 1) a meio do semestre (25%, individual, nota mínima de 8 valores)
- Projeto (50%, grupos de 2 ou individual, entrega e discussão na última semana de aulas, nota mínima de 8 valores)
Modalidade B:
- Prova escrita a meio do semestre (25%), (individual, nota mínima de 8 valores)
- Prova escrita na data da 1ª época (25%, parte da matéria ou 50%, toda a matéria - neste caso pode substituir o teste 1, caso este tenha nota <8), (individual, nota mínima de 8 valores)
- Projeto (50%, grupos de 2 ou individual, entrega e discussão na última semana de aulas, nota mínima de 8 valores)
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.
A avaliação em época especial é composta por projeto e teste, valendo 50% cada componente.
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: null
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: null
Year:
Teoria da Computação
Concluída a disciplina o aluno deverá ser capaz de:
O1. Interpretar e formular definições rigorosas;
O2. Analisar consequências lógicas das definições;
O3. Descrever vários modelos computacionais e assinalar as suas limitações.
O4. Descrever linguagens através de gramáticas.
O5. Resolver problemas computacionais utilizando os modelos computacionais aprendidos.
O6. Manipular os formalismos aprendidos na construção de analisadores léxicos e sintácticos.
CP1. Notação matemática e técnicas de demonstração
CP2. Autómatos Finitos e Linguagens Regulares
CP3. Autómatos de Pilha e Linguagens Livres de Contexto
CP4. Máquinas de Turing, Linguagens Recursivamente Enumeráveis e Tese de Church-Turing.
Avaliação ao longo do semestre: 10 mini avaliações semanais online individuais (10%) e dois testes escritos (90 %), o primeiro a meio do semestre e o segundo coincidindo com o exame de 1ª época. Não existem notas mínimas de aprovação nos testes escritos. A presença nas aulas não é obrigatória.
ou
Exame final individual(100%) – 1ª época, 2ª época e Época Especial
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: null
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: null
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 (numpy e 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 (numpy e Keras).
Aprovação com classificação não inferior a 10 valores numa das modalidades:
- Avaliação ao longo do semestre versão 1: 4 testes (75%) + 4 mini-projetos em python (25%), ou
- Avaliação ao longo do semestre 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 ao longo do semestre v1 requer uma nota mínima de 8.5 em 20 na média de cada um dos pares de testes T1+T2 e T3+T4.
- Aprovação em avaliação ao longo do semestre v2 requer uma nota mínima de 8.5 em 20 no exame.
- No caso da avaliação longo do semestre v1, os alunos poderão realizar pela primeira vez, ou repetir, 1 dos testes, e apenas 1, durante as épocas de exame. 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 3 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, poderão estar sujeitas a uma defesa de nota.
Title: - João L. Costa, Slides da cadeira.
Authors:
Reference: null
Year:
Title: - Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
- Goodfellow, I and Bengio, Y and Courville, A, "Deep Learning", MIT press, 2016
- Chollet, F., "Deep Learning with Python: Second Edition", Manning Publications, 2021.
- Rousseau, C and Saint-Aubin, Y., "Mathematics and Technology", Springer 2008.
Authors:
Reference: null
Year:
Concepção e Desenvolvimento de Sistemas de Informação
OA1. Identificar os requisitos para a CDSI e as principais fases e actividades de CDSI;
OA2. Transformar requisitos em especificação técnica e modelos de um SI;
OA3. Utilizar ferramentas de modelização de SI;
OA4. Utilizar tecnologias de implementação Low-Code e introdução a serviços para a implementação de SI, API com protocolos REST;
OA5. Construir experiência de trabalho em equipa, no contexto da realização do projecto de CDSI, desenvolvendo as capacidades de discussão, de tolerância, aceitação e respeito das opiniões dos colegas (soft skills);
OA6. Co-construir soluções baseadas em pensamento crítico, resolução criativa de problemas, colaboração, observação crítica, negociação e tomada de decisão colaborativa;
OA7. Aplicar estratégias de proposição de soluções refletidas, trabalho autónomo baseado na pesquisa de soluções e construção sustentada de argumentação;
OA8. Desenvolver as capacidades de comunicação oral e escrita e de discussão técnica do trabalho.
CP1. Introdução à concepção e desenvolvimento de SI;
CP2. Ciclo de vida de desenvolvimento de SI;
CP3. Análise de requisitos para a concepção e desenvolvimento de SI;
CP4. Especificação e concepção de SI, diagramas UML;
CP5. Modelização de processos no contexto dos SI em BPMN;
CP6. Tecnologias de implementação Low-Code;
CP7. Tecnologias de integração no contexto dos SI: Arquitecturas Orientadas a Serviços, Application Programming Interfaces (API) e REST.
Avaliação ao longo do semestre:
A avaliação na UC é exclusivamente efetuada por avaliação ao longo do semestre por ser uma UC iminentemente prática através de projecto. A nota individual resulta de vários componentes: da avaliação dos relatórios intercalares, relatório final, apreciação do desempenho do/a aluno/a ao longo do semestre (envolvimento nas discussões semanais, na sua capacidade de exposição e discussão técnica), orais e teste individual, da seguinte forma:
- Participação em aula (10%): avalia a presença, incluindo a presença obrigatória em 80% das aulas, envolvimento e contributos individuais dos estudantes nas discussões e em atividades práticas.
- Teste individual (20%) a realizar em época intercalar;
- Fase 1 do projecto: entrega, discussões semanais, apresentação oral (30%), a realizar durante o semestre;
- Fase 2 do projecto: entregas, discussões semanais (30%) a realizar durante a penúltima semana do semestre;
- Fase 3 do projecto: entrega do relatório de testes (10%) a realizar na última semana do semestre.
- As notas das fases 2 e 3 têm em conta a componente demonstração e discussão oral do projeto final a realizar durante a 1ª época.
Não existe avaliação por exame e a época especial consiste num complemento à avaliação ao longo do semestre, se necessário.
A época especial é reservada a casos especiais previstos no Regulamento Geral de Avaliação de Conhecimentos e Competências (RGACC), Artigo 14.º Época especial: https://www.iscte-iul.pt/conteudos/estudantes/informacao-academica/regulamentos-formularios/1025/regulamentos
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: null
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: null
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: Compreender os principais algoritmos e estruturas de dados utilizados em grafos.
Os conteúdos programáticos (CP) são:
CP1: Análise de algoritmos e Teoria da Complexidade: casos para análise e algoritmos de aproximação.
CP2: Estratégias de desenho de algoritmos: incremental, dividir-e-conquistar, aleatoriedade, ávida (greedy), programação dinâmica.
CP3: Grafos: estrutura de dados e algoritmos (árvores de cobertura, travessias, caminhos mais curtos, algoritmos de fluxo).
A avaliação pode ser efetuada ao longo do semestre ou por exame final.
Avaliação ao longo do semestre: E x 0.20 + T x 0.60 + M x 0.20 = 100%.
(E) Exercícios semanais:
- Matéria até a última aula dada.
- Não tem nota mínima.
(T) Testes intercalares:
- 2 testes de igual ponderação e com nota mínima de 7.5 valores;
- 1º teste: na semana intercalar;
- 2º teste: no dia do exame de 1ª Época.
(M) Minitrabalhos:
- Realizados em grupo de 2 pessoas.
- Não tem nota mínima.
Exame final: 1ª, 2ª Épocas e Época Especial = 100%.
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: null
Year:
Title: David Williamson, David Shmoys (2010) The Design of Approximation Algorithms, Cambridge University Press.
Authors:
Reference: null
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 ao longo do semestre:
- Uma prova escrita a realizar durante a época de exames com nota mínima de 8.0 valores - (45%)
- Oito trabalhos de laboratório em grupo - (20%)
- Um trabalho prático de grupo que deve ser entregue na penúltima semana de aulas - (25%)
- Oito mini-testes online - (10%)
2. Avaliação por exame.
O exame é composto de uma prova escrita (50%) com nota mínima de 8 val. e de uma prova prática (50%). Ambas as provas devem ser realizadas na mesma época de exame, i.e. em 1ª época, em 2ª época ou em época especial.
Title: * Computer Networks: A Systems Approach; Larry Peterson, Bruce S. Davie; Morgan Kaufman, 2021 (6th edition).
Authors:
Reference: null
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: null
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.
(CP1) Noções fundamentais de IA com destaque para a abordagem baseada em procura
(CP2) Algoritmos de procura: profundidade primeiro e largura primeiro, A*
(CP3) Noções básicas de aprendizagem automática: supervisionada, por reforço, e não supervisionada
(CP4) Algoritmos genéticos
(CP5) Redes neuronais feedforward multicamada com backpropagation
(CP6) Noções fundamentais relativas a conhecimento, representação, e arquitetura de sistemas baseados em conhecimento
(CP7) Lógica de predicados de primeira ordem: representação e dedução
(CP8) Conhecimento declarativo representado em Programação em Lógica
(CP9) Sistemas de Regras baseadas na Fuzzy Logic
Avaliação ao longo do semestre:
- 2 Testes Intercalares (Nota Mínima em cada teste 8.5) [35% cada]
- 2 projectos (Nota Mínima em cada projecto 9.5) [15% cada]
As discussões orais finais dos projectos realizam-se em grupo após a entrega final, na(s) data(s) indicada(s) no seu enunciado. Um dos projectos será entregue terá entrega a meio do semestre e o outro na última semana de aulas. Apesar dos projectos serem desenvolvidos em grupo, a nota a atribuir a cada estudante do grupo é individualizada em função da contribuição do estudante para cada um dos projectos e da sua prestação na discussão oral.
Avaliação por exames: [100%]
- Primeira época
- Segundo época
- Época Especial
Os testes e os exames podem ter grupos de perguntas com nota mínima
Para ter acesso aos testes e exame, é necessário concluir todas as atividades da matéria lecionada até ao momento no Moodle.
Pode ser exigido aos alunos que se inscrevam em provas de avaliação.
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: null
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: null
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: diferienciar os benefícios das características do paradigma funcional comparativamente com outros paradigmas de programação;
OA4: implementar aplicações multiparadigma, com uma componente interativa, de média dimensão;
OA5: trabalhar em equipa.
Os conteúdos programáticos (CP) são:
CP1: Introdução ao paradigma funcional em programação e aos seus conceitos fundamentais;
CP2: Conceitos avançados de programação funcional (funções puras, funções de ordem superior, composições de funções, imutabilidade);
CP3: Introdução às tecnologias essenciais de suporte à programação em equipa;
CP4: Programação orientada a eventos;
CP5: Padrões para interface do utilizador;
CP6: Integração de programas multiparadigma;
Avaliação ao longo do semestre com Prova Escrita individual (PE) realizada durante o período de avaliação e, Projeto (PRJ) realizado em trabalho de grupo com 2 entregas (durante o período letivo), discussão e aferição individual do PRJ.
As classificações possíveis na aferição individual são A, B ou C, definindo a nota do PRJ (np):
A - np = à classif. do PRJ
B - np = 80% da classif. do PRJ
C - reprov. à UC
Classificação final:
40%PE + 60%np
Nota mínima 9.5 valores em ambos PE e np
Não existe avaliação por exame
Assiduidade não é usada cm critério de avaliação ou reprovação
Estudantes sem nota mínima no projeto (ou que não o realizem) não têm acesso à prova escrita, ficando automaticamente reprovados à UC.
Em caso de reprovação na 1ª época, o aluno pode voltar a realizar a prova escrita na 2ª época (e na época especial se a ela tiver acesso) mantendo a nota do Projeto.
Não é possível melhorar a nota do projeto entre as avaliações de 1ª e de 2ª época.
A obrigatoriedade de nota mínima no projeto também se aplica à Época Especial. Caso o estudante já tenha realizado e obtido nota mínima no projeto durante o período normal de lecionação da UC, o mesmo será considerado para a Época Especial. Caso ainda não tenha realizado o projeto, deverá entregá-lo até à data definida e realizar a discussão.
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: null
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: null
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 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 ao longo do semestre: dois testes + mini projeto facultativo. Esta via de avaliação vale 100% da nota
Testes:
* Cada teste tem a nota mínima de 8 valores
* Classificação no conjunto dos dois testes: TESTES = 60% x Max(NT1, NT2) + 40% x Min(NT1, NT2), em que NT1 e NT2 são as notas nos testes T1 e T2
* O primeiro teste será realizado sensivelmente a meio do semestre, na altura em que a matéria sobre agentes com objetivos começar a ser lecionada. O segundo teste será realizado depois de toda a matéria ter sido lecionada, centrando-se exclusivamente na segunda parte da matéria. De acordo com a vontade dos alunos, este segundo teste pode ser realizado no final do período letivo ou coincidentemente com a primeira data de exame.
Mini Projeto facultativo (realizado por grupos de 3 ou 4 alunos)
* Submissão do trabalho. Classificação (MINPROJ): 0, 1, ou 2 valores. A nota é igual para todos os elementos do grupo.
* O mini projeto centra-se exclusivamente na análise de cenários de aplicação de agentes. Pode pois ser entregue a partir do momento em que essa parte da matéria for dada, sensivelmente a meio do período letivo. A data exata da entrega será combinada com os alunos, de acordo com a sua disponibilidade, mas será igual para todos.
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: null
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: null
Year:
Arquitetura de Redes
OA1 - Explicar o funcionamento das redes de uma forma integrada, identificando e implementando diferentes soluções existentes para o suporte de aplicações e serviços.
OA2 - Explicar, distinguir e avaliar os diferentes protocolos e serviços disponíveis para a comunicação extremo-a-extremo e comunicação entre aplicações sobre a rede.
OA3 - Explicar a arquitetura da rede de transporte, das redes definidas por software e da mobilidade. Distinguir e avaliar as diferentes arquiteturas existentes.
OA4 - Distinguir as diferentes abordagens e soluções para redes multimédia e para o multicast. Distinguir e avaliar as diferentes técnicas existentes para as mesmas.
OA5 - Configurar diferentes arquiteturas de redes, identificando e implementando diferentes soluções de uma forma integrada. Detetar e corrigir erros na sua configuração.
CP1 - Interligação de redes. Interligação e encaminhamento em redes IP. NAT. Protocolos de Encaminhamento: OSPF e BGP. Arquitetura de um router. Redes IPv6. Mobilidade: arquiteturas.
CP2 - Comunicação extremo a extremo. Endereçamento e multiplexagem. Protocolos UDP e TCP. Gestão da ligação TCP. Controlo de fluxo e de congestão.
CP3 - Redes de transporte. Redes definidas e configuradas por software: Arquitetura SDN, OpenFlow, NFV. Mobilidade: arquiteturas e encaminhamento.
CP4 - Serviços e aplicações de rede. Modelos de comunicação. Definição de protocolos em ABNF e ASN1. Serviços de nomes: DNS, etc.; Correio eletrónico; Arquitetura WWW. Infraestruturas de servidores. Redes de distribuição de conteúdos, GSLB.
CP5 - Redes multimédia. Arquiteturas e endereçamento. IGMP e multicast. Protocolos DVMRP, PIM, MOSPF. Aplicações multimédia. Arquiteturas para streaming. VoIP. Protocolos RTSP, RTP, RTCP, SIP. Escalonamento e policiamento. Serviços integrados. RSVP. Serviços diferenciados.
Resumo do processo de avaliação.
Avaliação ao longo do semestre:
65% - provas escritas - 30% - 1ª prova escrita a meio do semestre sobre CP1 e CP2, e 35% e 2ª prova escrita no dia mesmo dia do exame de 1ª época sobre CP3, CP4 e CP5. É necessária nota mínima de 8 valores na média ponderada arredondada das provas escritas.
35% - 5 laboratórios, com peso de 9%, 9%, 7%, 5%, 5%, por ordem decrescente da avaliação em cada laboratório. A avaliação dos laboratórios é em grupo, com uma componente individual por aluno. É necessária nota mínima de 8 valores à média ponderada arredondada dos laboratórios.
Avaliação em 1ª Época:
Prova escrita com 100% sobre CP1 a CP5
Avaliação em 2ª Época:
Prova escrita com 100% sobre CP1 a CP5
Avaliação em época especial:
Prova escrita com 100% sobre CP1 a CP5
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: null
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: null
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: null
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: null
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: null
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: null
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: null
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: null
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 ao longo do semestre:
Projeto prático em grupo com peso de 50% (nota individualizada e mínima de 9.5 em 20).
Frequência (1ª época) com peso de 50% (nota mínima 9.5 em 20).
A nota final pode ser majorada até 1.6 valores (com limite máximo de 20 valores), através da realização individual de Quizzes nas aulas teórico-práticas, ao longo do semestre. A avaliação dos Quizzes é opcional, não tem nota mínima, soma à nota final calculada com as componentes de projeto e frequência, nunca penalizando a nota final.
Exame final (100%): 1ª época, 2ª época e época especial.
Title: Sommerville, I. (2016). Software Engineering, Global Edition (10th ed.). London, England: Pearson Education.
Sommerville, I. (2021). Engineering software products: An introduction to modern software engineering.
Pressman, R. S., & Maxim, B. R. (2014). Software Engineering: A Practitioner’s Approach (8th ed.). New York, NY: McGraw-Hill Professional.
Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring. Boston, MA: Addison Wesley.
Ieee Computer Society. (2014). Guide to the software engineering body of knowledge (swebok(r)) (P. Bourque & R. E. Fairley, Eds.). IEEE Computer Society Press.
Guerreiro, S. (2015). Introdução à Engenharia de Software, FCA Editora.
Pinto, J.P., Tscharf, C. (2019). SCRUM - A gestão ágil de projetos, FCA Editora.
Authors:
Reference: null
Year:
Title: Schach, S. R. (2010). Object-oriented and classical software engineering (8th ed.). New York, NY: McGraw-Hill Professional.
IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices. (2004). Software Engineering Code of ethics and Professional Practice. Science and Engineering Ethics.
Authors:
Reference: null
Year:
Interacção Pessoa-Máquina
OA1: adquirir, compreender e dominar fundamentos de IPM Interacção Pessoa-Máquina;
OA2: desenvolver a capacidade de definir e criar um protótipo, a sua interface, com definição de funcionalidades, usabilidade, público-alvo, testes e avaliação
OA3: ser capaz de implementar a iteração final do protótipo, em 3D, na forma de uma App ou num contexto de página Web
CP1: Factores humanos, psicologia e design de sistemas interactivos; O computador, dispositivos de entrada de texto, dispositivos de posição e selecção, output, processamento
CP2: Técnicas de interacção, paradigmas de interacção, design e layout de ecrãs, percepção de cor e implicações, o uso de cor no design de interacção H-C
CP3: Análise de tarefas e interacção H-C
CP4: Estilos de diálogo; semântica; análise de diálogo e design
CP5: Protótipos low-fidelity (lo-fi); protótipos lo-fi versus hi-fi
CP6: Usabilidade
CP7: Modelos de utilizador
CP8: Técnicas de avaliação; avaliação heurística
CP9: Multimédia e web design; Vídeo digital para web e multimédia, e o design de interacção H-C
CP10: CAD e modelação 3D em SolidEdge; CNC e impressão 3D
Avaliação por Exame (100%) – 1ª Época, 2ª Época e Época Especial, ou Avaliação ao longo do semestre composta por: Teste escrito 1 (35%); Teste escrito 2 (35%); Teste escrito 3 ou miniProjeto (30%); Teste escrito 3 realizado em simultâneo com Exame 1 no período de avaliação; Exames e Testes escritos são individuais e o miniProjeto é em grupo; o miniProjeio pode estar sujeito a discussão oral, caso os docentes considerem necessário; Testes escritos têm nota mínima de 8 valores; miniProjeto não tem nota mínima; os 30% da nota do Teste escrito 3 ou miniProjeto são aplicados ao máximo dos dois.
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: null
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: null
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.
Toda a avaliação tem por base o projeto de grupo apesar de ser individual. A nota individual resulta:
a) relatórios inicial (20 %)
b) relatório final (35 %) entregue na última semana de auias
c) 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) 15%
d) questionário individual no momento da discussão final (10%)
e) discussão final (20%) na semana a seguir à entrega do relatório final
Aprovação: nota final de 9.5 desde que nota média entre c) e e) b seja superior ou igual a 40%, caso contrário reprova.
É 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.
Title: 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: null
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