EM CURSO
Mestrado em Engenharia Informática
Universidade de Évora
Conclusão prevista: ano letivo 2026/2027
BETÂNIA MARIAFUNDADORA · ENGENHEIRA INFORMÁTICA← Voltar ao portfólioFORMAÇÃO & COMPETÊNCIAS
As bases que sustentam o meu trabalho em tecnologia e educação.
EM CURSO
Universidade de Évora
Conclusão prevista: ano letivo 2026/2027
2021/2024
Universidade Lusófona de Lisboa
2014/2015
Liceu João XXIII
Experiência na criação de software robusto e escalável, utilizando práticas de engenharia de software como controle de versão (Git), testes automatizados, integração contínua e metodologias ágeis. Conhecimento em diversas linguagens de programação como Java, Python, C++, Dart, C..etc.
Competência no desenvolvimento de aplicações web utilizando tecnologias modernas como HTML, CSS, JavaScript, frameworks front-end (Flutter) e back-end (Spring Boot, Django). Capacidade de criar interfaces de utilizadores intuitivas e funcionais.
Conhecimento sólido em algoritmos clássicos e modernos, bem como em estruturas de dados essenciais. Experiência na aplicação desses conceitos para otimizar o desempenho e a eficiência dos sistemas.
Capacidade de analisar situações complexas, identificar problemas, desenvolver soluções eficazes e eficientes. Utilização de pensamento crítico e lógico para resolver desafios técnicos e organizacionais
Capacidade de projetar, implementar e gerenciar sistemas de informação que atendam às necessidades das organizações. Conhecimento em bases de dados, SQL.
Conhecimento em redes de computadores, protocolos de comunicação (TCP/IP), configuração e administração de redes, segurança de redes e soluções de conectividade.
Experiência em técnicas de inteligência artificial e aprendizado de máquina, incluindo redes neurais, aprendizado supervisionado e não supervisionado, e processamento de linguagem natural.
Conhecimento em princípios de segurança da informação, criptografia, deteção e prevenção de intrusões, e práticas de segurança cibernética para proteger dados e sistemas.
Desenvolvimento de aplicações móveis para plataformas Android e iOS, utilizando tecnologias como Kotlin, dart frameworks multiplataforma como Flutter.
Habilidade em gerenciar projetos de TI, utilizando metodologias ágeis (Scrum, Kanban) e ferramentas de gestão de projetos (Trello) para garantir a entrega eficiente e dentro do prazo.
PERCURSO ACADÉMICO
Conteúdos estudados ao longo da licenciatura. Selecione uma disciplina para conhecer os tópicos abordados.
29 disciplinas
Cinemática: Estuda o movimento dos corpos sem levar em consideração as causas desse movimento. Inclui conceitos como posição, deslocamento, velocidade, aceleração e leis do movimento de Newton.
Dinâmica: Analisa as causas do movimento dos corpos e a relação entre força, massa e aceleração. Inclui a segunda lei de Newton, o princípio da ação e reação, e leis de conservação de momento linear e energia.
Gravitação: Estuda a força de atração entre corpos devido à sua massa. Inclui a lei da gravitação universal de Newton e o movimento de corpos em órbita.
Termodinâmica: Trata das relações entre calor, trabalho e energia. Inclui conceitos como temperatura, calor específico, primeira e segunda leis da termodinâmica, transformações de energia e ciclos termodinâmicos.
Ondas e Óptica: Estuda o comportamento de ondas, incluindo ondas sonoras e eletromagnéticas, e a interação da luz com a matéria. Inclui princípios da reflexão, refração, difração, interferência, polarização e formação de imagens em espelhos e lentes.
Eletricidade e Magnetismo: Analisa as propriedades das cargas elétricas, campos elétricos e magnéticos, e suas interações. Inclui leis de Coulomb, campo elétrico, potencial elétrico, corrente elétrica, resistência, circuitos elétricos e leis de Ampère e Faraday.
Física Moderna: Introduz os princípios da física quântica e da teoria da relatividade. Inclui conceitos como dualidade onda-partícula, princípio de incerteza, modelo atômico, mecânica quântica, efeito fotoelétrico, teoria da relatividade restrita e teoria da relatividade geral.
Física Nuclear: Estuda a estrutura do núcleo atômico, a radioatividade, a energia nuclear e as reações nucleares. Inclui conceitos como decaimento radioativo, fissão nuclear, fusão nuclear e aplicações da energia nuclear.
Algoritmos: Um algoritmo é uma sequência de passos bem definidos e organizados para resolver um problema ou executar uma tarefa. Compreender como projetar e implementar algoritmos eficientes é fundamental na programação.
Variáveis e Tipos de Dados: As variáveis são espaços de memória para armazenar valores. Os tipos de dados definem o tipo de informação que uma variável pode armazenar, como números inteiros, números de ponto flutuante, cadeias de caracteres, booleanos, entre outros.
Estruturas de Controle: As estruturas de controle permitem controlar a sequência de execução das instruções em um programa. As principais estruturas de controle incluem estruturas condicionais (if-else, switch-case) e estruturas de repetição (loops como for, while).
Funções e Procedimentos: As funções e procedimentos são blocos de código que podem ser reutilizados e chamados de diferentes partes do programa. Eles ajudam a modularizar o código e facilitam a organização e manutenção do programa.
Estruturas de Dados: As estruturas de dados são formas de organizar e armazenar dados de maneira eficiente. Isso inclui arrays, listas, pilhas, filas e estruturas mais complexas, como árvores e grafos.
Entrada e Saída de Dados: Os programas interagem com os usuários e com o ambiente por meio da entrada e saída de dados. Isso pode incluir a leitura de dados do teclado, arquivos ou dispositivos externos, bem como a exibição de resultados na tela ou a gravação em arquivos.
Depuração e Testes: Depurar um programa é identificar e corrigir erros ou falhas. A depuração é uma habilidade fundamental para garantir que o programa funcione corretamente. Além disso, escrever testes para verificar o comportamento esperado do programa é uma prática importante na programação.
Boas Práticas de Programação: Existem diretrizes e boas práticas para escrever um código limpo, legível e de fácil manutenção. Isso inclui o uso de nomes significativos para variáveis e funções, comentários adequados, indentação correta e aderência a convenções de estilo de código.
Lógica: Estudo dos princípios e técnicas de raciocínio lógico. Isso inclui proposições, conectivos lógicos, tabelas-verdade, equivalências lógicas, quantificadores e técnicas de prova.
Teoria dos Conjuntos: Exploração dos conceitos básicos de teoria dos conjuntos, como união, interseção, diferença, complemento e produto cartesiano. Utilização de diagramas de Venn e técnicas de contagem.
Funções e Relações: Estudo das funções e relações entre conjuntos. Isso inclui noções de função injetora, sobrejetora, bijetora, relação de equivalência, relação de ordem e operações com funções e relações.
Números Reais: Estudo dos números reais, incluindo operações básicas (adição, subtração, multiplicação e divisão), propriedades dos números reais, representação decimal, valor absoluto e intervalos.
Funções e Gráficos: Introdução às funções, incluindo definição de função, domínio e contradomínio, gráficos de funções elementares (lineares, quadráticas, exponenciais, logarítmicas) e interpretação dos gráficos.
Limites e Continuidade: Exploração dos conceitos de limite e continuidade de funções, incluindo limites infinitos, limites laterais e teorema do confronto. Estudo de limites de funções polinomiais, racionais, exponenciais e logarítmicas.
Sistemas de Numeração: Estudo dos sistemas de numeração binário, decimal e hexadecimal, e a conversão entre eles. Compreensão dos conceitos de bits, bytes e palavras.
Álgebra Booleana: Análise e manipulação de expressões lógicas utilizando a álgebra booleana. Utilização de operações lógicas, como AND, OR, NOT, XOR e NAND, para projetar circuitos digitais.
Portas Lógicas e Circuitos Combinacionais: Estudo das portas lógicas, como AND, OR, NOT, XOR, NAND e NOR, e sua utilização na construção de circuitos combinacionais. Projeto de circuitos combinacionais utilizando diagramas de Venn, tabelas-verdade e mapas de Karnaugh.
Circuitos Sequenciais: Análise e projeto de circuitos sequenciais, que envolvem elementos de memória, como flip-flops. Estudo de registradores, contadores, máquinas de estados e circuitos de memória.
Sistemas de Codificação e Decodificação: Exploração das técnicas de codificação e decodificação utilizadas para representar e processar informações digitais. Isso inclui códigos binários, códigos BCD, códigos de Gray e codificação de Hamming.
Circuitos Aritméticos: Estudo dos circuitos aritméticos utilizados para realizar operações matemáticas em sistemas digitais. Isso inclui somadores, subtratores, multiplicadores e divisores.
Flip-Flops e Registradores: Análise e utilização de flip-flops e registradores para armazenamento temporário de dados em circuitos sequenciais. Estudo de tipos de flip-flops, como D, JK, T e RS, e suas aplicações.
Contadores e Temporizadores: Estudo dos contadores digitais e temporizadores utilizados para contar eventos e gerar sinais de temporização em sistemas digitais. Compreensão de contadores síncronos e assíncronos, contadores binários e contadores década.
Circuitos Combinacionais Programáveis: Introdução aos circuitos combinacionais programáveis, como as matrizes lógicas programáveis (PLAs) e os dispositivos lógicos programáveis (FPGAs). Exploração de técnicas de programação e configuração desses circuitos.
Projeto de Sistemas Digitais: Aplicação dos conceitos e técnicas estudados na disciplina para projetar sistemas digitais mais complexos. Isso inclui a utilização de ferramentas de design assistido por computador (CAD) para simulação, verificação e implementação de circuitos digitais.
Desenvolver programas que processem grandes quantidades de informação com um desempenho adequado.
Introdução à Arquitetura de Computadores: História e evolução dos computadores, conceitos básicos de arquitetura, hierarquia de memória, tipos de instruções e representação de dados.
Organização e Projeto de Computadores: Estrutura e funcionamento de um computador, unidade de controle e unidade de processamento, ciclo de instrução, arquitetura von Neumann e arquiteturas alternativas.
Conjunto de Instruções e Modos de Endereçamento: Tipos de instruções (aritméticas, lógicas, de transferência de dados, de controle), formatos de instruções, modos de endereçamento (direto, indireto, imediato, registrador, indexado) e conjunto de instruções específico de uma arquitetura.
Memória Principal: Hierarquia de memória, tipos de memória (RAM, ROM, cache), organização da memória, endereçamento de memória, memória virtual e técnicas de gerenciamento de memória.
Processadores: Arquitetura do processador, registradores, pipeline de instruções, paralelismo de instruções, pipeline superescalar, predição de desvios, técnicas de otimização de desempenho, processadores multicore.
Barramentos e Dispositivos de Entrada/Saída: Barramentos de sistema, barramentos de dados, endereços e controle, interconexões, controladores de dispositivos, dispositivos de entrada/saída (teclado, mouse, monitor, disco rígido, etc.), interfaces de comunicação.
Interrupções e Exceções: Conceito de interrupção, tipos de interrupções, tratamento de interrupções, exceções de hardware e software, modo de privilégio e modo usuário, proteção de memória.
Arquiteturas Avançadas: Arquiteturas RISC (Reduced Instruction Set Computer) e CISC (Complex Instruction Set Computer), processadores vetoriais, processadores especiais (GPU, FPGA), computação paralela e distribuída.
Medidas de Desempenho: Métricas de desempenho de computadores, tempo de execução, taxa de transferência, CPI (Cycles Per Instruction), CPI médio, ganho de desempenho, leis de Amdahl e Gustafson.
Comunicação: Capacidade de transmitir informações de forma clara, concisa e eficaz, tanto na expressão oral quanto na escrita. Inclui habilidades de escuta ativa e capacidade de se adaptar à audiência.
Colaboração: Capacidade de trabalhar em equipe, compartilhar responsabilidades, contribuir com ideias e respeitar as opiniões e perspectivas dos outros. Inclui a capacidade de resolver conflitos e buscar soluções de forma cooperativa.
Liderança: Capacidade de influenciar, motivar e inspirar outras pessoas para alcançar objetivos comuns. Inclui habilidades de tomada de decisão, delegação, gestão do tempo e resolução de problemas.
Pensamento crítico: Capacidade de analisar informações, questionar ideias preconcebidas, identificar problemas, formular argumentos lógicos e tomar decisões fundamentadas. Inclui a habilidade de avaliar fontes de informação e pensar de forma criativa e inovadora.
Resiliência: Capacidade de lidar com adversidades, superar obstáculos e se adaptar a mudanças. Inclui a capacidade de lidar com o estresse, gerenciar emoções, manter a calma em situações difíceis e aprender com os erros.
Empatia: Capacidade de compreender e se colocar no lugar dos outros, reconhecendo e valorizando suas emoções, necessidades e perspectivas. Inclui a capacidade de se relacionar de forma empática, demonstrando compreensão, respeito e consideração pelos outros.
Pensamento criativo: Capacidade de gerar novas ideias, abordagens e soluções originais para os problemas. Inclui a capacidade de pensar fora da caixa, buscar diferentes perspectivas e explorar diferentes possibilidades.
Inteligência emocional: Capacidade de reconhecer, compreender e gerenciar as próprias emoções e as emoções dos outros. Inclui a habilidade de expressar emoções de forma adequada, desenvolver empatia, manter relacionamentos saudáveis e lidar com conflitos de forma construtiva.
Organização e gerenciamento do tempo: Capacidade de planejar, priorizar tarefas, gerenciar recursos e cumprir prazos. Inclui habilidades de organização, eficiência e produtividade pessoal.
Introdução à programação: Visão geral dos conceitos básicos de programação, história das linguagens de programação, paradigmas de programação (procedural, orientado a objetos, etc.) e ambientes de desenvolvimento integrado (IDEs).
Sintaxe e Semântica: Estudo da sintaxe de uma linguagem de programação, incluindo a estrutura das instruções, declarações de variáveis, expressões e estruturas de controle de fluxo. Compreensão da semântica, ou seja, o significado e o comportamento das instruções.
Tipos de dados e variáveis: Introdução aos diferentes tipos de dados, como números inteiros, números de ponto flutuante, caracteres, booleanos e cadeias de caracteres. Declaração e uso de variáveis para armazenar e manipular dados.
Estruturas de controle de fluxo: Utilização de estruturas condicionais (if-else, switch-case) para tomar decisões com base em condições lógicas. Utilização de loops (for, while) para repetir um bloco de código várias vezes.
Funções: Definição e uso de funções para organizar e reutilizar blocos de código. Passagem de argumentos para funções e retorno de valores.
Arrays e Coleções: Utilização de arrays para armazenar e manipular conjuntos de dados. Introdução a coleções como listas, conjuntos e dicionários.
Manipulação de arquivos: Leitura e escrita de arquivos utilizando operações de entrada e saída. Manipulação de diretórios e gerenciamento de arquivos.
Depuração e tratamento de erros: Identificação e correção de erros em programas. Utilização de técnicas de depuração e tratamento de exceções.
Boas práticas de programação: Utilização de convenções de nomenclatura, comentários, formatação de código e outras boas práticas para tornar o código legível, organizado e fácil de dar manutenção.
Derivadas: Introdução ao cálculo diferencial com o estudo das derivadas de funções. Cálculo de derivadas usando regras de diferenciação (regra do produto, regra da cadeia) e interpretação geométrica das derivadas.
Aplicações de Derivadas: Utilização das derivadas para resolver problemas relacionados a taxas de variação, otimização, concavidade, esboço de gráficos e problemas de taxa de crescimento.
Funções Trigonométricas: Estudo das funções trigonométricas (seno, cosseno, tangente, cotangente, secante e cossecante), suas propriedades, gráficos e relações trigonométricas.
Identidades Trigonométricas: Derivação e aplicação das identidades trigonométricas, incluindo as identidades fundamentais, identidades de ângulo duplo, identidades de ângulo triplo, identidades de soma e subtração e identidades pitagóricas.
Equações Trigonométricas: Resolução de equações trigonométricas, incluindo equações lineares, quadráticas e com múltiplos ângulos. Utilização de identidades trigonométricas para simplificar as equações e encontrar soluções.
Funções Exponenciais e Logarítmicas: Estudo das funções exponenciais e logarítmicas, suas propriedades, gráficos e relações. Resolução de equações exponenciais e logarítmicas.
Cálculo Integral: Continuação do estudo do cálculo integral, incluindo integração por partes, substituição trigonométrica, substituição por frações parciais e integração de funções trigonométricas.
Sistemas de equações lineares: Representação matricial de sistemas lineares, escalonamento de matrizes, formas escalonada e reduzida por linhas, soluções de sistemas lineares (solução única, infinitas soluções, nenhuma solução), método de eliminação de Gauss e matriz aumentada.
Espaços vetoriais de dimensão finita: Espaços vetoriais de dimensão finita, coordenadas vetoriais, mudança de base, espaços vetoriais complexos, espaços vetoriais euclidianos e ortogonalidade.
Transformações lineares: Definição de transformações lineares, matriz de uma transformação linear, núcleo e imagem de uma transformação linear, isomorfismos e operações com transformações lineares.
Valores próprios e vetores próprios: Definição de valores próprios e vetores próprios, diagonalização de matrizes, polinômio característico, teorema de Cayley-Hamilton, espaços próprios e diagonalização de transformações lineares.
Produto interno e espaços unitários: Produto interno, norma vetorial, ortogonalidade, bases ortonormais, projeção ortogonal, espaços unitários, operadores hermitianos e matrizes unitárias.
Arquiteturas de processadores avançados: Estudo das arquiteturas modernas de processadores, como pipelines superescalares, execução fora de ordem, unidades de execução de vetor e SIMD (Single Instruction, Multiple Data), arquiteturas multithread e multicore.
Memória avançada hierárquica: Exploração das hierarquias de memória, como caches L1, L2, L3, memória principal e sistemas de memória virtual. Análise de técnicas de otimização de acesso à memória e gerenciamento de caches.
Paralelismo e processamento distribuído: Estudo de técnicas de paralelismo, incluindo processamento vetorial, paralelismo a nível de instrução, paralelismo de dados e paralelismo de tarefas. Exploração de técnicas de programação paralela, como OpenMP, MPI e CUDA.
Arquiteturas de computação de alto desempenho: Análise de sistemas de computação de alto desempenho, como clusters, grids e supercomputadores. Compreensão de topologias de interconexão, escalabilidade, tolerância a falhas e balanceamento de carga.
Sistemas embarcados e Internet das Coisas (IoT): Estudo de arquiteturas de sistemas embarcados, incluindo processadores de baixa potência, memórias e sistemas operacionais embebidos. Exploração de aplicações em IoT, comunicação sem fio e requisitos de energia.
Arquiteturas de computação quântica: Introdução aos princípios da computação quântica e às arquiteturas de processadores quânticos, como qubits, portas quânticas, algoritmos quânticos e tolerância a erros.
Arquiteturas de armazenamento em nuvem: Estudo das arquiteturas de sistemas de armazenamento em nuvem, como bancos de dados distribuídos, sistemas de arquivos distribuídos e armazenamento em bloco. Análise de escalabilidade, disponibilidade e confiabilidade em ambientes de nuvem.
Arquiteturas de aceleração de hardware: Exploração de técnicas de aceleração de hardware, como processadores gráficos (GPUs), FPGAs (Field-Programmable Gate Arrays) e ASICs (Application-Specific Integrated Circuits). Compreensão de projetos customizados de hardware para aceleração de tarefas específicas.
Arquiteturas de redes de computadores avançadas: Estudo de arquiteturas de redes de alto desempenho, como redes de área ampla (WAN), redes definidas por software (SDN), redes de data center e protocolos de comunicação avançados.
Modelos de Dados: Estudo dos modelos de dados utilizados para representar a estrutura e o relacionamento entre os dados. Os modelos mais comuns são o modelo relacional, o modelo hierárquico, o modelo em rede e o modelo orientado a objetos.
Linguagens de Consulta: Aprendizado de linguagens utilizadas para consultar e manipular dados em bases de dados. A linguagem SQL (Structured Query Language) é a mais amplamente utilizada em bases de dados relacionais.
Projeto de Bases de Dados: Desenvolvimento de habilidades para projetar bases de dados eficientes e bem estruturadas. Isso inclui a modelagem de entidades, atributos e relacionamentos, normalização de dados para evitar redundâncias e anomalias, e definição de chaves primárias e estrangeiras.
Álgebra Relacional: Estudo das operações e técnicas utilizadas para consultar dados em bases de dados relacionais. Isso inclui projeção, seleção, união, interseção, diferença e junção de tabelas.
Transações e Controle de Concorrência: Compreensão dos conceitos de transações em bases de dados e das técnicas utilizadas para garantir a consistência dos dados em ambientes concorrentes. Isso inclui bloqueios, controle de concorrência e recuperação de falhas.
Indexação e Otimização de Consultas: Aprendizado de técnicas de indexação para melhorar o desempenho das consultas em bases de dados. Isso inclui índices primários, índices secundários e técnicas de otimização de consultas.
Integridade e Restrições: Estudo das restrições e regras que garantem a integridade dos dados em uma base de dados. Isso inclui restrições de chave primária, chave estrangeira, unicidade, integridade referencial e regras de negócio.
Armazenamento e Recuperação de Dados: Compreensão dos métodos e técnicas utilizados para armazenar e recuperar dados em bases de dados. Isso inclui organização de arquivos, estruturas de índice, particionamento de dados e técnicas de recuperação.
Sistemas de Gerenciamento de Banco de Dados (SGBD): Introdução aos sistemas de gerenciamento de banco de dados, que são softwares especializados para criar, manipular e gerenciar bases de dados. Isso inclui a compreensão dos recursos e funcionalidades fornecidos pelos SGBDs.
Programação Orientada a Objetos (POO): Exploração dos princípios e conceitos da programação orientada a objetos, incluindo classes, objetos, encapsulamento, herança, polimorfismo, interfaces e composição. Desenvolvimento de habilidades para projetar e implementar programas usando a abordagem orientada a objetos.
Estruturas de dados: Estudo aprofundado das estruturas de dados, como listas, pilhas, filas, árvores, grafos e tabelas hash. Compreensão das características, operações e algoritmos associados a cada estrutura de dados.
Introdução aos sinais: Conceitos básicos de sinais, como amplitude, frequência, fase e tempo. Classificação de sinais, como contínuos no tempo e discretos no tempo.
Sinais contínuos no tempo: Análise de sinais contínuos no tempo usando funções matemáticas. Transformada de Fourier para sinais contínuos no tempo e espectro de frequência.
Sinais discretos no tempo: Análise de sinais discretos no tempo usando sequências de valores discretos. Transformada discreta de Fourier (DFT) e sua relação com a transformada de Fourier contínua.
Sistemas lineares e invariantes no tempo: Estudo de sistemas que exibem propriedades de linearidade e invariância temporal. Análise de resposta ao impulso, convolução e representação em domínio da frequência.
Amostragem e reconstrução de sinais: Processo de amostragem de sinais contínuos no tempo para obter sinais discretos no tempo e técnicas de reconstrução do sinal original.
Transformada de Laplace: Utilização da transformada de Laplace para análise de sinais e sistemas. Relação entre a transformada de Laplace e a transformada de Fourier.
Transformada Z: Análise de sinais discretos no tempo usando a transformada Z. Relação entre a transformada Z .
Introdução a Sistemas Operativos
Estruturas Base do Sistema Operativo
Gestão Processos– Fluxos de Execução– Threads– Escalonamento– Sincronismo– Concorrência
Gestão de Memória
Entradas e saídas
Sistemas de Ficheiros
Fundamentos de Sistemas de Tempo Real
Fundamentos de sistemas distribuídos
DW Business Challenges
DW Architectures
Modeling the Data Warehouse– Best Practices
ETL Overview
BI Databases (ULHT)
Reporting Tools e Build Reports
Processamento de Imagens: dos pixeis às características.
Operações sobre imagens 2D.
Segmentação.
Detecção de objectos.
Extracção de características.
Medidas.
Análise de aplicações.
Gerenciamento de sistema de informações.
Engenharia de Requisitos de Testes.
Testes de Software.
Gerenciamento de Projetos.
Introdução ao Desenvolvimento Web: Uma visão geral dos conceitos básicos de desenvolvimento web, protocolos e arquitetura da web.
HTML (Hypertext Markup Language): Uma linguagem de marcação utilizada para estruturar o conteúdo de uma página web.
CSS (Cascading Style Sheets): Uma linguagem usada para estilizar elementos HTML e controlar a aparência visual de uma página web.
JavaScript: Uma linguagem de programação utilizada para adicionar interatividade e funcionalidade dinâmica a páginas web.
Framework Front-End: Aprendizado de um framework front-end popular, como React, Angular ou Vue.js, para criar interfaces de usuário interativas.
Banco de Dados: Introdução aos conceitos de banco de dados, SQL (Structured Query Language)
Introdução às Redes de Computadores.
Modelo OSI e TCP/IP • Camada Aplicacional: FTP,DNS,SMTP, HTTP.
Camada de Transporte: TCP, UDP.
Camada de Rede: IPv4,IPv6,Multicast,Routing
Camada Data Link: Ethernet, CSMA, HDLC, Wireless
Camada Física: Transmissão e Sincronismo
Introdução à Ciência de Dados.
O que significa aprender com dados?
Como garantir a precisão dos modelos?
Regressão linear simples.
Regressão linear múltipla
Como trabalhar com modelos de regressão?
Classificação logística
Modelos de classificação generativa
Métodos de reamostragem
Métodos baseados em árvores para regressão e classificação
Aspetos éticos e regulamentos âmbito da Ciência de dados
Compreender os princípios e o fluxo de trabalho das metodologias Ágeis;
Utilizar o processo de desenvolvimento de software, com base no seu ciclo de vida;
Identificar claramente os requisitos funcionais e técnicos;
Utilizar métodos, técnicas e ferramentas, conhecidos dentro de um contexto de Engenharia;
Avaliar e garantir a qualidade de um sistema de software;
Compreender a importância da documentação no desenvolvimento de software.
O que é o Desenho de Interação?
Compreender e conceptualizar a interação.
O impacto da Teoria da Atividade.
Desenhar com a acessibilidade em mente.
Princípios para inclusão.
Os contributos da psicologia cognitiva no estudo da interação humano-máquina.
Perceção humana e funções cognitivas que influenciam o desempenho do utilizador e a satisfação.
Teoria Gestalt aplicada ao desenho de sistemas de informação. Caso particular dos forms complexos.
Desenvolvimento e Avaliação de Protótipos iniciais (com interatividade) com utilizadores.
Método.
A Avaliação heurística como apropriação da aplicação e identificação de problemas.
Avaliação com utilizadores.
Apresentação dos resultados do estudo de usabilidade em formato de poster científico.
Tratamento e análise de dados.
Apresentação
Introdução – Caracterização dos Sistemas Distribuídos
Arquiteturas e Modelos de Comunicação Distribuída
Comunicação entre Processos Distribuídos (IPC)
Invocação Remota (RPC) e Objetos Distribuídos (RMI)
Web Services (WS)
Nomeação e Serviços de Directório
Segurança
Sistemas de Ficheiros Distribuídos
Tolerância a faltas, replicação, transações distribuídas
Compreender os conceitos fundamentais da computação móvel
Aprender a tirar o máximo partido das vantagens da computação
móvel (localização, sensores, contextual), quando aplicados à
resolução de problema concretos
Sensibilizar para os constrangimentos típicos de uma aplicação móvel
(autonomia, conectividade, usabilidade) e conhecer os mecanismos
que permitem ultrapassar esses constrangimentos
Aprender os vários modelos de desenvolvimento de aplicações
móveis e saber aplicar os conceitos utilizando pelo menos 2 destes
modelos (Android Nativo/Kotlin e Flutter)
Aprofundar conhecimentos de programação, nomeadamente nos
padrões de desenho (Singleton, Observer/Observable) e programação
assíncrona
Introdução à IA
Resolução de Problemas e Pesquisa
Aprendizagem Automática (Machine Learning)
Representação de Conhecimento e Raciocínio
Processamento de Linguagem Natural (NLP)
Visão Computacional
Sistemas Inteligentes e Agentes
Ética e Implicações Sociais da IA
Introdução à Segurança Informática
Conceitos fundamentais de Segurança Informática
Paradigmas de Segurança– Criptografia – Algoritmos de segurança – Autenticação e autorização – Gestão de chaves
Segurança de Redes – Firewalls– IDS/IPS– Redes sem fios– Arquitecturas de Segurança– Protocolos de comunicação segura– Tipificação de vulnerabilidades e ataques
Segurança de Software
Políticas e gestão de segurança
História, mercado, tendências
Revisão de Arquiteturas Distribuídas: SOA, Event Driven, …
Componentes e Serviços
O que é a Cloud? Privada, pública, híbrida
Tecnologias, modelos de negócios, principais fornecedores de serviços nacionais e internacionais
Tipos de Serviço na Cloud:
IaaS
BaaS
PaaS
SaaS
Outros