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:
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:
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:
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:
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:
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:
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:
Year:
Title:
Authors:
Reference:
Year:
Algoritmos e Estruturas de Dados
Concluída a disciplina o aluno deverá ser capaz de:
OA1. Compreender algoritmos de ordenação e pesquisa apropriados a soluções computacionais;
OA2. Identificar, reescrever e examinar formas comuns de organização de dados e algoritmos associados (com e sem gestão dinâmica de memória, com algoritmos iterativos ou recursivos);
OA3. Estimar a complexidade e desempenho de algoritmos sobre estruturas de dados alternativas,
OA4. Esboçar novas formas de organização de dados e algoritmos associados adequadas a novos problemas computacionais.
CP1. O problema Union-Find
CP2. Análise de Algoritmos
CP3. Stacks, Filas, Listas e Sacos
CP4. Filas Prioritárias
CP5. Tabelas de Símbolos Elementares
CP6. Árvores de Pesquisa Equilibradas
CP7. Tabelas de Dispersão
CP8. Ordenação Elementar: Selectionsort; Insertionsort; Shellsort
CP9. Ordenação Avançada: Mergesort; Quicksort; Heapsort
CP10. Complexidade dos problemas de ordenação
Avaliação 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:
Year:
Title: D. Harel, Algorithmics: the Spirit of Computing, 3th edition, Addison-Wesley, 2004
F. Santos and C. Conti, Algoritmos e Estruturas de Dados - Exercícios, ISCTE-IUL, 2022.
Authors:
Reference:
Year:
Cálculo II
OA1: 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:
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference:
Year:
Mecânica e Electricidade
OA 1 - Compreender os vários tipos de movimento a uma e duas dimensões, identificar as suas causas, e ser capazes de resolver problemas envolvendo um ou mais objectos sobre a influência da gravidade, tracção de cordas e forças de contacto.
OA 2 - Compreender os conceitos de trabalho e energia e ser capazes de resolver problemas envolvendo mecanismos de conversão entre diversas formas de energia.
OA 3 - Analisar o movimento de um objecto em órbita circular sobre a influência de um campo gravítico.
OA 4 - Compreender o conceito de campo e analisar problemas simples envolvendo os campos eléctrico e magnético.
OA 5 - Compreender e analisar circuitos eléctricos simples envolvendo resistências, condensadores e bobinas.
CP 1. Modelos, Unidades e Cálculo
CP 2. Movimento unidimensional
CP 3. Movimento bi-dimensional
CP 4. Leis de Newton
CP 5. Energia
CP 6. Energia Potencial
CP 7. Gravitação e Campos de Forças
CP 8. Campo eléctrico
CP 9. Potencial eléctrico
CP 10. Corrente Eléctrica e Resistência
CP 11. Capacidade e dieléctricos
CP 12. Campo magnético e bobinas
A disciplina pode ser realizada de duas maneiras:
i) Avaliação por exame
Prova escrita no final do semestre, numa das épocas de avaliação disponíveis
ii) Avaliação periódica
Dois testes escritos + 10 mini-testes online realizados ao longo do semestre (30 minutos cada) - 6 obrigatórios. O 1.º teste é realizado no decorrer do semeste. O 2.º teste é realizado no dia do 1.º exame. A nota final é calculada como 0.9*(T1 + T2) / 2 + 0.1 * MT, onde MT é a nota dos mini-testes.
Title: - Physics for Scientists and Engineers, 9th Edition, Autores: R. A. Serway & J. W. Jewett, Edição Thomson/Brooks Cole, disponível na livraria do ISCTE. (Inglês)
Authors:
Reference:
Year:
Title: - Physics for Poets, 5th Edition, Autor: R. H. March, Edição McGraw-Hill Higher Education. (Inglês, divulgação, vista geral de toda a física e sua evolução histórica, pouca ou nenhuma matemática)
- Feynman Lectures on Physics, Autor: R. P. Feynmann, Edição Addison Wesley (Inglês, física de nível universitário)
- Introdução à Física, 2ª Edição, Autores: J. D. Deus, M. Pimenta, A. Noronha, T. Peña & P. Brogueira, Edição McGraw-Hill. (Português, física de nível universitário)
- Princípios de Física, Volume 3, Eletromagnetismo, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
- Princípios de Física, Volume 1, Mecânica Clássica, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
Authors:
Reference:
Year:
Microprocessadores
OA1. Compreender o significado de medidas de desempenho e saber quantificar o ganho trazido por modificações numa arquitectura.
OA2. Saber de que modo são geralmente estruturadas as instruções-máquina.
OA3. Saber de que forma se processa a execução de um programa, compreendendo os principais mecanismos nela envolvidos.
OA4. Distinguir os principais elementos numa arquitectura básica de um processador e saber de que forma se relacionam entre si.
OA5. Compreender o conceito de pipeline e saber identificar conflitos de estruturais, de dados e de controlo.
OA6. Compreender o funcionamento de uma memória cache.
OA7. Compreender o funcionamento e desenho das arquitecuras paralelas actuais.
OA8. Saber como escrever um programa paralelo em MPI.
CP1. Medidas de desempenho
- Análise do desempenho;
- Factores que influenciam o desempenho;
- Lei de Amdahl e speed-up;
- Benchmarks
CP2. Conjunto de instruções
- Formatos de instrução
- Operações com Registos e Memórias
- Procedimentos e utilização da pilha
- Compilação e optimização
- RISC vs CISC: ARM, x86
CP3. Unidade aritmética
- Representação em vírgula flutuante (FP);
- Arquitectura para FP.
CP4.Arquitectura básica de um processador
- Fases de uma instrução
- Unidade de controlo e datapath
- Processamento uni-ciclo e multi-ciclo.
- Pipelining: Desempenho, e conflitos:
- Melhoria do desempenho
CP5. Sistemas de memória
- Hierarquias de memória;
- Memória cache;
CP6. Arquitecturas paralelas
- Medidas de desempenho;
- Arquitecturas de memória partilhada;
- Arquitecturas de memória distribuída;
- Arquitecturas baseadas em GPU.
A avaliação pode ser 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:
Year:
Title: Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 5ª Edição, IST Press, 2020
J. Cavanagh, X86 Assembly Language and C fundamentals, CRC Press, 2013.
A. Tanenbaum, Structured Computer Organization , 6th Ed., Prentice Hall, 2012.
Authors:
Reference:
Year:
Sistemas Operativos
OA1: Distinguir tipos, funções e características de sistemas operativos (SO)
OA2: Descrever aspetos de gestão de processos e algoritmos relacionados
OA3: Descrever os vários mecanismos de comunicação e sincronização entre processos
OA4: Descrever formas de gestão de memória em sistemas multi-programados e comparar os algoritmos associados. Explicar os métodos de gestão de memória virtual
OA5: Descrever os princípios e as formas de acesso e utilização aos dispositivos de entrada/saída
OA6: Explicar os aspetos de implementação de sistemas de ficheiros mais comuns
OA7: Identificar os mecanismos de segurança de um SO e descrever diversos tipos de ataque e formas de defesa
OA8: Usar a linha de comandos para trabalhar num servidor linux remoto; programar em shell; utilizar comandos de manipulação de texto e administração
OA9: Programar ao nível do sistema, usando as funcionalidades dos SO, tendo em conta os modelos de programação sequencial e concorrente
CP1: Introdução aos Sistemas Operativos, Processos.
CP2: Concorrência e gestão de processos.
CP3: Escalonamento de processos
CP4: Sincronização entre processos. Semáforos
CP5: Comunicação entre processos
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:
Year:
Title: - Andrew Tanenbaum, Albert Woodhull (2006), Operating Systems Design and Implementation, 3rd edition, Prentice-Hall, 2006, ISBN: 978-0-131-42938-3
- Paulo Trezentos, Susana Nunes (2008), Linux para PCs, 3ª edição, FCA, ISBN: 978-972-722-603-0
- Paulo Trezentos, António Cardoso (2006), Fundamental do Linux, 3ª edição, FCA, ISBN: 978-972-722-514-9
- William Stallings (2018), Operating Systems Internals and Principles, 9th edition, Pearson, ISBN-13: 978-0-134-70006-9
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2018), Operating System Concepts, 10th edition, Wiley, ISBN: 978-1-119-32091-3
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2014), Operating Systems Concepts Essentials, 2nd edition, Wiley, ISBN: 978-1-118-84397-0
Authors:
Reference:
Year:
Bases de Dados
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:
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:
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:
Year:
Title: Durrett, R.G., Essentials of Stochastic Processes (3rd ed.), Springer, 2016.
Krishnan, V., Probability and Random Processes, Wiley, 2015.
Montgomery, D. Runger, G.C., Applied Statistics and Probability for Engineers. Wiley& Sons, 2003.
Authors:
Reference:
Year:
Programação Orientada para Objectos
No final do período letivo o aluno deverá ser capaz de:
OA1. Usar uma linguagem de programação orientada para objetos para desenhar, implementar, testar e depurar pequenas aplicações.
OA2. Entender e aplicar os conceitos de abstração, encapsulamento, herança e polimorfismo.
OA3. Saber utilizar as estruturas de dados fundamentais de uma biblioteca (pilhas, filas, árvores, tabelas de dispersão).
OA4. Aplicar mecanismos de controlo de erros.
OA5. Explicar a utilidade da utilização de padrões de desenho de software e demonstrar a sua utilização em casos simples.
CP1. Pacotes e encapsulamento
CP2. Leitura e escrita de ficheiros
CP3. Exceções e tratamento de erros
CP4. Polimorfismo and interfaces
CP5. Classes anónimas e lambdas
CP6. Herança
CP7. Coleções e classes genéricas
CP8. Introdução aos padrões de desenho
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:
Year:
Title: F. Mário Martins, "Java 8 POO + Construções Funcionais",
FCA - Editora de Informática, 2017. ISBN: 978-972-722-838-6 (portuguese)
Ken Arnold, James Gosling e David Holmes, "The JavaTM Programming Language", 3ª edição, Addison-Wesley, 2000.
ISBN: 0-201-70433-1
Bruce Eckel, "Thinking in Java", 3ª edição, Prentice Hall, 2002. ISBN: 0-13-100287-2
Gamma, Helm, Johnson & Vlissides (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2.
Java resources at http://java.sun.com;
(tutorials and Java Aplication Programming Interface)
Authors:
Reference:
Year:
Teoria da Computação
Concluída a disciplina o aluno deverá ser capaz de:
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:
Year:
Title: D. Mandrioli e C. Ghezzi, Theoretical Foundations of Computer Science, John Wiley, 1987
J. Hopcroft, R. Motwani e J. Ullman, Introduction to Automata Theory, Languages and Computation, Addison Wesley, 2001.
N. Cutland, Computability: An Introduction to Recursive Function Theory, Cambridge University Press, 1980.
Authors:
Reference:
Year:
Tópicos de Matemática para Computação
No final da UC o aluno deverá ser capaz de:
OA1. Representar algumas funções em séries de Fourier.
OA2. Determinar transformadas de Fourier contínuas e discretas.
OA3. Conhecer e aplicar algumas propriedades básicas das séries e transformadas de Fourier
OA4. Utilizar métodos e propriedades de análise de Fourier no contexto de processamento de sinal, tratamento de imagem e compressão de dados.
OA5. Implementar em python (numpy) exemplos concretos das aplicações referidas no ponto anterior.
OA6. Determinar arquiteturas básicas de redes neuronais para aplicar em problemas de regressão e classificação.
OA7. Aplicar algoritmos de otimização numérica no contexto de problemas de aprendizagem automática com redes neuronais.
OA8. Implementar em python (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:
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:
Year: