O objetivo do projeto final é avaliar se o aluno, com o conhecimento adquirido durante o curso, possui a capaz de solucionar um problema utilizando técnicas computacionais. Durante o desenvolvimento da solução, o aluno deverá ser capaz de construir uma metodologia científica para validar sua solução e, assim, avaliá-la e compará-la com os métodos tradicionais da literatura.
Sumário
Temas
No caso dos alunos de graduação, os temas seguem a minha linha de pesquisa, mas, de preferência, trabalhos voltados para a aplicação. Entre ela, a preferência é para aplicações nas quais possuam um impacto dentro da sociedade, mostrando assim que o conhecimento acumulado, pode e deve ser utilizado para o bem estar das pessoas.
Os temas seguem duas grandes linhas de pesquisa. A primeira, sendo a principal, é Inteligência Artificial. Essa é uma grande área e possui diversas subáreas. Dentro dessa as principais são:
- Aprendizado de Máquina
- Sistemas de Recomendação
- Mineração de Dados
Uma outra área que possuo interesse é sobre Projetos de Sistemas onde o aluno irá realizar estudos sobre arquitetura, projeto e modelagem de sistemas. Sendo que, nesta área, o objetivo não é direcionada para a construção de sistemas, e sim, avaliar e prosperar modernas arquiteturas que estão sendo utilizadas no mercado ou na literatura.
Apesar dessas minhas preferências, o aluno poderá trazer outros temas. Contudo, eles deverão ser avaliados pois precisarei possuir algum interesse direto ou indireto no assunto. Desta forma, a escolha do tema é um acordo entre o orientador e o(s) aluno(s). Como o período médio de desenvolvimento do trabalho é de um ano, então é aconselhado que os alunos possuam um real interesse no tema e, assim, o trabalho consiga ser desenvolvido de forma mais agradável.
O aluno deverá cursar certas disciplinas para a elaboração do projeto final em um determinado tema. Essas disciplinas irão ajudá-lo a entender a área como o todo e, desta forma, otimizar o seu tempo durante a elaboração do projeto final. Essas disciplinas serão ofertadas durante o curso como obrigatórias e optativas. Poderá existir exceções. Segue a lista de disciplinas necessárias do PPC de 2020:
- Sistemas de Recomendação:
- Inteligência Artificial
- Aprendizado de Máquina
- Introdução à Sistemas de Recomendação
- Processamento de Linguagem Natural:
- Inteligência Artificial
- Aprendizado de Máquina
- Processamento de Linguagem Natural
- Mineração de Dados:
- Inteligência Artificial
- Mineração de Dados ou Aprendizado de Máquina
- Projeto de Sistemas:
Legenda: Negrito - obrigatórias; Itálico - optativas.
Primeiros Passos
O desenvolvimento do projeto final pode ser dividido em cinco etapas:
- Escolha do tema
- Revisão Bibliográfica
- Leitura da literatura específica
- Elaboração da proposta
- Desenvolvimento do texto científico
Essas etapas foram estipuladas por mim, não necessariamente todas as pesquisas possuírão exatamente essas etapas de forma fechadas e não necessariamente nesse ordem estipulada. Existem alguns autores que definem a ordem, mas o objetivo aqui é ser simples para o aluno entender o processo de pesquisa de modo geral pois ela irá ajudar na condução do desenvolvimento do projeto. Caso queira se aprofundar, o aluno poderá ler o livro “Writing for Computer Science” [1]. Cada etapa será detalhada abaixo.
-
Escolha do tema: Essa etapa, diferentemente da pós-graduação, é feita de forma livre. Essa etapa virá da experiência dos alunos durante o curso, principalmente através das matérias cursadas. Como a duração do desenvolvimento do projeto final é de um ano, torna-se inviável conhecer superficialmente a área e desenvolver o trabalho durante esse prazo. Desta forma, é necessário que o aluno faça certas matérias específicas para poder escolher o tema. Por exemplo, se o aluno deseja seguir a área de Sistemas de Recomendação, ele deverá cursar a optativa Introdução à Sistemas de Recomendação. Inclusive, o projeto final poderá ser uma extensão do trabalho final da cadeira, otimizando bastante o processo de desenvolvimento;
-
Revisão Bibliográfica: Neste momento, o aluno irá estudar a literatura e realizar uma pesquisa exploratória sobre a área. Ela já irá parcialmente acontecer durante as matérias, mas poderá ser utilizada durante esse ano. Principalmente para relembrar e fortalecer os principais conceitos da área e facilitar a escrita do texto científico. É aconselhável que o aluno leia não só os livros e artigos bases, e sim outros projetos finais, dissertações e teses. Por consequência, ele irá começar a entender os padrões de escritas de textos científicos e irá ajudar bastante no desenvolvimento do seu texto;
-
Leitura da literatura específica: Uma fase importante na metodologia científica é a etapa de comparação da sua proposta com as outras da literatura. Assim, o aluno levantará quais são os trabalhos e como eles resolvem o mesmo problema que esteja atacando. Dependendo, poderão ser incluídos trabalhos semelhantes, ou seja, que resolvam problemas similares ou correlatos, melhorando sua comparação.
-
Elaboração da proposta: Estudo das possíveis contribuições, tendo em conta a literatura pesquisada dos passos anteriores, que possam ser exploradas. Por fim, elaborando uma proposta com uma contribuição para a área. No caso do projeto final, essa contribuição não precisará ser inovadora, única ou melhor que todos as abordagens levantadas na etapa anterior. O importante é a capacidade do aluno desenvolver, utilizando a metodologia científica, a resolução de um problema computacional. Essa etapa é crucial, pois ela irá determinar todos as etapas seguintes e, ela bem feita, otimizará o tempo do desenvolvimento em si da proposta. Nela está contida também a modelagem de como resolver o problema e a definição de quais ferramentas serão utilizadas;
-
Desenvolvimento: Essa etapa é autoexplicativa e irá ser o desenvolvimento em si da proposta. Em alguns casos, também haverá a necessidade de desenvolver, quando não disponíveis, as outras soluções da literatura. Desta forma, o aluno poderá conseguirá comparar sua solução com as demais;
-
Desenvolvimento do texto científico: Ao final, o aluno irá relatar todos os demais passos em um texto que será apresentado para a banca. Em outra seção, será discutido melhor sobre a construção desse relatório técnico;
Texto Acadêmico
O aluno deverá criar um relatório técnico que será entregue para uma banca julgadora para avaliar o seu trabalho. Esse relatório será constituído por uma monografia em que irá explicar a área, o problema, a solução e como ela se comportou em comparado as outras soluções da literatura. O aluno deverá escrever utilizando a ferramenta chamada LaTeX. Essa ferramente é um sistema de elaboração de texto em que não precisa se preocupar com a formatação, diferentemente dos editores WYSIWYG como Microsoft Word, LibreOffice Writer e Apple Pages.
O aluno deverá utilizar o template do meu repositório no GitHub. Primeiramente, deverá ser feito um fork do projeto e após poderá começar a escrita do projeto. A minha recomendação é utilizar o editor online OverLeaf. Essa ferramente é um editor online de LaTeX, não precisando configurar o ambiente para compilar o projeto. Além disso, ele possui integração com o GitHub, facilitando mais o desenvolvimento.
Neste template contém todo projeto configurado e, além disso, possui uma breve explicação do que escrever em cada capítulo e alguns exemplos de código em LaTeX para facilitar o seu uso. Em alguns posts deste site, eu explico como é a escrita científica. Segue abaixo os materiais:
Orientações
Nas próximas subseções serão listados os alunos com o projeto final em andamento e concluídos com os seus respectivos trabalhos.
Andamento
-
Flávio Alves W. R. Rosa e Ivo Santos Paiva. Detecção de bot na rede social Instagram. Universidade Federal Rural do Rio de Janeiro.
-
Fellipe Bravo R. Pimentel e Gabriel de O. Segobia. Sistema de Gerenciamento de Anotações. Universidade Federal Rural do Rio de Janeiro.
-
Paula Rodrigues Madeira e Thalia Ferreira Pinto. Sistema para Avaliação de Professores. Universidade Federal Rural do Rio de Janeiro.
-
Leandro Bataglia Pereira e João Pedro Ribeiro de Moura. Sistema para Alumni. Universidade Federal Rural do Rio de Janeiro.
-
Leandro Silva Sales. Sistema de Correção Ortográfica de Texto. Universidade Federal Rural do Rio de Janeiro.
-
Lucas Nunes Dalbonio de Carvalor. Sistema de Gerenciamento de Serviços de Aprendizado de Máquina. Universidade Federal Rural do Rio de Janeiro.
-
Pedro Conrado de Faria Machado. Estudo de Arquitetura de Filas. Universidade Federal Rural do Rio de Janeiro.
-
Julia dos Santos Bartolo. Estudo sobre Detecção de Anomalia em Vídeo. Universidade Federal Rural do Rio de Janeiro.
-
Eric Bernard Pereira Moura Brasil e Sérgio Felipe Rezende. Definição do Tema. Universidade Federal Rural do Rio de Janeiro.
-
Ana Luiza Magalhães e Lucas Montijo. Definição do Tema. Universidade Federal Rural do Rio de Janeiro.
Concluídas
-
Daniel Souza Avellar. Uma proposta de um Sistema de Recomendação como Serviço. 2022. Universidade Federal Rural do Rio de Janeiro.
-
Lívia de Azevedo da Silva. Uma análise empírica do efeito do Ruído de Classe no aprendizado de Redes Neurais Artificiais. 2022. Universidade Federal Rural do Rio de Janeiro.
-
Beatriz Silva Lima e Ingrid Cardin da Costa. Sistema WEB de Monitoramento de Textos em Redes Sociais. 2022. Universidade Federal Rural do Rio de Janeiro.
-
José Lucas Alves Gomes. Classificação Automática de Anomalia em Vídeo Independente de Contexto. 2021. Universidade Federal Rural do Rio de Janeiro.
-
Fábio Júnior Miranda dos Santos e Vitor Gusmão Loura. Super Resolução: um estudo da Enhanced Super Resolution GAN. 2021. Universidade Federal Rural do Rio de Janeiro.
-
Victor Diniz A. Andrade. Detecção Automática de Discurso de Ódio em Textos do Twitter. 2021. Universidade Federal Rural do Rio de Janeiro.
-
Lucas Ribeiro Ferreira e Wilson de O. Mendonca. WppScrapper: Uma ferramenta para a extração de mensagens do WhatsApp. 2021. Universidade Federal Rural do Rio de Janeiro.
-
Nelson Antunes L. Neto e Matheus Oliveira de Barros. Classificação Automática de Anomalias em Vídeos. 2020. Universidade Federal Rural do Rio de Janeiro.
-
Paulo Francisco Da S. Freitas e Vinícius Gomes S. Ayres. NeuralCF.jl: Modelos Neurais para Filtragem Colaborativa. 2019. Universidade Federal Rural do Rio de Janeiro.
-
Marcus Vinicius Carvalho Martins. Um modelo para previsão de resultados em partidas do Campeonato Brasileiro de Futebol. 2018. Universidade Federal Rural do Rio de Janeiro.
-
Paulo Roberto Xavier Júnior. ContextCF.jl: Um Framework para CARS em Filtragem Colaborativa. 2018. Universidade Federal Rural do Rio de Janeiro.
-
Hugo Diniz Rebelo. Recsys.jl: Um framework de Sistemas de Recomendação. 2016. Universidade Federal Rural do Rio de Janeiro.
-
Raiza Beatriz Silva Santana. Particionamento automático de dados utilizando variáveis latentes no problema de Filtragem Colaborativa. 2016.Universidade Federal Rural do Rio de Janeiro.
-
Jones Marques Augusto. Recsys.jl: Um framework para geração e avaliação de listas de recomendação. 2016. Universidade Federal Rural do Rio de Janeiro.
-
Kleyton Pontes Cotta. Ferramenta de Detecção de Conflitos e Gestão para o Timetabling Problem. 2014. Universidade Federal Rural do Rio de Janeiro.
-
Fabio Perrotta de Andrade e Pedro Henrique Conilh de Beyssa. TirinhaZ - Um Sistema de Recomendação de Tirinhas. 2013. Universidade Federal do Rio de Janeiro
Agendamento da Orientação
O agendamento deverá ser feito através da ferramenta calendly. Existe duas opções de orientações: presenciais e remotas.
A orientação presencial é utilizada para as primeiras reuniões ou quando existe a necessidade de explicações sobre o tema mais elaborados. As demais, principalmente as de acompanhamento, podem ser remotas. De modo geral, eu utilizo a ferramenta da Google chamada Meets. A comunicação será feita através de um servidor no Discord destinado somente para orientações.
Referências
[1] Zobel, Justin. Writing for computer science. 3rd ed. New York NY: Springer, 2014.