Projeto Final
O objetivo do trabalho de conclusão de curso, ou também chamado 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:
Referências
[1] Zobel, Justin. Writing for computer science. 3rd ed. New York NY: Springer, 2014.