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

  1. Temas
  2. Primeiros Passos
  3. Texto Acadêmico
  4. Orientações
  5. Agendamento da Orientação
  6. Referências

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:
    • Programação Web
    • 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 e não necessariamente todas as pesquisas possuiram 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 á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 solulçã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:

  • Em breve.

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

  • Victor Diniz A. Andrade. Desenvolvimento de um modelo para detecção de preconceitos em textos. Universidade Federal Rural do Rio de Janeiro.

  • 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.

  • Nelson Antunes L. Neto e Matheus Oliveira de Barros. Detecção de anomalia em vídeo. Universidade Federal Rural do Rio de Janeiro.

  • Wilson de O. Mendonca e Lucas Ribeiro Ferreira. Crawler para Whatsapp. Universidade Federal Rural do Rio de Janeiro.

  • Fellipe Bravo R. Pimentel e Gabriel de O. Segobia. Um sistema de anotação para texto. Universidade Federal Rural do Rio de Janeiro.

  • Daniel Souza Avellar. Plugin de recomendação para e-commerce. Universidade Federal Rural do Rio de Janeiro.

  • Livia de Azevedo. Análise de depressão no Twitter. Universidade Federal Rural do Rio de Janeiro.

  • Beatriz Lima e Ingrid Costa. Definição do tema. Universidade Federal Rural do Rio de Janeiro.

Concluídas

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 hangouts ou a ferramenta de video conferência chamada Zoom.

Referências

[1] Zobel, Justin. Writing for computer science. 3rd ed. New York NY: Springer, 2014.