Licenciatura em Engenharia Informática

É esta a tua engenharia. 
 
A informática está na base de todas as atividades da sociedade atual, desde aplicações aos sistemas inteligentes, passando pelas bases de dados empresariais, cibersegurança, inteligência artificial e big data. Por este motivo, há uma grande procura de profissionais com formação em Engenharia Informática. 
Se queres fazer parte de equipas que concebem e desenvolvem software e sistemas de informação, administram redes e segurança e desenvolvem a área de tratamento de dados, esta é a tua engenharia. 
 

O que te dá esta licenciatura?  

 

  • Receberás formação especializada, num dos cursos com maior taxa de empregabilidade.
  • Frequentarás a primeira licenciatura em Portugal distinguida com a certificação de qualidade EUR-ACE da Ordem dos Engenheiros, reconhecida em toda a Europa, América Latina e Ásia.
  • Seguirás uma estrutura baseada nas melhores práticas internacionais (ACM, IEEE e CDIO Initiative).
  • Terás a oportunidade de frequentar o projeto final de curso em ambiente laboral (empresa ou centro de investigação) com inúmeras oportunidades em organizações de referência.
Duração:
3 anos / 6 semestres
Créditos:
180 ECTS
Horário:
Diurno (8h00 - 18h00); Pós-laboral* (18h00 - 23h00)

1º ano | 1º semestre

  • 5 ECTS

    Álgebra Linear e Geometria Analítica

    ECTS
    5
    Período
    1º semestre
    Responsável
    João Emilio Matos
    Teórica
    1 hora
    Teórico-prática
    2 horas

    Esta UC visa dotar o estudante da linguagem, dos conhecimentos e das técnicas matemáticas de Álgebra Linear; promover o desenvolvimento do raciocínio e do pensamento crítico; desenvolver a capacidade de abstração, de estruturação de problemas e da tentativa da sua resolução e da capacidade de aplicar as competências anteriores a problemas específicos da sua área em Engenharia.
    O estudante deve ser capaz de:
    CO1: Realizar as operações fundamentais do cálculo matricial, determinar a inversa de uma matriz (caso ela exista) e resolver equações matriciais (Nível de Bloom: 0 e 1).
    CO2: Calcular determinantes e manipulá-los usando as propriedades (NB: 0 e 1).
    CO3: Usar a eliminação Gaussiana e os determinantes na resolução e discussão de sistemas de equações lineares (NB: 1).
    CO4: Identificar e gerar espaços vetoriais reais e operar com vetores, nomeadamente para verificar se eles podem ser usados como base de um espaço vetorial (NB: 0 e 1).
    CO5: Identificar transformações lineares, determinar as matrizes a elas associadas e os seus valores próprios e vetores próprios (NB: 0 e 1).
    CO6: Apresentar a resolução de exercícios com rigor e detalhe, nomeadamente com recurso à apresentação estruturada do raciocínio subjacente à resolução do problema, à simplificação do resultado obtido e à apresentação de um comentário interpretativo e crítico da solução obtida.

    1. Cálculo Matricial (3 semanas, 20%)
    1.1. Definições.
    1.2. Operações com matrizes. Propriedades.
    1.3. Operações elementares sobre as filas. Matrizes equivalentes. Matrizes em forma de escada.
    1.4. Característica de uma matriz; cálculo pelo Método de Eliminação de Gauss (MEG).
    1.5. Matriz inversa; cálculo pelo MEG.
    2. Determinantes (2sem, 20%)
    2.1. Definição. Cálculo de det. pela Regra de Sarrus.
    2.2. Teorema de Laplace.
    2.3. Propriedades.
    2.4. Cálculo da matriz inversa usando a matriz adjunta.
    3. Sistemas de equações lineares (2sem, 20%)
    3.1. Representação matricial.
    3.2. A Regra de Cramer.
    3.3. Discussão e resolução pelo MEG.
    4. Espaços vetoriais (2sem, 20%)
    4.1. Definição.
    4.2. Subespaços.
    4.3. Combinações lineares.
    4.4. Base e dimensão.
    5. Transformações lineares
    5.1. Definição.
    5.2. Matriz de uma transformação.
    5.3. Núcleo e imagem.
    5.4. Valores e vetores próprios.

  • 6 ECTS

    Algoritmia e Programação

    ECTS
    6
    Período
    1º semestre
    Responsável
    Emanuel Silva
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Esta unidade curricular tem como objetivos:
    - Introdução de conceitos básicos das Ciências da Computação associados à Programação
    - Análise e resolução de problemas computacionalmente com foco na modelação algorítmica.
    - Conceção de algoritmos aplicando adequadas metodologias de programação
    - Codificação de algoritmos em linguagem Java (essencialmente na perspetiva procedimental).
    - Testar apropriadamente os programas
    - Aplicar o que aprendem à resolução de problemas do mundo real
    - Promover atitudes de aprendizagem ativa, colaborativa e responsável, de trabalho persistente e de aplicação de espírito crítico na análise e resolução de problemas.
    No final desta unidade curricular o estudante deve ser capaz de:
    CO1-Implementar algoritmos, essencialmente, numa perspetiva essencialmente procedimental;
    CO2-Explorar e adotar criteriosamente documentação da linguagem/plataforma de implementação (JavaDocs).
    CO3-Desenhar e Implementar algoritmos estruturados em módulos e reutilizá-los;
    CO4-Criar e utilizar estruturas de dados indexados e arquivos de texto;
    CO5-Elaborar e adotar plano de testes apropriado;
    CO6-Avaliar a solução implementada;
    CO7-Aplicar cooperativamente as competências anteriores a problemas reais.

    1. Conceitos básicos de Programação (30%)
    1.1 Resolução de Problemas
    1.2 Programação Procedimental Estruturada
    1.3 Algoritmos e Programas
    1.4 Variáveis, Tipos de Dados, Expressões e Operadores
    1.5 Estruturas de Controlo de Fluxo
    1.6 Descrição de algoritmos: Pseudo-Código e Fluxogramas
    2. Codificação de programas (15%)
    2.1 Linguagens de Programação -linguagem Java
    2.2 Ambientes de desenvolvimento
    2.3 Estrutura de um programa Java
    2.4 Tipos de Dados e Variáveis
    2.5 Operadores, Expressões e Atribuições
    2.6 Codificação das Estruturas de Controlo de Fluxo
    3. Tipos de Dados Referência: Classes (5%)
    3.1 Classes e Objectos
    3.2 APIs do Java
    4. Decomposição Modular ( 15%)
    4.1 Métodos e passagem de parâmetros
    5. Tipos de Dados Referência: Arrays (15% )
    5.1 Manipulação de arrays mono e bidimensionais
    5.2 Algoritmos de procura e ordenação
    6. Manipulação de Ficheiros de texto (5% )
    7. Desenvolvimento de aplicações (15%)

  • 5 ECTS

    Análise Matemática

    ECTS
    5
    Período
    1º semestre
    Responsável
    Jorge Mendonça
    Teórica
    1 hora
    Teórico-prática
    2 horas

    Objetivos de aprendizagem: conhecimentos, aptidões e competências a desenvolver pelos estudantes.
    CO1: Desenvolver capacidades de raciocínio e de abstração.
    CO2: Aplicar espírito crítico e pensamento matemático.
    CO3: Aplicar as técnicas matemáticas a situações novas.
    CO4: Identificar e analisar funções trigonométricas: domínios, contradomínios, derivadas e inversas.
    CO5: Aplicar o conceito de diferencial.
    CO6: Aplicar derivação a funções de várias variáveis, compostas e dadas na forma implícitas.
    CO7: Aplicar diferentes técnicas na obtenção da primitiva de uma função real de variável real.
    CO8: Aplicar integração ao cálculo de áreas planas.
    CO9: Determinar a solução geral e particular de equações diferenciais de 1ª ordem.
    CO10: Analisar a convergência de uma série numérica, através dos critérios adequados.
    CO11: Avaliar a convergência de uma série de potências.
    CO12: Explicar o conceito de série e aplicar ao desenvolvimento de funções em séries de MacLaren e de Taylor.
    CO13: Avaliar a aplicação de polinómios de MacLaren e Taylor ao cálculo de valores aproximados.

    CP1. Cálculo diferencial em R e R^n - 3 sem.
    1. Funções trigonométricas e suas inversas.
    2. Derivadas parciais.
    3. Diferencial e cálculo aproximado.
    4. Derivadas de funções compostas e dadas na forma implícita.
    CP2. Integral indefinido - 2 sem.
    1. Definição; interpretação geométrica; propriedades.
    2. Técnicas de primitivação: imediata e quase-imediata, por decomposição, por partes e por substituição.
    CP3. Integral definido - 2 sem.
    1. Soma de Riemann; interpretação geométrica; propriedades.
    2. Fórmula fundamental do cálculo.
    3. Métodos de integração.
    4. Cálculo de áreas planas.
    CP4. Equações diferenciais ordinárias, 1ª ordem ? 2 sem.
    1. Definição.
    2. Equações diferenciais de variáveis separáveis, lineares e exatas.
    CP5. Séries - 3 sem.
    1. Definição de séries numéricas.
    2. Condição necessária de convergência.
    3. Séries de termos não negativos. Critérios de convergência.
    4. Séries alteralternadas. Convergência absoluta vs simples. Critério de Leibniz.
    5. Definição de séries de funções

  • 8 ECTS

    Laboratório / Projeto I

    ECTS
    8
    Período
    1º semestre
    Responsável
    Carlos Ferreira
    Teórica
    0,5 horas
    Teórico-prática
    1,5 horas
    Prática laboratorial
    3 horas

    Esta unidade tem duas componentes:
    - A primeira componente, designada Competências Pessoais e Métodos do Trabalho (CPMT), visa preparar os estudantes para trabalhar eficazmente em equipas, melhorar a elaboração de relatórios e desenvolver competências de apresentação oral.
    - A segunda componente, designada Projeto, consiste num projeto multidisciplinar e integrador a ser desenvolvido por uma equipa.
    No final desta unidade curricular o estudante deve ser capaz de:
    CO1: Aplicar os algoritmos mais adequados, estruturas de dados e ferramentas matemáticas para o problema apresentado, selecionando e explorando documentação.
    C02: Planear, organizar, monitorizar a implementação do projeto em equipa.
    CO3: Desenvolver e avaliar uma aplicação, em equipa, tendo por base um conjunto de requisitos.
    CO4: Organizar a apresentação de um trabalho/projeto e ser capaz de apresentar e debater em público.

    1. Módulo Competências Pessoais e Métodos do Trabalho (30%)
    a) Competências pessoais e a importância dos métodos de trabalho nas equipas:
    - Casos de Estudo (análise, discussão, comparação de experiências)
    - Plano de trabalho individual
    - O trabalho em equipa: dinâmicas e estratégias
    b) Introdução ao SCRUM no desenvolvimento de projetos de eng. informática:
    - Definição, fases e abordagens
    - Instrumentos de trabalho colaborativo para gestão de projetos
    c) Escrita de Relatórios:
    - Estrutura e apresentação
    - Pesquisa, seleção e resumos de informação
    - Definição de objetivos, requisitos e pressupostos
    - Escrever introduções, descrever processos, sistematizar conclusões
    - Referir figuras e tabelas
    - Referenciação bibl. APA e IEEE e ferramentas de gestão de refs.
    d) Apresentar um projeto em público:
    - Organizar informação
    - Preparação e realização de apresentações
    2. Módulo Projeto (70%)
    a) Projeto em equipa, aplicando conteúdos das UC do semestre, usando controlo de versão distribuído

  • 6 ECTS

    Princípios da Computação

    ECTS
    6
    Período
    1º semestre
    Responsável
    António Barros
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    O objetivo desta unidade curricular é apresentar um sistema computacional como uma hierarquia de máquinas virtuais e estudar os diferentes níveis da hierarquia. Este estudo irá abranger vários níveis de abstração, desde hardware, sistema operativo (desde os seus componentes principais até ao uso da shell), linguagens de programação, e ambientes para suporte de utilizadores e de desenvolvimento de aplicações.
    Os resultados de aprendizagem (CO) da unidade curricular são os seguintes:
    - CO1: Descrever a evolução dos computadores na perspetiva histórica.
    - CO2: Discutir a organização dos componentes e o papel de cada um num computador moderno.
    - CO3: Explicar a estrutura e funcionamento de sistemas operativos modernos.
    - CO4: Explicar o papel fundamental da Unidade Central de Processamento.
    - CO5: Explicar a forma como um computador armazena a informação e compreender o papel da Álgebra de Boole neste domínio.
    - CO6: Adotar os conceitos fundamentais do desenvolvimento e execução de programas.
    - CO7: Adotar criticamente comandos Linux em Shell scripts para resolver problemas de pequena escala, selecionando e explorando documentação.
    - CO8: Apresentar e discutir o trabalho desenvolvido, em equipa.

    P1: Arquitetura de Sistemas Computacionais
    - A evolução dos computadores.
    - Arquitectura de Von Neumann.
    - Execução de instruções por um processador.
    - Linguagem-máquina e linguagens de alto-nível.
    P2: Arquitetura de um Sistema Operativo
    - Evolução dos SO.
    - Tipos e funcionalidades de um SO.
    - Abstrações fundamentais: processos e ficheiros.
    - Gestão de recursos.
    - Escalonamento do processador: critérios; algoritmos de escalonamento.
    P3: Representação e operação de dados/informação digital
    - Representação de dados em formato binário.
    - Operações aritméticas e lógicas.
    P4: Interface de Linha de Comandos UNIX
    - Gestão de ficheiros.
    - Redireccionamento e pipes.
    - Controlo de processos.
    - Meta-caracteres e expressões regulares.
    - Execução de programas.
    P5: Programação em shell script
    - Automação de operações.
    - Desenvolvimento de shell scripts básicos.
    P6: Desenvolvimento e execução de software num computador

1º ano | 2º semestre

  • 6 ECTS

    Engenharia de Software

    ECTS
    6
    Período
    2º semestre
    Responsável
    Alexandre Gouveia
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final da UC, o estudante deverá ser capaz de:
    CO1. Interpretar as dimensões e intervenientes do PDS, e em particular de SI;
    CO2. Aplicar o PDS, em particular o processo I&I, de forma determinística;
    CO3. Adotar métodos de análise OO;
    CO4. Adotar métodos determinísticos de passagem da análise para o design;
    CO5. Adotar métodos, princípios e padrões simples (nomeadamente GRASP e SOLID) de design de software OO e boas práticas como "Tell Don't Ask", "DRY", etc.;
    CO6. Adotar métodos e ferramentas de passagem do design para a implementação;
    CO7. Adotar artefactos e notações apropriadas na descrição do problema, da análise, do design e da solução.

    CP1. PDS (10%):
    - Disciplinas
    - Tipos de processos (e.g. cascata, I&I, ágil)
    - Exercícios e projetos seguindo o processo I&I
    CP2. Engenharia de requisitos (20%):
    - Métodos de elicitação, identificação, análise, especificação e validação de requisitos
    - Requisitos funcionais e não funcionais
    - Modelação visual: diagramas UML de casos de uso e DSS
    - Exemplos, exercícios e projetos
    CP3. Análise OO (20%):
    - Métodos de identificação dos conceitos do domínio e suas relações
    - Modelo de domínio
    - Modelação visual: diagramas UML de classes
    - Exemplos, exercícios e projetos
    CP4. Design OO (40%):
    - Princípios RDD, GRASP e SOLID
    - Definição de responsabilidades e comportamento
    - Introdução ao design de arquitetura de software
    - Modelação visual: diagramas UML de classes, de sequência, de comunicação e de pacotes
    - Exemplos, exercícios e projetos
    CP5. Codificação OO (10%):
    - Métodos de passagem do design para a implementação
    - Exemplos, exercícios e projetos

  • 5 ECTS

    Estatística

    ECTS
    5
    Período
    2º semestre
    Responsável
    Helena Brás
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    1,5 horas

    No final desta unidade curricular o estudante deve ser capaz de:.
    CO1: Selecionar modelos probabilísticos na resolução de problemas de Estatística.
    CO2: Selecionar modelos estatísticos associados à média e proporção de amostras aleatórias.
    CO3: Explicar decisões baseadas na inferência estatística paramétrica.
    CO4: Discutir o resultado das estimativas.
    CO5: Estimar resultados usando modelos de regressão linear e decidir com base em inferência sobre os coeficientes do modelo de regressão.
    CO6: Usar métodos estatísticos na resolução de problemas simples e específicos da área de Engenharia Informática.
    CO7: Organizar trabalho em equipa de forma a atingir objetivos.

    CP1. Introdução ao Python.
    CP2. Estatística Descritiva: Tipos de dados; caracterização e representação; medidas descritivas.
    CP3. Distribuições de Probabilidade Discretas e Contínuas: Variáveis aleatórias; funções de probabilidade, densidade de probabilidade e distribuição; distribuições discretas (Binomial, Poisson) e contínuas (Uniforme, Exponencial e Normal).
    CP4. Distribuições Amostrais e Intervalos de Confiança (IC): Amostragem, teorema do limite central, distribuições amostrais e IC para médias e proporções.
    CP5. Testes de Hipóteses (TH): Especificação, nível de significância e potência; testes para médias e proporções.
    CP6. Regressão Linear Simples: Estimação e inferência (IC e TH) dos parâmetros de regressão por mínimos quadrados.

  • 8 ECTS

    Laboratório / Projeto II

    ECTS
    8
    Período
    2º semestre
    Responsável
    Jorge Santos
    Teórica
    0,5 horas
    Teórico-prática
    1,5 horas
    Prática laboratorial
    3 horas

    A unidade tem duas componentes principais:
    i) o módulo de Competências Linguísticas;
    ii) o Projeto Integrador, que consiste num trabalho multidisciplinar de carácter integrador, na forma de um projeto, a realizar em grupo, que tem por objetivo praticar o processo de desenvolvimento de software e aplicar conhecimentos das unidades curriculares do semestre (ESOFT, PPROG, MDISC e MATCP).
    Como objetivos gerais, o aluno deverá:
    i) adquirir conhecimentos relativos à estrutura, organização e escrita de relatórios técnicos e artigos científicos;
    ii) aprender a usar um sistema de referências bibliográficas;
    iii) compreender os papéis e fases essenciais de um processo de desenvolvimento ágil;
    iv) ser capaz de analisar, modelar, implementar e testar um projeto informático a partir de um conjunto de requisitos iniciais.
    O aluno deverá ser capaz de:
    CO1. Reconhecer diversos tipos de textos técnicos, analisá-los e utilizá-los;
    CO2. Produzir relatórios e outros documentos técnicos em português e em inglês a partir de textos e outro material escrito, ou de vídeo, em inglês;
    CO3. Organizar corretamente uma bibliografia de acordo com as normas estipuladas e respetivas citações e referências;
    CO4. Descrever a necessidade de existência de um processo de desenvolvimento de software e saber aplicar o processo ágil e orientado por testes;
    CO5. Identificar e descrever os requisitos de um sistema;
    CO6. Implementar uma aplicação usando uma abordagem TDD;
    CO7. Usar ferramentas de modelação, IDE e sistemas de controlo de versões;
    CO8. Desenvolver uma aplicação em equipa, suportado num sistema de controlo de versões;
    CO9. Desenhar e implementar testes unitários.

    CP1. Escrita Técnica e Competências Linguísticas
    CP2. Ferramentas de Qualidade de Código
    CP3. Desenvolvimento de Projeto Integrado

  • 5 ECTS

    Matemática Discreta

    ECTS
    5
    Período
    2º semestre
    Responsável
    Ana Moura
    Teórica
    1 hora
    Teórico-prática
    3 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1: Usar a lógica matemática para provar a equivalência de proposições e a validade de argumentos;
    CO2: Resolver problemas simples de relações binárias;
    CO3: Usar estratégias de demonstração, em particular, do método de indução;
    CO4: Aplicar alguns algoritmos de pesquisa em grafos a problemas específicos na área da Engenharia;
    CO5: Descrever o conceito de eficiência de um algoritmo;
    CO6: Analisar e comparar a complexidade temporal de algoritmos;
    CO7: Aplicar as competências anteriores a problemas específicos na área da engenharia.

    P1. Linguagem Matemática e Lógica (25%)
    P1.1 Noções básicas de Teoria de Conjuntos.
    P1.2 Lógica Proposicional.
    - Operações lógicas e propriedades;
    - Proposições logicamente equivalentes.
    P1.3 Lógica de predicados. Quantificadores.
    P1.4 Relações binárias de ordem e de equivalência.
    P2. Grafos (30%)
    P2.1 Conceitos básicos.
    P2.2 Passeios.
    - Contar o número de passeios;
    - Trajetos Eulerianos. Algoritmo de Fleury.
    P2.3 Grafos ponderados. Algoritmo de Dijkstra.
    P2.4 Árvores geradoras de custo mínimo. Algoritmo de Kruskal.
    P3. Introdução às Estratégias de Demonstração (15%)
    P3.1 Regras de inferência.
    P3.2 Princípio de Indução.
    P4. Análise de Algoritmos (30%)
    P4.1 O conceito.
    P4.2 Complexidade de algoritmos.
    - Comportamento assintótico de funções: a notação O;
    - Complexidade temporal de alguns algoritmos;
    - Classes de complexidade.
    P4.3 Complexidade de problemas

  • 6 ECTS

    Paradigmas da Programação

    ECTS
    6
    Período
    2º semestre
    Responsável
    Luiz Faria
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Desenvolver programas baseados no paradigma orientado ao objeto usando a linguagem Java, usando um conjunto alargado de características da linguagem de forma eficaz (NB: 3)
    CO2. Descrever as características principais da programação orientada ao objeto e das respetivas estratégias de projeto (NB: 2)
    CO3. Aplicar os princípios da programação gerida por eventos em programas dotados de interface gráfica com o utilizador (NB:3)
    CO4. Aplicar estruturas de dados lineares em Java (NB:3)
    CO5. Aplicar o tratamento de exceções em Java para permitir obter código robusto (NB: 3)
    CO6. Identificar novas características disponíveis em novas versões da plataforma Java (NB: 1)
    CO7. Aplicar testes unitários (NB:3)
    CO8. Desenvolver um projeto de software usando estruturas de dados lineares e realizar os testes adequados (NB: 3)

    CP1 Objetos e Classes
    Programação Orientada ao Objeto
    Variáveis de instância
    Modificadores public e private
    Interface pública de uma classe
    Métodos de instância
    Construtores
    Sobrecarga
    Referência de objetos
    Variáveis e métodos static
    CP2 Herança, polimorfismo e interfaces
    Herança
    Subclasses and superclasses
    Princípio da substituição
    Chamada de métodos e construtores de uma superclasse
    Reescrita
    Polimorfismo
    Classes abstratas
    Metodos e classes final
    Modificador protected
    Classe Object
    Interfaces
    Interface nativa Comparable
    CP3 Projeto orientado ao objeto
    Classes e suas responsabilidades
    Relações entre classes (herança, composição e dependência)
    Packages
    CP4 Array Lists
    CP5 Tratamento de exceções
    CP6 Interfaces gráficas com o utilizador e gestão de eventos
    CP7 File Streams, binary input/output e serialização
    CP8. Java collections (2.5%)
    Linked lists
    List iterators
    CP9. Classes genéricas e tipos enumerados (Enum types)

2º ano | 1º semestre

  • 6 ECTS

    Arquitetura de Computadores

    ECTS
    6
    Período
    1º semestre
    Responsável
    Paulo Baltarejo Sousa
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Fornecer aos alunos as ferramentas intelectuais que lhes permitam entender os conceitos fundamentais e abstrações de alto nível usadas nas linguagens de programação e determinar as formas concretas como estas afetam a correção, e desempenho dos programas:
    No Final da UC, os alunos devem ser capazes de:
    CO1. Explicar a hierarquia de abstrações e implementações que constituem um sistema computacional moderno e o seu impacto na performance e correção das aplicações
    CO2. Explicar o que é o Assembly e como este se insere no modelo de programação
    CO3. Explicar como funcionam os sistemas de compilação
    CO4. Sistematizar oportunidades para otimizar os programas com técnicas que exploram o desenho dos processadores e sistemas de memória atuais
    CO5. Desenvolver soluções de software eficientes e fiáveis com base no conhecimento do sistema computacional subjacente e de como as linguagens de alto nível são mapeadas num computador e executadas
    CO6. Organizar soluções em equipa de forma a atingir objetivos específicos dentro dum intervalo temporal

    A UC aborda os seguintes tópicos principais:
    P1. Arquitetura de sistemas computacionais (8%);
    P2. Arquitetura dos processadores (8%);
    P3. Organização da memória (8%);
    P4. Modelo conceptual de execução dos programas (8%);
    P5. Linguagens de programação de alto e baixo nível (16%);
    P6. Desenvolvimento de programas (36%)
    P7. Otimização do desempenho dos programas (16%).

  • 6 ECTS

    Bases de Dados

    ECTS
    6
    Período
    1º semestre
    Responsável
    Angelo Martins
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    O estudante deverá ser capaz de desenvolver um projeto em equipa de uma base de dados relacional desde a análise e modelação até à implementação, utilizando um SGBD relacional disponível no mercado.
    CO1. Discutir as diferentes tecnologias de base de dados (BD) e a sua aplicabilidade
    CO2. Desenhar BD relacionais normalizadas aplicando um processo sistemático
    CO3. Aplicar SQL para criar e gerir uma BD, desenvolver e modificar scripts
    CO4. Construir, modificar e explicar queries para consulta a uma BD
    CO5. Desenvolver e testar stored functions e triggers, incluindo a realização de testes unitários de funções
    CO6. Explicar a racionalidade dos processos transacionais e descrever os conceitos relacionados
    CO7. Criar uma BD integrada num projeto em equipa com base em requisitos funcionais e restrições

    1. Conceitos Gerais de Base de Dados
    1.1. Dados e sistemas de informação
    1.2. Tecnologias e aplicações
    1.3. Sistemas de Gestão de Base de Dados
    2. Modelação de dados
    2.1. Processo de desenho de modelos de dados
    2.2. Modelo relacional de dados
    2.3. Dependências funcionais e normalização
    2.4. Integridade de dados
    3. Definição e manipulação de dados
    3.1. Structured Query Language (SQL)
    3.2. DDL - Data Definition Language
    3.3. DML - Data Manipulation Language
    4. Objetos constituintes e programação de uma base de dados Oracle
    4.1. Estruturais: table, index, sequence, view
    4.2. Comportamentais: funções e triggers
    4.3. Testes unitários de stored functions
    5. Transações
    5.1. Conceito e propriedades desejáveis de uma transação em persistência de dados
    5.2. Acesso concorrente a dados

  • 6 ECTS

    Estruturas de Informação

    ECTS
    6
    Período
    1º semestre
    Responsável
    Fátima Rodrigues
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Esta UC compreende o estudo de tipos avançados de estruturas de dados e algoritmos de manipulação das mesmas. Os principais tópicos do curso incluem grafos, árvores, heaps, memória primária e secundária, algoritmos de pesquisa e ordenação, tendo sempre presente a análise de complexidade das estruturas de dados e algoritmos. Vários casos de estudo serão apresentados para que os estudantes identifiquem as classes e as estruturas de dados mais adequadas à sua implementação, usando o paradigma orientado a objetos e padrões de design de software. Em simultâneo visa também aprofundar os conhecimentos de programação (usando a linguagem Java), através do estudo de tópicos avançados como programação genérica. O conhecimento das estruturas de dados é essencial para a implementação, teste e manutenção de projetos de qualquer sistema de software, sendo a contribuição desta UC para o curso.
    No final da unidade curricular o estudante deve ser capaz de:
    CO1. Analisar problemas e selecionar tipos abstratos de dados e estratégias algorítmicas mais adequadas.
    CO2. Usar tipos de dados abstratos para implementar classes e os seus métodos satisfazendo os requisitos de um problema.
    CO3. Analisar os algoritmos de acordo com sua complexidade / eficiência temporal e espacial.
    CO4. Definir e manipular estruturas de dados lineares e não-lineares, bem como implementar os principais métodos para manipular essas estruturas.
    CO5. Projetar e implementar um projeto de software usando várias estruturas de dados lineares e não-lineares e fazer os testes adequados.

    P1-Recursividade
    Backtracking
    Vantagens/Desvantagens
    P2-Programação Genérica
    Classes Genéricas e Parâmetros Type
    P3-Análise de Algoritmos
    Notação Big-Oh, propriedades
    Análise de Complexidade Coleções Java: ArrayList, LinkedList, Stack, Dequeue, Set, Map, Hash Table
    Análise de Complexidade dos principais algoritmos de pesquisa e ordenação
    P4-Árvores Binárias de Pesquisa
    Travessias: pre-ordem, em-ordem, pos-ordem
    Algoritmos: inserção, remoção, pesquisa
    Árvores de Pesquisa Balanceadas (AVL)
    Árvores KD-dimensional
    P5-Filas de Prioridade
    Algoritmo de ordenação HeapSort
    P6-Grafos
    Estruturas de Dados: matriz, lista e map de adjacências, lista de ramos
    Fecho Transitivo: algoritmo Floyd-Warshall
    Travessias: Largura, Profundidade
    Caminho mais curto, algoritmos Dijkstra e Bellman Ford
    Ordenação Topológica
    Ciclos em Grafos, algoritmos: Hierholzer e Fleury
    Árvore de Cobertura de Custo Mínimo: algoritmos Kruskal e Prim
    Maximização do fluxo numa rede, algoritmo Ford-Fulkerson

  • 5 ECTS

    Física Aplicada

    ECTS
    5
    Período
    1º semestre
    Responsável
    Manuel Azevedo
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    1,5 horas

    Esta Unidade Curricular, UC, pretende consolidar e aprofundar alguns conceitos e princípios fundamentais da física aplicada. Reforçar estes conhecimentos mediante aplicações ao mundo real e incentivar a interligação entre matérias. Desenvolver a capacidade de refletir, analisar e aplicar conhecimentos a qualquer problema, de modo simples e lógico, aplicando na sua resolução alguns princípios básicos bem compreendidos. Será dada uma grande ênfase à capacidade de manuseamento de conceitos e de resolução de problemas.
    Nesta UC o aluno deve conseguir identificar a importância da física na interpretação e explicação de fenómenos da área das ciências da engenharia, em particular, e da ciência e da tecnologia, em geral.
    CO1. Explicar os processos de transferência de calor. (#KU) (NB1, NB2)
    CO2. Explicar o conceito de campos magnéticos. Fluxo de campo e indução. (#KU) (NB1, NB2)
    CO3. Explicar o conceito de onda eletromagnética, e a sua interação com o meio. A Luz e a sua interação com o meio. (#KU) (NB1, NB2)
    CO4. Explicar os fenómenos de eletricidade e cargas estáticas. (#KU) (NB1, NB2)
    CO5. Aplicar os conhecimentos adquiridos na realização dos trabalhos laboratoriais propostos. (#EA, #IN) (NB3, NB4)
    CO6. Analisar e Interpretar dados experimentais e bibliográficos, e ajustar os modelos concebidos mantendo uma interpretação física. (#EP, #EA) (NB4, NB5)

    - Eletrostática, eletricidade e magnetismo (50%)
    Natureza da carga elétrica. Campo elétrico.
    Corrente elétrica e condutores.
    Campo magnético. Ondas eletromagnéticas.
    Filtros (RC e RL).
    - Ondas e luz (25%)
    Ondas eletromagnéticas. Espectro eletromagnético.
    Polarização.
    Propagação, reflexão e transmissão. Interferência.
    Transmissão na fibra ótica.
    - Matéria e calor (25%)
    Matéria e átomos. Temperatura.
    Calor e transferência de energia térmica, condução, convecção e radiação.

  • 7 ECTS

    Laboratório / Projeto III

    ECTS
    7
    Período
    1º semestre
    Responsável
    Alexandre Bragança
    Teórica
    0,5 horas
    Teórico-prática
    1,5 horas
    Prática laboratorial
    2 horas

    Esta unidade tem duas componentes:
    - Competências de Gestão de projetos, que visa consolidar a preparação dos estudantes para planear e trabalhar eficazmente em equipa, recorrendo a abordagens ágeis de gestão de projeto;
    - Projeto, que visa praticar um processo ágil, iterativo e incremental de desenvolvimento de software, desenvolvendo uma solução de software de média complexidade.
    No final desta UC, o estudante deverá ser capaz de:
    CO1. Aplicar as melhores práticas de planeamento e aplicação de SCRUM (técnicas de "scoping" e gestão de tempo em gestão ágil de projetos);
    CO2. Aplicar as fases e os principais conceitos do processo iterativo de desenvolvimento de software ágil orientado a testes (SDP) utilizado no LAPR3, planear e analisar o SDP do projeto e justificar as escolhas utilizando artefactos, linguagem e notação adequados;
    CO3. Aplicar os princípios e práticas básicos de engenharia de requisitos e garantia da qualidade, elicitando, especificando, documentando e avaliando os requisitos do projeto;
    CO4. Desenvolver uma solução utilizando um processo de desenvolvimento orientado a testes, com o suporte de um sistema de controlo de versões, avaliando as opções, utilizando ferramentas de gestão de equipas e tarefas, e trabalhando e comunicando eficazmente dentro da equipa.

    I. Competências de Gestão de Projetos (aulas TP)
    P1. Gestão de Projetos com abordagens ágeis (SCRUM)
    P1.1. Desenvolvimento do "Product Backlog"
    P2. Gestão de tempo através do refinamento do "sprint backlog" e "planning poker"
    P2.1. Definição de atividades
    P2.2. Estimativa de cargas
    P2.3. Duração
    P3. Processo de controlo e replaneamento
    P4. Projetos sobre Planeamento e Controlo
    P4.1. Projeto (gestão de "issues", durante e sobre o Projeto final)
    II- Projeto (aulas PL)
    P5. Processos ágeis, iterativos e incrementais de desenvolvimento software

2º ano | 2º semestre

  • 6 ECTS

    Engenharia de Aplicações

    ECTS
    6
    Período
    2º semestre
    Responsável
    Nuno Pereira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Esta UC fornece os conhecimentos e competências fundamentais sobre:
    1. processo de desenvolvimento de software (em particular de sistemas de informação)
    2. metodologias e ferramentas de design de software Orientado por Objectos
    3. técnicas de mapeamento objeto-relacional
    No fim da UC os alunos devem ser capazes de:
    CO1 - Identificar e aplicar o processo de desenvolvimento de software iterativo e incremental num projeto de média/grande dimensão (BL: 3)
    CO2 - Avaliar e aplicar os princípios SOLID e padrões de design de software (BL: 5)
    CO3 - Avaliar e aplicar padrões táticos de DDD (BL: 5)
    CO4 - Aplicar técnicas de ORM (BL: 3)
    CO5 - Aplicar técnicas e metodologias de TDD (BL: 3)
    CO6 - Utilizando artefatos e notações apropriados, descrever o design (BL: 3)
    CO7 - Criar, conceber e implementar colaborativamente uma solução de software completa (BL: 6)

    CP1. Processo de desenvolvimento de software (10%)
    1.1 Métodos Iterativos e Incrementais
    1.2 Métodos Ágeis
    1.3 Orientado por testes
    1.4 Trabalho colaborativo
    CP2. Design OO (70%)
    2.1 Domain Driven Design
    2.2 Principios SOLID
    2.3 Padrões GRASP + GoF
    2.4 Aplicação de UML no design
    2.5 Introdução aos padrões arquitecturais
    CP3. Implementação (20%)
    3.1 Teste
    3.2 Controlo de Versões
    3.3 ORM.

  • 6 ECTS

    Laboratório / Projeto IV

    ECTS
    6
    Período
    2º semestre
    Responsável
    Angelo Martins
    Teórica
    0,5 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2,5 horas

    No final desta UC, o estudante deve ser capaz de:
    CO1. Identificar as melhores práticas de trabalho e dinâmica de equipa e aplicá-las no desenvolvimento em equipa de um projeto de software (Nível Bloom: 3);
    CO2. Explicar as melhores práticas essenciais em comunicação oral e aplicá-las na apresentação de um plano e desenho de alto nível de um projeto de software (NB: 3);
    CO3. Organizar corretamente uma bibliografia de acordo com as normas estipuladas e respetivas citações e referências (NB: 3);
    CO4. Elicitar e interpretar os novos requisitos para uma solução de software (NB: 3);
    CO5. Desenhar e implementar novas funcionalidades numa solução de software, incluindo TDD (NB: 5);
    CO6. Selecionar e aplicar princípios sólidos para a operação, evolução e implantação de um sistema de software (NB: 4);
    CO7. Operar atividades técnicas complexas em equipas e projetos de software de dimensão significativa, assumindo a responsabilidade pela tomada de decisões (NB: 3).

    CP1. Comunicação
    CP2. Apresentação oral
    CP3. Gestão do stress
    CP4. Liderança e Trabalho em equipa
    CP5. Desenvolvimento do Projeto de Software envolvendo todas as UC do semestre (PBL)

  • 6 ECTS

    Linguagens e Programação

    ECTS
    6
    Período
    2º semestre
    Responsável
    Constantino Martins
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Propósitos e objetivos (max. 750 caracteres)
    No final da UC o aluno deverá ser capaz de:
    CO1: Explicar processo de especificação e implementação de linguagens de programação.
    CO2: Aplicar os conceitos teóricos na criação de estruturas formais essenciais ao processo de construção de
    linguagens de programação, nomeadamente, expressões regulares, autómatos finitos e gramáticas.
    CO3: Aplicar as diferentes estruturas formais à criação de linguagens simples.
    CO4: Criar analisadores léxicos e sintáticos com recurso a ferramentas como o ANTLR.
    CO5: Desenvolver trabalhos de grupo, e produzir relatório técnicos
    CO6: Aplicar os conhecimentos adquiridos em novas situações.

    Programa (max. 1000 caracteres)
    CP1. Introdução aos Compiladores
    -Influência na Computação Moderna: Máquina de Turing e Teste Turing
    - Introdução à Teoria das Linguagens Formais
    CP2. Análise Léxica
    CP3. Análise Sintática
    CP4. Análise Semântica
    CP5. Geração e otimização de Código

  • 6 ECTS

    Redes de Computadores

    ECTS
    6
    Período
    2º semestre
    Responsável
    André Moreira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    CO1. Conhecer os fundamentos teóricos da transmissão de dados digitais e detalhes técnicos sobre os standards LAN e WAN mais importantes, com ênfase na pilha TCP/IP. (Nível de Bloom: 2)
    CO2. Conhecer protocolos de infraestrutura de rede associados à gestão, routing dinâmico, resolução de nomes e outros protocolos de aplicação. (Nível de Bloom: 3)
    CO3. Planear, implementar, configurar e gerir sistemas de cablagem estruturada e dispositivos de rede de nível 2 e nível 3. (Nível de Bloom: 4)
    CO4. Criar soluções de endereçamento e routing IPv4 para estruturas de rede complexas e gerir os respetivos serviços de rede. (Nível de Bloom: 4)
    CO5. Desenvolver protocolos de aplicação e desenvolver e implementar aplicações de rede em linguagens C e Java. (Nível de Bloom: 3)

    CP1. Transmissão de dados digitais - 5%.
    (Problemas associados à transmissão de sinais. Codificação e modulação. Projeto de sistemas de cablagem estruturada.)
    CP2. Comunicação em rede - 5%.
    (Topologias, endereçamento e encaminhamento. Deteção de erros, controlo de fluxo e erros.)
    CP3. Arquiteturas de rede - 5%.
    (MR-OSI, IEEE802, TCP/IP e outros. Modelo Cliente/Servidor.)
    CP4.Tecnologias de rede de nível 2 - 20%.
    (Redes locais comutadas. VLAN. Redes locais sem fios. Configuração de dispositivos de nível 2. Tecnologias WAN: ATM, DSL e outras.)
    CP5. Pilha de protocolos TCP/IP - 45%
    (IP, ARP, ICMP e IGMP. Endereçamento e encaminhamento. Mascaras de rede. UDP e TCP. Desenvolvimento de aplicações de rede UDP e TCP. Protocolos de encaminhamento dinâmico. Configuração de "routers". Firewall estático e NAT. IPv6.)
    CP6. Protocolos de aplicação - 20%
    (Resolução de nomes: NetBIOS e DNS. HTTP, web services, AJAX e REST. SMTP, POP3 e IMAP4. SNMP. VPN - PPTP, L2TP e outros.)

  • 6 ECTS

    Sistemas de Computadores

    ECTS
    6
    Período
    2º semestre
    Responsável
    Luís Miguel Nogueira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Explorar, comparar e avaliar as várias formas de estruturar um SO e os serviços fornecidos aos seus utilizadores, como concorrência e controlo de processos assíncronos, escalonamento de processos, gestão de memória e I/O.
    CO2. Explorar, comparar e avaliar os compromissos entre várias abordagens à comunicação e sincronização de processos/threads e selecionar as abordagens/padrões de desenho mais apropriadas para a resolução de problemas reais.
    CO3. Aplicar conceitos associados a sistemas multiprocessador a programas no domínio da programação concorrente.
    CO4. Criar programas concorrentes baseados em processos e threads atendendo (i) às restrições de comunicação e sincronização definidas; e (ii) às abordagens/padrões disponíveis.
    CO5. Trabalhar em equipa de modo a atingir objetivos num determinado prazo.

    CP1: Arquitetura de um Sistema Operativo
    CP2: Gestão de Processos
    CP3: Mecanismos de Comunicação entre Processos
    CP4: Mecanismos de Sincronização de Processos
    CP5: Gestão de Threads

3º ano | 1º semestre

  • 5 ECTS

    Administração de Sistemas

    ECTS
    5
    Período
    1º semestre
    Responsável
    Pedro Pinto
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    A UC (Unidade Curricular) fornece sólidos conhecimentos teóricos e habilidades práticas na gestão e infraestrutura de sistemas de tecnologias da informação complexos e heterogêneos, utilizando as tecnologias mais avançadas num data center.
    No final desta unidade curricular o estudante deve ser capaz de (CO: Course Objectives; NB: Nível de Bloom):
    CO1. Definir e analisar requisitos operacionais para um datacenter de alta disponibilidade (NB: 1 e 4)
    CO2. Planear, instalar e gerir um centro de dados (CD) usando virtualização de servidores e de armazenamento e obedecendo a requisitos operacionais (NB: 3)
    CO3. Criar planos de recuperação de desastres e mitigação de falhas (NB: 4)
    CO4. Instalar servidores e dominar a respetiva administração (registo centralizado de utilizadores e grupos, iptables e criação de scripts para gestão automatizada) (NB: 3, 4 e 5)
    CO5. Integrar sistemas Linux e Windows configurando os serviços de comunicação remota e autenticação (NB: 5)

    Aulas teóricas:
    1. Administração de Sistemas (10%)
    2. Administração da Infraestrutura - Continuidade de Negócio (25%)
    3. Técnicas de segurança e procedimentos (35%)
    4. Qualidade de Serviço (QoS) (20%)
    5. DevOps (10%)
    Aulas teórico-práticas e prático-laboratoriais:
    1. Administração de servidores Linux e Windows (60%)
    2. BCP, DRP, NLB, Clustering (20%)
    3. Manutenção de sistemas (20%)

  • 5 ECTS

    Arquitetura de Sistemas

    ECTS
    5
    Período
    1º semestre
    Responsável
    Paulo Gandra de Sousa
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Identificar, elicitar e modelar requisitos de sistemas de software distribuídos e descentralizados (DDSS) (NB: 4/6).
    CO2. Analisar e modelar requisitos de DDSS (NB: 4/6).
    CO3. Desenhar (design) de DDSS (NB: 6/6).
    CO4. Implementar DDSS de acordo com o modelo de design arquitetural (NB: 6/6).
    CO5. Testar programaticamente DDSS de acordo com os modelos de design arquitetural e requisitos (NB: 6/6).
    CO6. Implantar DDSS de acordo com os modelos de design arquitetural e requisitos (NB: 3/6).

    CP1. Técnicas de identificação, eliciação e modelação de requisitos (15%)
    CP2. Técnicas de análise e modelação de conceitos e processos de negócio (15%)
    CP3. Técnicas, estilos e padrões de design e modelação (20%)
    CP4. Linguagens, frameworks e plataformas de implementação do design DDSS (20%)
    CP5. Linguagens, frameworks e plataformas de testes programáticos do design DDSS (20%)
    CP6. Técnicas e plataformas de implantação do design DDSS em diferentes plataformas (10%)

  • 4 ECTS

    Gestão

    ECTS
    4
    Período
    1º semestre
    Responsável
    Marina Amorim de Sousa
    Teórica
    1 hora
    Teórico-prática
    2 horas

    No final da UC, o/a estudante deve ser capaz de:
    CO1: Descrever os princípios gerais da estrutura e funcionamento de uma organização, bem como os princípios gerais das boas práticas de gestão inerentes às principais áreas funcionais das organizações e às funções genéricas de gestão (planeamento, organização e controlo).
    CO2: Explicar que a gestão, como ciência social, implica uma abordagem diversa das ciências relacionadas com a engenharia.
    CO3: Caraterizar o contexto interno e externo que afeta o desenvolvimento de projetos e atividades de engenharia.
    CO4: Identificar, caracterizar e analisar as várias vertentes em causa num problema de gestão operacional (relação com o cliente, relação com os restantes departamentos, gestão de pessoas, etc).
    CO5: Avaliar a importância e o impacto das ações de um gestor.
    CO6: Analisar o impacto das restrições operacionais na tomada de decisão em projetos de engenharia de pequena dimensão.
    CO7: Avaliar os principais condicionantes humanos, comerciais e organizacionais que interferem no desenvolvimento de projetos de engenharia ou outros.
    CO8: Propor soluções tendo em conta o contexto problemas de gestão operacional simples e as teorias da gestão abordadas.

    S1: Introdução à gestão das organizações
    S2: O ciclo de gestão: planeamento, organização e controlo
    S3: Principais áreas funcionais das organizações: marketing, operações, financeira
    S4: Temas complementares: Desenvolvimento sustentável, indústria 4.0, promoção da produtividade e economia circular.

  • 5 ECTS

    Inteligência Artificial

    ECTS
    5
    Período
    1º semestre
    Responsável
    Carlos Ramos
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    CO1. Explicar o conceito de agente inteligente operando no mundo do problema a resolver
    CO2. Explicar aspetos básicos das áreas principais da Inteligência Artificial, incluindo os envolvidos na evolução recente da IA
    CO3. Aplicar o paradigma de Programação em Lógica
    CO4. Aplicar os conceitos de Resolução Automática de Problemas, Métodos de Pesquisa e Otimização
    CO5. Criar, testar e avaliar uma solução para um problema real de complexidade média com recurso a Métodos de Pesquisa e Programação em Lógica, trabalhando em grupo.

    1- INTRODUÇÃO À INTELIGÊNCIA ARTIFICIAL (IA)
    Definição de IA; Breve evolução histórica da IA; Áreas da IA; Agente Inteligente: capacidade sensorial, comunicação, representação, raciocínio, aprendizagem, interação e atuação; IA Generativa.
    2- PROGRAMAÇÃO EM LÓGICA
    Lógica de Predicados, Unificação, Prova Automática de Teoremas; Mecanismos de Raciocínio, Dedução, Abdução, Indução, Modus Ponens, Modus Tollens; Programação em Lógica (PROLOG).
    3- CONCEITOS BÁSICOS DE RESOLUÇÃO AUTOMÁTICA DE PROBLEMAS
    Gerar e Testar, Subir a Colina, Primeiro em Profundidade, Primeiro em Largura.
    4- MÉTODOS DE PESQUISA
    Primeiro o Melhor, Branch and Bound, A*, Algoritmos Genéticos.
    5- REDES NEURONAIS ARTIFICIAIS E APRENDIZAGEM PROFUNDA
    6- VISÃO POR COMPUTADOR
    7- ROBÓTICA INTELIGENTE
    8- LÍNGUA NATURAL
    9- IA GENERATIVA, LLMs E AGENTES
    10- OPORTUNIDADES E RISCOS DA IA, ASPETOS ÉTICOS

  • 6 ECTS

    Laboratório / Projeto V

    ECTS
    6
    Período
    1º semestre
    Responsável
    Paulo Matos
    Teórica
    0,5 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2,5 horas

    Partindo de uma especificação aberta do tipo RFP (Request For Proposal), pretende-se desenvolver um projeto integrador de complexidade significativa que, por um lado, simula um contexto empresarial e, por outro lado, resulta um sistema informático, composto por várias aplicações e outros elementos que, na maioria das vezes, executam em ambientes heterogéneos e, em conjunto, permitem satisfazer adequadamente o RFP.
    Complementarmente, através do módulo de legislação e ética, os estudantes adquirem conhecimento básico relacionado com vocabulário e modo de raciocínio legal / legislativo essencial às práticas de um engenheiro informático e à interação deste com o departamento legal de uma empresa.
    No final da UC, os estudantes devem ser capazes de:
    CO1. Relacionar os conceitos básicos de legislação e ética com as práticas de um engenheiro informático (NB:3).
    CO2. Explicar a necessidade de existência de um processo de desenvolvimento de software (NB:5).
    CO3. Identificar, especificar e representar os requisitos de uma solução software integrada (NB:6).
    CO4. Selecionar e aplicar as melhores práticas de trabalho no desenvolvimento em equipa de um projeto de software, e usando ferramentas de trabalho colaborativo, na negociação e no planeamento das tarefas (NB:5).
    CO5. Selecionar e aplicar as tecnologias adequadas ao projeto (NB:5).
    CO6. Desenhar um sistema de software heterogéneo, trabalhando em grupo, capaz de responder adequadamente às necessidades de negócio expostas pelo cliente (NB:6).

    A componente de projeto possui aulas tipo T e PL, para apoio à sua realização. Nas aulas T, o professor funciona como cliente principal, expondo as suas necessidades a um nível de negócio. Nas aulas PL, o professor funciona como mentor de cada equipa, apoiando estes na organização do trabalho, debatendo os requisitos e o seu impacto da solução.
    O módulo de Legislação e Ética, decorre nas aulas TP, abordando os tópicos seguintes:
    1. O Direito e a Ética
    2. Proteção dos dados pessoais e Privacidade. Regime constitucional e Comunitário.
    3. O RGPD e a Lei 58/2019.RGPD: objeto e âmbito de aplicação
    4. RGPD: conceitos básicos e princípios relativos ao tratamento de dados
    5. RGPD: licitude do tratamento - consentimento enquanto fundamento de licitude
    6. RGPD: licitude do tratamento - outros fundamentos legais
    7. RGPD: dados pessoais sensíveis
    8. RGPD: os direitos dos titulares dos dados pessoais
    9. Proteção de dados e responsabilidade ética, deontológica, social, contraordenacional e criminal.

  • 5 ECTS

    Sistemas Gráficos e Interação

    ECTS
    5
    Período
    1º semestre
    Responsável
    João Paulo Pereira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1 - Descrever o papel fundamental que os processos de interacção entre o utilizador humano e a máquina desempenham no sucesso das aplicações informáticas;
    CO2 - Explicar a importância crescente da computação gráfica nos mais variados domínios da actividade humana;
    CO3 - Explicar os conceitos gerais relacionados com o domínio da computação gráfica e da interacção;
    CO4 - Identificar as bases necessárias à construção de sistemas gráficos interactivos em Three.js ou em qualquer outra API;
    CO5 - Criar sistemas gráficos interactivos;
    CO6 - Aplicar ferramentas gráficas padronizadas;
    CO7 - Aplicar o conceito de trabalho em equipa;
    CO8 - Preparar um relatório de projecto;
    CO9 - Preparar uma apresentação e avaliar um projecto perante os avaliadores.

    CP1 - Sistemas Gráficos (70%).
    1 Desenho e programação de sistemas gráficos.
    2 Algoritmos geométricos.
    3 Técnicas gráficas fundamentais.
    4 Modelação geométrica.
    5 Síntese de imagem e animação por computador.
    6 Design de jogos.
    CP2 - Interacção Pessoa-Máquina (30%).
    7 Usabilidade.
    8 Domínios de desenvolvimento de interfaces.
    9 Linhas de orientação do design de interfaces.
    10 Construção de uma interface com o utilizador.
    11 Avaliação e desenvolvimento de software numa perspectiva humana.

3º ano | 2º semestre

  • 4 ECTS

    Análise de Dados em Informática

    ECTS
    4
    Período
    2º semestre
    Responsável
    Ana Maria Madureira
    Teórica
    1 hora
    Prática laboratorial
    1,5 horas

    Pretende-se que o estudante, após concluir esta UC, reconheça a necessidade de utilizar técnicas de AED e que compreenda alguns dos algoritmos de aprendizagem automática.
    No final desta UC, o/a estudante deverá ser capaz de:
    CO1. Caracterizar o estado da arte das técnicas estatísticas/ferramentas para AED e AA e sua potencial aplicação em engenharia e ciências aplicadas.
    CO2. Discutir as técnicas básicas de AED e AA para a conceção de experiências no domínio da Ciência dos Dados.
    C03. Analisar e organizar dados de uma diversidade de fontes.
    CO4. Discutir as diferentes técnicas de estatística descritiva e inferencial para implementar a AED.
    CO5.. Identificar, selecionar e usar ferramentas de AA adequadas no suporte ao processo da Ciência dos Dados.
    CO6. Formular problemas reais no contexto de terminologia de AA e identificação da abordagem mais adequada para a resolução do problema.
    CO7. Construção e otimização de modelos relevantes dos dados.
    CO8. Avaliar metódica e criticamente o desempenho dos modelos.
    CO9. Trabalhar em grupo e produzir relatórios técnicos e artigos científicos, e comunicação oral em português/inglês.

    CP1. Data Science/BigData/Data Analytics (30%T+70%TP)
    CP2. Análise Exploratória de Dados(30%T+70%TP)
    - Inferência Estatística
    - Testes de hipóteses paramétricos e não-paramétricos
    - Regressão e Correlação
    CP3. Técnicas de Aprendizagem Automática (20%T+80%TP).
    - Noções e aplicabilidade de técnicas de AA
    - Classificação das Técnicas de AA (Aprendizagem supervisionada, Aprendizagem não-supervisionada, Aprendizagem por reforço, Deep Learning)
    - Otimização e Avaliação dos modelos: holdout e K-fold based cross-validation, Métricas de avaliação dos modelos de regressão e de classificação
    - Técnicas de Aprendizagem Supervisionada para regressão (modelos de regressão linear e árvores de Regressão)
    - Técnicas de Aprendizagem Supervisionada para classificação (árvores de decisão, redes neuronais, kNN, e máquinas de suporte vetorial (SVM))

  • 4 ECTS

    Comportamento Organizacional

    ECTS
    4
    Período
    2º semestre
    Responsável
    Alexandra Ribeiro Costa
    Teórica
    1 hora
    Prática laboratorial
    1,5 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Explicar o Comportamento Organizacional como objeto de estudo. (NB: 2)
    CO2. Analisar as organizações no contexto de mudança. (NB: 2)
    CO3. Identificar o conceito de cultura organizacional e suas implicações. (NB: 2)
    CO4. Identificar a diversidade em contexto organizacional. (NB: 2)
    CO5. Comparar modelos de liderança em contexto organizacional. (NB: 4)
    CO6. Produzir um autodiagnóstico de competências (NB: 6)
    CO7. Avaliar um conjunto de competências que lhes permitam ter sucesso no futuro profissional (NB: 4)

    P1. Introdução ao Comportamento Organizacional: delimitação do campo de estudo 10%
    P1.1. A importância do estudo do Comportamento Organizacional
    P2. As organizações no mundo em mudança 45%
    P2.1. A diversidade nas organizações
    P2.2. Mudança Organizacional
    P2.3. Liderança e seus modelos
    P2.4. Motivação para o trabalho
    P3. O profissional no mundo em mudança 45%
    P3.1. O futuro do trabalho
    P3.2. Gestão de competências
    P3.3. Gestão de carreira

  • 4 ECTS

    Informática nas Organizações

    ECTS
    4
    Período
    2º semestre
    Responsável
    Joaquim Filipe Peixoto dos Santos
    Teórica
    1 hora
    Prática laboratorial
    1,5 horas

    No final desta unidade curricular o/a estudante deve ser capaz de:
    CO1. Discutir o papel dos SI na organização (NB: 2)
    CO2. Identificar e caraterizar as principais aplicações empresariais dos SI (NB: 2)
    CO3. Explicar as implicações éticas e sociais nos SI (NB: 2)
    CO4. Caraterizar processos de negócios (NB: 2)
    CO5. Identificar e caraterizar o papel dos SI na gestão do conhecimento e na tomada de decisão (NB: 2)
    CO6. Definir e implementar KPI para análise de desempenho de processos de negócio (NB: 5)
    CO7. Trabalhar num grupo auto-organizado e atingir resultados mensuráveis (NB: 3)

    CP1. Sistemas de Informação, Organizações e Estratégia ? 10%
    CP2. O ciclo de vida dos SI empresariais e modelação de processos de negócio ? 30%
    CP3. Implicações éticas e sociais nos Sistemas de Informação ? 10%
    CP4. Aplicações de SI empresariais ? 20%
    CP5. Gestão do Conhecimento, análise de desempenho e tomada de decisão- 30%

  • 18 ECTS

    Projeto

    ECTS
    18
    Período
    2º semestre
    Responsável
    Elsa Ferreira Gomes
    Teórica
    1 hora
    Orientação tutorial
    0,5 horas

    A UC tem por objetivo o desenvolvimento de um Projeto numa organização (empresa, centro de investigação ou um docente) promovendo a recolha de informação pertinente, a seleção fundamentada dos métodos de abordagens, o desenho e implementação duma solução para o problema proposto, bem como, uma posterior a análise crítica dos resultados.
    O estudante será capaz de conceber-desenhar-implementar-operar soluções informáticas com complexidade média/alta em organizações modernas, gerando valor acrescentado e evidenciando uma atitude pessoal adequada, madura e racional.
    No final desta unidade curricular o/a estudante deve ser capaz de:
    CO1. Interpretar o problema em estudo, aplicando os conhecimentos adquiridos e adotando boas práticas de engenharia informática.
    CO2. Sintetizar o conhecimento existente no âmbito do problema em estudo.
    CO3. Identificar, analisar e avaliar diferentes abordagens para a resolução do problema. Reconhecer a importância das restrições não técnicas - sociais, de saúde e segurança, ambientais, económicas e industriais.
    CO4. Desenhar uma solução para o problema, adotando boas práticas de engenharia informática.
    CO5. Construir a solução para o problema aplicando boas práticas de engenharia informática.
    CO6. Avaliar a solução desenhada/implementada aplicando boas práticas de engenharia informática.
    CO7. Descrever e apresentar de forma rigorosa os processos e resultados dos pontos anteriores.

    De acordo com o enunciado de projeto validado pelo RUC e aceite pelo estudante (estando a aprovação sujeita às condições definidas no Procedimento de LEI-PROJ) pelo orientador e pelo supervisor (caso o projeto se desenrole numa organização).
    Devido às suas caraterísticas específicas, esta unidade curricular contribuirá para sedimentar os conhecimentos, capacidades e competências no estudante finalista e futuro profissional em engenharia informática. No âmbito desta unidade curricular pretende-se que o estudante demonstre autonomia, responsabilidade e adaptabilidade no contexto da engenharia informática.
    Existe ainda um acompanhamento, ao longo do semestre, por parte do RUC da UC.

 

*o horário pós-laboral está condicionado a um número mínimo de inscrições. 

Registo Legal

Nº Processo A3ES

ACEF/2425/0213022
Data inicial: 2025-07-31
Data final: 2031-08-31

Registo DGES

R/A-EF 840/2011/AL02

A licenciatura em Engenharia Informática termina com um projeto final de curso, que pode ser desenvolvido em: 

 

• Empresas: i2S; Armis; msg life; devscope; Sonae; Continental Mabor; Microsoft; Vodafone; Deloitte; Mindera; INOVA+; Altran; Natixis; Talkdesk; Celfocus; Glintt; Xarevision; MyPartner; Critical Software; Critical Manufacturing; KonkKonsulting; Altice; Ambidata; Aubay; BIT|Sonae MC; Blip; DouroAzul; ebankIT; E-goi; Farfetch; Noesis Portugal; Novabase; Parfois; Prozis; Sogrape Vinhos; Talkdesk; Xpand IT; Zaask, entre outras. 

 

• Grupos de investigação: INESC TEC, GECAD, CISTER, GILT, CINTESIS, entre outros. 

Em que áreas podes trabalhar? 
 

  • Desenvolvimento de sofware; 
  • Administração de sistemas e redes; 
  • Desenvolvimento e administração de bases de dados; 
  • Big Data;
  • Inteligência Artificial;
  • Consultoria. 

 
 
E se quiseres continuar a estudar? 
 
Mestrado em Engenharia Informática
Mestrado em Engenharia de Inteligência Artificial
Mestrado em Engenharia de Sistemas de Computacionais Críticos

 

  • “É possível melhorar a capacidade de flexibilidade e agilidade em trabalho, dando uma vantagem competitiva aos estudantes no ponto de vista da prática. Esta componente é evidenciada pela presença de disciplinas de práticas laboratoriais que decorrem durante o último mês de cada semestre, sendo possível simular condições semelhantes ao trabalho empresarial, incluindo desafios técnicos e relacionais subjacentes.”

    Diogo Braga
  • “Foi uma das melhores “surpresas” da minha vida. A experiência acabou por se revelar muito mais enriquecedora (e desafiante!) do que tinha antecipado. A LEI é um curso extremamente completo, que cobre todo o espetro da computação - desde a eletrónica até conceitos de alto nível como a inteligência artificial. Olhando para trás tenho a certeza que foi a melhor escolha possível para mim!”

    Maria Loureiro
  • “É uma licenciatura que nos prepara para o mercado de trabalho, fomentando a procura de soluções para os desafios tecnológicos atuais e também o trabalho em equipa, tão necessário no mundo empresarial. Recomendo vivamente este curso para o início de uma carreira profissional de sucesso.”

    Sara Santos

Concurso Nacional de Acesso ao Ensino Superior: o que precisas saber?

 

Código - 3135/9119 Licenciatura em Engenharia Informática

Área CNAEF - 523 Eletrónica e Automação
 
Vagas - 201 (40% com preferência regional na 1ªfase)

 

Provas de Ingresso

Um dos seguintes conjuntos:
19 Matemática A
      ou
07 Física e Química + 19 Matemática A
      ou
19 Matemática A + 18 Português
 
Consulta o Guia da Candidatura de 2026 - Detalhe de Curso na DGES
 
 
Médias dos últimos colocados 
2025

150,0 (1ª fase); 166,0 (2ª fase); 166,5 (3ª fase)

2024
169,0 (1ª fase); 171,3 (2ª fase); 168,5 (3ª fase)

2023
165,1 (1ª fase); 171,9 (2ª fase)


Para mais informações sobre o  Concurso Nacional de Acesso ao Ensino Superior e outras formas de acesso, acede à página da nossa Divisão Académica.

Voltar ao topo