Teoria de Categorias e Programação Funcional (25-1)

  • Professor: Hugo Nobrega
  • Turmas: 11829 (currículo novo), 15169 (currículo antigo)
  • Códigos no SIGA:
    • ICP035 Tóp. Esp. em Teoria da Computação I (currículo novo BCC)
    • ICP531 Tóp. Especiais em Teoria dos Grafos (currículo antigo BCC)
  • Grupo de discussões: Discord
  • Local: Lab 1 (dentro do IC)

Funcionamento da disciplina

O meio primário de comunicação entre os alunos, monitores e professores será o grupo no Telegram listado acima.

As aulas serão realizadas em modalidade presencial, com aulas às 3as e 5as de 15:00 às 17:00 no Lab 1 do IC.

Bibliografia

Não seguiremos nenhum livro texto específico; nossas principais referências são o livros:

  • Milewski - Category Theory for Programmers: livro voltado para introduzir categorias para pessoas com perfil de programação. Livro gratuito!
  • Menezes, Haeusler - Teoria das Categorias para Ciência da Computação: idem acima, mas com uma pegada um pouco mais teórica (e em português!). Um pouco difícil de achar.
  • Leinster - Basic Category Theory: outro livro gratuito sobre teoria de categorias (recomendado por um ex-aluno da disciplina).
  • Awodey - Category Theory: livro mais no estilo “preciso”, e voltado principalmente para um público da matemática, mas que serve bem como referência.

Playlists de Youtube:

Outros livros (em ordem alfabética):

Outros links interessantes:

Listas de Exercícios

ListaData Limite de Entrega

Regras de colaboração

As listas de exercícios podem ser entregues em duplas. Não poderá haver repetição de duplas em diferentes listas! Isso é feito para aumentar a confiança do professor ao dar uma nota individual para cada aluno no final da disciplina.

As diferentes duplas podem sempre discutir os problemas e as ideias de como resolvê-los (e isso é recomendado, pois é uma ótima forma de estudar e aprender!), porém: soluções de exercícios não devem ser compartilhadas entre diferentes duplas (nem de outros períodos). O recomendável é que você não mostre suas soluções completas para alunos de outras duplas, nem veja as soluções completas de outros.

Soluções iguais ou parecidas demais entre duplas diferentes serão desconsideradas.

Cronograma planejado/registro de atividades

DataAulaConteúdoQuadros/Links
ter 18/mar00Introdução e burocraciasVídeo; Quadros
qui 20/mar01Definição e primeiros exemplos de categoriasVídeo; Quadros
ter 25/mar02Mais exemplos de categoriasVídeo; Quadros
qui 27/mar03Ainda mais exemplos de categorias; categoria livremente gerada a partir de um grafo; a noção de “preservação de estrutura”Vídeo; Quadros
ter 1/abrsem aulaSemana da Computação-
qui 3/abrsem aulaSemana da Computação-
ter 8/abr
qui 10/abr
ter 15/abr
qui 17/abr
ter 22/abrsem aulaFeriado enforcado (Tiradentes/São Jorge)-
qui 24/abr
ter 29/abr
qui 1/maisem aulaFeriado (Trabalhador)-
ter 6/mai
qui 8/mai
ter 13/mai
qui 15/mai
ter 20/mai
qui 22/mai
ter 27/mai
qui 29/mai
ter 3/jun
qui 5/jun
ter 10/jun
qui 12/jun
ter 17/jun
qui 19/junsem aulaFeriado (Corpus Christi)-
ter 24/jun
qui 26/jun
ter 1/jul
qui 3/jul
ter 8/jul
qui 10/jul
ter 15/jul
qui 17/jul

Método de avaliação

~5 listas de exercícios, com descarte de ~1 pior(es) nota(s). Não há prova final; a nota para aprovação ao final do período é 5,0.