Mestrado em Engenharia Informática

Constrói soluções para o futuro.

A Engenharia Informática está hoje presente em praticamente todos os domínios da sociedade, do comércio eletrónico à saúde, dos transportes às finanças, da mobilidade sustentável à inteligência artificial. Num tempo em que os dados, a automação e os sistemas inteligentes redefinem o modo como as organizações operam, formar engenheiros capazes de conceber soluções seguras, eficientes e sustentáveis nunca foi tão determinante.

 

Uma formação concebida para a exigência da vida profissional.
O MEI destina-se a profissionais em atividade e a recém-licenciados que pretendam aprofundar conhecimentos em áreas determinantes da engenharia informática. Assenta num modelo de conceber, desenhar, implementar e operar sistemas reais, e é um dos poucos mestrados em Portugal com acreditação ABET.

A Inteligência Artificial (IA) como ferramenta, não como fim.
A IA, por si só, não resolve problemas: o desafio está em integrá-la de forma criteriosa em soluções com impacto real. É esta combinação de especialização, pensamento crítico e IA que faz a diferença no percurso profissional. Quanto mais profundo for o domínio técnico, maior a capacidade de empregar IA em soluções que realmente importam.

 

Cinco áreas de especialização

ÁREA O QUE VAIS APRENDER
Cibersegurança e Administração de Sistemas Proteção de sistemas e redes, gestão de infraestruturas, resposta a incidentes e administração de ambientes tecnológicos complexos.
Engenharia de Dados Recolha, armazenamento, processamento e análise de grandes volumes de dados, do desenho de arquiteturas ao suporte à decisão.
Engenharia de Software Conceção, desenvolvimento e garantia de qualidade de sistemas de software robustos, escaláveis e sustentáveis.
Jogos, Sistemas Gráficos e Interativos Computação gráfica, desenvolvimento de jogos, realidade aumentada e virtual, e experiências interativas.
Sistemas de Informação e Conhecimento Modelação de informação, gestão do conhecimento e sistemas de apoio à decisão nas organizações.

 

Uma formação reconhecida e ligada ao mercado

Um mestrado com tripla acreditação internacional (ABET, EUR-ACE e A3ES), que atesta a qualidade do ensino em ciências e engenharia. As especializações não são compartimentos estanques. Podes frequentar unidades curriculares de outras áreas e beneficiar da polinização cruzada entre elas, uma vez que os desafios reais raramente cabem numa só disciplina.

 

O projeto, estágio ou dissertação é realizado em ambiente empresarial ou em centros de investigação, trabalhando em problemas reais propostos por empresas parceiras (como Blip, Farfetch, Critical Manufacturing, Critical TechWorks, Natixis ou Wipro) e por laboratórios e grupos de investigação de referência (INESC TEC, GECAD, CISTER, ISRC, GILT, entre outros). É o "Saber Fazer" do ISEP em ação.

 

Explorar maiis sobre o MEI

Duração:
2 anos / 4 semestres
Créditos:
120 ECTS
Horário:
Pós-laboral (18h10 - 23h30)

1º ano | 1º semestre

  • 7,5 ECTS

    Administração de Bases de Dados

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

    Esta UC vai debruçar-se sobre aspetos relacionados com a administração de SGBD e implementação de boas práticas na sua conceção/utilização tendo em conta o desempenho, segurança, escalabilidade e proteção de dados, recuperação de falhas, entre outros.
    No final desta UC o estudante deverá ser capaz de:
    - CO1. Identificar os requisitos funcionais e não funcionais, objetivos e expectativas para armazenamento e gestão de dados/conteúdos (NB2)
    - CO2. Selecionar tecnologias de armazenamento e gestão de dados/conteúdos, de acordo com os requisitos de domínio (NB5)
    - CO3. Conceber infraestrutura escalável e elástica de armazenamento e processamento de grandes quantidades de dados/conteúdos, usando tecnologias distribuídas (NB6)
    - CO4. Planear e implementar procedimentos, operações e tecnologias para gestão de risco para continuidade de negócio e recuperação de desastres, garantindo o cumprimento regulamentar (NB6)
    - CO5. Avaliar a segurança de dados/conteúdos e proteger privacidade do utilizador, e a propriedade intelectual da organização, usando tecnologias apropriadas e cumprindo os regulamentos (NB5)
    - CO6. Realizar configurações e operar sistemas de armazenamento e gestão de dados/conteúdos de acordo com requisitos de Confiabilidade, Integridade, Disponibilidade, Desempenho, Risco/Continuidade, Custo e outros (NB3)
    - CO7. Analisar tecnologias emergentes para compreender o seu potencial. (NB4)

    P1: Conceitos de bases de dados e sua administração (30%)
    - Relacionais vs. não-relacionais
    - Grande-escala, paralelas e distribuídas
    - Transacionais vs. streaming/runtime
    - Cloud (PaaS/SaaS) vs. on-permises
    P2: Implantação e Operação de bases de dados (40%)
    - Tunning (padrões e otimização)
    - Clustering e Indexing
    - Distribuição, Concorrência
    - Escalabilidade e elasticidade
    - Benchmarks e ferramentas
    P3: Segurança de bases de dados (30%)
    - Autenticação & Autorização
    - Logging, Auditing
    - Políticas de backup
    - Resposta a incidentes e recuperação de dados

  • 7,5 ECTS

    Configuração e Gestão de Sistemas

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

    No final desta unidade curricular, o estudante deve ser capaz de:
    CO1. Aplicar os principais conceitos e princípios de DevOps, incluindo Infrastructure as Code, avaliando a sua adequação a diferentes contextos e requisitos operacionais (Nível de Bloom: 5/6).
    CO2. Avaliar e comparar diferentes soluções para a configuração e gestão de aplicações, sistemas e redes, recorrendo a técnicas de virtualização e simulação e considerando os respetivos requisitos e restrições (Nível de Bloom: 5/6).
    CO3. Conceber e implementar soluções para a configuração e gestão de aplicações, sistemas e redes, tendo em consideração os requisitos, as restrições e as especificidades do ambiente operacional (Nível de Bloom: 6/6).
    CO4. Desenvolver processos de integração entre o desenvolvimento de software e as operações, recorrendo a práticas e ferramentas de integração e entrega contínuas (CI/CD) (Nível de Bloom: 6/6).

    P1. Sistemas de controlo de versões (15%)
    P2. Ferramentas de compilação e automação de builds (15%)
    P3. Máquinas virtuais e contentores de software (25%)
    P4. Gestão de configurações e Infrastructure as Code (15%)
    P5. Pipelines de integração contínua/entrega contínua (CI/CD) (15%)
    P6. Observabilidade: monitorização, logging, tracing e análise de métricas (15%)

  • 7,5 ECTS

    Redes de Computadores

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Ana Raquel Faria
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Propósitos e objetivos (max. 1750 caracteres)
    No final desta UC o aluno deverá ser capaz de:
    CO1. Implementar os requisitos para soluções de redes de comunicação em organizações de pequeno e médio porte. (Bloom Level (BL): 3/6)
    CO2. Implementar redes de comunicação de dados para organizações de pequeno e médio porte, incluindo redes locais e o uso de tecnologias de rede de área ampla conforme os requisitos. (BL:3/6)
    CO3. Implementar o nível de serviço acordado (SLA) com base nos requisitos. (BL:3/6)
    CO4. Identificar a conformidade do SLA em relação aos requisitos, especificações e design. (BL:4/6)
    CO5.Aplicar as ferramentas e técnicas relevantes de gestão da qualidade de serviço. (BL:3/6)
    CO6. Identificar o potencial das tecnologias emergentes. (BL:4/6)

    CP1. Tipos de redes e suas características (8%):
    - LAN, Wireless LAN, Wide Area Networking, Metropolitan Area Network
    - Low-Power Wireless Area Networks (Internet of Things (IoT))
    CP2. Endereçamento, encaminhamento e comutação (60%):
    - IPv4: DHCP, RIP, OSPF, EIGRP (routing dinâmico)
    - IPv6: SLAAC,
    IoT + IPv6: 6loWPAN, RPL
    -VLAN; TVP; GRVP
    - Frame, Jumbo Frame, Superjumbo Frame
    - STP e RSTP
    -DNS
    CP3. Qualidade de serviço (16%):
    - Gestão de tráfego: Shapping and Policing
    - Policy-based routing (PBR)
    CP4. Considerações sobre segurança, restrições e análise (16%):
    - DNSSec
    - Protocolos de aplicação, por ex. HTTPS, FTPS, SMTPS, POPS, SSH

  • 7,5 ECTS

    Segurança de Sistemas e Informação

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

    Esta unidade curricular visa incutir uma atitude de "desconfiança construtiva" na conceção, desenho, desenvolvimento e operação de sistemas que incorporem tecnologias informáticas, atitude essa que será muito útil nas restantes unidades e na vida pessoal e profissional. Espera-se que o estudante saiba aplicar os instrumentos da engenharia da segurança informática de modo efetivo, respeitando os aspetos profissionais e éticos na utilização das soluções existentes. Tendo em conta a sensibilidade e relevância dos temas abordados, o estudante deverá manter-se ao corrente dos desenvolvimentos desta área.
    Após completarem com sucesso esta unidade curricular, os estudantes serão capazes de:
    CO1. Defender a necessidade duma visão holística da segurança de sistemas e infraestruturas informáticas (Bloom Level (BL): 2/3)
    CO2. Adotar conceitos e métodos de gestão e controlo de acessos a sistemas e informação (Bloom Level (BL): 4/5)
    CO3. Definir e implementar políticas de segurança e privacidade dos sistemas e informação em função dos requisitos (Bloom Level (BL): 4/5)
    CO4. Selecionar soluções arquiteturais capazes de dar resposta aos requisitos de segurança do sistema e da informação (Bloom Level (BL): 5)
    CO5. Elaborar e aplicar planos de segurança e contingência, gerindo o risco garantindo a continuidade do negócio, cumprimento o quadro regulatório (Bloom Level (BL): 5)

    O programa está dividido em módulos interligados e tendo como base comum a visão ubíqua da segurança.
    CP1: Controlo de acessos
    CP2: Controlo de sistema
    CP3: Testes e monitorização de sistemas
    CP4: Arquiteturas de sistemas comuns nesta área de conhecimento
    CP5. Continuidade e remoção/reforma do sistema
    CP6. Gestão de risco (Plano de Segurança e Plano de Recuperação de Desastre)

1º ano | 2º semestre

  • 7,5 ECTS

    Desenvolvimento de Software Seguro

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

    Esta UC aborda os fundamentos e técnicas para conceber e implementar sistemas de software seguros. Também cobre a avaliação de vulnerabilidades de segurança de software, exploração de vulnerabilidades de software, e métodos para proteger software vulnerável.
    No final da UC, o aluno deverá ter adquirido competências para:
    CO1. Avaliar as ameaças, riscos e ataques à segurança dos sistemas de software. (BL5)
    CO2. Conhecer e aplicar as práticas e técnicas associadas a cada fase do ciclo de vida do desenvolvimento de software seguro, justificando a sua adequação. (BL5)
    CO3. Desenvolver software seguro. (BL6)

    P1- Fundamentos e princípios de segurança em software (~15%)
    P2-Modelação e mitigação de ameaças (~15%)
    P3-Padõres para desenvolvimento de software seguro (~15%)
    P4-Práticas de programação de software seguro (~15%)
    P5-Desenho de software seguro (~20%)
    P6-Ciclo de vida do processo de desenvolvimento de software seguro (~20%)

  • 7,5 ECTS

    Segurança da Comunicação e Infraestrutura

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

    Baseando-se em conhecimento adquirido anteriormente sobre redes de computadores, esta UC foca-se nos aspetos de segurança das conexões (lógicas ou físicas) entre componentes de software.
    No final desta UC o estudante deverá ser capaz de:
    CO1. Descrever a necessidade da segurança das comunicações e infraestruturas dos sistemas (BL): 1/6
    CO2. Analisar e mitigar ameaças cibernéticas (BL): 4/6
    CO3. Aplicar hacking ético (BL): 3/6
    CO4. Selecionar soluções arquiteturais capazes de dar resposta aos requisitos de segurança (BL): 5/6)
    CO5. Conduzir análise forense digital de intrusão usando ferramentas, técnicas e fontes de dados/observações adequadas, compreendendo as suas limitações (BL): 6/6)

    P1. Conceitos básicos de segurança das comunicações (5%)
    Ciclo de vida da Cibersegurança
    Terminologia
    Engenharia social e segurança física
    Vulnerabilidades
    P2. Informação sobre ciberameaças (10%)
    Perfis de Atacantes
    Ameaças
    Plataformas
    P3. Segurança das Comunicações (30%)
    Segurança em redes de computadores
    Firewalls
    Sistemas de deteção e prevenção de intrusões em rede
    Segurança e vulnerabilidades na Web
    Segurança em redes sem fios
    P4. Ataques de Segurança (30%)
    Reconhecimento e recolha de informação
    Scanning, sniffing e evasão
    Ataques a sistemas operativos
    Web-based hacking: servidores e aplicações
    Network hacking
    Testes de penetração
    P5. Remediação e Análise Forense (15%)
    Sistemas de Gestão de Incidentes
    Sistemas de Gestão de Segurança Colaborativos
    P6. Segurança na era da Inteligência Artificial (10%)
    Vulnerabilidades da IA
    Tipos de Ataque
    Análise de Risco
    Robustez e segurança dos modelos

  • 7,5 ECTS

    Segurança e Privacidade de Dados

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

    Após completarem com sucesso esta unidade curricular, os estudantes serão capazes de (Bloom Level - BL):
    CO1 - Conhecer o estado de arte dos conceitos relacionados com criptografia (BL 2)
    CO2 - Saber selecionar e adotar os algoritmos criptográficos em cenários reais, de acordo com os requisitos e as suas propriedades (BL 4/5)
    CO3 - Saber implementar controlos de acesso e segurança no armazenamento de dados (BL 3)
    CO4 - Saber analisar requisitos de privacidade e saber aplicar técnicas para incremento de níveis de privacidade (BL 4)
    CO5 - Definir e implementar políticas de segurança e privacidade dos dados (BL 5)
    CO6 - Conhecer e saber implementar o processo de análise forenses usando ferramentas, técnicas e fontes de dados/observações adequadas (BL 3)

    O programa está dividido nos seguintes módulos (Conteúdo Programático-CP):
    CP1 - Criptografia e Criptoanálise
    CP2 - Integridade e autenticação de dados
    CP3 - Segurança no acesso e armazenamento de dados
    CP4 - Privacidade e Proteção de Dados
    CP5 - Análise Forense digital

  • 7,5 ECTS

    Sistemas de Gestão de Segurança

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

    Esta unidade curricular (UC) visa dotar os estudantes com os conhecimentos fundamentais à prática de gestão da segurança da informação adequada ao contexto interno e externo de uma organização e à concretização dos seus objetivos de negócio (e/ou missão). Para tal, familiariza os estudantes com o ciclo de vida tipicamente associado a um sistema de gestão de segurança da informação bem como com os seus principais conceitos e processos. Neste contexto, os estudantes deverão adquirir competências e capacidades associadas ao desenho, à implementação e à avaliação de (i) políticas de segurança; (ii) gestão de risco; (iii) planos de contingência; e (iv) avaliação do impacto de um incidente de segurança. Inerente a todos estes aspetos encontra-se a necessidade de (i) conformidade com os requisitos da organização e com a legislação vigente aplicável; e (ii) a adoção de normas e de boas práticas.
    Após completarem com sucesso esta UC, os estudantes serão capazes de:
    CO1. Debater sobre um sistema de gestão de segurança da informação no que concerne ao seu ciclo de vida, processos e atividades no contexto de uma organização (BL:4);
    CO2. Elaborar políticas e procedimentos de segurança a diferentes níveis (e.g. organizacional vs. sistema)(BL:6);
    CO3: Aplicar técnicas de gestão de risco para identificação, análise, avaliação, priorização, tratamento e revisão dos riscos subjacentes a recursos de informação (BL: 3);
    CO4. Desenhar políticas e planos de contingência para resposta adequada a incidentes com diferentes níveis de gravidade (BL:6);
    CO5. Avaliar o impacto de quebras de segurança (BL:5);
    CO6. Explicar o cumprimento (ou não) por parte das organizações da diversa legislação e/ou de regulamentos de relevo (BL: 5).

    O programa está organizado em módulos interligados e tendo como base uma visão holística e ubíqua da segurança.
    CP1. Gestão da Segurança da Informação
    - Normas e frameworks (e.g. ISO 27000, NIST)
    - Ciclo de vida
    - Governance e contexto organizacional
    - Planeamento e Estratégia
    - Políticas
    - Programas e Projetos
    - Pessoas e Proteção
    CP2. Gestão de Risco
    - Identificação
    - Análise
    - Avaliação
    - Tratamento
    CP3. Avaliação de Impacto
    - Conceitos
    - Métricas
    - Métodos
    CP4. Políticas e Planeamento de Contingência
    - Resposta a incidentes
    - Recuperação de desastres
    - Continuidade de negócio
    - Gestão de crise
    CP5. Leis, Ética e Códigos Profissionais
    - Principais leis e regulamentos nacionais e internacionais
    - Questões éticas
    - Códigos Profissionais
    CP6. Avaliação de Sistemas de Gestão da Segurança da Informação
    - Conformidade com normas e legislação
    - Auditoria Interna e Externa
    - Auditoria para certificação

2º ano | 1º semestre

  • 5 ECTS

    Inovação, Empreendedorismo e Liderança

    ECTS
    5
    Período
    1º semestre
    Responsável
    Mafalda Luisa Ferreira
    Teórica
    1 hora
    Teórico-prática
    2 horas

    No final desta UC o estudante deverá ser capaz de: CO1. Compreender as dimensões envolvidas na gestão de pessoas e equipas (BL 4/6) CO2. Utilizar diferentes ferramentas para identificar, localizar, recuperar e organizar informação necessária para a concretização de um determinado objetivo (BL 6/6) CO3. Gerir procedimentos de forma a organizar, planear, gerir e coordenar atividades que facilitem o desempenho de pessoas e equipas (BL 6/6) CO4. Compreender as dimensões e necessidade de um Plano de Negócio (BL 4/6) CO5. Desenvolver e apresentar um Plano de Negócio (BL 6/6) CO6. Identificar instituições vocacionadas para o apoio à inovação e criação de start-ups (BL 6/6). CO7: Interpretar problemas de forma analítica, crítica e ética com a adoção de ciências de engenharia e boas práticas (Nível Bloom (BL): 5/6)

    CP1. Gestão de Pessoas e Equipas 28,6%
    - Estratégia Organizacional e Recursos Humanos (RH)
    - Da Gestão de RH à Gestão de Pessoas (GP)
    - Processos de Gestão de RH/GP
    - Recrutamento
    - Seleção
    CP2. Inovação e Empreendedorismo 20%
    - Empreendedorismo e Desenvolvimento de Negócios
    - Gestão da Inovação e formulação da Ideia de Negócio
    CP3. Plano de Negócios 30%
    - Plano Estratégico
    - Produtos/Serviços
    - Análise de Mercado
    - Plano de Marketing
    - Plano Financeiro
    CP4. Experimentação e Avaliação em Engenharia (21,4%)
    - Dados: amostragem, processo de coleta, tipos
    - Inferência: estimadores e tipos de estimadores
    - Intervalo de confiança
    - Testes de hipóteses paramétricos e não paramétricos

  • 7,5 ECTS

    Laboratório de Cibersegurança

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Nuno Pereira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    No final desta UC, o aluno deve:
    CO1. Avaliar criticamente a segurança de sistemas complexos, incluindo sistemas de software, sistemas embebidos, web, imersivos e baseados em IA, utilizando modelos de ameaças, fronteiras de confiança e princípios de segurança (BL5).
    CO2. Justificar e avaliar as práticas atuais de modelação, desenvolvimento e avaliação de sistemas seguros ao longo do ciclo de vida do software e da cadeia de fornecimento (BL5).
    CO3. Avaliar e recomendar mecanismos e ferramentas de segurança adequados, incluindo ferramentas de garantia de software, mecanismos de isolamento e técnicas de análise de segurança ao nível da aplicação (BL5).
    CO4. Conceber, implementar e documentar avaliações de segurança em ambientes embebidos, mecanismos de isolamento, e segurança de aplicações web e utilizando agentes de IA, justificando os resultados obtidos (BL6).

    A UC aborda as seguintes áreas principais:
    P1. Modelação de ameaças e princípios de conceção de segurança (10%)
    P2. Ciclo de vida do desenvolvimento seguro de software e segurança da cadeia de fornecimento de software (20%)
    P3. Segurança de sistemas embebidos e IoT, incluindo ataques por canais laterais e injeção de falhas (20%)
    P4. Isolamento de aplicações e segurança de ambientes de virtualização (20%)
    P5. Segurança de aplicações web com agentes IA e sistemas emergentes, incluindo segurança de AR/VR e de LLM (30%)

  • 10 ECTS

    Preparação para Dissertação

    ECTS
    10
    Período
    1º semestre
    Responsável
    Nuno Silva
    Teórica
    1 hora
    Teórico-prática
    2 horas
    Orientação tutorial
    1 hora

    O principal objetivo desta UC é desenvolver uma proposta de trabalho que permita orientar a realização bem-sucedida de um projeto complexo de Engenharia Informática, integrando as suas dimensões científica, técnica, ética e de planeamento.
    No final da UC, o/a estudante deve ser capaz de:
    CO1. Analisar e avaliar criticamente um problema de Engenharia Informática, considerando o contexto, as boas práticas de engenharia e os princípios éticos aplicáveis (NB: 5/6).
    CO2. Elaborar uma revisão da literatura, pesquisando, analisando criticamente, relacionando e sintetizando conhecimento científico e técnico relevante, respeitando princípios éticos e de integridade académica (NB: 6/6).
    CO3. Conceber um plano integrado e exequível para um projeto complexo, considerando âmbito, atividades, recursos, calendarização, custos, qualidade, riscos, marcos e mecanismos de acompanhamento (NB: 6/6).
    CO4. Conceber uma proposta de trabalho coerente, articulando o problema, objetivos e/ou questões de investigação, conhecimento existente, abordagem metodológica, solução a desenvolver, avaliação e planeamento do projeto (NB: 6/6).
    CO5. Comunicar a proposta por escrito e oralmente com rigor técnico, científico e ético, fundamentando e defendendo criticamente as opções tomadas (NB: 5/6).

    P1. Ética em Engenharia e Investigação (9%)
    P2. Revisão da Literatura no Estado da Arte (9%)
    P3. Organização pessoal (18%)
    P4. Planeamento de Projetos (46%)
    P5. Métodos de Investigação (9%)
    P6. Escrita Técnica-Scientífica (9%)
    P1-P6 são as partes cobertas em módulos curriculares com as mesmas designações.

  • 7,5 ECTS

    Aprendizagem Automática

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Elsa Ferreira Gomes
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Explicar os principais métodos e algoritmos de aprendizagem automática. (NB:2/6)
    CO2. Selecionar e aplicar técnicas, métodos e conceitos de aprendizagem automática. (NB:4/6)
    CO3. Implementar processos de aprendizagem automática e analisar resultados obtidos. (NB:4/6)
    CO4. Avaliar a aprendizagem e comparar diferentes modelos. (NB:5/6)

    CP1. Conceitos básicos de aprendizagem automática. (5%)
    CP2. Aprendizagem supervisionada, não supervisionada e por reforço. (5%)
    CP3. Regressão linear e múltipla. (10%)
    CP4. Classificação: Regressão Logística e Análise Discriminante Linear (LDA). (10%)
    CP5. Métodos de reamostragem: Validação cruzada e Bootstrap. (10%)
    CP6. Métodos de regularização: Ridge e LASSO. (10%)
    CP7. Modelos não lineares: Splines e Modelos aditivos generalizados (GAM). (10%)
    CP8. Métodos baseados em árvores: Árvores de Decisão, Florestas aleatórias. (10%)
    CP9. Máquinas de suporte vetorial (SVM). (10%)
    CP10. Aprendizagem não supervisionada. Análise de Componentes Principais (PCA). Métodos de agrupamento: K-means. Métodos de agrupamento: K-means e Agrupamento Hierárquico. (10%)
    CP11. Introdução à aprendizagem por reforço. Q-learning: equações de Bellman, cadeias de Markov e Processo de Decisão de Markov, Q-function e diferença temporal. (10%)

  • 7,5 ECTS

    Armazéns de Dados

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Paulo Oliveira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    A unidade curricular tem como objetivos gerais formar alunos com capacidade para planear, implementar, gerir e explorar um sistema de armazém de dados no âmbito de uma organização.
    Esta unidade curricular contribui com conhecimentos e competências complementares de:
    1. Exploração e manutenção de dados em ambientes caracterizados por volumes de dados elevados, heterogéneos e originários de diversas fontes.
    2. Modelação e representação eficiente de dados na realização de inquéritos que envolvem elevados volumes de dados.
    3. Integração de dados provenientes de fontes heterogéneas.
    No final desta unidade curricular, o aluno deverá ser capaz de:
    CO1. Descrever a terminologia e os conceitos utilizados na área (Nível de Bloom: 2).
    CO2. Explicar uma arquitetura de armazéns de dados e, em particular, o objetivo dos seus diversos componentes (NB: 4).
    CO3. Aplicar métodos de forma justificada que suportem a análise, modelação, desenho e implementação de armazéns de dados (NB: 5).
    CO4. Equacionar de forma crítica cenários alternativos de modelação, desenho e implementação de um armazém de dados (NB: 5).
    CO5. Combinar técnicas que suportem a realização de um processo de extração, transformação, limpeza, integração e carregamento de dados num armazém de dados (NB: 6).
    CO6. Combinar técnicas que otimizem o funcionamento de um armazém de dados (NB: 6).
    CO7. Conceber e desenvolver análises multidimensionais de dados para responder a requisitos de negócio. (NB: 6).

    1 Introdução aos armazéns de dados (8%)
    - Conceito
    - Características principais
    - Conceito de Data Mart
    - Visão geral do modelo dimensional
    - Tipos de esquema
    2 Modelação Dimensional (31%)
    - Modelo estrela
    - Tabelas de dimensão
    - Tabela de factos
    - Tipos de factos
    - Dimensão de alteração lenta (SCD)
    - Técnicas de modelação
    3 Arquiteturas de Armazéns de Dados (15%)
    - Corporate information factory
    - Bus architecture
    - Comparação entre arquiteturas
    4 Processo de Extração, Transformação, Limpeza e Carregamento de Dados (23%)
    - Extração de dados
    - Transformação, limpeza e integração de dados
    - Carregamento de dados
    5 Otimização em Armazéns de Dados (8%)
    - Criação de índices
    - Criação de particionamentos
    - Criação de agregações
    6 Tópicos Avançados/de Investigação em Armazéns de Dados (15%)
    - Armazém de dados em tempo real
    - Streaming de dados
    - Data lake
    - Data lakehouse

  • 7,5 ECTS

    Arquitetura de Software

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

    Esta unidade curricular promove conhecimentos e competências de arquitetura de software, principalmente de aplicações empresariais distribuídas/descentralizadas.
    No final da unidade curricular, o/a estudante deve ser capaz de:
    CO1. Debater conceitos, princípios e processos (métodos e táticas) de arquitetura de software e justificar a sua adequação em situações específicas (Nível de Bloom (NL): 5/6).
    CO2. Pesquisar, sistematizar e avaliar drivers arquiteturais e fatores contextuais do software a desenvolver (NL: 5/6).
    CO3. Desenhar a arquitetura de uma aplicação de software, adotando estilos e padrões arquiteturais e considerando drivers arquiteturais e fatores contextuais, para chegar a um compromisso entre benefícios e riscos potenciais e avaliar a sua adequação (NL: 6/6).
    CO4. Construir e evoluir a aplicação de software a partir do design arquitetural selecionado, revendo iterativamente as decisões arquiteturais em função dos resultados da implementação e da evolução dos drivers arquiteturais e fatores contextuais (NL: 6/6).
    CO5. Testar e avaliar a aplicação de software desenvolvida relativamente aos drivers arquitetónicos e fatores contextuais definidos (NL: 5/6).

    P1. Arquitetura de software (10%)
    - Atividades de ciclo de vida
    - O papel do arquiteto
    P2. Drivers arquitetónicos (10%)
    - Finalidade da conceção
    - Atributos de qualidade
    - Requisitos arquiteturais significativos (ASR)
    - Funcionalidade(s) primária(s)
    - Preocupações arquiteturais
    - Restrições
    P3. Conceitos de Design (20%)
    - Estilos e arquiteturas de referência
    - Padrões
    - Táticas
    - Componentes externos
    P4. Conceção arquitetural com Attribute-Driven Design (ADD) (30%)
    - ADD v3.0: principais características
    - Etapas e natureza iterativa
    - Decisões de conceção arquitetural como um processo
    - Teste e avaliação da solução relativamente aos drivers arquitetónicos
    - Documentação durante a conceção
    P5. Arquiteturas Monolíticas Modulares e orientadas a Microserviços (30%)
    - Características
    - Estratégias de migração e decomposição
    - Padrões arquiteturais para sistemas distribuídos/descentralizados
    - Outros estilos e padrões

  • 7,5 ECTS

    Complementos de Sistemas Gráficos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    No final desta UC o estudante deverá ser capaz de abordar e resolver problemas em que o recurso a sistemas gráficos 3D é um requisito fundamental, nomeadamente:
    CO1 - Explicar os conceitos relacionados com os sistemas gráficos 3D, a síntese realística de imagem, a modelação 3D e o conhecimento necessário para desenvolver sistemas gráficos 3D interativos avançados (Nível de Bloom 4);
    CO2 - Analisar/avaliar soluções avançadas para a optimização de sistemas de síntese realística de imagem e as capacidades de software de modelação e síntese realística de imagem (NB 5);
    CO3 - Criar sistemas gráficos 3D interativos avançados (NB 6);
    CO4 - Aplicar ferramentas gráficas padronizadas que visem o desenvolvimento de sistemas gráficos 3D avançados (NB 4).

    CP1 - Modelação 3D (50%)
    1 - Introdução
    2 - Modelação
    3 - Mapeamento de Texturas
    4 - Modificadores
    5 - Normais e Mapas
    6 - Animação
    7 - Renderização
    8 - Apresentação do trabalho
    CP2 - Iluminação e Síntese de Imagem (50%)
    1 - Introdução
    2 - Iluminação Local e Global
    3 - Ray Casting e Ray Tracing
    4 - Intersecção Raio/Objecto
    5 - Técnicas de Aceleração
    6 - Ray Tracing Distribuído
    7 - Radiosidade
    8 - Apresentação do trabalho

  • 7,5 ECTS

    Conceção e Autoria Multimédia

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

    A unidade curricular de Conceção e Autoria Multimédia está focada na análise e desenvolvimento de projetos multimédia utilizando as metodologias e tecnologias mais comuns. O programa inclui análise e gestão de requisitos, desenvolvimento de projeto multimédia, apresentação de exemplos relacionados com áreas específicas de multimédia, testes e garantia de qualidade.
    Na UC de CAMUL são conferidas as seguintes competências: Análise e desenho, programação e testes, vídeo e processamento de áudio, bem como metodologias ágeis para desenvolvimento de software.
    No final da disciplina, os alunos serão capazes de:
    CO1. Aplicar os princípios e etapas das metodologias de projeto multimédia (NB: 3)
    CO2. Analisar e compreender os requisitos específicos da conceção e autoria multimédia para fins específicos, em particular na relação estabelecida com os utilizadores (NB: 4).
    CO3. Aplicar uma metodologia de projeto multimédia na conceção e desenvolvimento de projetos colaborativos ou individuais (NB:6)
    CO4. Analisar e combinar adequadamente elementos multimédia de vários tipos. (NB:5)
    CO5. Avaliar e aplicar eficazmente as ferramentas de autoria e conceção multimédia adequadas para um determinado projeto. (NB: 6)

    1. Projeto Multimédia (8 semanas - teóricas - 1 ECTs: 30%)
    1.1. Abordagens e desenvolvimento baseados em metodologias sistemáticas
    1.1. Etapas do projeto
    1.2. Definição do problema, incluindo a missão, tecnologia, comunicação, requisitos do utilizador (incluindo as necessidades especiais) e questões conexas
    1.3. Conceptualização do processo de autoria
    1.4. Gestão da equipa e recursos de desenvolvimento
    1.5. Desenvolvimento e prototipagem
    1.6. Produção e teste
    2. Aplicações de Multimédia a áreas específicas (7 semanas - teóricas - 3 ECTs: 20%)
    2.1. Educação
    2.2. Medicina
    2.3. Colaboração
    2.4. Comunicação
    2.5. Jogos
    2.6. Acessibilidade
    3. Aplicações de conceção e autoria (13 semanas - práticas - 3,5 ECTs: 50%)
    3.1. Ferramentas de Autor
    3.2. Exemplos e exercicios

  • 7,5 ECTS

    Desenho e Desenvolvimento de Jogos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Carlos Vaz de Carvalho
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular fornece os conceitos e as práticas necessárias para compreender, analisar, projetar, desenvolver, testar e avaliar jogos.
    No final, os alunos serão capazes de:
    CO1. Compreender e implementar os conceitos, métodos e processos para a idealização, desenho e desenvolvimento de jogos (Nível de Bloom 3)
    CO2. Selecionar, utilizar e avaliar ambientes e ferramentas específicas para o desenvolvimento de jogos (Nível 5)
    CO3. Conceber, desenhar, implementar, testar, avaliar e distribuir um jogo (Nível 6)
    CO4. Avaliar o conhecimento adquirido e os processos aprendidos numa perspectiva de I&D&i (Nível 5)

    P1. Jogos e jogos digitais: cultura, conceitos e teorias (15%)
    - Jogo e jogar
    - Jogos digitais
    - Tipos de jogos
    - Análise de jogos
    P2. Desenho de jogos (35%)
    - Conceito de jogo
    - Dinâmica e mecânicas de jogo
    - História e narrativa
    - Prototipagem e playtesting
    - UX em jogos
    - Conceitos técnicos avançados para jogos: DDA, PCG, IA, sincronização multijogador, etc.
    P3. Desenvolvimento de jogos (45%)
    - Tecnologias de desenvolvimento de jogos
    - Motores de Jogos
    - Interface e manuseamento de objectos
    - Definição de luzes e câmaras
    - Scripting
    - Modelação e animação de elementos
    - Física de corpos rígidos
    - Controlo de interação
    - GUI
    - Áudio
    - Sistemas multi-jogador
    - IA para jogos
    - Monetização
    P4. R & D de Jogos Sérios (5%)
    - Linhas de investigação
    - Grupos de investigação, conferências e publicações

  • 7,5 ECTS

    Engenharia de Requisitos

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

    Este curso tem como foco a Engenharia de Requisitos promovendo a gestão dos Requisitos ao longo de todo o ciclo vida do software. Os requisitos precisam ser elicitados, validados, elaborados, negociados e mantidos. Esta disciplina tem como objetivo simular uma Chamada de Propostas (RFP) no contexto de um projeto em equipe, assim os alunos deverão ser capazes de, forma holística, desenvolver um projeto complexo aplicando corretamente as melhores práticas de engenharia de requisitos e de software.
    Ao final deste curso, o aluno deverá ser capaz de:
    CO1 ? Conduzir um processo de elicitação de requisitos de software, incluindo planear e executar a elicitação, identificar diferentes tipos de requisitos, aplicar diferentes técnicas e refinar os requisitos elicitados (BL 5).
    CO2 ? Especificar e analisar os requisitos para uma solução de software, utilizando múltiplas formas de documentação, artefactos, templates e perspectivas (BL 5).
    CO3 ? Validar e negociar requisitos utilizando técnicas adequadas para validação e priorização de requisitos e negociação de conflitos (BL 4).
    CO4 ? Gerir o ciclo de vida dos requisitos, tendo em consideração a necessidade de lidar com a mudança, realizando o mapeamento de requisitos e conhecendo as ferramentas mais relevantes para gerenciamento de requisitos (BL6).
    CO5 ? Projetar, implementar e documentar um protótipo de software que atenda aos requisitos de engenharia (BL 6).
    CO6 - Trabalhar em equipa, planear e gerir o projeto, comunicar e documentar a sua atividade (BL 4)

    P1 - Conceitos-chave de Engenharia de Requisitos (10%)
    P2 - Elicitação de Requisitos (20%)
    P3 - Documentação de Requisitos (15%)
    P4 - Validação e negociação de requisitos (10%)
    P5 - Gestão de Requisitos (10%)
    P6 - Desenvolvimento de Projetos (35%)

  • 7,5 ECTS

    Mineração de Dados

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

    Propósitos e objetivos (max. 1750 caracteres)
    No final do curso os estudantes deverão ser capazes de:
    CO1. Explicar o processo de descoberta de conhecimento (DC) a partir de dados e as suas várias fases. (Bloom Level (BL): 6/6)
    CO2. Traduzir os objetivos de negócio em objetivos de mineração de dados. (BL 5/6)
    CO3. Selecionar, preparar e explorar os dados de acordo com os objetivos de DC e os algoritmos a aplicar aos dados. (BL 5/6)
    CO4. Identificar os algoritmos mais atuais/eficientes de mineração de dados, saber explicar como eles funcionam aplicados a conjuntos de dados e saber combinar diferentes algoritmos de DM de modo a obter melhores resultados. (BL 4/6)
    CO5. Avaliar os modelos obtidos a partir dos dados com as medidas mais adequadas. (BL 5/6)
    CO6. Desenvolver um projeto de mineração de dados para um problema específico, usando a metodologia CRISP-DM, elaborar respetivo relatório, apresentá-lo e defendê-lo. . (BL 6/6)

    P1. Introdução à Ciência de Dados
    - Processo de extração de conhecimento a partir dos dados
    - Metodologias
    P2. Pré-Processamento de Dados
    - Análise Exploratória de Dados
    - Transformação de dados
    - Seleção de atributos
    - Balanceamento de dados
    - Tratamento de valores isolados
    P3. Avaliação de modelos
    - Métodos de Amostragem
    - Métricas de avaliação
    P4. Modelos Preditivos
    - Métodos baseados em distâncias, métodos probabilísticos, métodos baseados em procura, métodos baseados em otimização
    P5. Modelos Múltiplos Preditivos
    - Voting ensemble, stacking, bagging e boosting
    P6. Séries Temporais
    - Tratamento de dados em falta, métodos de interpolação
    - Decomposição de séries temporais
    - Amostragem por janela deslizante, validação cruzada
    - Previsão com métodos estatísticos, métodos Machine Learning e métodos baseados em otimização.

  • 7,5 ECTS

    Organização do Desenvolvimento de Software

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

    O objetivo geral desta UC é que os estudantes sejam capazes de gerir o ciclo de vida de um produto de software, através da adoção de práticas de integração e entrega contínua (CI/CD). São abordados, de forma integrada, requisitos, testes de software, gestão de configurações e versões, construção, publicação e implantação de software. Os estudantes desenvolvem competências que podem aplicar noutras UC e em contextos profissionais de desenvolvimento de software.
    No final da UC, o estudante será capaz de:
    CO1. Identificar, elicitar, analisar e modelar requisitos para a integração e entrega contínua de software (NB: 4/6).
    CO2. Conceber pipelines de integração e entrega contínua adequados aos requisitos e contexto (NB: 6/6).
    CO3. Conceber estratégias de teste, gestão de configurações e controlo de versões adequadas aos requisitos e contexto (NB: 6/6).
    CO4. Construir e evoluir pipelines de integração e entrega contínua, revendo iterativamente as decisões tomadas em função dos resultados obtidos e da evolução dos requisitos e contexto (NB: 6/6).
    CO5. Implementar e avaliar testes, gestão de configurações e controlo de versões, revendo as soluções adotadas em função dos resultados obtidos e dos requisitos (NB: 5/6).
    CO6. Debater e avaliar criticamente de que forma as práticas de integração e entrega contínua respondem aos desafios da gestão do ciclo de vida de produtos de software (NB: 5/6).

    CP1. Sistemas distribuídos de controlo de versões: conceitos, Git, branching e gestão de versões. (10%)
    CP2. Construção e automação de software: ferramentas de build e scripting. (20%)
    CP3. Plataforma tecnológica adotada: aplicação de referência, repositórios de código, infraestrutura computacional e respetiva arquitetura e integração. (10%)
    CP4. Automação de testes: testes unitários, de integração, aceitação e não funcionais; cobertura de código e outras métricas de qualidade. (20%)
    CP5. Gestão do ciclo de vida do produto com integração e entrega contínua (CI/CD): práticas, ferramentas e modelos de maturidade. (10%)
    CP6. Pipelines de integração e entrega contínua: conceção, implementação, scripting e automação. (20%)
    CP7. Publicação e implantação de aplicações: gestão de infraestrutura, ambientes e dados; virtualização, contentores e estratégias de implantação. (10%)

  • 7,5 ECTS

    Qualidade de Software

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

    Qualidade em Engenharia de Software exige a utilização conjugada de práticas, frameworks, metodologias e ferramentas. Este curso aborda tópicos de qualidade sobre o produto e o processo na engenharia de software, com considerações de ética na Engenharia de Software [1].
    Assim, no final da unidade curricular, o aluno deve ser capaz de:
    - CO1) Explicar e relacionar conceitos e princípios de qualidade na engenharia de software, justificando a sua adequação em situações específicas (Nível Bloom (BL): 5/6)
    - CO2) Conceber e aplicar um plano de medição de qualidade de software para garantir estimativas quantitativas realistas de qualidade, fornecendo uma avaliação da incerteza dessas estimativas (BL: 6)
    - CO3) Determinar a adequação de um conjunto de testes considerando os cenários de qualidade, preocupações, restrições e requisitos funcionais para uma determinada aplicação de software (BL: 5)
    - CO4) Desenvolver testes de software equilibrando cenários de qualidade, preocupações, restrições e requisitos funcionais, analisar os resultados e documentar problemas significativos descobertos (BL: 6)
    [1] Gotterbarn, D., Miller, K., & Rogerson, S. (1997). Software engineering code of ethics. Communications of the ACM, 40(11), 110-118. https://doi.org/10.1145/265684.265699

    P1. Qualidade na Engenharia de software (30%)
    - Atributos de qualidade,
    - Processo e produto: modelos e normas internacionais.
    P2. Teste de software (40%)
    - Conceitos e técnicas,
    - Verificação e validação, antecipação de testes,
    - Ciclo de vida,
    - Testes funcionais, de acessibilidade, visuais, de segurança, de arquitetura, de carga, de stresse e de imersão.
    P3. Medição da qualidade do software (20%)
    - Medidas. Tipos de medidas,
    - Medição de atributos de qualidade,
    - Métricas baseadas em metas,
    - Abordagem Goal Question Metric (GQM).
    P4. Código de teste (10%)
    - Manutenibilidade dos testes,
    - Potenciais problemas com testes.

  • 7,5 ECTS

    Tecnologias e Sistemas Multimédia

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final da disciplina os estudantes serão capazes de compreender os conceitos de multimédia, descrever e exemplificar as tecnologias de suporte e conceber aplicações multimédia.
    Os alunos serão ainda capazes de dominar as técnicas fundamentais para tornar estas aplicações eficientes, amigáveis e informativas.
    No final, o estudante deverá ser capaz de:
    CO1 - Criar Aplicações Multimédia Integradas, incluindo Web e HTML5/JavaScript (Bloom level: 6)
    CO2 - Usar Ferramentas de Desenho e Animação (BL 3)
    CO3 - Usar fontes de informação disponíveis para técnicas adicionais alternativas e soluções para problemas específicos (BL 3)
    CO4 - Examinar um sistema de uma forma holística: multimédia como um caminho para uma interação eficaz com indivíduos e a sociedade (BL 4)
    CO5 - Aplicar ferramentas de multimédia no mundo contemporâneo, considerando questões jurídicas, políticas e sociais (BL 3).

    P1. Introdução (5%)
    - Multimedia Systems;
    - Digital Multimedia;
    P2. Conceitos (20%)
    - Multimedia Documents;
    - Coding and Compression
    - Voice/Audio;
    - MIDI;
    - Text;
    - Graphics;
    - Human Vision;
    - Images;
    - Vídeo.
    P3. Tecnologias (25%)
    - Home Cinema; Digital Cinema; Digital Photography
    - Digital Rights Management;
    - Game Consoles; Alternative Displays
    P4. Aplicações HTML5/JavaScript (50%)
    - Creating Graphics and Animations
    - MAPA Awards
    - Programming Multimedia Applications

  • 7,5 ECTS

    Tópicos Avançados de Bases de Dados

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

    Pretende-se que o estudante após esta unidade curricular seja capaz de identificar e solucionar problemas e questões envolvidas em SGBDs.
    No final desta UC o estudante deverá ser capaz de:
    CO1. Explicar os problemas relacionados com gestão de dados (BL4)
    CO2. Comparar e descrever os mais recentes desenvolvimentos na área de gestão de dados (BL4)
    CO3. Compreender as técnicas de modelação de dados orientada por documentos, por chave/valor, colunas-chave e por grafos, e selecionar soluções adequadas tendo em conta o tipo de informação e os requisitos funcionais dos sistemas a desenvolver; (BL5)
    C04. Interpretar e aplicar estruturas de armazenamento de Base de dados e técnicas de acesso para melhorar a performance. (BL3)
    CO5. Implantar e operar sistemas de gestão de dados adequados ao domínio e conforme os requisitos (BL6)

    CP1. Problemas e desafios recentes com o armazenamento e manipulação de conjuntos de dados heterogéneos e em grande volume;
    CP2. Performance Tuning and Query Optimization;
    CP3. Base de dados distribuídas;
    CP4. Sistemas de armazenamento e manipulação de dados, relacionais/não-relacionais;
    CP5. Pesquisa e Indexação em sistemas não relacionais.

2º ano | 2º semestre

  • 30 ECTS

    Dissertação

    ECTS
    30
    Período
    2º semestre
    Responsável
    Isabel Praça
    Orientação tutorial
    1 hora

    Tem por objetivo o desenvolvimento de trabalho de pesquisa e desenvolvimento conducente à preparação de uma dissertação de natureza técnico-científica sobre um tema da área de conhecimento do curso.
    O trabalho deve envolver componentes de caráter teórico e prático, promovendo a abordagem de problemas novos, a recolha de informação e bibliografia pertinentes, a seleção fundamentada dos métodos de abordagens, o design duma solução para o problema proposto, a respetiva implementação e avaliação experimental e posterior a análise crítica dos resultados.
    Ao final deste curso o aluno deverá ser capaz de:
    CO1. Interpretar o problema a resolver, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO2. Sintetizar o conhecimento existente de ciências e boas práticas de engenharia informática para a resolução do problema (Bloom Level (BL): 6/6)
    CO3. Avaliar diferentes abordagens para a resolução do problema pela adoção ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO4. Desenhar uma solução para o problema adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO5. Construir a solução para o problema aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO6. Avaliar a solução desenhada/construída aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO7. Descrever de forma sintática e semanticamente rigorosa os processos e resultados dos pontos anteriores, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)

    De acordo com o enunciado de projeto aprovado pelo RUC de DIMEI e aceite pelo Estudante, pelo Orientador (docente doutorado ou especialista) pelo Coorientador (no caso de existir) e pelo Supervisor da organização onde o projeto/estágio se desenrole (se existir).

1º ano | 1º semestre

  • 7,5 ECTS

    Aprendizagem Automática

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Elsa Ferreira Gomes
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Explicar os principais métodos e algoritmos de aprendizagem automática. (NB:2/6)
    CO2. Selecionar e aplicar técnicas, métodos e conceitos de aprendizagem automática. (NB:4/6)
    CO3. Implementar processos de aprendizagem automática e analisar resultados obtidos. (NB:4/6)
    CO4. Avaliar a aprendizagem e comparar diferentes modelos. (NB:5/6)

    CP1. Conceitos básicos de aprendizagem automática. (5%)
    CP2. Aprendizagem supervisionada, não supervisionada e por reforço. (5%)
    CP3. Regressão linear e múltipla. (10%)
    CP4. Classificação: Regressão Logística e Análise Discriminante Linear (LDA). (10%)
    CP5. Métodos de reamostragem: Validação cruzada e Bootstrap. (10%)
    CP6. Métodos de regularização: Ridge e LASSO. (10%)
    CP7. Modelos não lineares: Splines e Modelos aditivos generalizados (GAM). (10%)
    CP8. Métodos baseados em árvores: Árvores de Decisão, Florestas aleatórias. (10%)
    CP9. Máquinas de suporte vetorial (SVM). (10%)
    CP10. Aprendizagem não supervisionada. Análise de Componentes Principais (PCA). Métodos de agrupamento: K-means. Métodos de agrupamento: K-means e Agrupamento Hierárquico. (10%)
    CP11. Introdução à aprendizagem por reforço. Q-learning: equações de Bellman, cadeias de Markov e Processo de Decisão de Markov, Q-function e diferença temporal. (10%)

  • 7,5 ECTS

    Armazéns de Dados

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Paulo Oliveira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    A unidade curricular tem como objetivos gerais formar alunos com capacidade para planear, implementar, gerir e explorar um sistema de armazém de dados no âmbito de uma organização.
    Esta unidade curricular contribui com conhecimentos e competências complementares de:
    1. Exploração e manutenção de dados em ambientes caracterizados por volumes de dados elevados, heterogéneos e originários de diversas fontes.
    2. Modelação e representação eficiente de dados na realização de inquéritos que envolvem elevados volumes de dados.
    3. Integração de dados provenientes de fontes heterogéneas.
    No final desta unidade curricular, o aluno deverá ser capaz de:
    CO1. Descrever a terminologia e os conceitos utilizados na área (Nível de Bloom: 2).
    CO2. Explicar uma arquitetura de armazéns de dados e, em particular, o objetivo dos seus diversos componentes (NB: 4).
    CO3. Aplicar métodos de forma justificada que suportem a análise, modelação, desenho e implementação de armazéns de dados (NB: 5).
    CO4. Equacionar de forma crítica cenários alternativos de modelação, desenho e implementação de um armazém de dados (NB: 5).
    CO5. Combinar técnicas que suportem a realização de um processo de extração, transformação, limpeza, integração e carregamento de dados num armazém de dados (NB: 6).
    CO6. Combinar técnicas que otimizem o funcionamento de um armazém de dados (NB: 6).
    CO7. Conceber e desenvolver análises multidimensionais de dados para responder a requisitos de negócio. (NB: 6).

    1 Introdução aos armazéns de dados (8%)
    - Conceito
    - Características principais
    - Conceito de Data Mart
    - Visão geral do modelo dimensional
    - Tipos de esquema
    2 Modelação Dimensional (31%)
    - Modelo estrela
    - Tabelas de dimensão
    - Tabela de factos
    - Tipos de factos
    - Dimensão de alteração lenta (SCD)
    - Técnicas de modelação
    3 Arquiteturas de Armazéns de Dados (15%)
    - Corporate information factory
    - Bus architecture
    - Comparação entre arquiteturas
    4 Processo de Extração, Transformação, Limpeza e Carregamento de Dados (23%)
    - Extração de dados
    - Transformação, limpeza e integração de dados
    - Carregamento de dados
    5 Otimização em Armazéns de Dados (8%)
    - Criação de índices
    - Criação de particionamentos
    - Criação de agregações
    6 Tópicos Avançados/de Investigação em Armazéns de Dados (15%)
    - Armazém de dados em tempo real
    - Streaming de dados
    - Data lake
    - Data lakehouse

  • 7,5 ECTS

    Mineração de Dados

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

    Propósitos e objetivos (max. 1750 caracteres)
    No final do curso os estudantes deverão ser capazes de:
    CO1. Explicar o processo de descoberta de conhecimento (DC) a partir de dados e as suas várias fases. (Bloom Level (BL): 6/6)
    CO2. Traduzir os objetivos de negócio em objetivos de mineração de dados. (BL 5/6)
    CO3. Selecionar, preparar e explorar os dados de acordo com os objetivos de DC e os algoritmos a aplicar aos dados. (BL 5/6)
    CO4. Identificar os algoritmos mais atuais/eficientes de mineração de dados, saber explicar como eles funcionam aplicados a conjuntos de dados e saber combinar diferentes algoritmos de DM de modo a obter melhores resultados. (BL 4/6)
    CO5. Avaliar os modelos obtidos a partir dos dados com as medidas mais adequadas. (BL 5/6)
    CO6. Desenvolver um projeto de mineração de dados para um problema específico, usando a metodologia CRISP-DM, elaborar respetivo relatório, apresentá-lo e defendê-lo. . (BL 6/6)

    P1. Introdução à Ciência de Dados
    - Processo de extração de conhecimento a partir dos dados
    - Metodologias
    P2. Pré-Processamento de Dados
    - Análise Exploratória de Dados
    - Transformação de dados
    - Seleção de atributos
    - Balanceamento de dados
    - Tratamento de valores isolados
    P3. Avaliação de modelos
    - Métodos de Amostragem
    - Métricas de avaliação
    P4. Modelos Preditivos
    - Métodos baseados em distâncias, métodos probabilísticos, métodos baseados em procura, métodos baseados em otimização
    P5. Modelos Múltiplos Preditivos
    - Voting ensemble, stacking, bagging e boosting
    P6. Séries Temporais
    - Tratamento de dados em falta, métodos de interpolação
    - Decomposição de séries temporais
    - Amostragem por janela deslizante, validação cruzada
    - Previsão com métodos estatísticos, métodos Machine Learning e métodos baseados em otimização.

  • 7,5 ECTS

    Tópicos Avançados de Bases de Dados

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

    Pretende-se que o estudante após esta unidade curricular seja capaz de identificar e solucionar problemas e questões envolvidas em SGBDs.
    No final desta UC o estudante deverá ser capaz de:
    CO1. Explicar os problemas relacionados com gestão de dados (BL4)
    CO2. Comparar e descrever os mais recentes desenvolvimentos na área de gestão de dados (BL4)
    CO3. Compreender as técnicas de modelação de dados orientada por documentos, por chave/valor, colunas-chave e por grafos, e selecionar soluções adequadas tendo em conta o tipo de informação e os requisitos funcionais dos sistemas a desenvolver; (BL5)
    C04. Interpretar e aplicar estruturas de armazenamento de Base de dados e técnicas de acesso para melhorar a performance. (BL3)
    CO5. Implantar e operar sistemas de gestão de dados adequados ao domínio e conforme os requisitos (BL6)

    CP1. Problemas e desafios recentes com o armazenamento e manipulação de conjuntos de dados heterogéneos e em grande volume;
    CP2. Performance Tuning and Query Optimization;
    CP3. Base de dados distribuídas;
    CP4. Sistemas de armazenamento e manipulação de dados, relacionais/não-relacionais;
    CP5. Pesquisa e Indexação em sistemas não relacionais.

1º ano | 2º semestre

  • 7,5 ECTS

    Aprendizagem Profunda

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

    No final da UC o aluno deverá ser capaz de:
    - Mediante conhecimentos sólidos e estruturantes em Aprendizagem Profunda, técnicas e suas aplicações, discutir e explicar os fundamentos dos algoritmos AP e desenvolver, implementar e testar modelos de AP em problemas práticos de diferentes domínios de aplicação.
    - Compreender os fundamentos dos algoritmos de Aprendizagem Profunda
    - Aplicar os conhecimentos adquiridos em novas situações
    - Assumir 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 UC o aluno deverá ser capaz de:
    CO1 Caracterizar o estado da arte das técnicas/algoritmos de Aprendizagem Profunda e seu potencial de aplicação em engenharia e ciências aplicadas.(NB:2/6)
    CO2-Discutir as técnicas básicas de AP para o desenvolvimento de abordagens no domínio da Engenharia dos Dados.(NB:2/6)
    CO3. Explicar os principais algoritmos e arquiteturas básicas de Aprendizagem Profunda.(NB:2/6)
    CO4. Selecionar e aplicar técnicas, métodos e conceitos de Aprendizagem Profunda. (NB:4/6)
    CO5. Analisar e Implementar processos e modelos de Aprendizagem Profunda, otimizar os seus híper-parâmetros e treiná-los. (NB:4/6)
    CO6. Avaliar o desempenho dos modelos e a qualidade dos resultados. Comparar o desempenho de diferentes modelos. (NB:5/6)
    CO7. Trabalhar em grupo e produzir artigos científicos, e comunicação oral em português/inglês. (NB:5/6)

    P1-Aprendizagem Profunda(AP)?25%
    -Redes Neuronais versus AP
    -Redes Neuronais:conceitos básicos,funcionamento de um neurónio, redes feedforward,algoritmos de treino,funções de ativação
    -Perspetiva Histórica
    -Arquiteturas,algoritmos de treino,regularização e dropout,aprendizagem multi-tarefa
    -Embeddings e transferência de conhecimento em modelos
    P2-Redes Neuronais Convolucionais?30%
    -Blocos de construção,convoluções,técnicas de treino,tipos de camadas e arquiteturas, aprendizagem por transferência
    -Redes CNN e suas aplicações
    P3-Redes neuronais Recorrentes-30%
    -Tipos de camadas e arquiteturas das redes,redes com memória,mecanismos de atenção
    -Modelação sequencial com RNN
    -Redes recorrentes fechadas e memória de curto prazo(LSTM)
    -Redes RNN e suas aplicações
    P4-Modelos Generativos-5%
    -Modelos autoregressivos
    -AutoEncoders Variacionais
    -Redes adversas generativas
    -Transformers
    P5-Aprendizagem por Reforço Profundo-5%
    P6-Tópicos avançados:Responsible AI, Agentic AI

  • 7,5 ECTS

    Mineração de Texto e Recuperação de Informação

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

    No final da unidade curricular o estudante deve estar habilitado a:
    CO1. Descrever e explicar os principais conceitos e componentes da recuperação de informação e da mineração de texto (NB4).
    CO2. Comparar diferentes técnicas e abordagens para recuperação de informação e descrever as suas limitações (NB5).
    CO3. Comparar diferentes técnicas e abordagens para mineração de texto e descrever as suas limitações (NB5).
    CO4. Analisar problemas de recuperação de informação e/ou de mineração de texto (NB4).
    CO5. Desenhar e implementar soluções para problemas de recuperação e filtragem de informação (NB6).
    CO6. Desenhar e implementar soluções para problemas de mineração de texto (NB6).

    CP1. Recuperação de informação (60%)
    - Introdução à Recuperação de Informação, Filtragem de Informação, Extração de Informação e Mineração de Texto. Conceitos de recuperação de informação. Características gerais dos sistemas de recuperação.
    - Componentes de um sistema de recuperação de informação
    - Indexação e pesquisa de informação não estruturada.
    - Avaliação em recuperação e extração de informação
    - Apresentação de informação, visualização
    - Processo de recuperação de informação na web, motores de pesquisa
    CP2. Mineração de texto (40%)
    - Modelação de dados semiestruturados e não estruturados. Modelação de textos e conjuntos de textos (corpora). Dicionários, Estruturas de dados, Tolerância de termos.
    - Pré-processamento de texto (stop words, stemming, seleção de atributos, thesauri)
    - Operações sobre texto (POS tagging, NER)
    - Aplicações (classificação, clustering, sentiment analysis)
    - Avaliação em mineração de texto
    - Ferramentas, linguagens e bibliotecas (R, Lucene, Wordnet)

  • 7,5 ECTS

    Segurança e Privacidade de Dados

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

    Após completarem com sucesso esta unidade curricular, os estudantes serão capazes de (Bloom Level - BL):
    CO1 - Conhecer o estado de arte dos conceitos relacionados com criptografia (BL 2)
    CO2 - Saber selecionar e adotar os algoritmos criptográficos em cenários reais, de acordo com os requisitos e as suas propriedades (BL 4/5)
    CO3 - Saber implementar controlos de acesso e segurança no armazenamento de dados (BL 3)
    CO4 - Saber analisar requisitos de privacidade e saber aplicar técnicas para incremento de níveis de privacidade (BL 4)
    CO5 - Definir e implementar políticas de segurança e privacidade dos dados (BL 5)
    CO6 - Conhecer e saber implementar o processo de análise forenses usando ferramentas, técnicas e fontes de dados/observações adequadas (BL 3)

    O programa está dividido nos seguintes módulos (Conteúdo Programático-CP):
    CP1 - Criptografia e Criptoanálise
    CP2 - Integridade e autenticação de dados
    CP3 - Segurança no acesso e armazenamento de dados
    CP4 - Privacidade e Proteção de Dados
    CP5 - Análise Forense digital

  • 7,5 ECTS

    Sistemas de Recomendação

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

    No final desta UC o estudante deverá ser capaz de:
    CO1-Caracterizer a terminologia e conceitos gerais relacionados com os Sistemas de Recomendação (SR) (Nível de Bloom 2/6)
    CO2-Caracterizar o conhecimento necessário para desenvolver processos de análise, adquirir e representar conhecimento e para desenvolver pesquisa na área dos SR (Nível de Bloom 2/6)
    CO3-Analisar novos problemas que podem ser tratados apropriadamente através de SR (Nível de Bloom 4/6)
    CO4-Executar pesquisa bibliográfica para obter as competências necessárias para aplicar novos métodos e técnicas para a implementação de SR (Nível de Bloom 3/6)
    CO5-Aplicar técnicas que permitam implementar SR (Nível de Bloom 3/6)
    CO6-Desenvolver SR através da utilização de ferramentas adequadas (Nível de Bloom 6/6)
    CO7-Avaliar SR (Nível de Bloom 5/6)

    CP1. Introdução aos Sistemas de Recomendação
    CP2. Modelação do Utilizador
    CP3. Sistemas de Recomendação Não Personalizados
    CP4. Sistemas de Recomendação Colaborativos
    CP5. Sistemas de Recomendação Baseados em Conteúdo
    CP6. Sistemas de Recomendação Baseados em Conhecimento
    CP7. Sistemas de Recomendação Híbridos
    CP8. Avaliação de Sistemas de Recomendação
    CP9. Factoração Matricial e Técnicas Avançadas

2º ano | 1º semestre

  • 5 ECTS

    Inovação, Empreendedorismo e Liderança

    ECTS
    5
    Período
    1º semestre
    Responsável
    Mafalda Luisa Ferreira
    Teórica
    1 hora
    Teórico-prática
    2 horas

    No final desta UC o estudante deverá ser capaz de: CO1. Compreender as dimensões envolvidas na gestão de pessoas e equipas (BL 4/6) CO2. Utilizar diferentes ferramentas para identificar, localizar, recuperar e organizar informação necessária para a concretização de um determinado objetivo (BL 6/6) CO3. Gerir procedimentos de forma a organizar, planear, gerir e coordenar atividades que facilitem o desempenho de pessoas e equipas (BL 6/6) CO4. Compreender as dimensões e necessidade de um Plano de Negócio (BL 4/6) CO5. Desenvolver e apresentar um Plano de Negócio (BL 6/6) CO6. Identificar instituições vocacionadas para o apoio à inovação e criação de start-ups (BL 6/6). CO7: Interpretar problemas de forma analítica, crítica e ética com a adoção de ciências de engenharia e boas práticas (Nível Bloom (BL): 5/6)

    CP1. Gestão de Pessoas e Equipas 28,6%
    - Estratégia Organizacional e Recursos Humanos (RH)
    - Da Gestão de RH à Gestão de Pessoas (GP)
    - Processos de Gestão de RH/GP
    - Recrutamento
    - Seleção
    CP2. Inovação e Empreendedorismo 20%
    - Empreendedorismo e Desenvolvimento de Negócios
    - Gestão da Inovação e formulação da Ideia de Negócio
    CP3. Plano de Negócios 30%
    - Plano Estratégico
    - Produtos/Serviços
    - Análise de Mercado
    - Plano de Marketing
    - Plano Financeiro
    CP4. Experimentação e Avaliação em Engenharia (21,4%)
    - Dados: amostragem, processo de coleta, tipos
    - Inferência: estimadores e tipos de estimadores
    - Intervalo de confiança
    - Testes de hipóteses paramétricos e não paramétricos

  • 7,5 ECTS

    Laboratório de Grandes Dados

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Ana Maria Madureira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    CO1. Compreender os conceitos fundamentais e a função de cada componente do ecossistema Big Data. Explicar e caracterizar as diferentes fases do ciclo de vida do Big Data. (NB:2/6)
    CO2. Identificar os desafios criados pelo Big Data e as abordagens/tecnologias de última geração para lidar com estes. (NB:2/6)
    CO3. Modelar problemas para utilização de algoritmos de computação paralela e Big Data na perspetiva da Engenharia de Dados. (NB:5/6)
    CO4. Desenvolver uma arquitetura de Big Data para um dado problema (NB:6/6)
    CO5. Avaliar e selecionar as ferramentas/frameworks de Big Data (armazenamento e distribuição, análise e visualização) a usar de acordo com o cenário proposto (NB:5/6)
    CO6. Desenvolver um projeto de Big Data com recurso a um conjunto de ferramentas atuais para extração de conhecimento a partir de dados em grande escala (NB: 6/6)
    CO7. Trabalhar em grupo e produzir artigos científicos, e comunicação oral em português/inglês. (NB:6/6)

    CP1. Fundamentos de Big Data(30%)
    Conceitos fundamentais, ciclo de vida dos dados, arquiteturas de referência, componentes, infraestrutura e desafios associados ao processamento e análise de dados em larga escala.
    CP2. Computação paralela e frameworks Big Data(30%)
    Princípios de computação paralela e distribuída, armazenamento e processamento de dados em larga escala, processamento batch e streaming, frameworks Big Data, formatos de dados, particionamento e análise de desempenho.
    CP3. Construção de soluções de dados escaláveis(30%)
    Desenho e implementação de pipelines de dados, ingestão, transformação, armazenamento, processamento, análise e visualização. Arquiteturas data lake, lakehouse e data warehouse analítico. Qualidade de dados, reprodutibilidade, orquestração, monitorização e boas práticas de Data Engineering.
    CP4. Tópicos avançados e tendências em Big Data(10%)

  • 10 ECTS

    Preparação para Dissertação

    ECTS
    10
    Período
    1º semestre
    Responsável
    Nuno Silva
    Teórica
    1 hora
    Teórico-prática
    2 horas
    Orientação tutorial
    1 hora

    O principal objetivo desta UC é desenvolver uma proposta de trabalho que permita orientar a realização bem-sucedida de um projeto complexo de Engenharia Informática, integrando as suas dimensões científica, técnica, ética e de planeamento.
    No final da UC, o/a estudante deve ser capaz de:
    CO1. Analisar e avaliar criticamente um problema de Engenharia Informática, considerando o contexto, as boas práticas de engenharia e os princípios éticos aplicáveis (NB: 5/6).
    CO2. Elaborar uma revisão da literatura, pesquisando, analisando criticamente, relacionando e sintetizando conhecimento científico e técnico relevante, respeitando princípios éticos e de integridade académica (NB: 6/6).
    CO3. Conceber um plano integrado e exequível para um projeto complexo, considerando âmbito, atividades, recursos, calendarização, custos, qualidade, riscos, marcos e mecanismos de acompanhamento (NB: 6/6).
    CO4. Conceber uma proposta de trabalho coerente, articulando o problema, objetivos e/ou questões de investigação, conhecimento existente, abordagem metodológica, solução a desenvolver, avaliação e planeamento do projeto (NB: 6/6).
    CO5. Comunicar a proposta por escrito e oralmente com rigor técnico, científico e ético, fundamentando e defendendo criticamente as opções tomadas (NB: 5/6).

    P1. Ética em Engenharia e Investigação (9%)
    P2. Revisão da Literatura no Estado da Arte (9%)
    P3. Organização pessoal (18%)
    P4. Planeamento de Projetos (46%)
    P5. Métodos de Investigação (9%)
    P6. Escrita Técnica-Scientífica (9%)
    P1-P6 são as partes cobertas em módulos curriculares com as mesmas designações.

  • 7,5 ECTS

    Administração de Bases de Dados

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

    Esta UC vai debruçar-se sobre aspetos relacionados com a administração de SGBD e implementação de boas práticas na sua conceção/utilização tendo em conta o desempenho, segurança, escalabilidade e proteção de dados, recuperação de falhas, entre outros.
    No final desta UC o estudante deverá ser capaz de:
    - CO1. Identificar os requisitos funcionais e não funcionais, objetivos e expectativas para armazenamento e gestão de dados/conteúdos (NB2)
    - CO2. Selecionar tecnologias de armazenamento e gestão de dados/conteúdos, de acordo com os requisitos de domínio (NB5)
    - CO3. Conceber infraestrutura escalável e elástica de armazenamento e processamento de grandes quantidades de dados/conteúdos, usando tecnologias distribuídas (NB6)
    - CO4. Planear e implementar procedimentos, operações e tecnologias para gestão de risco para continuidade de negócio e recuperação de desastres, garantindo o cumprimento regulamentar (NB6)
    - CO5. Avaliar a segurança de dados/conteúdos e proteger privacidade do utilizador, e a propriedade intelectual da organização, usando tecnologias apropriadas e cumprindo os regulamentos (NB5)
    - CO6. Realizar configurações e operar sistemas de armazenamento e gestão de dados/conteúdos de acordo com requisitos de Confiabilidade, Integridade, Disponibilidade, Desempenho, Risco/Continuidade, Custo e outros (NB3)
    - CO7. Analisar tecnologias emergentes para compreender o seu potencial. (NB4)

    P1: Conceitos de bases de dados e sua administração (30%)
    - Relacionais vs. não-relacionais
    - Grande-escala, paralelas e distribuídas
    - Transacionais vs. streaming/runtime
    - Cloud (PaaS/SaaS) vs. on-permises
    P2: Implantação e Operação de bases de dados (40%)
    - Tunning (padrões e otimização)
    - Clustering e Indexing
    - Distribuição, Concorrência
    - Escalabilidade e elasticidade
    - Benchmarks e ferramentas
    P3: Segurança de bases de dados (30%)
    - Autenticação & Autorização
    - Logging, Auditing
    - Políticas de backup
    - Resposta a incidentes e recuperação de dados

  • 7,5 ECTS

    Arquitetura de Software

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

    Esta unidade curricular promove conhecimentos e competências de arquitetura de software, principalmente de aplicações empresariais distribuídas/descentralizadas.
    No final da unidade curricular, o/a estudante deve ser capaz de:
    CO1. Debater conceitos, princípios e processos (métodos e táticas) de arquitetura de software e justificar a sua adequação em situações específicas (Nível de Bloom (NL): 5/6).
    CO2. Pesquisar, sistematizar e avaliar drivers arquiteturais e fatores contextuais do software a desenvolver (NL: 5/6).
    CO3. Desenhar a arquitetura de uma aplicação de software, adotando estilos e padrões arquiteturais e considerando drivers arquiteturais e fatores contextuais, para chegar a um compromisso entre benefícios e riscos potenciais e avaliar a sua adequação (NL: 6/6).
    CO4. Construir e evoluir a aplicação de software a partir do design arquitetural selecionado, revendo iterativamente as decisões arquiteturais em função dos resultados da implementação e da evolução dos drivers arquiteturais e fatores contextuais (NL: 6/6).
    CO5. Testar e avaliar a aplicação de software desenvolvida relativamente aos drivers arquitetónicos e fatores contextuais definidos (NL: 5/6).

    P1. Arquitetura de software (10%)
    - Atividades de ciclo de vida
    - O papel do arquiteto
    P2. Drivers arquitetónicos (10%)
    - Finalidade da conceção
    - Atributos de qualidade
    - Requisitos arquiteturais significativos (ASR)
    - Funcionalidade(s) primária(s)
    - Preocupações arquiteturais
    - Restrições
    P3. Conceitos de Design (20%)
    - Estilos e arquiteturas de referência
    - Padrões
    - Táticas
    - Componentes externos
    P4. Conceção arquitetural com Attribute-Driven Design (ADD) (30%)
    - ADD v3.0: principais características
    - Etapas e natureza iterativa
    - Decisões de conceção arquitetural como um processo
    - Teste e avaliação da solução relativamente aos drivers arquitetónicos
    - Documentação durante a conceção
    P5. Arquiteturas Monolíticas Modulares e orientadas a Microserviços (30%)
    - Características
    - Estratégias de migração e decomposição
    - Padrões arquiteturais para sistemas distribuídos/descentralizados
    - Outros estilos e padrões

  • 7,5 ECTS

    Complementos de Sistemas Gráficos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    No final desta UC o estudante deverá ser capaz de abordar e resolver problemas em que o recurso a sistemas gráficos 3D é um requisito fundamental, nomeadamente:
    CO1 - Explicar os conceitos relacionados com os sistemas gráficos 3D, a síntese realística de imagem, a modelação 3D e o conhecimento necessário para desenvolver sistemas gráficos 3D interativos avançados (Nível de Bloom 4);
    CO2 - Analisar/avaliar soluções avançadas para a optimização de sistemas de síntese realística de imagem e as capacidades de software de modelação e síntese realística de imagem (NB 5);
    CO3 - Criar sistemas gráficos 3D interativos avançados (NB 6);
    CO4 - Aplicar ferramentas gráficas padronizadas que visem o desenvolvimento de sistemas gráficos 3D avançados (NB 4).

    CP1 - Modelação 3D (50%)
    1 - Introdução
    2 - Modelação
    3 - Mapeamento de Texturas
    4 - Modificadores
    5 - Normais e Mapas
    6 - Animação
    7 - Renderização
    8 - Apresentação do trabalho
    CP2 - Iluminação e Síntese de Imagem (50%)
    1 - Introdução
    2 - Iluminação Local e Global
    3 - Ray Casting e Ray Tracing
    4 - Intersecção Raio/Objecto
    5 - Técnicas de Aceleração
    6 - Ray Tracing Distribuído
    7 - Radiosidade
    8 - Apresentação do trabalho

  • 7,5 ECTS

    Conceção e Autoria Multimédia

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

    A unidade curricular de Conceção e Autoria Multimédia está focada na análise e desenvolvimento de projetos multimédia utilizando as metodologias e tecnologias mais comuns. O programa inclui análise e gestão de requisitos, desenvolvimento de projeto multimédia, apresentação de exemplos relacionados com áreas específicas de multimédia, testes e garantia de qualidade.
    Na UC de CAMUL são conferidas as seguintes competências: Análise e desenho, programação e testes, vídeo e processamento de áudio, bem como metodologias ágeis para desenvolvimento de software.
    No final da disciplina, os alunos serão capazes de:
    CO1. Aplicar os princípios e etapas das metodologias de projeto multimédia (NB: 3)
    CO2. Analisar e compreender os requisitos específicos da conceção e autoria multimédia para fins específicos, em particular na relação estabelecida com os utilizadores (NB: 4).
    CO3. Aplicar uma metodologia de projeto multimédia na conceção e desenvolvimento de projetos colaborativos ou individuais (NB:6)
    CO4. Analisar e combinar adequadamente elementos multimédia de vários tipos. (NB:5)
    CO5. Avaliar e aplicar eficazmente as ferramentas de autoria e conceção multimédia adequadas para um determinado projeto. (NB: 6)

    1. Projeto Multimédia (8 semanas - teóricas - 1 ECTs: 30%)
    1.1. Abordagens e desenvolvimento baseados em metodologias sistemáticas
    1.1. Etapas do projeto
    1.2. Definição do problema, incluindo a missão, tecnologia, comunicação, requisitos do utilizador (incluindo as necessidades especiais) e questões conexas
    1.3. Conceptualização do processo de autoria
    1.4. Gestão da equipa e recursos de desenvolvimento
    1.5. Desenvolvimento e prototipagem
    1.6. Produção e teste
    2. Aplicações de Multimédia a áreas específicas (7 semanas - teóricas - 3 ECTs: 20%)
    2.1. Educação
    2.2. Medicina
    2.3. Colaboração
    2.4. Comunicação
    2.5. Jogos
    2.6. Acessibilidade
    3. Aplicações de conceção e autoria (13 semanas - práticas - 3,5 ECTs: 50%)
    3.1. Ferramentas de Autor
    3.2. Exemplos e exercicios

  • 7,5 ECTS

    Configuração e Gestão de Sistemas

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

    No final desta unidade curricular, o estudante deve ser capaz de:
    CO1. Aplicar os principais conceitos e princípios de DevOps, incluindo Infrastructure as Code, avaliando a sua adequação a diferentes contextos e requisitos operacionais (Nível de Bloom: 5/6).
    CO2. Avaliar e comparar diferentes soluções para a configuração e gestão de aplicações, sistemas e redes, recorrendo a técnicas de virtualização e simulação e considerando os respetivos requisitos e restrições (Nível de Bloom: 5/6).
    CO3. Conceber e implementar soluções para a configuração e gestão de aplicações, sistemas e redes, tendo em consideração os requisitos, as restrições e as especificidades do ambiente operacional (Nível de Bloom: 6/6).
    CO4. Desenvolver processos de integração entre o desenvolvimento de software e as operações, recorrendo a práticas e ferramentas de integração e entrega contínuas (CI/CD) (Nível de Bloom: 6/6).

    P1. Sistemas de controlo de versões (15%)
    P2. Ferramentas de compilação e automação de builds (15%)
    P3. Máquinas virtuais e contentores de software (25%)
    P4. Gestão de configurações e Infrastructure as Code (15%)
    P5. Pipelines de integração contínua/entrega contínua (CI/CD) (15%)
    P6. Observabilidade: monitorização, logging, tracing e análise de métricas (15%)

  • 7,5 ECTS

    Desenho e Desenvolvimento de Jogos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Carlos Vaz de Carvalho
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular fornece os conceitos e as práticas necessárias para compreender, analisar, projetar, desenvolver, testar e avaliar jogos.
    No final, os alunos serão capazes de:
    CO1. Compreender e implementar os conceitos, métodos e processos para a idealização, desenho e desenvolvimento de jogos (Nível de Bloom 3)
    CO2. Selecionar, utilizar e avaliar ambientes e ferramentas específicas para o desenvolvimento de jogos (Nível 5)
    CO3. Conceber, desenhar, implementar, testar, avaliar e distribuir um jogo (Nível 6)
    CO4. Avaliar o conhecimento adquirido e os processos aprendidos numa perspectiva de I&D&i (Nível 5)

    P1. Jogos e jogos digitais: cultura, conceitos e teorias (15%)
    - Jogo e jogar
    - Jogos digitais
    - Tipos de jogos
    - Análise de jogos
    P2. Desenho de jogos (35%)
    - Conceito de jogo
    - Dinâmica e mecânicas de jogo
    - História e narrativa
    - Prototipagem e playtesting
    - UX em jogos
    - Conceitos técnicos avançados para jogos: DDA, PCG, IA, sincronização multijogador, etc.
    P3. Desenvolvimento de jogos (45%)
    - Tecnologias de desenvolvimento de jogos
    - Motores de Jogos
    - Interface e manuseamento de objectos
    - Definição de luzes e câmaras
    - Scripting
    - Modelação e animação de elementos
    - Física de corpos rígidos
    - Controlo de interação
    - GUI
    - Áudio
    - Sistemas multi-jogador
    - IA para jogos
    - Monetização
    P4. R & D de Jogos Sérios (5%)
    - Linhas de investigação
    - Grupos de investigação, conferências e publicações

  • 7,5 ECTS

    Engenharia de Requisitos

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

    Este curso tem como foco a Engenharia de Requisitos promovendo a gestão dos Requisitos ao longo de todo o ciclo vida do software. Os requisitos precisam ser elicitados, validados, elaborados, negociados e mantidos. Esta disciplina tem como objetivo simular uma Chamada de Propostas (RFP) no contexto de um projeto em equipe, assim os alunos deverão ser capazes de, forma holística, desenvolver um projeto complexo aplicando corretamente as melhores práticas de engenharia de requisitos e de software.
    Ao final deste curso, o aluno deverá ser capaz de:
    CO1 ? Conduzir um processo de elicitação de requisitos de software, incluindo planear e executar a elicitação, identificar diferentes tipos de requisitos, aplicar diferentes técnicas e refinar os requisitos elicitados (BL 5).
    CO2 ? Especificar e analisar os requisitos para uma solução de software, utilizando múltiplas formas de documentação, artefactos, templates e perspectivas (BL 5).
    CO3 ? Validar e negociar requisitos utilizando técnicas adequadas para validação e priorização de requisitos e negociação de conflitos (BL 4).
    CO4 ? Gerir o ciclo de vida dos requisitos, tendo em consideração a necessidade de lidar com a mudança, realizando o mapeamento de requisitos e conhecendo as ferramentas mais relevantes para gerenciamento de requisitos (BL6).
    CO5 ? Projetar, implementar e documentar um protótipo de software que atenda aos requisitos de engenharia (BL 6).
    CO6 - Trabalhar em equipa, planear e gerir o projeto, comunicar e documentar a sua atividade (BL 4)

    P1 - Conceitos-chave de Engenharia de Requisitos (10%)
    P2 - Elicitação de Requisitos (20%)
    P3 - Documentação de Requisitos (15%)
    P4 - Validação e negociação de requisitos (10%)
    P5 - Gestão de Requisitos (10%)
    P6 - Desenvolvimento de Projetos (35%)

  • 7,5 ECTS

    Organização do Desenvolvimento de Software

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

    O objetivo geral desta UC é que os estudantes sejam capazes de gerir o ciclo de vida de um produto de software, através da adoção de práticas de integração e entrega contínua (CI/CD). São abordados, de forma integrada, requisitos, testes de software, gestão de configurações e versões, construção, publicação e implantação de software. Os estudantes desenvolvem competências que podem aplicar noutras UC e em contextos profissionais de desenvolvimento de software.
    No final da UC, o estudante será capaz de:
    CO1. Identificar, elicitar, analisar e modelar requisitos para a integração e entrega contínua de software (NB: 4/6).
    CO2. Conceber pipelines de integração e entrega contínua adequados aos requisitos e contexto (NB: 6/6).
    CO3. Conceber estratégias de teste, gestão de configurações e controlo de versões adequadas aos requisitos e contexto (NB: 6/6).
    CO4. Construir e evoluir pipelines de integração e entrega contínua, revendo iterativamente as decisões tomadas em função dos resultados obtidos e da evolução dos requisitos e contexto (NB: 6/6).
    CO5. Implementar e avaliar testes, gestão de configurações e controlo de versões, revendo as soluções adotadas em função dos resultados obtidos e dos requisitos (NB: 5/6).
    CO6. Debater e avaliar criticamente de que forma as práticas de integração e entrega contínua respondem aos desafios da gestão do ciclo de vida de produtos de software (NB: 5/6).

    CP1. Sistemas distribuídos de controlo de versões: conceitos, Git, branching e gestão de versões. (10%)
    CP2. Construção e automação de software: ferramentas de build e scripting. (20%)
    CP3. Plataforma tecnológica adotada: aplicação de referência, repositórios de código, infraestrutura computacional e respetiva arquitetura e integração. (10%)
    CP4. Automação de testes: testes unitários, de integração, aceitação e não funcionais; cobertura de código e outras métricas de qualidade. (20%)
    CP5. Gestão do ciclo de vida do produto com integração e entrega contínua (CI/CD): práticas, ferramentas e modelos de maturidade. (10%)
    CP6. Pipelines de integração e entrega contínua: conceção, implementação, scripting e automação. (20%)
    CP7. Publicação e implantação de aplicações: gestão de infraestrutura, ambientes e dados; virtualização, contentores e estratégias de implantação. (10%)

  • 7,5 ECTS

    Qualidade de Software

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

    Qualidade em Engenharia de Software exige a utilização conjugada de práticas, frameworks, metodologias e ferramentas. Este curso aborda tópicos de qualidade sobre o produto e o processo na engenharia de software, com considerações de ética na Engenharia de Software [1].
    Assim, no final da unidade curricular, o aluno deve ser capaz de:
    - CO1) Explicar e relacionar conceitos e princípios de qualidade na engenharia de software, justificando a sua adequação em situações específicas (Nível Bloom (BL): 5/6)
    - CO2) Conceber e aplicar um plano de medição de qualidade de software para garantir estimativas quantitativas realistas de qualidade, fornecendo uma avaliação da incerteza dessas estimativas (BL: 6)
    - CO3) Determinar a adequação de um conjunto de testes considerando os cenários de qualidade, preocupações, restrições e requisitos funcionais para uma determinada aplicação de software (BL: 5)
    - CO4) Desenvolver testes de software equilibrando cenários de qualidade, preocupações, restrições e requisitos funcionais, analisar os resultados e documentar problemas significativos descobertos (BL: 6)
    [1] Gotterbarn, D., Miller, K., & Rogerson, S. (1997). Software engineering code of ethics. Communications of the ACM, 40(11), 110-118. https://doi.org/10.1145/265684.265699

    P1. Qualidade na Engenharia de software (30%)
    - Atributos de qualidade,
    - Processo e produto: modelos e normas internacionais.
    P2. Teste de software (40%)
    - Conceitos e técnicas,
    - Verificação e validação, antecipação de testes,
    - Ciclo de vida,
    - Testes funcionais, de acessibilidade, visuais, de segurança, de arquitetura, de carga, de stresse e de imersão.
    P3. Medição da qualidade do software (20%)
    - Medidas. Tipos de medidas,
    - Medição de atributos de qualidade,
    - Métricas baseadas em metas,
    - Abordagem Goal Question Metric (GQM).
    P4. Código de teste (10%)
    - Manutenibilidade dos testes,
    - Potenciais problemas com testes.

  • 7,5 ECTS

    Redes de Computadores

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Ana Raquel Faria
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Propósitos e objetivos (max. 1750 caracteres)
    No final desta UC o aluno deverá ser capaz de:
    CO1. Implementar os requisitos para soluções de redes de comunicação em organizações de pequeno e médio porte. (Bloom Level (BL): 3/6)
    CO2. Implementar redes de comunicação de dados para organizações de pequeno e médio porte, incluindo redes locais e o uso de tecnologias de rede de área ampla conforme os requisitos. (BL:3/6)
    CO3. Implementar o nível de serviço acordado (SLA) com base nos requisitos. (BL:3/6)
    CO4. Identificar a conformidade do SLA em relação aos requisitos, especificações e design. (BL:4/6)
    CO5.Aplicar as ferramentas e técnicas relevantes de gestão da qualidade de serviço. (BL:3/6)
    CO6. Identificar o potencial das tecnologias emergentes. (BL:4/6)

    CP1. Tipos de redes e suas características (8%):
    - LAN, Wireless LAN, Wide Area Networking, Metropolitan Area Network
    - Low-Power Wireless Area Networks (Internet of Things (IoT))
    CP2. Endereçamento, encaminhamento e comutação (60%):
    - IPv4: DHCP, RIP, OSPF, EIGRP (routing dinâmico)
    - IPv6: SLAAC,
    IoT + IPv6: 6loWPAN, RPL
    -VLAN; TVP; GRVP
    - Frame, Jumbo Frame, Superjumbo Frame
    - STP e RSTP
    -DNS
    CP3. Qualidade de serviço (16%):
    - Gestão de tráfego: Shapping and Policing
    - Policy-based routing (PBR)
    CP4. Considerações sobre segurança, restrições e análise (16%):
    - DNSSec
    - Protocolos de aplicação, por ex. HTTPS, FTPS, SMTPS, POPS, SSH

  • 7,5 ECTS

    Segurança de Sistemas e Informação

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

    Esta unidade curricular visa incutir uma atitude de "desconfiança construtiva" na conceção, desenho, desenvolvimento e operação de sistemas que incorporem tecnologias informáticas, atitude essa que será muito útil nas restantes unidades e na vida pessoal e profissional. Espera-se que o estudante saiba aplicar os instrumentos da engenharia da segurança informática de modo efetivo, respeitando os aspetos profissionais e éticos na utilização das soluções existentes. Tendo em conta a sensibilidade e relevância dos temas abordados, o estudante deverá manter-se ao corrente dos desenvolvimentos desta área.
    Após completarem com sucesso esta unidade curricular, os estudantes serão capazes de:
    CO1. Defender a necessidade duma visão holística da segurança de sistemas e infraestruturas informáticas (Bloom Level (BL): 2/3)
    CO2. Adotar conceitos e métodos de gestão e controlo de acessos a sistemas e informação (Bloom Level (BL): 4/5)
    CO3. Definir e implementar políticas de segurança e privacidade dos sistemas e informação em função dos requisitos (Bloom Level (BL): 4/5)
    CO4. Selecionar soluções arquiteturais capazes de dar resposta aos requisitos de segurança do sistema e da informação (Bloom Level (BL): 5)
    CO5. Elaborar e aplicar planos de segurança e contingência, gerindo o risco garantindo a continuidade do negócio, cumprimento o quadro regulatório (Bloom Level (BL): 5)

    O programa está dividido em módulos interligados e tendo como base comum a visão ubíqua da segurança.
    CP1: Controlo de acessos
    CP2: Controlo de sistema
    CP3: Testes e monitorização de sistemas
    CP4: Arquiteturas de sistemas comuns nesta área de conhecimento
    CP5. Continuidade e remoção/reforma do sistema
    CP6. Gestão de risco (Plano de Segurança e Plano de Recuperação de Desastre)

  • 7,5 ECTS

    Tecnologias e Sistemas Multimédia

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final da disciplina os estudantes serão capazes de compreender os conceitos de multimédia, descrever e exemplificar as tecnologias de suporte e conceber aplicações multimédia.
    Os alunos serão ainda capazes de dominar as técnicas fundamentais para tornar estas aplicações eficientes, amigáveis e informativas.
    No final, o estudante deverá ser capaz de:
    CO1 - Criar Aplicações Multimédia Integradas, incluindo Web e HTML5/JavaScript (Bloom level: 6)
    CO2 - Usar Ferramentas de Desenho e Animação (BL 3)
    CO3 - Usar fontes de informação disponíveis para técnicas adicionais alternativas e soluções para problemas específicos (BL 3)
    CO4 - Examinar um sistema de uma forma holística: multimédia como um caminho para uma interação eficaz com indivíduos e a sociedade (BL 4)
    CO5 - Aplicar ferramentas de multimédia no mundo contemporâneo, considerando questões jurídicas, políticas e sociais (BL 3).

    P1. Introdução (5%)
    - Multimedia Systems;
    - Digital Multimedia;
    P2. Conceitos (20%)
    - Multimedia Documents;
    - Coding and Compression
    - Voice/Audio;
    - MIDI;
    - Text;
    - Graphics;
    - Human Vision;
    - Images;
    - Vídeo.
    P3. Tecnologias (25%)
    - Home Cinema; Digital Cinema; Digital Photography
    - Digital Rights Management;
    - Game Consoles; Alternative Displays
    P4. Aplicações HTML5/JavaScript (50%)
    - Creating Graphics and Animations
    - MAPA Awards
    - Programming Multimedia Applications

2º ano | 2º semestre

  • 30 ECTS

    Dissertação

    ECTS
    30
    Período
    2º semestre
    Responsável
    Isabel Praça
    Orientação tutorial
    1 hora

    Tem por objetivo o desenvolvimento de trabalho de pesquisa e desenvolvimento conducente à preparação de uma dissertação de natureza técnico-científica sobre um tema da área de conhecimento do curso.
    O trabalho deve envolver componentes de caráter teórico e prático, promovendo a abordagem de problemas novos, a recolha de informação e bibliografia pertinentes, a seleção fundamentada dos métodos de abordagens, o design duma solução para o problema proposto, a respetiva implementação e avaliação experimental e posterior a análise crítica dos resultados.
    Ao final deste curso o aluno deverá ser capaz de:
    CO1. Interpretar o problema a resolver, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO2. Sintetizar o conhecimento existente de ciências e boas práticas de engenharia informática para a resolução do problema (Bloom Level (BL): 6/6)
    CO3. Avaliar diferentes abordagens para a resolução do problema pela adoção ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO4. Desenhar uma solução para o problema adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO5. Construir a solução para o problema aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO6. Avaliar a solução desenhada/construída aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO7. Descrever de forma sintática e semanticamente rigorosa os processos e resultados dos pontos anteriores, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)

    De acordo com o enunciado de projeto aprovado pelo RUC de DIMEI e aceite pelo Estudante, pelo Orientador (docente doutorado ou especialista) pelo Coorientador (no caso de existir) e pelo Supervisor da organização onde o projeto/estágio se desenrole (se existir).

1º ano | 1º semestre

  • 7,5 ECTS

    Arquitetura de Software

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

    Esta unidade curricular promove conhecimentos e competências de arquitetura de software, principalmente de aplicações empresariais distribuídas/descentralizadas.
    No final da unidade curricular, o/a estudante deve ser capaz de:
    CO1. Debater conceitos, princípios e processos (métodos e táticas) de arquitetura de software e justificar a sua adequação em situações específicas (Nível de Bloom (NL): 5/6).
    CO2. Pesquisar, sistematizar e avaliar drivers arquiteturais e fatores contextuais do software a desenvolver (NL: 5/6).
    CO3. Desenhar a arquitetura de uma aplicação de software, adotando estilos e padrões arquiteturais e considerando drivers arquiteturais e fatores contextuais, para chegar a um compromisso entre benefícios e riscos potenciais e avaliar a sua adequação (NL: 6/6).
    CO4. Construir e evoluir a aplicação de software a partir do design arquitetural selecionado, revendo iterativamente as decisões arquiteturais em função dos resultados da implementação e da evolução dos drivers arquiteturais e fatores contextuais (NL: 6/6).
    CO5. Testar e avaliar a aplicação de software desenvolvida relativamente aos drivers arquitetónicos e fatores contextuais definidos (NL: 5/6).

    P1. Arquitetura de software (10%)
    - Atividades de ciclo de vida
    - O papel do arquiteto
    P2. Drivers arquitetónicos (10%)
    - Finalidade da conceção
    - Atributos de qualidade
    - Requisitos arquiteturais significativos (ASR)
    - Funcionalidade(s) primária(s)
    - Preocupações arquiteturais
    - Restrições
    P3. Conceitos de Design (20%)
    - Estilos e arquiteturas de referência
    - Padrões
    - Táticas
    - Componentes externos
    P4. Conceção arquitetural com Attribute-Driven Design (ADD) (30%)
    - ADD v3.0: principais características
    - Etapas e natureza iterativa
    - Decisões de conceção arquitetural como um processo
    - Teste e avaliação da solução relativamente aos drivers arquitetónicos
    - Documentação durante a conceção
    P5. Arquiteturas Monolíticas Modulares e orientadas a Microserviços (30%)
    - Características
    - Estratégias de migração e decomposição
    - Padrões arquiteturais para sistemas distribuídos/descentralizados
    - Outros estilos e padrões

  • 7,5 ECTS

    Engenharia de Requisitos

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

    Este curso tem como foco a Engenharia de Requisitos promovendo a gestão dos Requisitos ao longo de todo o ciclo vida do software. Os requisitos precisam ser elicitados, validados, elaborados, negociados e mantidos. Esta disciplina tem como objetivo simular uma Chamada de Propostas (RFP) no contexto de um projeto em equipe, assim os alunos deverão ser capazes de, forma holística, desenvolver um projeto complexo aplicando corretamente as melhores práticas de engenharia de requisitos e de software.
    Ao final deste curso, o aluno deverá ser capaz de:
    CO1 ? Conduzir um processo de elicitação de requisitos de software, incluindo planear e executar a elicitação, identificar diferentes tipos de requisitos, aplicar diferentes técnicas e refinar os requisitos elicitados (BL 5).
    CO2 ? Especificar e analisar os requisitos para uma solução de software, utilizando múltiplas formas de documentação, artefactos, templates e perspectivas (BL 5).
    CO3 ? Validar e negociar requisitos utilizando técnicas adequadas para validação e priorização de requisitos e negociação de conflitos (BL 4).
    CO4 ? Gerir o ciclo de vida dos requisitos, tendo em consideração a necessidade de lidar com a mudança, realizando o mapeamento de requisitos e conhecendo as ferramentas mais relevantes para gerenciamento de requisitos (BL6).
    CO5 ? Projetar, implementar e documentar um protótipo de software que atenda aos requisitos de engenharia (BL 6).
    CO6 - Trabalhar em equipa, planear e gerir o projeto, comunicar e documentar a sua atividade (BL 4)

    P1 - Conceitos-chave de Engenharia de Requisitos (10%)
    P2 - Elicitação de Requisitos (20%)
    P3 - Documentação de Requisitos (15%)
    P4 - Validação e negociação de requisitos (10%)
    P5 - Gestão de Requisitos (10%)
    P6 - Desenvolvimento de Projetos (35%)

  • 7,5 ECTS

    Organização do Desenvolvimento de Software

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

    O objetivo geral desta UC é que os estudantes sejam capazes de gerir o ciclo de vida de um produto de software, através da adoção de práticas de integração e entrega contínua (CI/CD). São abordados, de forma integrada, requisitos, testes de software, gestão de configurações e versões, construção, publicação e implantação de software. Os estudantes desenvolvem competências que podem aplicar noutras UC e em contextos profissionais de desenvolvimento de software.
    No final da UC, o estudante será capaz de:
    CO1. Identificar, elicitar, analisar e modelar requisitos para a integração e entrega contínua de software (NB: 4/6).
    CO2. Conceber pipelines de integração e entrega contínua adequados aos requisitos e contexto (NB: 6/6).
    CO3. Conceber estratégias de teste, gestão de configurações e controlo de versões adequadas aos requisitos e contexto (NB: 6/6).
    CO4. Construir e evoluir pipelines de integração e entrega contínua, revendo iterativamente as decisões tomadas em função dos resultados obtidos e da evolução dos requisitos e contexto (NB: 6/6).
    CO5. Implementar e avaliar testes, gestão de configurações e controlo de versões, revendo as soluções adotadas em função dos resultados obtidos e dos requisitos (NB: 5/6).
    CO6. Debater e avaliar criticamente de que forma as práticas de integração e entrega contínua respondem aos desafios da gestão do ciclo de vida de produtos de software (NB: 5/6).

    CP1. Sistemas distribuídos de controlo de versões: conceitos, Git, branching e gestão de versões. (10%)
    CP2. Construção e automação de software: ferramentas de build e scripting. (20%)
    CP3. Plataforma tecnológica adotada: aplicação de referência, repositórios de código, infraestrutura computacional e respetiva arquitetura e integração. (10%)
    CP4. Automação de testes: testes unitários, de integração, aceitação e não funcionais; cobertura de código e outras métricas de qualidade. (20%)
    CP5. Gestão do ciclo de vida do produto com integração e entrega contínua (CI/CD): práticas, ferramentas e modelos de maturidade. (10%)
    CP6. Pipelines de integração e entrega contínua: conceção, implementação, scripting e automação. (20%)
    CP7. Publicação e implantação de aplicações: gestão de infraestrutura, ambientes e dados; virtualização, contentores e estratégias de implantação. (10%)

  • 7,5 ECTS

    Qualidade de Software

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

    Qualidade em Engenharia de Software exige a utilização conjugada de práticas, frameworks, metodologias e ferramentas. Este curso aborda tópicos de qualidade sobre o produto e o processo na engenharia de software, com considerações de ética na Engenharia de Software [1].
    Assim, no final da unidade curricular, o aluno deve ser capaz de:
    - CO1) Explicar e relacionar conceitos e princípios de qualidade na engenharia de software, justificando a sua adequação em situações específicas (Nível Bloom (BL): 5/6)
    - CO2) Conceber e aplicar um plano de medição de qualidade de software para garantir estimativas quantitativas realistas de qualidade, fornecendo uma avaliação da incerteza dessas estimativas (BL: 6)
    - CO3) Determinar a adequação de um conjunto de testes considerando os cenários de qualidade, preocupações, restrições e requisitos funcionais para uma determinada aplicação de software (BL: 5)
    - CO4) Desenvolver testes de software equilibrando cenários de qualidade, preocupações, restrições e requisitos funcionais, analisar os resultados e documentar problemas significativos descobertos (BL: 6)
    [1] Gotterbarn, D., Miller, K., & Rogerson, S. (1997). Software engineering code of ethics. Communications of the ACM, 40(11), 110-118. https://doi.org/10.1145/265684.265699

    P1. Qualidade na Engenharia de software (30%)
    - Atributos de qualidade,
    - Processo e produto: modelos e normas internacionais.
    P2. Teste de software (40%)
    - Conceitos e técnicas,
    - Verificação e validação, antecipação de testes,
    - Ciclo de vida,
    - Testes funcionais, de acessibilidade, visuais, de segurança, de arquitetura, de carga, de stresse e de imersão.
    P3. Medição da qualidade do software (20%)
    - Medidas. Tipos de medidas,
    - Medição de atributos de qualidade,
    - Métricas baseadas em metas,
    - Abordagem Goal Question Metric (GQM).
    P4. Código de teste (10%)
    - Manutenibilidade dos testes,
    - Potenciais problemas com testes.

1º ano | 2º semestre

  • 7,5 ECTS

    Desenvolvimento de Software Seguro

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

    Esta UC aborda os fundamentos e técnicas para conceber e implementar sistemas de software seguros. Também cobre a avaliação de vulnerabilidades de segurança de software, exploração de vulnerabilidades de software, e métodos para proteger software vulnerável.
    No final da UC, o aluno deverá ter adquirido competências para:
    CO1. Avaliar as ameaças, riscos e ataques à segurança dos sistemas de software. (BL5)
    CO2. Conhecer e aplicar as práticas e técnicas associadas a cada fase do ciclo de vida do desenvolvimento de software seguro, justificando a sua adequação. (BL5)
    CO3. Desenvolver software seguro. (BL6)

    P1- Fundamentos e princípios de segurança em software (~15%)
    P2-Modelação e mitigação de ameaças (~15%)
    P3-Padõres para desenvolvimento de software seguro (~15%)
    P4-Práticas de programação de software seguro (~15%)
    P5-Desenho de software seguro (~20%)
    P6-Ciclo de vida do processo de desenvolvimento de software seguro (~20%)

  • 7,5 ECTS

    Engenharia Orientada a Modelos

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

    O principal objetivo desta UC é fornecer aos estudantes competências em engenharia orientada a modelos e algumas abordagens, técnicas e ferramentas relacionadas com ela: engenharia de domínio e modelos de domínio, linguagens específicas de domínio e "Language workbenches", arquiteturas e padrões MDE, engenharia de linha de produtos e plataformas de desenvolvimento de baixo código (low-code). Esta UC prepara os estudantes para integrar essas preocupações no processo de desenvolvimento de software mais convencional.
    No final da UC os estudantes serão capazes de:
    CO1. Analisar a engenharia orientada a modelos como um novo paradigma no qual os modelos são o artefacto central do processo (Bloom Nível: 4)
    CO2. Analisar aplicações práticas do MDE, tais como as linhas de produtos de software e as plataformas "low-code", identificando como princípios e técnicas nucleares de MDE são aplicadas (BN: 4)
    CO3. Conceber e implementar linguagens específicas de domínio e transformações de modelos no contexto de engenharia orientada a modelos usando "Language workbenches" (BN:6)
    CO4. Avaliar abordagens e ferramentas recentes no contexto da engenharia de domínio e da reutilização (BN: 5)
    CO5. Debater sobre opções em projetos relacionados com engenharia orientada a modelos (BN: 5)
    CO6. Colaborar no desenvolvimento em grupo de um projeto de software usando abordagens orientadas a modelos e as suas melhores práticas (BN: 6)

    P1. Engenharia Orientada a modelos - 5%
    - Principios e casos de uso
    - Arquiteturas e standards (p.e. MDA e UML)
    P2. Modelação de domínio - 10%
    P3. Engenharia de software orientada a modelos (MDSE) - 15%
    - Modelação e Metamodelação
    - Validação de modelos
    - Transformação de modelos
    - Integração de MDSE no processo de desenvolvimento
    P4. Linguagens específicas de domínio - 50%
    - Desenvolver uma linguagem de modelação
    - "Language Workbenches"
    - Sintaxe concreta e abstrata
    - Transformações modelo para modelo
    - Transformações modelo para texto
    - Geração de código
    - Gestão de Modelos
    P5. Aplicação e Abordagens relacionadas - 20%
    - Linhas de produtos de software (SPL)
    - Plataformas de desenvolvimento "low-code"
    - DSL internas e externas

  • 7,5 ECTS

    Sistemas Multinúcleo e Distribuídos

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

    Pretende-se que o estudante após a frequência desta UC conheça e domine diferentes abordagens para gerar soluções para problemas que envolvem paralelismo e concorrência, entenda os desafios ligados ao desenvolvimento de software correto e conheça métodos e ferramentas que simplifiquem esta tarefa.
    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Compreender os fundamentos teóricos da programação concorrente (Nível de Bloom:2 )
    CO2. Desenvolver soluções baseadas nos diferentes modelos de coordenação e comunicação em programação concorrente. Nomeadamente, modelos que se baseiam em partilha de recursos e passagem de mensagens. (NB:6)
    CO3. Desenvolver soluções tolerantes a falhas e de elevada performance baseadas na distribuição de código (NB:6)
    CO4. Avaliar um problema aonde uma abordagem concorrente ou paralela seja adequada e ser capaz de o resolver usando um modelo/padrão adequado (produtor-consumidor, master-slave, client-server, thread-pool, etc.). (NB: 6)
    CO5. Identificar aonde é crítica a produção de software correto, nomeadamente em sistemas de elevada complexidade e entender a implementação do processo de verificação de software. (NB:4)

    1. Introdução à concorrência (10%)
    1.1. Programação concorrente vs. paralela
    1.2. Lei de Moore e lei de Amdahl.
    1.3. O modelo de memória da JVM.
    2. Modelo de concorrência baseado em memória partilhada. (10%)
    2.1. Comunicação e sincronização.
    2.2. Regras para o desenho de aplicações multithread.
    3. Análise de implementações concorrentes. (20%)
    3.1. Exclusão mútua: fundamentos e implementação.
    3.1 "Linearizability"
    3.2. Memória partilhada e Consensus
    3.3. Abordagens avançadas: Implementações Lock-free e memória baseada em transações.
    4. Programação paralela (15%)
    4.1. Explorar o paralelismo com programação funcional.
    4.2. Futures, escalonamento e distribuição de tarefas.
    5. Gestão de memória em aplicações concorrentes e paralelas (10%)
    6. Modelo de concorrência com base em mensagens (15%)
    7. Verificação de programas (20%)
    7.1. Máquinas de estados e Model checking
    7.2. Design-by-contract
    7.3. Análise de fluxo.
    7.4. Prova por dedução

  • 7,5 ECTS

    Técnicas Avançadas de Programação

    ECTS
    7,5
    Período
    2º semestre
    Responsável
    Nuno Filipe Malheiro
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    A unidade curricular introduz conceitos, técnicas e abordagens de programação que não são lecionados usualmente no primeiro ciclo do ensino superior. Estas novas temáticas são características nucleares das novas plataformas de desenvolvimento e execução. Para além disso, a unidade curricular introduz temáticas recentes e de grande impacto nos paradigmas de programação futuros.
    No final desta unidade curricular os estudantes devem ser capazes de:
    CO1: Aplicar técnicas de Programação Funcional (NB: 3)
    CO2: Planear a utilização de técnicas de Programação Funcional (NB: 6)
    CO3: Modelar um domínio utilizando técnicas de Programação Funcional (NB: 6)
    CO4: Conceber e Desenvolver Testes Baseados em Propriedades (NB: 6)
    CO5: Conceber e Desenvolver aplicações usando técnicas de Programação Funcional (NB: 6)

    CP1 - Técnicas de Programação Funcional (15%)
    CP2 - Técnicas Funcionais de Modelação de Domínio (25%)
    CP3 - Técnicas de criação automática de Testes Baseados em Propriedades (25%)
    CP4 - Conceitos avançados de Programação Funcional usando Scala (35%).

2º ano | 1º semestre

  • 5 ECTS

    Inovação, Empreendedorismo e Liderança

    ECTS
    5
    Período
    1º semestre
    Responsável
    Mafalda Luisa Ferreira
    Teórica
    1 hora
    Teórico-prática
    2 horas

    No final desta UC o estudante deverá ser capaz de: CO1. Compreender as dimensões envolvidas na gestão de pessoas e equipas (BL 4/6) CO2. Utilizar diferentes ferramentas para identificar, localizar, recuperar e organizar informação necessária para a concretização de um determinado objetivo (BL 6/6) CO3. Gerir procedimentos de forma a organizar, planear, gerir e coordenar atividades que facilitem o desempenho de pessoas e equipas (BL 6/6) CO4. Compreender as dimensões e necessidade de um Plano de Negócio (BL 4/6) CO5. Desenvolver e apresentar um Plano de Negócio (BL 6/6) CO6. Identificar instituições vocacionadas para o apoio à inovação e criação de start-ups (BL 6/6). CO7: Interpretar problemas de forma analítica, crítica e ética com a adoção de ciências de engenharia e boas práticas (Nível Bloom (BL): 5/6)

    CP1. Gestão de Pessoas e Equipas 28,6%
    - Estratégia Organizacional e Recursos Humanos (RH)
    - Da Gestão de RH à Gestão de Pessoas (GP)
    - Processos de Gestão de RH/GP
    - Recrutamento
    - Seleção
    CP2. Inovação e Empreendedorismo 20%
    - Empreendedorismo e Desenvolvimento de Negócios
    - Gestão da Inovação e formulação da Ideia de Negócio
    CP3. Plano de Negócios 30%
    - Plano Estratégico
    - Produtos/Serviços
    - Análise de Mercado
    - Plano de Marketing
    - Plano Financeiro
    CP4. Experimentação e Avaliação em Engenharia (21,4%)
    - Dados: amostragem, processo de coleta, tipos
    - Inferência: estimadores e tipos de estimadores
    - Intervalo de confiança
    - Testes de hipóteses paramétricos e não paramétricos

  • 7,5 ECTS

    Laboratório de Desenvolvimento de Software

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

    Esta unidade curricular tem como objetivo integrar num contexto de projeto em equipa simulando um Request for Proposals (RFP) as temáticas anteriormente abordadas de forma isolada nas unidades curriculares do ramo. Assim sendo, os estudantes enquanto equipa devem ser capazes, de forma holística, de desenvolver um projeto complexo aplicando corretamente as boas práticas de engenharia de software.
    No final desta unidade curricular o estudante deve ser capaz de:
    CO1 ? Gerir um produto de software em ambiente ágil, idealizando e propondo esse novo produto tendo em consideração problemas e contextos atuais e pertinentes para o desenvolvimento sustentável, tais como saúde, energia ou comunidades sustentáveis, entre outros (Nível de Bloom: 6)
    CO2 - Criar a especificação de requisitos de software para uma solução de software (Nível de Bloom: 5)
    CO3 - Desenhar uma solução de software, assegurar aspetos da qualidade do produto e da arquitetura do sistema (Nível de Bloom: 6)
    CO4 - Implementar uma solução de software documentando adequadamente a solução de software desenvolvida (Nível de Bloom: 6)
    CO5 - Trabalhar em equipa, planear e gerir o projeto, comunicar e documentar a sua atividade (Nível de Bloom: 6)

    P1 - Gestão de Produto no âmbito do Software - 10%
    P2 - Desenvolvimento de um projeto - 80%
    P3 - Tópicos sobre tecnologias emergentes - 10%

  • 10 ECTS

    Preparação para Dissertação

    ECTS
    10
    Período
    1º semestre
    Responsável
    Nuno Silva
    Teórica
    1 hora
    Teórico-prática
    2 horas
    Orientação tutorial
    1 hora

    O principal objetivo desta UC é desenvolver uma proposta de trabalho que permita orientar a realização bem-sucedida de um projeto complexo de Engenharia Informática, integrando as suas dimensões científica, técnica, ética e de planeamento.
    No final da UC, o/a estudante deve ser capaz de:
    CO1. Analisar e avaliar criticamente um problema de Engenharia Informática, considerando o contexto, as boas práticas de engenharia e os princípios éticos aplicáveis (NB: 5/6).
    CO2. Elaborar uma revisão da literatura, pesquisando, analisando criticamente, relacionando e sintetizando conhecimento científico e técnico relevante, respeitando princípios éticos e de integridade académica (NB: 6/6).
    CO3. Conceber um plano integrado e exequível para um projeto complexo, considerando âmbito, atividades, recursos, calendarização, custos, qualidade, riscos, marcos e mecanismos de acompanhamento (NB: 6/6).
    CO4. Conceber uma proposta de trabalho coerente, articulando o problema, objetivos e/ou questões de investigação, conhecimento existente, abordagem metodológica, solução a desenvolver, avaliação e planeamento do projeto (NB: 6/6).
    CO5. Comunicar a proposta por escrito e oralmente com rigor técnico, científico e ético, fundamentando e defendendo criticamente as opções tomadas (NB: 5/6).

    P1. Ética em Engenharia e Investigação (9%)
    P2. Revisão da Literatura no Estado da Arte (9%)
    P3. Organização pessoal (18%)
    P4. Planeamento de Projetos (46%)
    P5. Métodos de Investigação (9%)
    P6. Escrita Técnica-Scientífica (9%)
    P1-P6 são as partes cobertas em módulos curriculares com as mesmas designações.

  • 7,5 ECTS

    Administração de Bases de Dados

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

    Esta UC vai debruçar-se sobre aspetos relacionados com a administração de SGBD e implementação de boas práticas na sua conceção/utilização tendo em conta o desempenho, segurança, escalabilidade e proteção de dados, recuperação de falhas, entre outros.
    No final desta UC o estudante deverá ser capaz de:
    - CO1. Identificar os requisitos funcionais e não funcionais, objetivos e expectativas para armazenamento e gestão de dados/conteúdos (NB2)
    - CO2. Selecionar tecnologias de armazenamento e gestão de dados/conteúdos, de acordo com os requisitos de domínio (NB5)
    - CO3. Conceber infraestrutura escalável e elástica de armazenamento e processamento de grandes quantidades de dados/conteúdos, usando tecnologias distribuídas (NB6)
    - CO4. Planear e implementar procedimentos, operações e tecnologias para gestão de risco para continuidade de negócio e recuperação de desastres, garantindo o cumprimento regulamentar (NB6)
    - CO5. Avaliar a segurança de dados/conteúdos e proteger privacidade do utilizador, e a propriedade intelectual da organização, usando tecnologias apropriadas e cumprindo os regulamentos (NB5)
    - CO6. Realizar configurações e operar sistemas de armazenamento e gestão de dados/conteúdos de acordo com requisitos de Confiabilidade, Integridade, Disponibilidade, Desempenho, Risco/Continuidade, Custo e outros (NB3)
    - CO7. Analisar tecnologias emergentes para compreender o seu potencial. (NB4)

    P1: Conceitos de bases de dados e sua administração (30%)
    - Relacionais vs. não-relacionais
    - Grande-escala, paralelas e distribuídas
    - Transacionais vs. streaming/runtime
    - Cloud (PaaS/SaaS) vs. on-permises
    P2: Implantação e Operação de bases de dados (40%)
    - Tunning (padrões e otimização)
    - Clustering e Indexing
    - Distribuição, Concorrência
    - Escalabilidade e elasticidade
    - Benchmarks e ferramentas
    P3: Segurança de bases de dados (30%)
    - Autenticação & Autorização
    - Logging, Auditing
    - Políticas de backup
    - Resposta a incidentes e recuperação de dados

  • 7,5 ECTS

    Aprendizagem Automática

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Elsa Ferreira Gomes
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Explicar os principais métodos e algoritmos de aprendizagem automática. (NB:2/6)
    CO2. Selecionar e aplicar técnicas, métodos e conceitos de aprendizagem automática. (NB:4/6)
    CO3. Implementar processos de aprendizagem automática e analisar resultados obtidos. (NB:4/6)
    CO4. Avaliar a aprendizagem e comparar diferentes modelos. (NB:5/6)

    CP1. Conceitos básicos de aprendizagem automática. (5%)
    CP2. Aprendizagem supervisionada, não supervisionada e por reforço. (5%)
    CP3. Regressão linear e múltipla. (10%)
    CP4. Classificação: Regressão Logística e Análise Discriminante Linear (LDA). (10%)
    CP5. Métodos de reamostragem: Validação cruzada e Bootstrap. (10%)
    CP6. Métodos de regularização: Ridge e LASSO. (10%)
    CP7. Modelos não lineares: Splines e Modelos aditivos generalizados (GAM). (10%)
    CP8. Métodos baseados em árvores: Árvores de Decisão, Florestas aleatórias. (10%)
    CP9. Máquinas de suporte vetorial (SVM). (10%)
    CP10. Aprendizagem não supervisionada. Análise de Componentes Principais (PCA). Métodos de agrupamento: K-means. Métodos de agrupamento: K-means e Agrupamento Hierárquico. (10%)
    CP11. Introdução à aprendizagem por reforço. Q-learning: equações de Bellman, cadeias de Markov e Processo de Decisão de Markov, Q-function e diferença temporal. (10%)

  • 7,5 ECTS

    Armazéns de Dados

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Paulo Oliveira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    A unidade curricular tem como objetivos gerais formar alunos com capacidade para planear, implementar, gerir e explorar um sistema de armazém de dados no âmbito de uma organização.
    Esta unidade curricular contribui com conhecimentos e competências complementares de:
    1. Exploração e manutenção de dados em ambientes caracterizados por volumes de dados elevados, heterogéneos e originários de diversas fontes.
    2. Modelação e representação eficiente de dados na realização de inquéritos que envolvem elevados volumes de dados.
    3. Integração de dados provenientes de fontes heterogéneas.
    No final desta unidade curricular, o aluno deverá ser capaz de:
    CO1. Descrever a terminologia e os conceitos utilizados na área (Nível de Bloom: 2).
    CO2. Explicar uma arquitetura de armazéns de dados e, em particular, o objetivo dos seus diversos componentes (NB: 4).
    CO3. Aplicar métodos de forma justificada que suportem a análise, modelação, desenho e implementação de armazéns de dados (NB: 5).
    CO4. Equacionar de forma crítica cenários alternativos de modelação, desenho e implementação de um armazém de dados (NB: 5).
    CO5. Combinar técnicas que suportem a realização de um processo de extração, transformação, limpeza, integração e carregamento de dados num armazém de dados (NB: 6).
    CO6. Combinar técnicas que otimizem o funcionamento de um armazém de dados (NB: 6).
    CO7. Conceber e desenvolver análises multidimensionais de dados para responder a requisitos de negócio. (NB: 6).

    1 Introdução aos armazéns de dados (8%)
    - Conceito
    - Características principais
    - Conceito de Data Mart
    - Visão geral do modelo dimensional
    - Tipos de esquema
    2 Modelação Dimensional (31%)
    - Modelo estrela
    - Tabelas de dimensão
    - Tabela de factos
    - Tipos de factos
    - Dimensão de alteração lenta (SCD)
    - Técnicas de modelação
    3 Arquiteturas de Armazéns de Dados (15%)
    - Corporate information factory
    - Bus architecture
    - Comparação entre arquiteturas
    4 Processo de Extração, Transformação, Limpeza e Carregamento de Dados (23%)
    - Extração de dados
    - Transformação, limpeza e integração de dados
    - Carregamento de dados
    5 Otimização em Armazéns de Dados (8%)
    - Criação de índices
    - Criação de particionamentos
    - Criação de agregações
    6 Tópicos Avançados/de Investigação em Armazéns de Dados (15%)
    - Armazém de dados em tempo real
    - Streaming de dados
    - Data lake
    - Data lakehouse

  • 7,5 ECTS

    Complementos de Sistemas Gráficos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    No final desta UC o estudante deverá ser capaz de abordar e resolver problemas em que o recurso a sistemas gráficos 3D é um requisito fundamental, nomeadamente:
    CO1 - Explicar os conceitos relacionados com os sistemas gráficos 3D, a síntese realística de imagem, a modelação 3D e o conhecimento necessário para desenvolver sistemas gráficos 3D interativos avançados (Nível de Bloom 4);
    CO2 - Analisar/avaliar soluções avançadas para a optimização de sistemas de síntese realística de imagem e as capacidades de software de modelação e síntese realística de imagem (NB 5);
    CO3 - Criar sistemas gráficos 3D interativos avançados (NB 6);
    CO4 - Aplicar ferramentas gráficas padronizadas que visem o desenvolvimento de sistemas gráficos 3D avançados (NB 4).

    CP1 - Modelação 3D (50%)
    1 - Introdução
    2 - Modelação
    3 - Mapeamento de Texturas
    4 - Modificadores
    5 - Normais e Mapas
    6 - Animação
    7 - Renderização
    8 - Apresentação do trabalho
    CP2 - Iluminação e Síntese de Imagem (50%)
    1 - Introdução
    2 - Iluminação Local e Global
    3 - Ray Casting e Ray Tracing
    4 - Intersecção Raio/Objecto
    5 - Técnicas de Aceleração
    6 - Ray Tracing Distribuído
    7 - Radiosidade
    8 - Apresentação do trabalho

  • 7,5 ECTS

    Conceção e Autoria Multimédia

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

    A unidade curricular de Conceção e Autoria Multimédia está focada na análise e desenvolvimento de projetos multimédia utilizando as metodologias e tecnologias mais comuns. O programa inclui análise e gestão de requisitos, desenvolvimento de projeto multimédia, apresentação de exemplos relacionados com áreas específicas de multimédia, testes e garantia de qualidade.
    Na UC de CAMUL são conferidas as seguintes competências: Análise e desenho, programação e testes, vídeo e processamento de áudio, bem como metodologias ágeis para desenvolvimento de software.
    No final da disciplina, os alunos serão capazes de:
    CO1. Aplicar os princípios e etapas das metodologias de projeto multimédia (NB: 3)
    CO2. Analisar e compreender os requisitos específicos da conceção e autoria multimédia para fins específicos, em particular na relação estabelecida com os utilizadores (NB: 4).
    CO3. Aplicar uma metodologia de projeto multimédia na conceção e desenvolvimento de projetos colaborativos ou individuais (NB:6)
    CO4. Analisar e combinar adequadamente elementos multimédia de vários tipos. (NB:5)
    CO5. Avaliar e aplicar eficazmente as ferramentas de autoria e conceção multimédia adequadas para um determinado projeto. (NB: 6)

    1. Projeto Multimédia (8 semanas - teóricas - 1 ECTs: 30%)
    1.1. Abordagens e desenvolvimento baseados em metodologias sistemáticas
    1.1. Etapas do projeto
    1.2. Definição do problema, incluindo a missão, tecnologia, comunicação, requisitos do utilizador (incluindo as necessidades especiais) e questões conexas
    1.3. Conceptualização do processo de autoria
    1.4. Gestão da equipa e recursos de desenvolvimento
    1.5. Desenvolvimento e prototipagem
    1.6. Produção e teste
    2. Aplicações de Multimédia a áreas específicas (7 semanas - teóricas - 3 ECTs: 20%)
    2.1. Educação
    2.2. Medicina
    2.3. Colaboração
    2.4. Comunicação
    2.5. Jogos
    2.6. Acessibilidade
    3. Aplicações de conceção e autoria (13 semanas - práticas - 3,5 ECTs: 50%)
    3.1. Ferramentas de Autor
    3.2. Exemplos e exercicios

  • 7,5 ECTS

    Configuração e Gestão de Sistemas

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

    No final desta unidade curricular, o estudante deve ser capaz de:
    CO1. Aplicar os principais conceitos e princípios de DevOps, incluindo Infrastructure as Code, avaliando a sua adequação a diferentes contextos e requisitos operacionais (Nível de Bloom: 5/6).
    CO2. Avaliar e comparar diferentes soluções para a configuração e gestão de aplicações, sistemas e redes, recorrendo a técnicas de virtualização e simulação e considerando os respetivos requisitos e restrições (Nível de Bloom: 5/6).
    CO3. Conceber e implementar soluções para a configuração e gestão de aplicações, sistemas e redes, tendo em consideração os requisitos, as restrições e as especificidades do ambiente operacional (Nível de Bloom: 6/6).
    CO4. Desenvolver processos de integração entre o desenvolvimento de software e as operações, recorrendo a práticas e ferramentas de integração e entrega contínuas (CI/CD) (Nível de Bloom: 6/6).

    P1. Sistemas de controlo de versões (15%)
    P2. Ferramentas de compilação e automação de builds (15%)
    P3. Máquinas virtuais e contentores de software (25%)
    P4. Gestão de configurações e Infrastructure as Code (15%)
    P5. Pipelines de integração contínua/entrega contínua (CI/CD) (15%)
    P6. Observabilidade: monitorização, logging, tracing e análise de métricas (15%)

  • 7,5 ECTS

    Desenho e Desenvolvimento de Jogos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Carlos Vaz de Carvalho
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular fornece os conceitos e as práticas necessárias para compreender, analisar, projetar, desenvolver, testar e avaliar jogos.
    No final, os alunos serão capazes de:
    CO1. Compreender e implementar os conceitos, métodos e processos para a idealização, desenho e desenvolvimento de jogos (Nível de Bloom 3)
    CO2. Selecionar, utilizar e avaliar ambientes e ferramentas específicas para o desenvolvimento de jogos (Nível 5)
    CO3. Conceber, desenhar, implementar, testar, avaliar e distribuir um jogo (Nível 6)
    CO4. Avaliar o conhecimento adquirido e os processos aprendidos numa perspectiva de I&D&i (Nível 5)

    P1. Jogos e jogos digitais: cultura, conceitos e teorias (15%)
    - Jogo e jogar
    - Jogos digitais
    - Tipos de jogos
    - Análise de jogos
    P2. Desenho de jogos (35%)
    - Conceito de jogo
    - Dinâmica e mecânicas de jogo
    - História e narrativa
    - Prototipagem e playtesting
    - UX em jogos
    - Conceitos técnicos avançados para jogos: DDA, PCG, IA, sincronização multijogador, etc.
    P3. Desenvolvimento de jogos (45%)
    - Tecnologias de desenvolvimento de jogos
    - Motores de Jogos
    - Interface e manuseamento de objectos
    - Definição de luzes e câmaras
    - Scripting
    - Modelação e animação de elementos
    - Física de corpos rígidos
    - Controlo de interação
    - GUI
    - Áudio
    - Sistemas multi-jogador
    - IA para jogos
    - Monetização
    P4. R & D de Jogos Sérios (5%)
    - Linhas de investigação
    - Grupos de investigação, conferências e publicações

  • 7,5 ECTS

    Mineração de Dados

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

    Propósitos e objetivos (max. 1750 caracteres)
    No final do curso os estudantes deverão ser capazes de:
    CO1. Explicar o processo de descoberta de conhecimento (DC) a partir de dados e as suas várias fases. (Bloom Level (BL): 6/6)
    CO2. Traduzir os objetivos de negócio em objetivos de mineração de dados. (BL 5/6)
    CO3. Selecionar, preparar e explorar os dados de acordo com os objetivos de DC e os algoritmos a aplicar aos dados. (BL 5/6)
    CO4. Identificar os algoritmos mais atuais/eficientes de mineração de dados, saber explicar como eles funcionam aplicados a conjuntos de dados e saber combinar diferentes algoritmos de DM de modo a obter melhores resultados. (BL 4/6)
    CO5. Avaliar os modelos obtidos a partir dos dados com as medidas mais adequadas. (BL 5/6)
    CO6. Desenvolver um projeto de mineração de dados para um problema específico, usando a metodologia CRISP-DM, elaborar respetivo relatório, apresentá-lo e defendê-lo. . (BL 6/6)

    P1. Introdução à Ciência de Dados
    - Processo de extração de conhecimento a partir dos dados
    - Metodologias
    P2. Pré-Processamento de Dados
    - Análise Exploratória de Dados
    - Transformação de dados
    - Seleção de atributos
    - Balanceamento de dados
    - Tratamento de valores isolados
    P3. Avaliação de modelos
    - Métodos de Amostragem
    - Métricas de avaliação
    P4. Modelos Preditivos
    - Métodos baseados em distâncias, métodos probabilísticos, métodos baseados em procura, métodos baseados em otimização
    P5. Modelos Múltiplos Preditivos
    - Voting ensemble, stacking, bagging e boosting
    P6. Séries Temporais
    - Tratamento de dados em falta, métodos de interpolação
    - Decomposição de séries temporais
    - Amostragem por janela deslizante, validação cruzada
    - Previsão com métodos estatísticos, métodos Machine Learning e métodos baseados em otimização.

  • 7,5 ECTS

    Redes de Computadores

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Ana Raquel Faria
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Propósitos e objetivos (max. 1750 caracteres)
    No final desta UC o aluno deverá ser capaz de:
    CO1. Implementar os requisitos para soluções de redes de comunicação em organizações de pequeno e médio porte. (Bloom Level (BL): 3/6)
    CO2. Implementar redes de comunicação de dados para organizações de pequeno e médio porte, incluindo redes locais e o uso de tecnologias de rede de área ampla conforme os requisitos. (BL:3/6)
    CO3. Implementar o nível de serviço acordado (SLA) com base nos requisitos. (BL:3/6)
    CO4. Identificar a conformidade do SLA em relação aos requisitos, especificações e design. (BL:4/6)
    CO5.Aplicar as ferramentas e técnicas relevantes de gestão da qualidade de serviço. (BL:3/6)
    CO6. Identificar o potencial das tecnologias emergentes. (BL:4/6)

    CP1. Tipos de redes e suas características (8%):
    - LAN, Wireless LAN, Wide Area Networking, Metropolitan Area Network
    - Low-Power Wireless Area Networks (Internet of Things (IoT))
    CP2. Endereçamento, encaminhamento e comutação (60%):
    - IPv4: DHCP, RIP, OSPF, EIGRP (routing dinâmico)
    - IPv6: SLAAC,
    IoT + IPv6: 6loWPAN, RPL
    -VLAN; TVP; GRVP
    - Frame, Jumbo Frame, Superjumbo Frame
    - STP e RSTP
    -DNS
    CP3. Qualidade de serviço (16%):
    - Gestão de tráfego: Shapping and Policing
    - Policy-based routing (PBR)
    CP4. Considerações sobre segurança, restrições e análise (16%):
    - DNSSec
    - Protocolos de aplicação, por ex. HTTPS, FTPS, SMTPS, POPS, SSH

  • 7,5 ECTS

    Segurança de Sistemas e Informação

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

    Esta unidade curricular visa incutir uma atitude de "desconfiança construtiva" na conceção, desenho, desenvolvimento e operação de sistemas que incorporem tecnologias informáticas, atitude essa que será muito útil nas restantes unidades e na vida pessoal e profissional. Espera-se que o estudante saiba aplicar os instrumentos da engenharia da segurança informática de modo efetivo, respeitando os aspetos profissionais e éticos na utilização das soluções existentes. Tendo em conta a sensibilidade e relevância dos temas abordados, o estudante deverá manter-se ao corrente dos desenvolvimentos desta área.
    Após completarem com sucesso esta unidade curricular, os estudantes serão capazes de:
    CO1. Defender a necessidade duma visão holística da segurança de sistemas e infraestruturas informáticas (Bloom Level (BL): 2/3)
    CO2. Adotar conceitos e métodos de gestão e controlo de acessos a sistemas e informação (Bloom Level (BL): 4/5)
    CO3. Definir e implementar políticas de segurança e privacidade dos sistemas e informação em função dos requisitos (Bloom Level (BL): 4/5)
    CO4. Selecionar soluções arquiteturais capazes de dar resposta aos requisitos de segurança do sistema e da informação (Bloom Level (BL): 5)
    CO5. Elaborar e aplicar planos de segurança e contingência, gerindo o risco garantindo a continuidade do negócio, cumprimento o quadro regulatório (Bloom Level (BL): 5)

    O programa está dividido em módulos interligados e tendo como base comum a visão ubíqua da segurança.
    CP1: Controlo de acessos
    CP2: Controlo de sistema
    CP3: Testes e monitorização de sistemas
    CP4: Arquiteturas de sistemas comuns nesta área de conhecimento
    CP5. Continuidade e remoção/reforma do sistema
    CP6. Gestão de risco (Plano de Segurança e Plano de Recuperação de Desastre)

  • 7,5 ECTS

    Tecnologias e Sistemas Multimédia

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final da disciplina os estudantes serão capazes de compreender os conceitos de multimédia, descrever e exemplificar as tecnologias de suporte e conceber aplicações multimédia.
    Os alunos serão ainda capazes de dominar as técnicas fundamentais para tornar estas aplicações eficientes, amigáveis e informativas.
    No final, o estudante deverá ser capaz de:
    CO1 - Criar Aplicações Multimédia Integradas, incluindo Web e HTML5/JavaScript (Bloom level: 6)
    CO2 - Usar Ferramentas de Desenho e Animação (BL 3)
    CO3 - Usar fontes de informação disponíveis para técnicas adicionais alternativas e soluções para problemas específicos (BL 3)
    CO4 - Examinar um sistema de uma forma holística: multimédia como um caminho para uma interação eficaz com indivíduos e a sociedade (BL 4)
    CO5 - Aplicar ferramentas de multimédia no mundo contemporâneo, considerando questões jurídicas, políticas e sociais (BL 3).

    P1. Introdução (5%)
    - Multimedia Systems;
    - Digital Multimedia;
    P2. Conceitos (20%)
    - Multimedia Documents;
    - Coding and Compression
    - Voice/Audio;
    - MIDI;
    - Text;
    - Graphics;
    - Human Vision;
    - Images;
    - Vídeo.
    P3. Tecnologias (25%)
    - Home Cinema; Digital Cinema; Digital Photography
    - Digital Rights Management;
    - Game Consoles; Alternative Displays
    P4. Aplicações HTML5/JavaScript (50%)
    - Creating Graphics and Animations
    - MAPA Awards
    - Programming Multimedia Applications

  • 7,5 ECTS

    Tópicos Avançados de Bases de Dados

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

    Pretende-se que o estudante após esta unidade curricular seja capaz de identificar e solucionar problemas e questões envolvidas em SGBDs.
    No final desta UC o estudante deverá ser capaz de:
    CO1. Explicar os problemas relacionados com gestão de dados (BL4)
    CO2. Comparar e descrever os mais recentes desenvolvimentos na área de gestão de dados (BL4)
    CO3. Compreender as técnicas de modelação de dados orientada por documentos, por chave/valor, colunas-chave e por grafos, e selecionar soluções adequadas tendo em conta o tipo de informação e os requisitos funcionais dos sistemas a desenvolver; (BL5)
    C04. Interpretar e aplicar estruturas de armazenamento de Base de dados e técnicas de acesso para melhorar a performance. (BL3)
    CO5. Implantar e operar sistemas de gestão de dados adequados ao domínio e conforme os requisitos (BL6)

    CP1. Problemas e desafios recentes com o armazenamento e manipulação de conjuntos de dados heterogéneos e em grande volume;
    CP2. Performance Tuning and Query Optimization;
    CP3. Base de dados distribuídas;
    CP4. Sistemas de armazenamento e manipulação de dados, relacionais/não-relacionais;
    CP5. Pesquisa e Indexação em sistemas não relacionais.

2º ano | 2º semestre

  • 30 ECTS

    Dissertação

    ECTS
    30
    Período
    2º semestre
    Responsável
    Isabel Praça
    Orientação tutorial
    1 hora

    Tem por objetivo o desenvolvimento de trabalho de pesquisa e desenvolvimento conducente à preparação de uma dissertação de natureza técnico-científica sobre um tema da área de conhecimento do curso.
    O trabalho deve envolver componentes de caráter teórico e prático, promovendo a abordagem de problemas novos, a recolha de informação e bibliografia pertinentes, a seleção fundamentada dos métodos de abordagens, o design duma solução para o problema proposto, a respetiva implementação e avaliação experimental e posterior a análise crítica dos resultados.
    Ao final deste curso o aluno deverá ser capaz de:
    CO1. Interpretar o problema a resolver, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO2. Sintetizar o conhecimento existente de ciências e boas práticas de engenharia informática para a resolução do problema (Bloom Level (BL): 6/6)
    CO3. Avaliar diferentes abordagens para a resolução do problema pela adoção ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO4. Desenhar uma solução para o problema adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO5. Construir a solução para o problema aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO6. Avaliar a solução desenhada/construída aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO7. Descrever de forma sintática e semanticamente rigorosa os processos e resultados dos pontos anteriores, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)

    De acordo com o enunciado de projeto aprovado pelo RUC de DIMEI e aceite pelo Estudante, pelo Orientador (docente doutorado ou especialista) pelo Coorientador (no caso de existir) e pelo Supervisor da organização onde o projeto/estágio se desenrole (se existir).

1º ano | 1º semestre

  • 7,5 ECTS

    Complementos de Sistemas Gráficos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    No final desta UC o estudante deverá ser capaz de abordar e resolver problemas em que o recurso a sistemas gráficos 3D é um requisito fundamental, nomeadamente:
    CO1 - Explicar os conceitos relacionados com os sistemas gráficos 3D, a síntese realística de imagem, a modelação 3D e o conhecimento necessário para desenvolver sistemas gráficos 3D interativos avançados (Nível de Bloom 4);
    CO2 - Analisar/avaliar soluções avançadas para a optimização de sistemas de síntese realística de imagem e as capacidades de software de modelação e síntese realística de imagem (NB 5);
    CO3 - Criar sistemas gráficos 3D interativos avançados (NB 6);
    CO4 - Aplicar ferramentas gráficas padronizadas que visem o desenvolvimento de sistemas gráficos 3D avançados (NB 4).

    CP1 - Modelação 3D (50%)
    1 - Introdução
    2 - Modelação
    3 - Mapeamento de Texturas
    4 - Modificadores
    5 - Normais e Mapas
    6 - Animação
    7 - Renderização
    8 - Apresentação do trabalho
    CP2 - Iluminação e Síntese de Imagem (50%)
    1 - Introdução
    2 - Iluminação Local e Global
    3 - Ray Casting e Ray Tracing
    4 - Intersecção Raio/Objecto
    5 - Técnicas de Aceleração
    6 - Ray Tracing Distribuído
    7 - Radiosidade
    8 - Apresentação do trabalho

  • 7,5 ECTS

    Conceção e Autoria Multimédia

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

    A unidade curricular de Conceção e Autoria Multimédia está focada na análise e desenvolvimento de projetos multimédia utilizando as metodologias e tecnologias mais comuns. O programa inclui análise e gestão de requisitos, desenvolvimento de projeto multimédia, apresentação de exemplos relacionados com áreas específicas de multimédia, testes e garantia de qualidade.
    Na UC de CAMUL são conferidas as seguintes competências: Análise e desenho, programação e testes, vídeo e processamento de áudio, bem como metodologias ágeis para desenvolvimento de software.
    No final da disciplina, os alunos serão capazes de:
    CO1. Aplicar os princípios e etapas das metodologias de projeto multimédia (NB: 3)
    CO2. Analisar e compreender os requisitos específicos da conceção e autoria multimédia para fins específicos, em particular na relação estabelecida com os utilizadores (NB: 4).
    CO3. Aplicar uma metodologia de projeto multimédia na conceção e desenvolvimento de projetos colaborativos ou individuais (NB:6)
    CO4. Analisar e combinar adequadamente elementos multimédia de vários tipos. (NB:5)
    CO5. Avaliar e aplicar eficazmente as ferramentas de autoria e conceção multimédia adequadas para um determinado projeto. (NB: 6)

    1. Projeto Multimédia (8 semanas - teóricas - 1 ECTs: 30%)
    1.1. Abordagens e desenvolvimento baseados em metodologias sistemáticas
    1.1. Etapas do projeto
    1.2. Definição do problema, incluindo a missão, tecnologia, comunicação, requisitos do utilizador (incluindo as necessidades especiais) e questões conexas
    1.3. Conceptualização do processo de autoria
    1.4. Gestão da equipa e recursos de desenvolvimento
    1.5. Desenvolvimento e prototipagem
    1.6. Produção e teste
    2. Aplicações de Multimédia a áreas específicas (7 semanas - teóricas - 3 ECTs: 20%)
    2.1. Educação
    2.2. Medicina
    2.3. Colaboração
    2.4. Comunicação
    2.5. Jogos
    2.6. Acessibilidade
    3. Aplicações de conceção e autoria (13 semanas - práticas - 3,5 ECTs: 50%)
    3.1. Ferramentas de Autor
    3.2. Exemplos e exercicios

  • 7,5 ECTS

    Desenho e Desenvolvimento de Jogos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Paula Escudeiro
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular fornece os conceitos e as práticas necessárias para
    compreender, analisar, projetar, desenvolver, testar e avaliar jogos.
    No final, os alunos serão capazes de
    Co1. Compreender e implementar os conceitos, métodos e processos para à
    idealização, desenho e desenvolvimento de jogos (Nível de Bloom 3)
    CO2. Selecionar, utilizar e avaliar ambientes e ferramentas específicas para o
    desenvolvimento de jogos (Nível 5)
    CO3. Conceber, desenhar, implementar, testar, avaliar e distribuir um jogo (Nível
    D)
    CO4. Avaliar o conhecimento adquirido e os processos aprendidos numa
    perspectiva de I8D84 (Nível 5)

    P1. Jogos e jogos digitais: cultura, conceitos e teorias (15%)
    - Jogo e jogar
    - Jogos digitais
    = Tipos de jogos
    - Análise de jogos
    P2. Desenho de jogos (35%)
    - Conceito de jogo
    - Dinâmica e mecânicas de jogo
    - História e narrativa
    - Prototipagem e playtesting
    - UX em jogos
    - Conceitos técnicos avançados para jogos: DDA, PCG, IA, sincronização
    multijogador, etc
    P3, Desenvolvimento de jogos (45%)
    - Tecnologias de desenvolvimento de jogos
    = Motores de Jogos
    - Interface e manuseamento de objectos
    - Definição de luzes e câmaras
    = Scripting
    - Modelação e animação de elementos
    - Física de corpos rígidos.
    - Controlo de interação
    - GUI
    - Áudio
    - Sistemas multi-jogador
    - IA para jogos
    - Monetização

  • 7,5 ECTS

    Tecnologias e Sistemas Multimédia

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final da disciplina os estudantes serão capazes de compreender os conceitos de multimédia, descrever e exemplificar as tecnologias de suporte e conceber aplicações multimédia.
    Os alunos serão ainda capazes de dominar as técnicas fundamentais para tornar estas aplicações eficientes, amigáveis e informativas.
    No final, o estudante deverá ser capaz de:
    CO1 - Criar Aplicações Multimédia Integradas, incluindo Web e HTML5/JavaScript (Bloom level: 6)
    CO2 - Usar Ferramentas de Desenho e Animação (BL 3)
    CO3 - Usar fontes de informação disponíveis para técnicas adicionais alternativas e soluções para problemas específicos (BL 3)
    CO4 - Examinar um sistema de uma forma holística: multimédia como um caminho para uma interação eficaz com indivíduos e a sociedade (BL 4)
    CO5 - Aplicar ferramentas de multimédia no mundo contemporâneo, considerando questões jurídicas, políticas e sociais (BL 3).

    P1. Introdução (5%)
    - Multimedia Systems;
    - Digital Multimedia;
    P2. Conceitos (20%)
    - Multimedia Documents;
    - Coding and Compression
    - Voice/Audio;
    - MIDI;
    - Text;
    - Graphics;
    - Human Vision;
    - Images;
    - Vídeo.
    P3. Tecnologias (25%)
    - Home Cinema; Digital Cinema; Digital Photography
    - Digital Rights Management;
    - Game Consoles; Alternative Displays
    P4. Aplicações HTML5/JavaScript (50%)
    - Creating Graphics and Animations
    - MAPA Awards
    - Programming Multimedia Applications

1º ano | 2º semestre

  • 7,5 ECTS

    Jogos Sérios e Ludificação

    ECTS
    7,5
    Período
    2º semestre
    Responsável
    Carlos Vaz de Carvalho
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular fornece os conceitos e as práticas necessárias para compreender, analisar, projetar, desenvolver, testar e avaliar jogos sérios e estratégias de gamificação.
    No final, os alunos serão capazes de:
    CO1. Compreender e implementar os conceitos, métodos e processos para a idealização, desenho e desenvolvimento de jogos sérios (Nível de Bloom 3)
    CO2. Compreender e implementar os conceitos, métodos e processos para a idealização, desenho e implementação de ludificação (Nível 3)
    CO3. Conceber, desenhar, implementar, testar, avaliar e distribuir um jogo sério (Nível 6)
    CO4. Conceber, desenhar, implementar, testar e avaliar uma estratégia de ludificação (Nível 6)
    CO5. Avaliar o conhecimento adquirido e os processos aprendidos numa perspetiva de I&D&i (Nível 5)

    P1. Introdução aos Jogos Sérios (25%)
    - Conceitos base
    - Teorias de motivação
    - Taxonomias
    - Questões éticas
    - Análise, conceção, desenho e desenvolvimento de Jogos Sérios
    P2. Categorias de Jogos Sérios (25%)
    - Jogos educativos ou formativos
    - Advergames
    - Awareness raising games
    - Jogos para a saúde
    - Outras categorias de jogos sérios
    P3. Ludificação (40%)
    - Conceitos base
    - Estratégias e frameworks de ludificação
    - Áreas de aplicação
    - Análise, conceção, desenho e desenvolvimento de estratégias de Ludificação
    P4. R & D em Jogos Sérios e Ludificação (10%)
    - Linhas de investigação
    - Grupos de investigação, conferências e publicações

  • 7,5 ECTS

    Sistemas Avançados de Interação

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

    A unidade curricular de Sistemas de Interação Avançados é parte integrante do 1.º ano, 2.º semestre, do curso de Mestrado em Engenharia Informática.
    Visa uma abordagem multidisciplinar engenharia-design, centrada no utilizador, aos processos de conceção e desenvolvimento de sistemas interativos avançados.
    No final da unidade curricular o estudante deve ser capaz de:
    CO1 ? Compreender o papel fundamental que os processos de interação entre o utilizador humano e a máquina desempenham no sucesso das aplicações informáticas (Nível de Bloom (NB) 2/6);
    CO2 ? Compreender os conceitos gerais relacionados com o domínio da Interação Pessoa-Máquina (NB 2/6);
    CO3 - Compreender as bases necessárias à construção de interfaces avançados com o utilizador (NB 2/6);
    CO4 - Aplicar ferramentas de desenvolvimento de interfaces avançados com o utilizador (NB 3/6);
    CO5 - Avaliar a usabilidade de sucessivas versões - iterações - de interfaces avançados que o estudante vier a projetar (NB 5/6);
    CO6 - Criar interfaces avançados com o utilizador sob uma perspetiva comportamental, isto é, centrada no utilizador e nas tarefas que o mesmo efetua, e independente da estrutura ? software/hardware - que as suporta (NB 6/6);
    CO7 - Aplicar o conceito de trabalho em equipa (NB 3/6);
    CO8 - Preparar um documento com o estado da arte de uma dada tecnologia de interação avançada, um relatório e uma apresentação de projeto e discuti-lo perante os avaliadores NB 6/6);

    1 - Fundamentos de Interação Pessoa-Máquina: Usabilidade, Domínio Comportamental e Estrutural, Fatores Humanos (7%).
    2 - Princípios Orientadores do Design de Interação: Normas, Linhas de Orientação e Guias de Estilo (10%).
    3 - Estilos de Interação (Convencionais e Avançados): Janelas, Menus, Formulários, Caixas, Linguagens de Comandos, Interfaces Gráficas, Interfaces de Linguagens Naturais, e novos sistemas de interação emergentes (voz, toque, gestos, visão por computador, AR/VR, BCIs e EyeTracking e novos emergentes) (15%).
    4 - Desenvolvimento Iterativo, Centrado na Avaliação, de Interação avançada com o Utilizador (10%).
    5 - Análise de Sistemas e Design (7%).
    6 - Técnicas de Especificação de Usabilidade e Acessibilidade (14%).
    7 - Sistemas de Interação Avançados (15%).
    8 - Avaliação Formativa (5%).
    9 ? Planeamento e ferramentas de Desenvolvimento de Interfaces Avançados com o Utilizador (17%).

  • 7,5 ECTS

    Tecnologias Assistivas e Inclusivas

    ECTS
    7,5
    Período
    2º semestre
    Responsável
    Paula Escudeiro
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    A UC de Tecnologia Assistiva tem como propósito fornecer aos alunos os conhecimentos e competências necessárias para compreender, analisar, desenvolver e aplicar tecnologias assistivas no apoio às pessoas com deficiência. Os principais objetivos desta UC incluem:
    CO1 Analisar e compreender as necessidades específicas das pessoas com deficiência em relação à TA BL4
    CO2 Aplicar uma metodologia de projeto para conceber e desenvolver soluções de TA BL6
    CO3 Integrar adequadamente elementos multimédia e tecnológicos diversos BL5/6
    CO4 Avaliar e selecionar de forma crítica as ferramentas, dispositivos e TA apropriadas BL5/6
    CO5 Participar efetivamente em projetos colaborativos ou individuais relacionados à TA BL4/6
    CO6 Promover a acessibilidade e inclusão de pessoas com deficiência BL3/4
    CO7 Compreender e aplicar considerações éticas e responsabilidade social no desenvolvimento e uso de TA BL3
    No final da disciplina os alunos estarão aptos a compreender os conceitos fundamentais da TA e sua importância na promoção da inclusão e acessibilidade.

    P1. Projeto tecnologia assistiva (30%)
    1.1. Introdução à Tecnologia Assistiva
    1.2. Categorias de Tecnologia Assistiva
    1.3. Avaliação e Seleção de Tecnologia Assistiva
    1.4. Implementação e Formação
    1.5. Aspectos Éticos, Sociais e Legais
    P2. Aplicações de Multimédia a áreas específicas (20%)
    2.1. Educação
    2.2. Medicina
    2.3. Colaboração
    2.4. Comunicação
    2.5. Jogos
    2.6 Acessibilidade
    2.7. Outras
    P3. Componente integrador do projeto de tecnologia assistiva. (50%)
    3.1. Estudos de Caso e Projetos Práticos
    3.2. Análise de casos reais de sucesso na aplicação de tecnologia assistiva
    3.3. Desenvolvimento de projetos práticos de implementação de tecnologias assistivas

  • 7,5 ECTS

    Tecnologias de Apoio à Aprendizagem

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

    CO1) Explicar e relacionar conceitos, modelos, técnicas e ferramentas fundamentais para conceber e desenvolver recursos e eventos de aprendizagem (Nível Bloom (BL): 4/6).
    CO2) Desenvolver recursos e eventos de aprendizagem após analisar e identificar necessidades (BL: 6/6).
    CO3) Formular um plano de avaliação para recursos de acordo com características de qualidade, como precisão, integridade, usabilidade e capacidade de expansão, e outros fatores (os critérios de avaliação) (BL: 6/6).

    P1. Documentação como recursos de aprendizagem para utilizadores finais e profissionais de informática (40%)
    - Tipos de documentação,
    - Melhores práticas, antipadrões e potenciais problemas,
    - Acessibilidade. Iniciativa WAI/W3C. Teste,
    - Outras características de qualidade,
    - Abordagem Goal, Question, Metric.
    P2. Documentação do utilizador de software (20%)
    - Especificações,
    - Documentação de utilizador de software como parte de projetos. Ferramentas de documentos como código.
    P3. Ensino/aprendizagem com suporte de tecnologia (40%)
    - Métodos de aprendizagem, teorias, taxonomias e modelos,
    - Especificações,
    - Aplicação da IA Generativa na produção de conteúdos educativos,
    - Concepção, desenvolvimento e avaliação de eventos de aprendizagem.

2º ano | 1º semestre

  • 5 ECTS

    Inovação, Empreendedorismo e Liderança

    ECTS
    5
    Período
    1º semestre
    Responsável
    Mafalda Luisa Ferreira
    Teórica
    1 hora
    Teórico-prática
    2 horas

    No final desta UC o estudante deverá ser capaz de: CO1. Compreender as dimensões envolvidas na gestão de pessoas e equipas (BL 4/6) CO2. Utilizar diferentes ferramentas para identificar, localizar, recuperar e organizar informação necessária para a concretização de um determinado objetivo (BL 6/6) CO3. Gerir procedimentos de forma a organizar, planear, gerir e coordenar atividades que facilitem o desempenho de pessoas e equipas (BL 6/6) CO4. Compreender as dimensões e necessidade de um Plano de Negócio (BL 4/6) CO5. Desenvolver e apresentar um Plano de Negócio (BL 6/6) CO6. Identificar instituições vocacionadas para o apoio à inovação e criação de start-ups (BL 6/6). CO7: Interpretar problemas de forma analítica, crítica e ética com a adoção de ciências de engenharia e boas práticas (Nível Bloom (BL): 5/6)

    CP1. Gestão de Pessoas e Equipas 28,6%
    - Estratégia Organizacional e Recursos Humanos (RH)
    - Da Gestão de RH à Gestão de Pessoas (GP)
    - Processos de Gestão de RH/GP
    - Recrutamento
    - Seleção
    CP2. Inovação e Empreendedorismo 20%
    - Empreendedorismo e Desenvolvimento de Negócios
    - Gestão da Inovação e formulação da Ideia de Negócio
    CP3. Plano de Negócios 30%
    - Plano Estratégico
    - Produtos/Serviços
    - Análise de Mercado
    - Plano de Marketing
    - Plano Financeiro
    CP4. Experimentação e Avaliação em Engenharia (21,4%)
    - Dados: amostragem, processo de coleta, tipos
    - Inferência: estimadores e tipos de estimadores
    - Intervalo de confiança
    - Testes de hipóteses paramétricos e não paramétricos

  • 7,5 ECTS

    Laboratório de Aplicações Gráficas e de Interação

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Paula Escudeiro
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Pretende-se que o estudante após a frequência desta UC seja capaz de:
    1. Compreender as aplicações mais usuais das tecnologias gráficas e multimédia, bem como os respetivos modelos de negócio.
    2. Aplicar uma metodologia de projeto multimédia para o desenvolvimento de novas aplicações (produtos e/ou sistemas) que integrem as tecnologias e os modelos de negócios existentes.
    3 Compreender o plano de negócio de um novo produto e/ou sistema.
    Esta unidade curricular desenvolve sinergias com a unidade de Inovação e Empreendedorismo (EINOV), que se desenrola no mesmo semestre, pretendendo-se que os estudantes apliquem as técnicas e ferramentas estudadas
    No final da unidade curricular os estudantes devem ser capazes de:
    CO1-Estruturar, sintetizar e refletir sobre as aplicações mais usuais das tecnologias gráficas e multimédia, bem como os respetivos modelos de negócio. (Nível 5)
    CO2- Analisar o problema adotando boas práticas de engenharia de software (Nível 4)
    CO3- Avaliar diferentes abordagens metodológicas para a resolução do problema, adotando boas práticas de engenharia de software (Nível 5)
    CO4- Conceber novas aplicações (produtos e/ou sistemas) que integrem as tecnologias e os modelos de negócios existentes adotando boas práticas de engenharia de software (Nível 6)
    CO5- Liderar o processo de desenvolvimento em equipa de um produto e/ou sistema. (Nível 6)
    CO6- Analisar os resultados obtidos adotando boas engenharia de software (Nível 4)
    CO7-Avaliar a solução implementada adotando boas práticas de engenharia de software e defender perante um painel o plano de negócio de um novo produto e/ou sistema (Nível 5)

    I Aplicações multimédia avançadas 10%
    1. Jogos
    Plataformas de jogos (PC, consolas, consolas portáteis, smartphones).
    Tipos de jogos. Mundos virtuais (Second Life, World of Warcraft, etc)
    Modelos de negócio.
    2.Aplicações para plataformas móveis
    Plataformas e desenvolvimento de aplicações.
    Exemplos de aplicações. Aplicações em rede com clientes em smartphones
    Modelos de negócio.
    3.GPS e SIG
    Geo-localização mecanismo de funcionamento, aplicações e limitações.
    Aplicações de Sistemas de Informação Geográfica.
    Modelos de negócio.
    4.Exemplos de integração das diferentes tecnologias.
    Estudo de casos reais.
    II Desenvolvimento de aplicações (Aulas práticas) 20%
    Gestão do processo de desenvolvimento de aplicações em equipa utilizando metodologias ágeis e iterativas. Métricas para controlo do processo.
    III Projeto de um produto ou serviço (Aulas práticas) 70%
    Desenvolvimento em grupo de uma proposta de produto ou serviço que aplique pelo menos duas das tecnologias

  • 10 ECTS

    Preparação para Dissertação

    ECTS
    10
    Período
    1º semestre
    Responsável
    Nuno Silva
    Teórica
    1 hora
    Teórico-prática
    2 horas
    Orientação tutorial
    1 hora

    O principal objetivo desta UC é desenvolver uma proposta de trabalho que permita orientar a realização bem-sucedida de um projeto complexo de Engenharia Informática, integrando as suas dimensões científica, técnica, ética e de planeamento.
    No final da UC, o/a estudante deve ser capaz de:
    CO1. Analisar e avaliar criticamente um problema de Engenharia Informática, considerando o contexto, as boas práticas de engenharia e os princípios éticos aplicáveis (NB: 5/6).
    CO2. Elaborar uma revisão da literatura, pesquisando, analisando criticamente, relacionando e sintetizando conhecimento científico e técnico relevante, respeitando princípios éticos e de integridade académica (NB: 6/6).
    CO3. Conceber um plano integrado e exequível para um projeto complexo, considerando âmbito, atividades, recursos, calendarização, custos, qualidade, riscos, marcos e mecanismos de acompanhamento (NB: 6/6).
    CO4. Conceber uma proposta de trabalho coerente, articulando o problema, objetivos e/ou questões de investigação, conhecimento existente, abordagem metodológica, solução a desenvolver, avaliação e planeamento do projeto (NB: 6/6).
    CO5. Comunicar a proposta por escrito e oralmente com rigor técnico, científico e ético, fundamentando e defendendo criticamente as opções tomadas (NB: 5/6).

    P1. Ética em Engenharia e Investigação (9%)
    P2. Revisão da Literatura no Estado da Arte (9%)
    P3. Organização pessoal (18%)
    P4. Planeamento de Projetos (46%)
    P5. Métodos de Investigação (9%)
    P6. Escrita Técnica-Scientífica (9%)
    P1-P6 são as partes cobertas em módulos curriculares com as mesmas designações.

  • 7,5 ECTS

    Administração de Bases de Dados

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

    Esta UC vai debruçar-se sobre aspetos relacionados com a administração de SGBD e implementação de boas práticas na sua conceção/utilização tendo em conta o desempenho, segurança, escalabilidade e proteção de dados, recuperação de falhas, entre outros.
    No final desta UC o estudante deverá ser capaz de:
    - CO1. Identificar os requisitos funcionais e não funcionais, objetivos e expectativas para armazenamento e gestão de dados/conteúdos (NB2)
    - CO2. Selecionar tecnologias de armazenamento e gestão de dados/conteúdos, de acordo com os requisitos de domínio (NB5)
    - CO3. Conceber infraestrutura escalável e elástica de armazenamento e processamento de grandes quantidades de dados/conteúdos, usando tecnologias distribuídas (NB6)
    - CO4. Planear e implementar procedimentos, operações e tecnologias para gestão de risco para continuidade de negócio e recuperação de desastres, garantindo o cumprimento regulamentar (NB6)
    - CO5. Avaliar a segurança de dados/conteúdos e proteger privacidade do utilizador, e a propriedade intelectual da organização, usando tecnologias apropriadas e cumprindo os regulamentos (NB5)
    - CO6. Realizar configurações e operar sistemas de armazenamento e gestão de dados/conteúdos de acordo com requisitos de Confiabilidade, Integridade, Disponibilidade, Desempenho, Risco/Continuidade, Custo e outros (NB3)
    - CO7. Analisar tecnologias emergentes para compreender o seu potencial. (NB4)

    P1: Conceitos de bases de dados e sua administração (30%)
    - Relacionais vs. não-relacionais
    - Grande-escala, paralelas e distribuídas
    - Transacionais vs. streaming/runtime
    - Cloud (PaaS/SaaS) vs. on-permises
    P2: Implantação e Operação de bases de dados (40%)
    - Tunning (padrões e otimização)
    - Clustering e Indexing
    - Distribuição, Concorrência
    - Escalabilidade e elasticidade
    - Benchmarks e ferramentas
    P3: Segurança de bases de dados (30%)
    - Autenticação & Autorização
    - Logging, Auditing
    - Políticas de backup
    - Resposta a incidentes e recuperação de dados

  • 7,5 ECTS

    Aprendizagem Automática

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Elsa Ferreira Gomes
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Explicar os principais métodos e algoritmos de aprendizagem automática. (NB:2/6)
    CO2. Selecionar e aplicar técnicas, métodos e conceitos de aprendizagem automática. (NB:4/6)
    CO3. Implementar processos de aprendizagem automática e analisar resultados obtidos. (NB:4/6)
    CO4. Avaliar a aprendizagem e comparar diferentes modelos. (NB:5/6)

    CP1. Conceitos básicos de aprendizagem automática. (5%)
    CP2. Aprendizagem supervisionada, não supervisionada e por reforço. (5%)
    CP3. Regressão linear e múltipla. (10%)
    CP4. Classificação: Regressão Logística e Análise Discriminante Linear (LDA). (10%)
    CP5. Métodos de reamostragem: Validação cruzada e Bootstrap. (10%)
    CP6. Métodos de regularização: Ridge e LASSO. (10%)
    CP7. Modelos não lineares: Splines e Modelos aditivos generalizados (GAM). (10%)
    CP8. Métodos baseados em árvores: Árvores de Decisão, Florestas aleatórias. (10%)
    CP9. Máquinas de suporte vetorial (SVM). (10%)
    CP10. Aprendizagem não supervisionada. Análise de Componentes Principais (PCA). Métodos de agrupamento: K-means. Métodos de agrupamento: K-means e Agrupamento Hierárquico. (10%)
    CP11. Introdução à aprendizagem por reforço. Q-learning: equações de Bellman, cadeias de Markov e Processo de Decisão de Markov, Q-function e diferença temporal. (10%)

  • 7,5 ECTS

    Armazéns de Dados

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Paulo Oliveira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    A unidade curricular tem como objetivos gerais formar alunos com capacidade para planear, implementar, gerir e explorar um sistema de armazém de dados no âmbito de uma organização.
    Esta unidade curricular contribui com conhecimentos e competências complementares de:
    1. Exploração e manutenção de dados em ambientes caracterizados por volumes de dados elevados, heterogéneos e originários de diversas fontes.
    2. Modelação e representação eficiente de dados na realização de inquéritos que envolvem elevados volumes de dados.
    3. Integração de dados provenientes de fontes heterogéneas.
    No final desta unidade curricular, o aluno deverá ser capaz de:
    CO1. Descrever a terminologia e os conceitos utilizados na área (Nível de Bloom: 2).
    CO2. Explicar uma arquitetura de armazéns de dados e, em particular, o objetivo dos seus diversos componentes (NB: 4).
    CO3. Aplicar métodos de forma justificada que suportem a análise, modelação, desenho e implementação de armazéns de dados (NB: 5).
    CO4. Equacionar de forma crítica cenários alternativos de modelação, desenho e implementação de um armazém de dados (NB: 5).
    CO5. Combinar técnicas que suportem a realização de um processo de extração, transformação, limpeza, integração e carregamento de dados num armazém de dados (NB: 6).
    CO6. Combinar técnicas que otimizem o funcionamento de um armazém de dados (NB: 6).
    CO7. Conceber e desenvolver análises multidimensionais de dados para responder a requisitos de negócio. (NB: 6).

    1 Introdução aos armazéns de dados (8%)
    - Conceito
    - Características principais
    - Conceito de Data Mart
    - Visão geral do modelo dimensional
    - Tipos de esquema
    2 Modelação Dimensional (31%)
    - Modelo estrela
    - Tabelas de dimensão
    - Tabela de factos
    - Tipos de factos
    - Dimensão de alteração lenta (SCD)
    - Técnicas de modelação
    3 Arquiteturas de Armazéns de Dados (15%)
    - Corporate information factory
    - Bus architecture
    - Comparação entre arquiteturas
    4 Processo de Extração, Transformação, Limpeza e Carregamento de Dados (23%)
    - Extração de dados
    - Transformação, limpeza e integração de dados
    - Carregamento de dados
    5 Otimização em Armazéns de Dados (8%)
    - Criação de índices
    - Criação de particionamentos
    - Criação de agregações
    6 Tópicos Avançados/de Investigação em Armazéns de Dados (15%)
    - Armazém de dados em tempo real
    - Streaming de dados
    - Data lake
    - Data lakehouse

  • 7,5 ECTS

    Arquitetura de Software

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Nuno Silva
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular promove conhecimentos e competências de arquitetura de software, principalmente de aplicações empresariais distribuídas/descentralizadas.
    No final da unidade curricular, o/a estudante deve ser capaz de:
    CO1. Debater conceitos, princípios e processos (métodos e táticas) de arquitetura de software e justificar a sua adequação em situações específicas (Nível de Bloom (NL): 5/6).
    CO2. Pesquisar, sistematizar e avaliar drivers arquiteturais e fatores contextuais do software a desenvolver (NL: 5/6).
    CO3. Desenhar a arquitetura de uma aplicação de software, adotando estilos e padrões arquiteturais e considerando drivers arquiteturais e fatores contextuais, para chegar a um compromisso entre benefícios e riscos potenciais e avaliar a sua adequação (NL: 6/6).
    CO4. Construir e evoluir a aplicação de software a partir do design arquitetural selecionado, revendo iterativamente as decisões arquiteturais em função dos resultados da implementação e da evolução dos drivers arquiteturais e fatores contextuais (NL: 6/6).
    CO5. Testar e avaliar a aplicação de software desenvolvida relativamente aos drivers arquitetónicos e fatores contextuais definidos (NL: 5/6).

    P1. Arquitetura de software (10%)
    - Atividades de ciclo de vida
    - O papel do arquiteto
    P2. Drivers arquitetónicos (10%)
    - Finalidade da conceção
    - Atributos de qualidade
    - Requisitos arquiteturais significativos (ASR)
    - Funcionalidade(s) primária(s)
    - Preocupações arquiteturais
    - Restrições
    P3. Conceitos de Design (20%)
    - Estilos e arquiteturas de referência
    - Padrões
    - Táticas
    - Componentes externos
    P4. Conceção arquitetural com Attribute-Driven Design (ADD) (30%)
    - ADD v3.0: principais características
    - Etapas e natureza iterativa
    - Decisões de conceção arquitetural como um processo
    - Teste e avaliação da solução relativamente aos drivers arquitetónicos
    - Documentação durante a conceção
    P5. Arquiteturas Monolíticas Modulares e orientadas a Microserviços (30%)
    - Características
    - Estratégias de migração e decomposição
    - Padrões arquiteturais para sistemas distribuídos/descentralizados
    - Outros estilos e padrões

  • 7,5 ECTS

    Configuração e Gestão de Sistemas

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

    No final desta unidade curricular, o estudante deve ser capaz de:
    CO1. Aplicar os principais conceitos e princípios de DevOps, incluindo Infrastructure as Code, avaliando a sua adequação a diferentes contextos e requisitos operacionais (Nível de Bloom: 5/6).
    CO2. Avaliar e comparar diferentes soluções para a configuração e gestão de aplicações, sistemas e redes, recorrendo a técnicas de virtualização e simulação e considerando os respetivos requisitos e restrições (Nível de Bloom: 5/6).
    CO3. Conceber e implementar soluções para a configuração e gestão de aplicações, sistemas e redes, tendo em consideração os requisitos, as restrições e as especificidades do ambiente operacional (Nível de Bloom: 6/6).
    CO4. Desenvolver processos de integração entre o desenvolvimento de software e as operações, recorrendo a práticas e ferramentas de integração e entrega contínuas (CI/CD) (Nível de Bloom: 6/6).

    P1. Sistemas de controlo de versões (15%)
    P2. Ferramentas de compilação e automação de builds (15%)
    P3. Máquinas virtuais e contentores de software (25%)
    P4. Gestão de configurações e Infrastructure as Code (15%)
    P5. Pipelines de integração contínua/entrega contínua (CI/CD) (15%)
    P6. Observabilidade: monitorização, logging, tracing e análise de métricas (15%)

  • 7,5 ECTS

    Engenharia de Requisitos

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

    Este curso tem como foco a Engenharia de Requisitos promovendo a gestão dos Requisitos ao longo de todo o ciclo vida do software. Os requisitos precisam ser elicitados, validados, elaborados, negociados e mantidos. Esta disciplina tem como objetivo simular uma Chamada de Propostas (RFP) no contexto de um projeto em equipe, assim os alunos deverão ser capazes de, forma holística, desenvolver um projeto complexo aplicando corretamente as melhores práticas de engenharia de requisitos e de software.
    Ao final deste curso, o aluno deverá ser capaz de:
    CO1 ? Conduzir um processo de elicitação de requisitos de software, incluindo planear e executar a elicitação, identificar diferentes tipos de requisitos, aplicar diferentes técnicas e refinar os requisitos elicitados (BL 5).
    CO2 ? Especificar e analisar os requisitos para uma solução de software, utilizando múltiplas formas de documentação, artefactos, templates e perspectivas (BL 5).
    CO3 ? Validar e negociar requisitos utilizando técnicas adequadas para validação e priorização de requisitos e negociação de conflitos (BL 4).
    CO4 ? Gerir o ciclo de vida dos requisitos, tendo em consideração a necessidade de lidar com a mudança, realizando o mapeamento de requisitos e conhecendo as ferramentas mais relevantes para gerenciamento de requisitos (BL6).
    CO5 ? Projetar, implementar e documentar um protótipo de software que atenda aos requisitos de engenharia (BL 6).
    CO6 - Trabalhar em equipa, planear e gerir o projeto, comunicar e documentar a sua atividade (BL 4)

    P1 - Conceitos-chave de Engenharia de Requisitos (10%)
    P2 - Elicitação de Requisitos (20%)
    P3 - Documentação de Requisitos (15%)
    P4 - Validação e negociação de requisitos (10%)
    P5 - Gestão de Requisitos (10%)
    P6 - Desenvolvimento de Projetos (35%)

  • 7,5 ECTS

    Mineração de Dados

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

    Propósitos e objetivos (max. 1750 caracteres)
    No final do curso os estudantes deverão ser capazes de:
    CO1. Explicar o processo de descoberta de conhecimento (DC) a partir de dados e as suas várias fases. (Bloom Level (BL): 6/6)
    CO2. Traduzir os objetivos de negócio em objetivos de mineração de dados. (BL 5/6)
    CO3. Selecionar, preparar e explorar os dados de acordo com os objetivos de DC e os algoritmos a aplicar aos dados. (BL 5/6)
    CO4. Identificar os algoritmos mais atuais/eficientes de mineração de dados, saber explicar como eles funcionam aplicados a conjuntos de dados e saber combinar diferentes algoritmos de DM de modo a obter melhores resultados. (BL 4/6)
    CO5. Avaliar os modelos obtidos a partir dos dados com as medidas mais adequadas. (BL 5/6)
    CO6. Desenvolver um projeto de mineração de dados para um problema específico, usando a metodologia CRISP-DM, elaborar respetivo relatório, apresentá-lo e defendê-lo. . (BL 6/6)

    P1. Introdução à Ciência de Dados
    - Processo de extração de conhecimento a partir dos dados
    - Metodologias
    P2. Pré-Processamento de Dados
    - Análise Exploratória de Dados
    - Transformação de dados
    - Seleção de atributos
    - Balanceamento de dados
    - Tratamento de valores isolados
    P3. Avaliação de modelos
    - Métodos de Amostragem
    - Métricas de avaliação de modelos
    P4. Modelos Preditivos
    - Métodos baseados em distâncias, métodos probabilísticos, métodos baseados em procura, métodos baseados em otimização
    P5. Modelos Múltiplos Preditivos
    - Voting ensemble, stacking, bagging e boosting
    P6. Séries Temporais
    - Tratamento de dados em falta, métodos de interpolação
    - Decomposição de séries temporais
    - Previsão com métodos estatísticos, métodos Machine Learning e métodos baseados em otimização.

  • 7,5 ECTS

    Organização do Desenvolvimento de Software

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

    O objetivo geral desta UC é que os estudantes sejam capazes de gerir o ciclo de vida de um produto de software, através da adoção de práticas de integração e entrega contínua (CI/CD). São abordados, de forma integrada, requisitos, testes de software, gestão de configurações e versões, construção, publicação e implantação de software. Os estudantes desenvolvem competências que podem aplicar noutras UC e em contextos profissionais de desenvolvimento de software.
    No final da UC, o estudante será capaz de:
    CO1. Identificar, elicitar, analisar e modelar requisitos para a integração e entrega contínua de software (NB: 4/6).
    CO2. Conceber pipelines de integração e entrega contínua adequados aos requisitos e contexto (NB: 6/6).
    CO3. Conceber estratégias de teste, gestão de configurações e controlo de versões adequadas aos requisitos e contexto (NB: 6/6).
    CO4. Construir e evoluir pipelines de integração e entrega contínua, revendo iterativamente as decisões tomadas em função dos resultados obtidos e da evolução dos requisitos e contexto (NB: 6/6).
    CO5. Implementar e avaliar testes, gestão de configurações e controlo de versões, revendo as soluções adotadas em função dos resultados obtidos e dos requisitos (NB: 5/6).
    CO6. Debater e avaliar criticamente de que forma as práticas de integração e entrega contínua respondem aos desafios da gestão do ciclo de vida de produtos de software (NB: 5/6).

    CP1. Sistemas distribuídos de controlo de versões: conceitos, Git, branching e gestão de versões. (10%)
    CP2. Construção e automação de software: ferramentas de build e scripting. (20%)
    CP3. Plataforma tecnológica adotada: aplicação de referência, repositórios de código, infraestrutura computacional e respetiva arquitetura e integração. (10%)
    CP4. Automação de testes: testes unitários, de integração, aceitação e não funcionais; cobertura de código e outras métricas de qualidade. (20%)
    CP5. Gestão do ciclo de vida do produto com integração e entrega contínua (CI/CD): práticas, ferramentas e modelos de maturidade. (10%)
    CP6. Pipelines de integração e entrega contínua: conceção, implementação, scripting e automação. (20%)
    CP7. Publicação e implantação de aplicações: gestão de infraestrutura, ambientes e dados; virtualização, contentores e estratégias de implantação. (10%)

  • 7,5 ECTS

    Qualidade de Software

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

    Qualidade em Engenharia de Software exige a utilização conjugada de práticas, frameworks, metodologias e ferramentas. Este curso aborda tópicos de qualidade sobre o produto e o processo na engenharia de software, com considerações de ética na Engenharia de Software [1].
    Assim, no final da unidade curricular, o aluno deve ser capaz de:
    - CO1) Explicar e relacionar conceitos e princípios de qualidade na engenharia de software, justificando a sua adequação em situações específicas (Nível Bloom (BL): 5/6)
    - CO2) Conceber e aplicar um plano de medição de qualidade de software para garantir estimativas quantitativas realistas de qualidade, fornecendo uma avaliação da incerteza dessas estimativas (BL: 6)
    - CO3) Determinar a adequação de um conjunto de testes considerando os cenários de qualidade, preocupações, restrições e requisitos funcionais para uma determinada aplicação de software (BL: 5)
    - CO4) Desenvolver testes de software equilibrando cenários de qualidade, preocupações, restrições e requisitos funcionais, analisar os resultados e documentar problemas significativos descobertos (BL: 6)
    [1] Gotterbarn, D., Miller, K., & Rogerson, S. (1997). Software engineering code of ethics. Communications of the ACM, 40(11), 110-118. https://doi.org/10.1145/265684.265699

    P1. Qualidade na Engenharia de software (30%)
    - Atributos de qualidade,
    - Processo e produto: modelos e normas internacionais.
    P2. Teste de software (40%)
    - Conceitos e técnicas,
    - Verificação e validação, antecipação de testes,
    - Ciclo de vida,
    - Testes funcionais, de acessibilidade, visuais, de segurança, de arquitetura, de carga, de stresse e de imersão.
    P3. Medição da qualidade do software (20%)
    - Medidas. Tipos de medidas,
    - Medição de atributos de qualidade,
    - Métricas baseadas em metas,
    - Abordagem Goal Question Metric (GQM).
    P4. Código de teste (10%)
    - Manutenibilidade dos testes,
    - Potenciais problemas com testes.

  • 7,5 ECTS

    Redes de Computadores

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Ana Raquel Faria
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Propósitos e objetivos (max. 1750 caracteres)
    No final desta UC o aluno deverá ser capaz de:
    CO1. Implementar os requisitos para soluções de redes de comunicação em organizações de pequeno e médio porte. (Bloom Level (BL): 3/6)
    CO2. Implementar redes de comunicação de dados para organizações de pequeno e médio porte, incluindo redes locais e o uso de tecnologias de rede de área ampla conforme os requisitos. (BL:3/6)
    CO3. Implementar o nível de serviço acordado (SLA) com base nos requisitos. (BL:3/6)
    CO4. Identificar a conformidade do SLA em relação aos requisitos, especificações e design. (BL:4/6)
    CO5.Aplicar as ferramentas e técnicas relevantes de gestão da qualidade de serviço. (BL:3/6)
    CO6. Identificar o potencial das tecnologias emergentes. (BL:4/6)

    CP1. Tipos de redes e suas características (8%):
    - LAN, Wireless LAN, Wide Area Networking, Metropolitan Area Network
    - Low-Power Wireless Area Networks (Internet of Things (IoT))
    CP2. Endereçamento, encaminhamento e comutação (60%):
    - IPv4: DHCP, RIP, OSPF, EIGRP (routing dinâmico)
    - IPv6: SLAAC,
    IoT + IPv6: 6loWPAN, RPL
    -VLAN; TVP; GRVP
    - Frame, Jumbo Frame, Superjumbo Frame
    - STP e RSTP
    -DNS
    CP3. Qualidade de serviço (16%):
    - Gestão de tráfego: Shapping and Policing
    - Policy-based routing (PBR)
    CP4. Considerações sobre segurança, restrições e análise (16%):
    - DNSSec
    - Protocolos de aplicação, por ex. HTTPS, FTPS, SMTPS, POPS, SSH

  • 7,5 ECTS

    Segurança de Sistemas e Informação

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

    Esta unidade curricular visa incutir uma atitude de "desconfiança construtiva" na conceção, desenho, desenvolvimento e operação de sistemas que incorporem tecnologias informáticas, atitude essa que será muito útil nas restantes unidades e na vida pessoal e profissional. Espera-se que o estudante saiba aplicar os instrumentos da engenharia da segurança informática de modo efetivo, respeitando os aspetos profissionais e éticos na utilização das soluções existentes. Tendo em conta a sensibilidade e relevância dos temas abordados, o estudante deverá manter-se ao corrente dos desenvolvimentos desta área.
    Após completarem com sucesso esta unidade curricular, os estudantes serão capazes de:
    CO1. Defender a necessidade duma visão holística da segurança de sistemas e infraestruturas informáticas (Bloom Level (BL): 2/3)
    CO2. Adotar conceitos e métodos de gestão e controlo de acessos a sistemas e informação (Bloom Level (BL): 4/5)
    CO3. Definir e implementar políticas de segurança e privacidade dos sistemas e informação em função dos requisitos (Bloom Level (BL): 4/5)
    CO4. Selecionar soluções arquiteturais capazes de dar resposta aos requisitos de segurança do sistema e da informação (Bloom Level (BL): 5)
    CO5. Elaborar e aplicar planos de segurança e contingência, gerindo o risco garantindo a continuidade do negócio, cumprimento o quadro regulatório (Bloom Level (BL): 5)

    O programa está dividido em módulos interligados e tendo como base comum a visão ubíqua da segurança.
    CP1: Controlo de acessos
    CP2: Controlo de sistema
    CP3: Testes e monitorização de sistemas
    CP4: Arquiteturas de sistemas comuns nesta área de conhecimento
    CP5. Continuidade e remoção/reforma do sistema
    CP6. Gestão de risco (Plano de Segurança e Plano de Recuperação de Desastre)

  • 7,5 ECTS

    Tópicos Avançados de Bases de Dados

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

    Pretende-se que o estudante após esta unidade curricular seja capaz de identificar e solucionar problemas e questões envolvidas em SGBDs.
    No final desta UC o estudante deverá ser capaz de:
    CO1. Explicar os problemas relacionados com gestão de dados (BL4)
    CO2. Comparar e descrever os mais recentes desenvolvimentos na área de gestão de dados (BL4)
    CO3. Compreender as técnicas de modelação de dados orientada por documentos, por chave/valor, colunas-chave e por grafos, e selecionar soluções adequadas tendo em conta o tipo de informação e os requisitos funcionais dos sistemas a desenvolver; (BL5)
    C04. Interpretar e aplicar estruturas de armazenamento de Base de dados e técnicas de acesso para melhorar a performance. (BL3)
    CO5. Implantar e operar sistemas de gestão de dados adequados ao domínio e conforme os requisitos (BL6)

    CP1. Problemas e desafios recentes com o armazenamento e manipulação de conjuntos de dados heterogéneos e em grande volume;
    CP2. Performance Tuning and Query Optimization;
    CP3. Base de dados distribuídas;
    CP4. Sistemas de armazenamento e manipulação de dados, relacionais/não-relacionais;
    CP5. Pesquisa e Indexação em sistemas não relacionais.

2º ano | 2º semestre

  • 30 ECTS

    Dissertação

    ECTS
    30
    Período
    2º semestre
    Responsável
    Isabel Praça
    Orientação tutorial
    1 hora

    Tem por objetivo o desenvolvimento de trabalho de pesquisa e desenvolvimento conducente à preparação de uma dissertação de natureza técnico-científica sobre um tema da área de conhecimento do curso.
    O trabalho deve envolver componentes de caráter teórico e prático, promovendo a abordagem de problemas novos, a recolha de informação e bibliografia pertinentes, a seleção fundamentada dos métodos de abordagens, o design duma solução para o problema proposto, a respetiva implementação e avaliação experimental e posterior a análise crítica dos resultados.
    Ao final deste curso o aluno deverá ser capaz de:
    CO1. Interpretar o problema a resolver, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO2. Sintetizar o conhecimento existente de ciências e boas práticas de engenharia informática para a resolução do problema (Bloom Level (BL): 6/6)
    CO3. Avaliar diferentes abordagens para a resolução do problema pela adoção ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO4. Desenhar uma solução para o problema adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO5. Construir a solução para o problema aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO6. Avaliar a solução desenhada/construída aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO7. Descrever de forma sintática e semanticamente rigorosa os processos e resultados dos pontos anteriores, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)

    De acordo com o enunciado de projeto aprovado pelo RUC de DIMEI e aceite pelo Estudante, pelo Orientador (docente doutorado ou especialista) pelo Coorientador (no caso de existir) e pelo Supervisor da organização onde o projeto/estágio se desenrole (se existir).

1º ano | 1º semestre

  • 7,5 ECTS

    Armazéns de Dados

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Paulo Oliveira
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    A unidade curricular tem como objetivos gerais formar alunos com capacidade para planear, implementar, gerir e explorar um sistema de armazém de dados no âmbito de uma organização.
    Esta unidade curricular contribui com conhecimentos e competências complementares de:
    1. Exploração e manutenção de dados em ambientes caracterizados por volumes de dados elevados, heterogéneos e originários de diversas fontes.
    2. Modelação e representação eficiente de dados na realização de inquéritos que envolvem elevados volumes de dados.
    3. Integração de dados provenientes de fontes heterogéneas.
    No final desta unidade curricular, o aluno deverá ser capaz de:
    CO1. Descrever a terminologia e os conceitos utilizados na área (Nível de Bloom: 2).
    CO2. Explicar uma arquitetura de armazéns de dados e, em particular, o objetivo dos seus diversos componentes (NB: 4).
    CO3. Aplicar métodos de forma justificada que suportem a análise, modelação, desenho e implementação de armazéns de dados (NB: 5).
    CO4. Equacionar de forma crítica cenários alternativos de modelação, desenho e implementação de um armazém de dados (NB: 5).
    CO5. Combinar técnicas que suportem a realização de um processo de extração, transformação, limpeza, integração e carregamento de dados num armazém de dados (NB: 6).
    CO6. Combinar técnicas que otimizem o funcionamento de um armazém de dados (NB: 6).
    CO7. Conceber e desenvolver análises multidimensionais de dados para responder a requisitos de negócio. (NB: 6).

    1 Introdução aos armazéns de dados (8%)
    - Conceito
    - Características principais
    - Conceito de Data Mart
    - Visão geral do modelo dimensional
    - Tipos de esquema
    2 Modelação Dimensional (31%)
    - Modelo estrela
    - Tabelas de dimensão
    - Tabela de factos
    - Tipos de factos
    - Dimensão de alteração lenta (SCD)
    - Técnicas de modelação
    3 Arquiteturas de Armazéns de Dados (15%)
    - Corporate information factory
    - Bus architecture
    - Comparação entre arquiteturas
    4 Processo de Extração, Transformação, Limpeza e Carregamento de Dados (23%)
    - Extração de dados
    - Transformação, limpeza e integração de dados
    - Carregamento de dados
    5 Otimização em Armazéns de Dados (8%)
    - Criação de índices
    - Criação de particionamentos
    - Criação de agregações
    6 Tópicos Avançados/de Investigação em Armazéns de Dados (15%)
    - Armazém de dados em tempo real
    - Streaming de dados
    - Data lake
    - Data lakehouse

  • 7,5 ECTS

    Engenharia de Requisitos

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

    Este curso tem como foco a Engenharia de Requisitos promovendo a gestão dos Requisitos ao longo de todo o ciclo vida do software. Os requisitos precisam ser elicitados, validados, elaborados, negociados e mantidos. Esta disciplina tem como objetivo simular uma Chamada de Propostas (RFP) no contexto de um projeto em equipe, assim os alunos deverão ser capazes de, forma holística, desenvolver um projeto complexo aplicando corretamente as melhores práticas de engenharia de requisitos e de software.
    Ao final deste curso, o aluno deverá ser capaz de:
    CO1 ? Conduzir um processo de elicitação de requisitos de software, incluindo planear e executar a elicitação, identificar diferentes tipos de requisitos, aplicar diferentes técnicas e refinar os requisitos elicitados (BL 5).
    CO2 ? Especificar e analisar os requisitos para uma solução de software, utilizando múltiplas formas de documentação, artefactos, templates e perspectivas (BL 5).
    CO3 ? Validar e negociar requisitos utilizando técnicas adequadas para validação e priorização de requisitos e negociação de conflitos (BL 4).
    CO4 ? Gerir o ciclo de vida dos requisitos, tendo em consideração a necessidade de lidar com a mudança, realizando o mapeamento de requisitos e conhecendo as ferramentas mais relevantes para gerenciamento de requisitos (BL6).
    CO5 ? Projetar, implementar e documentar um protótipo de software que atenda aos requisitos de engenharia (BL 6).
    CO6 - Trabalhar em equipa, planear e gerir o projeto, comunicar e documentar a sua atividade (BL 4)

    P1 - Conceitos-chave de Engenharia de Requisitos (10%)
    P2 - Elicitação de Requisitos (20%)
    P3 - Documentação de Requisitos (15%)
    P4 - Validação e negociação de requisitos (10%)
    P5 - Gestão de Requisitos (10%)
    P6 - Desenvolvimento de Projetos (35%)

  • 7,5 ECTS

    Mineração de Dados

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

    Propósitos e objetivos (max. 1750 caracteres)
    No final do curso os estudantes deverão ser capazes de:
    CO1. Explicar o processo de descoberta de conhecimento (DC) a partir de dados e as suas várias fases. (Bloom Level (BL): 6/6)
    CO2. Traduzir os objetivos de negócio em objetivos de mineração de dados. (BL 5/6)
    CO3. Selecionar, preparar e explorar os dados de acordo com os objetivos de DC e os algoritmos a aplicar aos dados. (BL 5/6)
    CO4. Identificar os algoritmos mais atuais/eficientes de mineração de dados, saber explicar como eles funcionam aplicados a conjuntos de dados e saber combinar diferentes algoritmos de DM de modo a obter melhores resultados. (BL 4/6)
    CO5. Avaliar os modelos obtidos a partir dos dados com as medidas mais adequadas. (BL 5/6)
    CO6. Desenvolver um projeto de mineração de dados para um problema específico, usando a metodologia CRISP-DM, elaborar respetivo relatório, apresentá-lo e defendê-lo. . (BL 6/6)

    P1. Introdução à Ciência de Dados
    - Processo de extração de conhecimento a partir dos dados
    - Metodologias
    P2. Pré-Processamento de Dados
    - Análise Exploratória de Dados
    - Transformação de dados
    - Seleção de atributos
    - Balanceamento de dados
    - Tratamento de valores isolados
    P3. Avaliação de modelos
    - Métodos de Amostragem
    - Métricas de avaliação
    P4. Modelos Preditivos
    - Métodos baseados em distâncias, métodos probabilísticos, métodos baseados em procura, métodos baseados em otimização
    P5. Modelos Múltiplos Preditivos
    - Voting ensemble, stacking, bagging e boosting
    P6. Séries Temporais
    - Tratamento de dados em falta, métodos de interpolação
    - Decomposição de séries temporais
    - Amostragem por janela deslizante, validação cruzada
    - Previsão com métodos estatísticos, métodos Machine Learning e métodos baseados em otimização.

  • 7,5 ECTS

    Segurança de Sistemas e Informação

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

    Esta unidade curricular visa incutir uma atitude de "desconfiança construtiva" na conceção, desenho, desenvolvimento e operação de sistemas que incorporem tecnologias informáticas, atitude essa que será muito útil nas restantes unidades e na vida pessoal e profissional. Espera-se que o estudante saiba aplicar os instrumentos da engenharia da segurança informática de modo efetivo, respeitando os aspetos profissionais e éticos na utilização das soluções existentes. Tendo em conta a sensibilidade e relevância dos temas abordados, o estudante deverá manter-se ao corrente dos desenvolvimentos desta área.
    Após completarem com sucesso esta unidade curricular, os estudantes serão capazes de:
    CO1. Defender a necessidade duma visão holística da segurança de sistemas e infraestruturas informáticas (Bloom Level (BL): 2/3)
    CO2. Adotar conceitos e métodos de gestão e controlo de acessos a sistemas e informação (Bloom Level (BL): 4/5)
    CO3. Definir e implementar políticas de segurança e privacidade dos sistemas e informação em função dos requisitos (Bloom Level (BL): 4/5)
    CO4. Selecionar soluções arquiteturais capazes de dar resposta aos requisitos de segurança do sistema e da informação (Bloom Level (BL): 5)
    CO5. Elaborar e aplicar planos de segurança e contingência, gerindo o risco garantindo a continuidade do negócio, cumprimento o quadro regulatório (Bloom Level (BL): 5)

    O programa está dividido em módulos interligados e tendo como base comum a visão ubíqua da segurança.
    CP1: Controlo de acessos
    CP2: Controlo de sistema
    CP3: Testes e monitorização de sistemas
    CP4: Arquiteturas de sistemas comuns nesta área de conhecimento
    CP5. Continuidade e remoção/reforma do sistema
    CP6. Gestão de risco (Plano de Segurança e Plano de Recuperação de Desastre)

1º ano | 2º semestre

  • 7,5 ECTS

    Modelação e Simulação Inteligente

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

    Pretende-se que o estudante após esta unidade curricular seja capaz de elaborar estudos completos de simulação de processos. No final desta unidade curricular o estudante deverá ser capaz de:
    CO1. Interpretar e aplicar os princípios e as etapas da metodologia da simulação, focando as vantagens e valor esperado da simulação (NB 3)
    CO2. Estruturar modelos para simulação de sistemas de média complexidade (NB 4)
    CO3. Criar um estudo de simulação com a abordagem de simulação adequada e boas práticas de engenharia (NB 6)
    CO4. Validar o modelo e interpretar resultados de uma simulação (NB 5)
    CO5. Estimar o desempenho futuro de um sistema (NB 5)
    CO6. Descrever de forma sintática e semanticamente rigorosa os processos e resultados dos pontos anteriores, adotando ciências e boas práticas de engenharia informática (NB 4)

    P1: Introdução à Simulação de Sistemas (5%)
    - Vantagens e desvantagens
    - Metodologia da simulação
    P2: Modelação de Sistemas (28%)
    - Tipos de Modelos
    - Modelação de Sistemas Complexos
    P3: Desenvolvimento de Algoritmos e Programas de Simulação (49%)
    - Algoritmos de Simulação: abordagens por atividades, eventos e processos
    - Programação de simulações: modelos estatísticos em simulação, distribuições de probabilidade, geração de variáveis aleatórias, análise de resultados
    - Verificação e Validação de modelos
    - Programação de aplicações
    P4: Ferramentas Computacionais para Simulação (12%)
    - Características desejáveis.
    - Linguagens de programação orientadas para a Simulação
    - Ambientes específicos
    - Desenvolvimento de um projeto em linguagem de simulação
    - Programação de aplicações
    P5: Simulação Distribuída e Simulação Baseada em Agentes (3%)
    - Características
    - Plataformas de desenvolvimento
    P6: Áreas de Aplicação (3%)
    - Casos de Estudo

  • 7,5 ECTS

    Sistemas Baseados em Conhecimento

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

    Pretende-se que o estudante após a frequência desta UC:
    - Esteja apto a identificar a adequação e relevância dos sistemas baseados em conhecimento para a resolução de certos tipos de problemas;
    - Compreenda a importância do conhecimento e a necessidade para a sua aquisição e representação;
    - Detenha o conhecimento de técnicas usadas na implementação de sistemas baseados em conhecimento.
    Especificamente, no final desta unidade curricular o estudante deve ser capaz de:
    CO1-Caracterizer a terminologia e conceitos gerais relacionados com os Sistemas Baseados em Conhecimento (SBC) (Nível de Bloom 2/6)
    CO2-Caracterizar o conhecimento necessário para desenvolver processos de análise, adquirir e representar conhecimento e para desenvolver pesquisa na área dos SBC (Nível de Bloom 2/6)
    CO3-Analisar novos problemas que podem ser tratados apropriadamente através de SBC (Nível de Bloom 4/6)
    CO4-Executar pesquisa bibliográfica para obter as competências necessárias para aplicar novos métodos e técnicas para a implementação de SBC (Nível de Bloom 3/6)
    CO5-Aplicar técnicas que permitam lidar com informação incompleta e imprecisa (Nível de Bloom 3/6)
    CO6-Desenvolver SBC e, mais especificamente, bases de conhecimento e motores de inferência através da utilização de ferramentas adequadas (Nível de Bloom 6/6)
    CO7-Avaliar SBC usando técnicas de verificação e validação (Nível de Bloom 5/6)

    P1­ Introdução aos Sistemas Baseados em Conhecimento: perícia, Sistemas Baseados em Conhecimento e Sistemas Periciais. (7%)
    P2 - Aquisição de conhecimento e técnicas de representação de conhecimento (21%)
    P3 - Arquitetura e componentes dos Sistemas Periciais (21%)
    P4 - Sistemas de Manutenção de Verdade (7%)
    P5 - Raciocínio temporal e sistemas de raciocínio não monótonos (4%)
    P6­ Raciocínio sob incerteza (21%)
    P7 - Aplicações para desenvolvimento de Sistemas Periciais (4%)
    P8 - Validação e verificação de sistemas Periciais (4%)
    P9 - Sistemas de Tutoria Inteligente (7%)
    P10 - Sistemas Periciais e Mineração de Dados (4%)

  • 7,5 ECTS

    Sistemas de Informação Empresariais

    ECTS
    7,5
    Período
    2º semestre
    Responsável
    Luís Conceição
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Esta UC é projetada para fornecer aos alunos uma compreensão das questões teóricas e práticas relacionadas com a aplicação de sistemas empresariais dentro das organizações.
    O foco principal da unidade é demonstrar como os sistemas empresariais integram a informação e os processos organizacionais de todas as áreas funcionais, dando origem a um sistema unificado.
    Os sistemas empresariais, pela sua natureza integrativa multi-dimensional, permitem demonstrar como são geridas as operações globais de organizações. Assim, os estudantes adquirem a percepção do âmbito dos sistemas de informação empresariais e a motivação para implementá-los utilizando competências técnicas previamente adquiridas
    1. Entender como os sistemas empresariais integram as áreas funcionais da organização num sistema de informação - 1.3.2-1, 4.2.2-1, 4.2.4-1
    2. Explicar como a partilha de integrada de informação aumenta a eficiência organizacional - 1.3.2-1, 4.2.2-1, 4.2.4-1
    3. Analisar as tendências atuais relacionadas com sistemas de informação empresarias no âmbito da empresa digital - 1.3.2-1, 2.4.4-3, 4.2.2-1, 4.2.3-3
    4. Desenvolver novos modelos de processos de negócios e IS - 1.3.2-5, 4.2.2-5, 4.3.1-5
    5- Aplicar boas práticas de concepção/modelação de sistemas de informação empresarial - 4.3.1-2, 4.3.3-2, 4.3.4-2, 4.4.1-2, 4.4.2-2
    6. Avaliar os custos e benefícios da implementação de sistemas de informação empresariais no seio das organizações - 1.3.2-4, 4.2.1-4, 4.2.2-4, 4.2.4-4
    7- Sistematizar o estado da arte num contexto específico de sistemas de informação -1.3.2-3, 2.2.2-3, 2.3.1-3, 3.2.2-5, 3.2.3-5, 3.2.6-5, 3.3.1-5

    1. Fundamentos de Sistemas de Informação Empresariais
    - Conceitos fundamentais e papéis
    - Uso de SI como uma vantagem competitiva
    - Global E-business and collaboration
    2. Aplicações Empresariais
    - Business Intelligence
    - Processos de negócios e integração de processos de negócios
    - Tipos de aplicações empresariais (ERP, CRM, SCM, etc.)
    - Integração de aplicações para suporte ao negócio
    - Suporte à tomada de decisão
    3. Desenvolvimento e Aquisição de Sistemas de Informação
    - Aquisição e implementação de SI
    - Arquitetura Empresarial
    - Análise de requisitos de negócio para seleção e implementação de um SI
    - Gestão processos de negócio, de informação e do conhecimento

  • 7,5 ECTS

    Sistemas de Recomendação

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

    No final desta UC o estudante deverá ser capaz de:
    CO1-Caracterizer a terminologia e conceitos gerais relacionados com os Sistemas de Recomendação (SR) (Nível de Bloom 2/6)
    CO2-Caracterizar o conhecimento necessário para desenvolver processos de análise, adquirir e representar conhecimento e para desenvolver pesquisa na área dos SR (Nível de Bloom 2/6)
    CO3-Analisar novos problemas que podem ser tratados apropriadamente através de SR (Nível de Bloom 4/6)
    CO4-Executar pesquisa bibliográfica para obter as competências necessárias para aplicar novos métodos e técnicas para a implementação de SR (Nível de Bloom 3/6)
    CO5-Aplicar técnicas que permitam implementar SR (Nível de Bloom 3/6)
    CO6-Desenvolver SR através da utilização de ferramentas adequadas (Nível de Bloom 6/6)
    CO7-Avaliar SR (Nível de Bloom 5/6)

    CP1. Introdução aos Sistemas de Recomendação
    CP2. Modelação do Utilizador
    CP3. Sistemas de Recomendação Não Personalizados
    CP4. Sistemas de Recomendação Colaborativos
    CP5. Sistemas de Recomendação Baseados em Conteúdo
    CP6. Sistemas de Recomendação Baseados em Conhecimento
    CP7. Sistemas de Recomendação Híbridos
    CP8. Avaliação de Sistemas de Recomendação
    CP9. Factoração Matricial e Técnicas Avançadas

2º ano | 1º semestre

  • 5 ECTS

    Inovação, Empreendedorismo e Liderança

    ECTS
    5
    Período
    1º semestre
    Responsável
    Mafalda Luisa Ferreira
    Teórica
    1 hora
    Teórico-prática
    2 horas

    No final desta UC o estudante deverá ser capaz de: CO1. Compreender as dimensões envolvidas na gestão de pessoas e equipas (BL 4/6) CO2. Utilizar diferentes ferramentas para identificar, localizar, recuperar e organizar informação necessária para a concretização de um determinado objetivo (BL 6/6) CO3. Gerir procedimentos de forma a organizar, planear, gerir e coordenar atividades que facilitem o desempenho de pessoas e equipas (BL 6/6) CO4. Compreender as dimensões e necessidade de um Plano de Negócio (BL 4/6) CO5. Desenvolver e apresentar um Plano de Negócio (BL 6/6) CO6. Identificar instituições vocacionadas para o apoio à inovação e criação de start-ups (BL 6/6). CO7: Interpretar problemas de forma analítica, crítica e ética com a adoção de ciências de engenharia e boas práticas (Nível Bloom (BL): 5/6)

    CP1. Gestão de Pessoas e Equipas 28,6%
    - Estratégia Organizacional e Recursos Humanos (RH)
    - Da Gestão de RH à Gestão de Pessoas (GP)
    - Processos de Gestão de RH/GP
    - Recrutamento
    - Seleção
    CP2. Inovação e Empreendedorismo 20%
    - Empreendedorismo e Desenvolvimento de Negócios
    - Gestão da Inovação e formulação da Ideia de Negócio
    CP3. Plano de Negócios 30%
    - Plano Estratégico
    - Produtos/Serviços
    - Análise de Mercado
    - Plano de Marketing
    - Plano Financeiro
    CP4. Experimentação e Avaliação em Engenharia (21,4%)
    - Dados: amostragem, processo de coleta, tipos
    - Inferência: estimadores e tipos de estimadores
    - Intervalo de confiança
    - Testes de hipóteses paramétricos e não paramétricos

  • 7,5 ECTS

    Laboratório de Sistemas de Apoio à Decisão

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Luís Conceição
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    A disciplina de LABSAD deve por um lado proporcionar o domínio da integração das tecnologias que facilitam a obtenção de conhecimento de modo a suportar a tomada de decisões; por outro abordar alguns temas que não sejam tratados nas outras disciplinas (por exemplo, processo de decisão, tomada de Decisão em Grupo) e ainda efetuar uma abordagem holística ao processo de tomada de decisão.
    No âmbito do curso esta disciplina é de cariz integrador, o principal objetivo é permitir que os alunos sejam capazes de:
    CO1- Descrever no que consiste o processo de tomada de decisão e todos os aspetos que o envolvem (Bloom level: 2)
    CO2- Elicitar e compilar os requisitos inerentes ao desenvolvimento de um sistema de apoio à Decisão (SAD) (Bloom level: 3)
    CO3- Analisar os métodos e técnicas mais adequados para o desenvolvimento do SAD (Bloom level: 4)
    CO4- Avaliar a satisfação dos utilizadores com o SAD (Bloom level: 5)
    CO5- Conceção, design e implementação de sistemas de apoio à decisão aplicando boas práticas (Bloom level: 6)
    CO6- Analisar o estado da arte num contexto específico de SAD (Bloom level: 4)
    CO7- Desenvolvimento de um SAD aplicando eficazmente métodos e técnicas de IA (Bloom level: 6)
    CO8- Debater o estado da arte e o protótipo desenvolvido (Bloom level: 5)

    P1. PROCESSO DE TOMADA DE DECISÃO: 15%
    Conceito de Decisão; Componentes da Decisão; Valor Económico; Tipos de Problemas; Momento da Decisão; Conhecimento na Tomada de Decisão.
    P2. SISTEMAS DE APOIO À DECISÃO: 15%
    Tipos de SAD; Arquiteturas de SAD; Características dos SAD; Modelos de Decisão; Sensores; Atuadores; Raciocínio; Eventos Externos; Outros Agentes.
    P3. MÉTODOS DE APOIO À DECISÃO: 35%
    Modelação; Simulação; Restrições; Análise Multiobjetivo e Multicritério; Árvores de Decisão; Análise SWOT; Otimização; Planeamento; Análise da Satisfação.
    P4. TOMADA DE DECISÃO EM GRUPO: 5%
    Geração de Ideias; Ferramentas Colaborativas; Sistemas de Apoio à Decisão em Grupo; Aspetos Sociais; Aspetos Emocionais.
    P5. CASOS DE ESTUDO: 15%
    SAD na Indústria, Atividade Económica, Saúde, Turismo, Energia e Transportes.
    P6. DISCUSSÃO DO ESTADO DA ARTE: 15%
    Apresentação e discussão dos trabalhos desenvolvidos pelos estudantes.

  • 10 ECTS

    Preparação para Dissertação

    ECTS
    10
    Período
    1º semestre
    Responsável
    Nuno Silva
    Teórica
    1 hora
    Teórico-prática
    2 horas
    Orientação tutorial
    1 hora

    O principal objetivo desta UC é desenvolver uma proposta de trabalho que permita orientar a realização bem-sucedida de um projeto complexo de Engenharia Informática, integrando as suas dimensões científica, técnica, ética e de planeamento.
    No final da UC, o/a estudante deve ser capaz de:
    CO1. Analisar e avaliar criticamente um problema de Engenharia Informática, considerando o contexto, as boas práticas de engenharia e os princípios éticos aplicáveis (NB: 5/6).
    CO2. Elaborar uma revisão da literatura, pesquisando, analisando criticamente, relacionando e sintetizando conhecimento científico e técnico relevante, respeitando princípios éticos e de integridade académica (NB: 6/6).
    CO3. Conceber um plano integrado e exequível para um projeto complexo, considerando âmbito, atividades, recursos, calendarização, custos, qualidade, riscos, marcos e mecanismos de acompanhamento (NB: 6/6).
    CO4. Conceber uma proposta de trabalho coerente, articulando o problema, objetivos e/ou questões de investigação, conhecimento existente, abordagem metodológica, solução a desenvolver, avaliação e planeamento do projeto (NB: 6/6).
    CO5. Comunicar a proposta por escrito e oralmente com rigor técnico, científico e ético, fundamentando e defendendo criticamente as opções tomadas (NB: 5/6).

    P1. Ética em Engenharia e Investigação (9%)
    P2. Revisão da Literatura no Estado da Arte (9%)
    P3. Organização pessoal (18%)
    P4. Planeamento de Projetos (46%)
    P5. Métodos de Investigação (9%)
    P6. Escrita Técnica-Scientífica (9%)
    P1-P6 são as partes cobertas em módulos curriculares com as mesmas designações.

  • 7,5 ECTS

    Administração de Bases de Dados

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

    Esta UC vai debruçar-se sobre aspetos relacionados com a administração de SGBD e implementação de boas práticas na sua conceção/utilização tendo em conta o desempenho, segurança, escalabilidade e proteção de dados, recuperação de falhas, entre outros.
    No final desta UC o estudante deverá ser capaz de:
    - CO1. Identificar os requisitos funcionais e não funcionais, objetivos e expectativas para armazenamento e gestão de dados/conteúdos (NB2)
    - CO2. Selecionar tecnologias de armazenamento e gestão de dados/conteúdos, de acordo com os requisitos de domínio (NB5)
    - CO3. Conceber infraestrutura escalável e elástica de armazenamento e processamento de grandes quantidades de dados/conteúdos, usando tecnologias distribuídas (NB6)
    - CO4. Planear e implementar procedimentos, operações e tecnologias para gestão de risco para continuidade de negócio e recuperação de desastres, garantindo o cumprimento regulamentar (NB6)
    - CO5. Avaliar a segurança de dados/conteúdos e proteger privacidade do utilizador, e a propriedade intelectual da organização, usando tecnologias apropriadas e cumprindo os regulamentos (NB5)
    - CO6. Realizar configurações e operar sistemas de armazenamento e gestão de dados/conteúdos de acordo com requisitos de Confiabilidade, Integridade, Disponibilidade, Desempenho, Risco/Continuidade, Custo e outros (NB3)
    - CO7. Analisar tecnologias emergentes para compreender o seu potencial. (NB4)

    P1: Conceitos de bases de dados e sua administração (30%)
    - Relacionais vs. não-relacionais
    - Grande-escala, paralelas e distribuídas
    - Transacionais vs. streaming/runtime
    - Cloud (PaaS/SaaS) vs. on-permises
    P2: Implantação e Operação de bases de dados (40%)
    - Tunning (padrões e otimização)
    - Clustering e Indexing
    - Distribuição, Concorrência
    - Escalabilidade e elasticidade
    - Benchmarks e ferramentas
    P3: Segurança de bases de dados (30%)
    - Autenticação & Autorização
    - Logging, Auditing
    - Políticas de backup
    - Resposta a incidentes e recuperação de dados

  • 7,5 ECTS

    Aprendizagem Automática

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Elsa Ferreira Gomes
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final desta unidade curricular o estudante deve ser capaz de:
    CO1. Explicar os principais métodos e algoritmos de aprendizagem automática. (NB:2/6)
    CO2. Selecionar e aplicar técnicas, métodos e conceitos de aprendizagem automática. (NB:4/6)
    CO3. Implementar processos de aprendizagem automática e analisar resultados obtidos. (NB:4/6)
    CO4. Avaliar a aprendizagem e comparar diferentes modelos. (NB:5/6)

    CP1. Conceitos básicos de aprendizagem automática. (5%)
    CP2. Aprendizagem supervisionada, não supervisionada e por reforço. (5%)
    CP3. Regressão linear e múltipla. (10%)
    CP4. Classificação: Regressão Logística e Análise Discriminante Linear (LDA). (10%)
    CP5. Métodos de reamostragem: Validação cruzada e Bootstrap. (10%)
    CP6. Métodos de regularização: Ridge e LASSO. (10%)
    CP7. Modelos não lineares: Splines e Modelos aditivos generalizados (GAM). (10%)
    CP8. Métodos baseados em árvores: Árvores de Decisão, Florestas aleatórias. (10%)
    CP9. Máquinas de suporte vetorial (SVM). (10%)
    CP10. Aprendizagem não supervisionada. Análise de Componentes Principais (PCA). Métodos de agrupamento: K-means. Métodos de agrupamento: K-means e Agrupamento Hierárquico. (10%)
    CP11. Introdução à aprendizagem por reforço. Q-learning: equações de Bellman, cadeias de Markov e Processo de Decisão de Markov, Q-function e diferença temporal. (10%)

  • 7,5 ECTS

    Arquitetura de Software

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

    Esta unidade curricular promove conhecimentos e competências de arquitetura de software, principalmente de aplicações empresariais distribuídas/descentralizadas.
    No final da unidade curricular, o/a estudante deve ser capaz de:
    CO1. Debater conceitos, princípios e processos (métodos e táticas) de arquitetura de software e justificar a sua adequação em situações específicas (Nível de Bloom (NL): 5/6).
    CO2. Pesquisar, sistematizar e avaliar drivers arquiteturais e fatores contextuais do software a desenvolver (NL: 5/6).
    CO3. Desenhar a arquitetura de uma aplicação de software, adotando estilos e padrões arquiteturais e considerando drivers arquiteturais e fatores contextuais, para chegar a um compromisso entre benefícios e riscos potenciais e avaliar a sua adequação (NL: 6/6).
    CO4. Construir e evoluir a aplicação de software a partir do design arquitetural selecionado, revendo iterativamente as decisões arquiteturais em função dos resultados da implementação e da evolução dos drivers arquiteturais e fatores contextuais (NL: 6/6).
    CO5. Testar e avaliar a aplicação de software desenvolvida relativamente aos drivers arquitetónicos e fatores contextuais definidos (NL: 5/6).

    P1. Arquitetura de software (10%)
    - Atividades de ciclo de vida
    - O papel do arquiteto
    P2. Drivers arquitetónicos (10%)
    - Finalidade da conceção
    - Atributos de qualidade
    - Requisitos arquiteturais significativos (ASR)
    - Funcionalidade(s) primária(s)
    - Preocupações arquiteturais
    - Restrições
    P3. Conceitos de Design (20%)
    - Estilos e arquiteturas de referência
    - Padrões
    - Táticas
    - Componentes externos
    P4. Conceção arquitetural com Attribute-Driven Design (ADD) (30%)
    - ADD v3.0: principais características
    - Etapas e natureza iterativa
    - Decisões de conceção arquitetural como um processo
    - Teste e avaliação da solução relativamente aos drivers arquitetónicos
    - Documentação durante a conceção
    P5. Arquiteturas Monolíticas Modulares e orientadas a Microserviços (30%)
    - Características
    - Estratégias de migração e decomposição
    - Padrões arquiteturais para sistemas distribuídos/descentralizados
    - Outros estilos e padrões

  • 7,5 ECTS

    Complementos de Sistemas Gráficos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    No final desta UC o estudante deverá ser capaz de abordar e resolver problemas em que o recurso a sistemas gráficos 3D é um requisito fundamental, nomeadamente:
    CO1 - Explicar os conceitos relacionados com os sistemas gráficos 3D, a síntese realística de imagem, a modelação 3D e o conhecimento necessário para desenvolver sistemas gráficos 3D interativos avançados (Nível de Bloom 4);
    CO2 - Analisar/avaliar soluções avançadas para a optimização de sistemas de síntese realística de imagem e as capacidades de software de modelação e síntese realística de imagem (NB 5);
    CO3 - Criar sistemas gráficos 3D interativos avançados (NB 6);
    CO4 - Aplicar ferramentas gráficas padronizadas que visem o desenvolvimento de sistemas gráficos 3D avançados (NB 4).

    CP1 - Modelação 3D (50%)
    1 - Introdução
    2 - Modelação
    3 - Mapeamento de Texturas
    4 - Modificadores
    5 - Normais e Mapas
    6 - Animação
    7 - Renderização
    8 - Apresentação do trabalho
    CP2 - Iluminação e Síntese de Imagem (50%)
    1 - Introdução
    2 - Iluminação Local e Global
    3 - Ray Casting e Ray Tracing
    4 - Intersecção Raio/Objecto
    5 - Técnicas de Aceleração
    6 - Ray Tracing Distribuído
    7 - Radiosidade
    8 - Apresentação do trabalho

  • 7,5 ECTS

    Conceção e Autoria Multimédia

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

    A unidade curricular de Conceção e Autoria Multimédia está focada na análise e desenvolvimento de projetos multimédia utilizando as metodologias e tecnologias mais comuns. O programa inclui análise e gestão de requisitos, desenvolvimento de projeto multimédia, apresentação de exemplos relacionados com áreas específicas de multimédia, testes e garantia de qualidade.
    Na UC de CAMUL são conferidas as seguintes competências: Análise e desenho, programação e testes, vídeo e processamento de áudio, bem como metodologias ágeis para desenvolvimento de software.
    No final da disciplina, os alunos serão capazes de:
    CO1. Aplicar os princípios e etapas das metodologias de projeto multimédia (NB: 3)
    CO2. Analisar e compreender os requisitos específicos da conceção e autoria multimédia para fins específicos, em particular na relação estabelecida com os utilizadores (NB: 4).
    CO3. Aplicar uma metodologia de projeto multimédia na conceção e desenvolvimento de projetos colaborativos ou individuais (NB:6)
    CO4. Analisar e combinar adequadamente elementos multimédia de vários tipos. (NB:5)
    CO5. Avaliar e aplicar eficazmente as ferramentas de autoria e conceção multimédia adequadas para um determinado projeto. (NB: 6)

    1. Projeto Multimédia (8 semanas - teóricas - 1 ECTs: 30%)
    1.1. Abordagens e desenvolvimento baseados em metodologias sistemáticas
    1.1. Etapas do projeto
    1.2. Definição do problema, incluindo a missão, tecnologia, comunicação, requisitos do utilizador (incluindo as necessidades especiais) e questões conexas
    1.3. Conceptualização do processo de autoria
    1.4. Gestão da equipa e recursos de desenvolvimento
    1.5. Desenvolvimento e prototipagem
    1.6. Produção e teste
    2. Aplicações de Multimédia a áreas específicas (7 semanas - teóricas - 3 ECTs: 20%)
    2.1. Educação
    2.2. Medicina
    2.3. Colaboração
    2.4. Comunicação
    2.5. Jogos
    2.6. Acessibilidade
    3. Aplicações de conceção e autoria (13 semanas - práticas - 3,5 ECTs: 50%)
    3.1. Ferramentas de Autor
    3.2. Exemplos e exercicios

  • 7,5 ECTS

    Configuração e Gestão de Sistemas

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

    No final desta unidade curricular, o estudante deve ser capaz de:
    CO1. Aplicar os principais conceitos e princípios de DevOps, incluindo Infrastructure as Code, avaliando a sua adequação a diferentes contextos e requisitos operacionais (Nível de Bloom: 5/6).
    CO2. Avaliar e comparar diferentes soluções para a configuração e gestão de aplicações, sistemas e redes, recorrendo a técnicas de virtualização e simulação e considerando os respetivos requisitos e restrições (Nível de Bloom: 5/6).
    CO3. Conceber e implementar soluções para a configuração e gestão de aplicações, sistemas e redes, tendo em consideração os requisitos, as restrições e as especificidades do ambiente operacional (Nível de Bloom: 6/6).
    CO4. Desenvolver processos de integração entre o desenvolvimento de software e as operações, recorrendo a práticas e ferramentas de integração e entrega contínuas (CI/CD) (Nível de Bloom: 6/6).

    P1. Sistemas de controlo de versões (15%)
    P2. Ferramentas de compilação e automação de builds (15%)
    P3. Máquinas virtuais e contentores de software (25%)
    P4. Gestão de configurações e Infrastructure as Code (15%)
    P5. Pipelines de integração contínua/entrega contínua (CI/CD) (15%)
    P6. Observabilidade: monitorização, logging, tracing e análise de métricas (15%)

  • 7,5 ECTS

    Desenho e Desenvolvimento de Jogos

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Carlos Vaz de Carvalho
    Teórica
    1 hora
    Teórico-prática
    1 hora
    Prática laboratorial
    3 horas

    Esta unidade curricular fornece os conceitos e as práticas necessárias para compreender, analisar, projetar, desenvolver, testar e avaliar jogos.
    No final, os alunos serão capazes de:
    CO1. Compreender e implementar os conceitos, métodos e processos para a idealização, desenho e desenvolvimento de jogos (Nível de Bloom 3)
    CO2. Selecionar, utilizar e avaliar ambientes e ferramentas específicas para o desenvolvimento de jogos (Nível 5)
    CO3. Conceber, desenhar, implementar, testar, avaliar e distribuir um jogo (Nível 6)
    CO4. Avaliar o conhecimento adquirido e os processos aprendidos numa perspectiva de I&D&i (Nível 5)

    P1. Jogos e jogos digitais: cultura, conceitos e teorias (15%)
    - Jogo e jogar
    - Jogos digitais
    - Tipos de jogos
    - Análise de jogos
    P2. Desenho de jogos (35%)
    - Conceito de jogo
    - Dinâmica e mecânicas de jogo
    - História e narrativa
    - Prototipagem e playtesting
    - UX em jogos
    - Conceitos técnicos avançados para jogos: DDA, PCG, IA, sincronização multijogador, etc.
    P3. Desenvolvimento de jogos (45%)
    - Tecnologias de desenvolvimento de jogos
    - Motores de Jogos
    - Interface e manuseamento de objectos
    - Definição de luzes e câmaras
    - Scripting
    - Modelação e animação de elementos
    - Física de corpos rígidos
    - Controlo de interação
    - GUI
    - Áudio
    - Sistemas multi-jogador
    - IA para jogos
    - Monetização
    P4. R & D de Jogos Sérios (5%)
    - Linhas de investigação
    - Grupos de investigação, conferências e publicações

  • 7,5 ECTS

    Organização do Desenvolvimento de Software

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

    O objetivo geral desta UC é que os estudantes sejam capazes de gerir o ciclo de vida de um produto de software, através da adoção de práticas de integração e entrega contínua (CI/CD). São abordados, de forma integrada, requisitos, testes de software, gestão de configurações e versões, construção, publicação e implantação de software. Os estudantes desenvolvem competências que podem aplicar noutras UC e em contextos profissionais de desenvolvimento de software.
    No final da UC, o estudante será capaz de:
    CO1. Identificar, elicitar, analisar e modelar requisitos para a integração e entrega contínua de software (NB: 4/6).
    CO2. Conceber pipelines de integração e entrega contínua adequados aos requisitos e contexto (NB: 6/6).
    CO3. Conceber estratégias de teste, gestão de configurações e controlo de versões adequadas aos requisitos e contexto (NB: 6/6).
    CO4. Construir e evoluir pipelines de integração e entrega contínua, revendo iterativamente as decisões tomadas em função dos resultados obtidos e da evolução dos requisitos e contexto (NB: 6/6).
    CO5. Implementar e avaliar testes, gestão de configurações e controlo de versões, revendo as soluções adotadas em função dos resultados obtidos e dos requisitos (NB: 5/6).
    CO6. Debater e avaliar criticamente de que forma as práticas de integração e entrega contínua respondem aos desafios da gestão do ciclo de vida de produtos de software (NB: 5/6).

    CP1. Sistemas distribuídos de controlo de versões: conceitos, Git, branching e gestão de versões. (10%)
    CP2. Construção e automação de software: ferramentas de build e scripting. (20%)
    CP3. Plataforma tecnológica adotada: aplicação de referência, repositórios de código, infraestrutura computacional e respetiva arquitetura e integração. (10%)
    CP4. Automação de testes: testes unitários, de integração, aceitação e não funcionais; cobertura de código e outras métricas de qualidade. (20%)
    CP5. Gestão do ciclo de vida do produto com integração e entrega contínua (CI/CD): práticas, ferramentas e modelos de maturidade. (10%)
    CP6. Pipelines de integração e entrega contínua: conceção, implementação, scripting e automação. (20%)
    CP7. Publicação e implantação de aplicações: gestão de infraestrutura, ambientes e dados; virtualização, contentores e estratégias de implantação. (10%)

  • 7,5 ECTS

    Qualidade de Software

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

    Qualidade em Engenharia de Software exige a utilização conjugada de práticas, frameworks, metodologias e ferramentas. Este curso aborda tópicos de qualidade sobre o produto e o processo na engenharia de software, com considerações de ética na Engenharia de Software [1].
    Assim, no final da unidade curricular, o aluno deve ser capaz de:
    - CO1) Explicar e relacionar conceitos e princípios de qualidade na engenharia de software, justificando a sua adequação em situações específicas (Nível Bloom (BL): 5/6)
    - CO2) Conceber e aplicar um plano de medição de qualidade de software para garantir estimativas quantitativas realistas de qualidade, fornecendo uma avaliação da incerteza dessas estimativas (BL: 6)
    - CO3) Determinar a adequação de um conjunto de testes considerando os cenários de qualidade, preocupações, restrições e requisitos funcionais para uma determinada aplicação de software (BL: 5)
    - CO4) Desenvolver testes de software equilibrando cenários de qualidade, preocupações, restrições e requisitos funcionais, analisar os resultados e documentar problemas significativos descobertos (BL: 6)
    [1] Gotterbarn, D., Miller, K., & Rogerson, S. (1997). Software engineering code of ethics. Communications of the ACM, 40(11), 110-118. https://doi.org/10.1145/265684.265699

    P1. Qualidade na Engenharia de software (30%)
    - Atributos de qualidade,
    - Processo e produto: modelos e normas internacionais.
    P2. Teste de software (40%)
    - Conceitos e técnicas,
    - Verificação e validação, antecipação de testes,
    - Ciclo de vida,
    - Testes funcionais, de acessibilidade, visuais, de segurança, de arquitetura, de carga, de stresse e de imersão.
    P3. Medição da qualidade do software (20%)
    - Medidas. Tipos de medidas,
    - Medição de atributos de qualidade,
    - Métricas baseadas em metas,
    - Abordagem Goal Question Metric (GQM).
    P4. Código de teste (10%)
    - Manutenibilidade dos testes,
    - Potenciais problemas com testes.

  • 7,5 ECTS

    Redes de Computadores

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Ana Raquel Faria
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    Propósitos e objetivos (max. 1750 caracteres)
    No final desta UC o aluno deverá ser capaz de:
    CO1. Implementar os requisitos para soluções de redes de comunicação em organizações de pequeno e médio porte. (Bloom Level (BL): 3/6)
    CO2. Implementar redes de comunicação de dados para organizações de pequeno e médio porte, incluindo redes locais e o uso de tecnologias de rede de área ampla conforme os requisitos. (BL:3/6)
    CO3. Implementar o nível de serviço acordado (SLA) com base nos requisitos. (BL:3/6)
    CO4. Identificar a conformidade do SLA em relação aos requisitos, especificações e design. (BL:4/6)
    CO5.Aplicar as ferramentas e técnicas relevantes de gestão da qualidade de serviço. (BL:3/6)
    CO6. Identificar o potencial das tecnologias emergentes. (BL:4/6)

    CP1. Tipos de redes e suas características (8%):
    - LAN, Wireless LAN, Wide Area Networking, Metropolitan Area Network
    - Low-Power Wireless Area Networks (Internet of Things (IoT))
    CP2. Endereçamento, encaminhamento e comutação (60%):
    - IPv4: DHCP, RIP, OSPF, EIGRP (routing dinâmico)
    - IPv6: SLAAC,
    IoT + IPv6: 6loWPAN, RPL
    -VLAN; TVP; GRVP
    - Frame, Jumbo Frame, Superjumbo Frame
    - STP e RSTP
    -DNS
    CP3. Qualidade de serviço (16%):
    - Gestão de tráfego: Shapping and Policing
    - Policy-based routing (PBR)
    CP4. Considerações sobre segurança, restrições e análise (16%):
    - DNSSec
    - Protocolos de aplicação, por ex. HTTPS, FTPS, SMTPS, POPS, SSH

  • 7,5 ECTS

    Tecnologias e Sistemas Multimédia

    ECTS
    7,5
    Período
    1º semestre
    Responsável
    Filipe de Faria Pacheco
    Teórica
    2 horas
    Teórico-prática
    1 hora
    Prática laboratorial
    2 horas

    No final da disciplina os estudantes serão capazes de compreender os conceitos de multimédia, descrever e exemplificar as tecnologias de suporte e conceber aplicações multimédia.
    Os alunos serão ainda capazes de dominar as técnicas fundamentais para tornar estas aplicações eficientes, amigáveis e informativas.
    No final, o estudante deverá ser capaz de:
    CO1 - Criar Aplicações Multimédia Integradas, incluindo Web e HTML5/JavaScript (Bloom level: 6)
    CO2 - Usar Ferramentas de Desenho e Animação (BL 3)
    CO3 - Usar fontes de informação disponíveis para técnicas adicionais alternativas e soluções para problemas específicos (BL 3)
    CO4 - Examinar um sistema de uma forma holística: multimédia como um caminho para uma interação eficaz com indivíduos e a sociedade (BL 4)
    CO5 - Aplicar ferramentas de multimédia no mundo contemporâneo, considerando questões jurídicas, políticas e sociais (BL 3).

    P1. Introdução (5%)
    - Multimedia Systems;
    - Digital Multimedia;
    P2. Conceitos (20%)
    - Multimedia Documents;
    - Coding and Compression
    - Voice/Audio;
    - MIDI;
    - Text;
    - Graphics;
    - Human Vision;
    - Images;
    - Vídeo.
    P3. Tecnologias (25%)
    - Home Cinema; Digital Cinema; Digital Photography
    - Digital Rights Management;
    - Game Consoles; Alternative Displays
    P4. Aplicações HTML5/JavaScript (50%)
    - Creating Graphics and Animations
    - MAPA Awards
    - Programming Multimedia Applications

  • 7,5 ECTS

    Tópicos Avançados de Bases de Dados

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

    Pretende-se que o estudante após esta unidade curricular seja capaz de identificar e solucionar problemas e questões envolvidas em SGBDs.
    No final desta UC o estudante deverá ser capaz de:
    CO1. Explicar os problemas relacionados com gestão de dados (BL4)
    CO2. Comparar e descrever os mais recentes desenvolvimentos na área de gestão de dados (BL4)
    CO3. Compreender as técnicas de modelação de dados orientada por documentos, por chave/valor, colunas-chave e por grafos, e selecionar soluções adequadas tendo em conta o tipo de informação e os requisitos funcionais dos sistemas a desenvolver; (BL5)
    C04. Interpretar e aplicar estruturas de armazenamento de Base de dados e técnicas de acesso para melhorar a performance. (BL3)
    CO5. Implantar e operar sistemas de gestão de dados adequados ao domínio e conforme os requisitos (BL6)

    CP1. Problemas e desafios recentes com o armazenamento e manipulação de conjuntos de dados heterogéneos e em grande volume;
    CP2. Performance Tuning and Query Optimization;
    CP3. Base de dados distribuídas;
    CP4. Sistemas de armazenamento e manipulação de dados, relacionais/não-relacionais;
    CP5. Pesquisa e Indexação em sistemas não relacionais.

2º ano | 2º semestre

  • 30 ECTS

    Dissertação

    ECTS
    30
    Período
    2º semestre
    Responsável
    Isabel Praça
    Orientação tutorial
    1 hora

    Tem por objetivo o desenvolvimento de trabalho de pesquisa e desenvolvimento conducente à preparação de uma dissertação de natureza técnico-científica sobre um tema da área de conhecimento do curso.
    O trabalho deve envolver componentes de caráter teórico e prático, promovendo a abordagem de problemas novos, a recolha de informação e bibliografia pertinentes, a seleção fundamentada dos métodos de abordagens, o design duma solução para o problema proposto, a respetiva implementação e avaliação experimental e posterior a análise crítica dos resultados.
    Ao final deste curso o aluno deverá ser capaz de:
    CO1. Interpretar o problema a resolver, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO2. Sintetizar o conhecimento existente de ciências e boas práticas de engenharia informática para a resolução do problema (Bloom Level (BL): 6/6)
    CO3. Avaliar diferentes abordagens para a resolução do problema pela adoção ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO4. Desenhar uma solução para o problema adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO5. Construir a solução para o problema aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)
    CO6. Avaliar a solução desenhada/construída aplicando ciências e boas práticas de engenharia informática (Bloom Level (BL): 5/6)
    CO7. Descrever de forma sintática e semanticamente rigorosa os processos e resultados dos pontos anteriores, adotando ciências e boas práticas de engenharia informática (Bloom Level (BL): 6/6)

    De acordo com o enunciado de projeto aprovado pelo RUC de DIMEI e aceite pelo Estudante, pelo Orientador (docente doutorado ou especialista) pelo Coorientador (no caso de existir) e pelo Supervisor da organização onde o projeto/estágio se desenrole (se existir).

 

Registo Legal

Despacho

Nº 11560/2022 pub. no DR 189 de 29-09-2022

Registo DGES

R/A-CR 160/2015/AL01

Aprender com quem faz tecnologia todos os dias.

O ISEP tem como desígnio formar engenheiros em contacto com quem faz tecnologia todos os dias. Ao longo do mestrado, e em especial no projeto, estágio ou dissertação, trabalhas em problemas reais propostos por empresas e centros de investigação parceiros.

 

Empresas

Através do Portal de Projetos do DEI, empresas de referência submetem desafios concretos que dão origem a dissertações e estágios. Os parceiros abrangem praticamente todos os setores da economia:

SETOR PARCEIROS
Software e consultoria de TI Armis Group, Celfocus, Devscope, Evoleo Technologies, InfoPortugal, ITSector, Novabase, Sistrade, Wipro Portugal, Xarevision, XpandIT.
Indústria, mobilidade e agroalimentar Ascendi, Comissão de Viticultura da Região dos Vinhos Verdes, Continental Mabor, Critical Manufacturing, Critical TechWorks, Efacec.
Retalho e comércio eletrónico Caetano Retail, E-goi, Farfetch, Jumia Porto Tech Center, Parfois.
Saúde e ciências da vida ALERT, Glintt, Serviços Partilhados do Ministério da Saúde.
Finanças e seguros i2S, msg Life Iberia, Natixis.
Media, entretenimento e desporto Blip, Impresa, Liga Portugal, Musicverb, TIMWE.

 

Esta ligação garante que aprendes a resolver problemas com relevância real e crias, desde cedo, uma rede de contactos no mercado.

 

Investigação

O ISEP acolhe grupos de investigação de referência nacional e internacional, como o INESC TEC (afiliado), o GECAD, CISTER, o GILT e o ISRC, e colabora com parceiros como a Associação Fraunhofer Portugal Research, o CIDES e o Serviço de Informática da Faculdade de Medicina da Universidade do Porto, a Faculdade de Psicologia e Ciências da Educação da Universidade do Porto, o ISCAP, a Haute École d’Ingénierie et de Gestion du Canton de Vaud (Suíça) e o laboratório Le2I (França). Podes desenvolver o teu trabalho final integrado numa destas equipas, contribuindo para projetos de I&D e, se for esse o teu caminho, dando o primeiro passo rumo ao doutoramento.

 

No semestre final escolhes o teu rumo: podes realizar uma dissertação académica, um projeto em empresa ou um estágio de investigação. Em qualquer dos casos, sais do mestrado com experiência concreta e com uma rede profissional já construída.

 

Carreiras que se constroem a partir do conhecimento.

Um mestrado em Engenharia Informática abre portas para algumas das carreiras mais procuradas e melhor remuneradas do mercado tecnológico, com oportunidades em Portugal e no estrangeiro. A formação do MEI prepara profissionais tanto para funções técnicas de elevada especialização, como para papéis de liderança e empreendedorismo.

 

Saídas profissionais por especialização

Dependendo da especialização que escolheres, podes seguir caminhos como:

CARREIRA FOCO PROFISSIONAL
Arquiteto de Software, Engenheiro DevOps ou Tech Lead Competências avançadas no desenho e na manutenção de sistemas robustos e escaláveis.
Analista de Cibersegurança ou de SOC, Auditor de Segurança, Administrador de Sistemas Proteção e resposta a incidentes em sistemas informáticos e em infraestruturas críticas.
Engenheiro de Dados, Cientista de Dados ou Engenheiro de Machine Learning Transformar dados em decisões e inteligência.
Programador de Jogos, Designer de Experiências Interativas, Especialista XR/UX Criar produtos gráficos e imersivos.
Consultor de Sistemas de Informação, Gestor de Produto ou Analista de Negócio Ligar a tecnologia às necessidades das organizações.
Investigador, CTO ou fundador da tua própria startup Liderar a inovação a partir do conhecimento.

 

Este mestrado dá-te a base para evoluíres ao longo de toda a carreira, acompanhando a rápida evolução da tecnologia e da inteligência artificial. Muitos estudantes iniciam a atividade profissional ainda durante o curso, cujo regime está concebido para conciliar estudo e trabalho.

 

Posso candidatar-me?

Podes candidatar-te ao mestrado se fores:

  • Titular do grau de licenciado ou equivalente legal.
  • Finalista de licenciatura, mas de forma condicional, devendo apresentar prova de conclusão até ao último dia do prazo de matrícula da fase a que se candidatou, sob pena de exclusão.
  • Titular de grau académico superior estrangeiro conferido após um 1.º ciclo de estudos organizado segundo os princípios de Bolonha, por um Estado aderente.
  • Titular de grau académico superior estrangeiro reconhecido pelo Conselho Técnico-Científico (CTC) do ISEP como equivalente a licenciado.

 

Se precisares de reconhecimento pelo CTC do ISEP, deves solicitá-lo antecipadamente. Pede informação por email à Divisão Académica ou à direção do mestrado (contacto na página do curso, barra lateral direita).

 

É também possível pedir o reconhecimento do grau académico através da DGES: www.dges.gov.pt/pt/pagina/reconhecimento.

 

Mais informação sobre o MEI

 

Quando posso candidatar-me?

FASE

PERÍODO

DOCUMENTOS

1.ª Fase

03 de junho a 06 de julho de 2026

Edital (PT) | Public Notice (EN)
Adenda I | Addendum I

2.ª Fase

1 a 31 de agosto de 2026

Mapa de vagas | Vacancy List

3.ª Fase

28 de setembro a 7 de outubro de 2026

Mapa de vagas | Vacancy List

 

As segunda e terceira fases abrem mediante a disponibilidade de vagas resultantes das fases anteriores.

Depois de ultrapassado o prazo de uma fase, as datas e os documentos públicos partilhados nesta página passam a servir apenas como referência informativa para eventuais candidaturas futuras.

 

Como posso candidatar-me?

  • Seleciona abaixo o botão “CANDIDATURAS” (ativo apenas durante os períodos de candidatura).
  • Se não tens chave de acesso, clica em “OBTER CHAVE DE ACESSO”; se tens chave de acesso, clica em “ENTRAR”.
  • Se tiveres dúvidas no preenchimento do formulário online, podes esclarecê-las, por email, à Divisão Académica ou à direção do mestrado (contactos nesta página, barra lateral direita).

 

Voltar ao topo