Projetos
2024
Design and Implementation of the Java-- Language Compiler
Conceção e implementação de um compilador em Java para um subconjunto da linguagem Java (Java--), incluindo todos os estágios do processo de compilação, nomeadamente a análise léxica, a análise sintática e a análise semântica, bem como a conversão para uma representação intermédia e para código-máquina e a realização de otimizações, no âmbito da Unidade Curricular Compiladores
Banking Customer Churn Prediction
Desenvolvimento de um modelo de Machine Learning em Python capaz de identificar se um cliente de um determinado banco está, ou não, em risco de terminar a sua ligação com o mesmo, no âmbito da Unidade Curricular Inteligência Artificial
Amado
Recriação do jogo Amado de Yong Choi em Python e implementação de diversos algoritmos de pesquisa heurística para permitir a resolução autónoma do jogo, no âmbito da Unidade Curricular Inteligência Artificial
Projeto de Computação Distribuída
Desenvolvimento de um sistema cliente-servidor em Java para jogar um jogo multi-jogador, utilizando sockets TCP e threads virtuais, no âmbito da Unidade Curricular Computação Paralela e Distribuída
Performance Evaluation of a Single Core and a Multi-Core Implementation
Implementação e comparação detalhada do desempenho de diversos algoritmos de multiplicação de matrizes em C++ e em Java, tirando proveito do paralelismo do processador através da utilização de threads, no âmbito da Unidade Curricular Computação Paralela e Distribuída
My Scene
Criação de uma cena em WebGL com diversos elementos/objetos, permitindo o controlo de uma abelha e interações com o pólen e uma colmeia, no âmbito da Unidade Curricular Computação Gráfica
2023
Community Connect
Desenvolvimento de um sistema de informação web-based em Laravel (HTML, CSS, PHP e Javascript) com a base de dados em PostgreSQL e integração com o Docker que permite aos utilizadores partilharem perguntas e obterem respostas sobre diversos temas, tendo como intuito fornecer respostas para problemas comuns, num ambiente de interajuda solidária, no âmbito da Unidade Curricular Laboratório de Bases de Dados e Aplicações Web
FootLinker
Desenvolvimento de uma aplicação móvel em Dart (Flutter) com integração com Firebase para informar adeptos de futebol que gostam de assistir a jogos ao vivo sobre os horários dos mesmos e os estádios mais próximos, dando-lhes a possibilidade de seguir o seu clube favorito e registar um histórico pessoal com todos os jogos vistos, no âmbito da Unidade Curricular Engenharia de Software
Logbooks
Escrita de múltiplos logbooks sobre vulnerabilidades e exploits ou ataques com explicações detalhadas do fundamento teórico e da respetiva aplicação prática, bem como resolução de vários desafios CTF (Capture the Flag), no âmbito da Unidade Curricular Fundamentos de Segurança Informática
Management of Trouble Tickets
Desenvolvimento de uma aplicação web com recurso a HTML, CSS, PHP e Javascript e a base de dados em SQLite para gerir trouble tickets de forma eficaz, permitindo a sua criação, delegação/atribuição e resolução, no âmbito da Unidade Curricular Linguagens e Tecnologias Web
Pong 2.0.
Recriação do conhecido jogo Pong da Atari em C através de programação direta dos dispositivos periféricos do computador (timer, teclado, rato e placa gráfica), no âmbito da Unidade Curricular Laboratório de Computadores
Parser
Implementação de uma máquina de baixo nível em Haskell para executar um determinado conjunto de instruções, envolvendo a criação de um interpretador (parser) capaz de lidar com operações aritméticas, lógicas e de controlo de fluxo, no âmbito da Unidade Curricular Programação Funcional e em Lógica
Bounce
Recriação do jogo Bounce de Mark Steere em Prolog, no âmbito da Unidade Curricular Programação Funcional e em Lógica
Protocolo de Ligação de Dados
Conceção de um protocolo de ligação de dados, implementação do mesmo em C e desenvolvimento de uma aplicação nele assente para permitir a transferência de ficheiros entre dois computadores ligados entre si, no âmbito da Unidade Curricular Redes de Computadores
Routing Algorithm for Ocean Shipping and Urban Deliveries
Desenvolvimento de uma ferramenta em C++ para testar e comparar diferentes abordagens (heurísticas ou não) ao problema do caixeiro viajante, no âmbito da Unidade Curricular Desenho de Algoritmos
An Analysis Tool for Railway Network Management
Desenvolvimento de uma ferramenta em C++ para analisar a rede ferroviária nacional com intuito de facilitar a gestão e otimizar os recursos existentes, no âmbito da Unidade Curricular Desenho de Algoritmos
2022
Mundial de Futebol no Catar
Conceção e implementação de uma base de dados em SQLite sobre o Mundial de Futebol no Catar, no âmbito da Unidade Curricular Bases de Dados
Bomberman
Recriação do conhecido jogo Bomberman da NES em Java, no âmbito da Unidade Curricular Laboratório de Desenho e Teste de Software
Transportes Aéreos
Desenvolvimento de uma aplicação em C++ para obter diversas informações sobre voos e rotas aéreas, no âmbito da Unidade Curricular Algoritmos e Estruturas de Dados
Horários de Estudantes
Desenvolvimento de uma aplicação em C++ para visualizar e gerir os horários dos estudantes da Licenciatura em Engenharia Informática e Computação, no âmbito da Unidade Curricular Algoritmos e Estruturas de Dados