Departamento de Informática – PUC-Rio | Temas de Projeto Final de Graduação

Temas de Projeto Final de Graduação


Alberto Raposo (abraposo@tecgraf.puc-rio.br)

1) Exploração de dados para suporte ao treinamento de modelos de Machine learning
Desenvolvimento de uma ferramenta para apoiar a análise e criação de datasets que serão utilizados posteriormente no treinamento de modelos de análise de imagens médicas baseados em Machine Learning.

2) Sistemas interativos para treinamento de modelos baseados em machine learning
Desenvolvimento de um sistema para a criação, treinamento e avaliação de modelos de machine learning. O sistema facilitará o treinamento fim-a-fim dos modelos, permitindo processos de experimentação eficientes e comparação de resultados.

3) Aplicações interativas baseadas em modelos de rastreamento corporal
Desenvolvimento de aplicações interativas 2D ou 3D a partir de frameworks como Pose-Estimation (para rastrear corpo, mãos e/ou cabeça). O contexto de uso da aplicação pode ser definido em conjunto com o aluno.


Alessandro Garcia (afgarcia@inf.puc-rio.br)

1) Um Minerador de Relações entre Dados Sociais e Produtividade em Repositórios de Software

2)Um Minerador de Decisões ‘Intuitivas’ dos Desenvolvedores e suas Relações com Qualidade e Produtividade do Software


Augusto Baffa (abaffa@inf.puc-rio.br)

1) Modelagem emocional para agentes inteligentes (IA p/ jogos)
Desenvolvimento de agentes inteligentes que possam decidir racionalmente e/ou com base em estados emocionais. Uso como NPCs em jogos de modo a humanizar a interação com o jogador.

2) Modelos de interação social (recomendação/simulação e IA p/ jogos)
a) Desenvolvimento de modelos para detectar o perfil da audiência/jogadores e, com base nisto:  – Recomendar ações, missões, itens para o jogador  – Modificar parâmetros de dificuldade ou ajustes na narrativa/dramatização
b) Simular a resposta social para algum tipo de estímulo ou interação. Prever/Simular a reação dos agentes envolvidos no grupo em questão.

3) Geração de conteúdo procedural (level-design e/ou narrativa p/ jogos)
Explorar métodos para a criação automática de conteúdo para jogos. Desenvolver algoritmos para criação de fases, dungeons, mapas (level-design) ou sequência de acontecimentos que levem ao objetivo (narrativa/história do jogo). Também poderia ser explorada a geração de música (apesar de que este item requer conhecimento de teoria musical).

4) Sistemas conversacionais (geração de linguagem, interpretação de linguagem)
Criação de agentes de conversação, assistentes virtuais como Siri, Alexa ou Woofy (que é o meu). Foco no atendimento ao público ou criação de NPCs para jogos – onde podem ser usados para criação de missões e interação com a narrativa.


Bruno Feijó (bfeijo@inf.puc-rio.br)

1) Personalidade e comportamento em jogos para identificação de decaimento cognitivo

2) Geração automática de variantes de narrativa em jogos


Eduardo Laber (eduardo.laber1@gmail.com)

1) Um estudo sobre algoritmos de agrupamento interpretáveis
Objetivo: Estudar, implementar e comparar algoritmos de agrupamento de fácil
interpretação

2) Um estudo de Aprendizado Ativo para Tarefas de Classificação
Objetivo: Estudar, implementar e comparar métodos de aprendizado ativo para escolha de exemplos que devem ser rotulados para tarefas de classificação

3) Utilizando Ciência de Dados para avaliar a qualidade de publicações no país
Objetivo: Avaliar a qualidade/quantidade das publicações científicas produzidas no país, em particular na área de computação, utilizando diferentes rankings nacionais e internacionais. Em linhas gerais, o trabalho consiste em: (i) coletar dados relativos as publicações produzidas no país, usando fontes como a DBLP ou o Lattes; (ii) limpar e normalizar os dados; (iii) avaliar as publicações segundo rankings nacionais (e.g. Qualis) e internacionais (Core, CCF, CSRanking); (iv) analisar e correlacionar os resultados obtidos. Para realizar o trabalho, o aluno terá que explorar uma série de técnicas de ciência de dados.


Hermann Haeusler (edward.haeusler@gmail.com)

1) Tradutor de Circuitos digitais clássicos para circuitos quânticos.

2) Estudo empírico em aprendizado de máquina com poucos dados rotulados.

3) Estudo e implementação de ferramentas de suporte a um provador quântico (em desenvolvimento).

4) Viabilidade do cálculo da complexidade de Kolmogorov por dist. prob. de saída de máquinas de Turing pequenas para sinais coletado em circuitos neurais naturais. Oportunidade de trabalhar com neurociência.


Juliana Alves Pereira (juliana@inf.puc-rio.br)

1) Aplicação de aprendizagem de máquina em sistemas configuráveis
2) Replicação de estudos empíricos: uso de aprendizagem de máquina em engenharia de software
3) Proposição de um minerador de requisitos não funcionais em repositórios de software
4) Proposição de um classificador de códigos de aprendizagem de máquina
5) Estudo da evolução de mal cheiro no código de aprendizagem de máquina


Marcelo Gattass (mgattass@tecgraf.puc-rio.br)

1) Segmentação de imagens médicas 3D usando aprendizado profundo (temos alguns artigos já escritos. O aluno deve re-implementar algum deles, com alguma melhora)

2) Classificação de doenças em imagens de folhas da macieira Referências:
https://www.kaggle.com/c/plant-pathology-2021-fgvc8/overview
https://bsapubs.onlinelibrary.wiley.com/doi/10.1002/aps3.11390


Marcos Kalinowski (kalinowski@inf.puc-rio.br)

1) Explorando aprendizado de máquina para modelagem de tópicos e classificação automática de artigos científicos.

2) Visualização de informações sobre o uso de instrumentos psicométricos em pesquisa em engenharia de software.


Markus Endler (endler@inf.puc-rio.br)

1) GUI para o Global CEP Manager (GCEP)

Desenvolvimento de uma Interface gráfica intuitiva para gerenciamento de regras EPL (linguagem do CEP Esper) para ser o front-end do Global CEP Manager do ContextNet. O Global CEP Manager permite escrever e fazer o deployment de regras CEP tanto em Mobile Hubs (interagindo com o seu serviço MEPA) como em Processing Nodes (no SDDL core). Na interface deve ser possivel visualizar as classes/categorias de MHs e PNs disponíveis no sistema, ter uma sub-janela para escrever uma regra CEP em EPL (https://www.dropbox.com/s/7vxtyagxxkpou22/CEP-EPL-slides.pdf?dl=0), reduzi-la a um icone e poder arrasta-la sobre uma classe de nós, causando assim o deployment dessa regra no nos nós da classe. E ao clicar no icone da classe de nós, deveria ser possivel ver a lista de regras lá implantadas, e fazer o seu gerenciamento com opções de um contextual pop-up menú.

Complexidade: media.

2) Packet Manager (Instalador) para o ContextNet Core e o Interscity

O MUSANet integra o middleware ContextNet e o InterSCity em um sistema de middlewares para SmartCities. No entanto, ambos requerem vários passos de instalação, seja em um notebook, um desktop ou servidor de um cluster. O objetivo desse trabalho é desenvolver um instalador integrado para os dois softwares de forma a facilitar o deployment e uso deles. A parte mobile (Mobile Hub) não precisará ser tratada, já que consistirá de um .apk a ser instalado pelos clientes móveis. Preferencialmente, será para a plataforma linux-like, e portanto poderá usar uma ferramenta como o apt-get, rpm, ou o pkg-tools

Complexidade: baixa

3) Geolocalizacão Simbólica usando BLE Beacons

Através do Mobile Hub é possível detectar e identificar todos os beacons BLE presentes na vizinhança do smartphone. Isso ocorre porque os beacons emitem os seus UUIDs a cada anúncio periódico d protocolo Bluetooth (i.e. o beacon). No entanto, mesmo que se registre esse conjunto de beacons vistos em cada local da região de interêsse, essa localização ainda está desprovida de um significado simbólico (i.e. um tipo e nome), por exemplo, se é o almofarixado, a copa, a secretaria, um corredor, uma sala de estudos, etc, e qual é a identificação do local, por exemplo, sala 503. O objetivo portanto é desenvolver um sistema mobile-app cliente e um serviço do ContextNet core com uma base de dados Ctree, que permita um usuário nomear e classificar os seus locais de interesse. A ideia é que ele percorra a região, e em cada local de interesse, acione um botão de “gravar”, que irá armazenar as UUIDs e as intensidades de sinal de Rádio BLE durante um certo tempo (30 segundos), para em seguida permitir que o usuário digite no mobile app a posição do local na hierarquia de contenimento, como por exemplo, “PUC-Rio/RDC/floor4/418” e o tipo da sala/aposento , como “Sala-aula”. Estas informações, incluindo o UUID e os sinais de rádio BLE de todos os beacons, serão então empacotadas em um JSON, enviadas para o servidor no Core, que as armazena de acordo com a hierarquia na base de dados. Uma vez armazenadas essas informações, elas podem ser consultadas para fins de geo-localização indoor, por qualquer Mobile Hub que passe nesses locais. Para tal, o servidor disponibiliza uma API RESTFul getSymbolicName() que, recebe como entrada a lista de UUIDs e RF signal strengths e retorna como resultado a identificação simbólica (e a classe) do local cujo fingerprint na base de dados (lista de UUIDs e RF signal strengths) se aproxima ao fingerprint enviado na consulta.

4) Light CEP Engine em Lua

Atualmente, no ContextNet temos engines ESPER para Complex Event Processing (CEP) executando em servidores do ContextNet Core (cluster) mas também em smartphones Android como parte do Mobile-Hub, que são os M-EPAs.

Mas cada vez mais percebemos a necessidade ter essa mesma funcionalidade de CEP em dispositivos (Mobile-Hub) com menos recursos, como por exemplo o SoC ESP32 (https://www.espressif.com/en/products/hardware/esp32/overview).

Assim, esse projeto consiste de implementar engine CEP parcial em Lua para esses dispositivos com poucos recursos.

E precisaria traduzir também um subset da linguagem Event Processing Language (EPL) do ESPER para Lua, para permitir o carregamento e a execução de regras CEP.

Referências:

MEPA ContexNet ** http://www-di.inf.puc-rio.br/~endler/paperlinks/SBRC-Talavera-2016.pdf

ESPER Tech ** http://www.espertech.com/ **

Overview of the EPL** https://docs.oracle.com/cd/E14571_01/apirefs.1111/e14304/overview.htm#EPLLR106 **

5) Comunicação direta de M-OBJ para M-OBJ

No ContextNet cada M-OBJ (aquele descoberto) e alcançado por um M-Hub possui uma identificação única (UUID), que serve como endereço destino de mensagens. No entanto, por enquanto realizamos somente a comunicação nos sentidos: M-OBJ => Core e Core => M-OBJ, mas nunca a possibilidade de um sensor conversar diretamente com um objeto com atuação, como por exemplo um TemperatureSensor enviar comandos {+Frio, -Frio Desliga} para um ar-condicionado. Naturalmente, na maioria dos casos não será o próprio sensor capaz de construir tal mensagem, mas sim uma lógica nos M-Hubs correspondentes. Então, é o M-Hub quem deve selecionar o M-OBJ onde a atuação deve acontecer, verificar se ele está operacional e se ele é alcançável através de outro M-Hub. Caso positivo, deve então encaminhar a msg de comando para o M-Hub alvo, que usará o M-ACT para fazer a atuação.

Se houver mobilidade em curso, com possibilidade de alcançabilidade intermitente, então isso ainda requer algum mecanismo de confirmação (ack) da atuação e de retrial caso a atuação ainda não tenha sido concluída.


Roberto Ierusalimschy (roberto@inf.puc-rio.br)

  • Adoção de bibliotecas órfãs no eco-sistema de Lua

Um problema constante em projetos de software livre é que o criador do projeto parte para outros interesses e deixa o projeto sem manutenção ou evolução. O eco-sistema de Lua, como qualquer outro, tem várias bibliotecas órfãs, nas mais diversas áreas da computação. Um trabalho de fim de curso atualizando uma biblioteca já estabelecida é uma contribuição importante para o eco-sistema de Lua, e uma oportunidade de trabalhar em um projeto com impacto para muitos outros programadores.


Sérgio Colcher (colcher@inf.puc-rio.br)

1) Aplicação de Machine Learning no Controle de Congestionamento de Redes TCP/IP

2) Segmentação e Indexação de Ações e Personagens em Video


Sérgio Lifschitz (sergio@inf.puc-rio.br)

1) Estudo de ferramentas automáticas de sintonia fina (tuning) de bancos de dados relacionais

2) Análise de dados extraídos de redes sociais

3) Sistemas e aplicativos para cidades inteligentes: cooperação e colaboração para estacionamentos públicos

4) Sistemas e aplicativos para cidades inteligentes: shuttle universitário e o sistema x-Bus

5) Interfaces para Sistemas de gestão de workflows científicos aplicados à bioinformática


Tatiana Escovedo (tatiana@inf.puc-rio.br)

1) Machine Learning, Analytics e Ciência de Dados

2) Engenharia de Software para Ciência da Dados

3) IHC aplicada a Ciência da Dados


Waldemar Celes (celes@tecgraf.puc-rio.br)

1) Visualização de mapas de arremessos de uma partida de basquete
Todos os arremessos (convertidos ou não) de uma partida de basquete são anotados (jogador e posição) e representam dados a serem analisados. Quando se deseja visualizar todos os arremessos de todos os jogadores, o mapa obtido é de difícil compreensão, pois são muitas as informações. O objetivo deste projeto é investigar técnicas apropriadas de visualização de mapas de arremessos que facilite a análise de profissionais da área de basquete.

Desejável: interesse em algoritmos de visualização

2) Geração de malhas de quadriláteros
O objetivo desse projeto é investigar técnicas de geração de malhas de quadriláteros que sejam alinhadas com as fronteiras do domínio. Para tanto, planeja-se explorar uma geração de pontos internos ao domínio, baseado em um campo de distância, que favoreça a construção de malhas de triângulos que então serão convertidos em quadriláteros alinhados às fronteiras.

Desejável: interesse em algoritmos geométricos