Guilherme Soares

Guilherme Soares

InícioEnsino

Linguagens de Programação

Cronograma da disciplina para o semestre 2026.2. Os materiais serão adicionados ao longo do semestre.

As aulas e os materiais da disciplina serão adicionados ao longo do semestre.

  1. Sem aula

    docente indisponível

  2. Apresentação do plano didático; por que estudar linguagens; domínios, critérios e categorias; evolução das principais linguagens e paradigmas de programação (Sebesta, caps. 1-2)

  3. Descrição formal de sintaxe: BNF, EBNF, gramáticas e árvores de derivação (Sebesta, cap. 3.1-3.3)

  4. Gramáticas de atributos; semântica estática e dinâmica (Sebesta, cap. 3.4-3.5)

  5. Análise léxica e sintática; etapas de compilação e ambientes de programação (Sebesta, cap. 4 e seções 1.7-1.8)

  6. Nomes, variáveis, vinculações, escopo e tempo de vida (Sebesta, cap. 5)

  7. Tipos de dados, verificação de tipos, tipagem forte e equivalência (Sebesta, cap. 6)

  8. Expressões, conversões de tipo e instruções de atribuição (Sebesta, cap. 7)

  9. Estruturas de controle: seleção, iteração e comandos protegidos (Sebesta, cap. 8)

  10. Sem aula

    feriado nacional da Independência do Brasil

  11. Subprogramas: ambientes locais, passagem de parâmetros, funções, closures e implementação (Sebesta, caps. 9-10)

  12. Tipos abstratos de dados, encapsulamento e fundamentos de orientação a objetos (Sebesta, caps. 11-12)

  13. Herança, composição, polimorfismo e tratamento de exceções (Sebesta, caps. 12 e 14.1-14.4)

  14. Funções matemáticas, cálculo lambda e fundamentos do paradigma funcional (Sebesta, cap. 15.1-15.3)

  15. Lisp e introdução a Scheme (Sebesta, cap. 15.4-15.5)

  16. Prática em Scheme: recursão e processamento de listas (Sebesta, cap. 15.5)

  17. Funções de ordem superior: map, filter e reduce (Sebesta, cap. 15.5-15.6)

  18. ML e casamento de padrões (Sebesta, cap. 15.7)

  19. Haskell: sistema de tipos e list comprehensions (Sebesta, cap. 15.8)

  20. Sem aula

    feriado nacional de Nossa Senhora Aparecida

  21. Haskell: funções de ordem superior e avaliação preguiçosa; visão geral de F# (Sebesta, cap. 15.8-15.9)

  22. Semana de Ciência e Tecnologia - atividade orientada, sem avaliação: suporte funcional em linguagens imperativas (Sebesta, cap. 15.10)

  23. Semana de Ciência e Tecnologia - seminário comparativo, sem avaliação: paradigmas funcional e imperativo (Sebesta, cap. 15.11)

  24. Laboratório funcional integrador: funções de ordem superior, padrões e avaliação preguiçosa (Sebesta, cap. 15)

  25. Sentenças lógicas, cálculo de predicados, prova de teoremas e unificação (Sebesta, cap. 16.1-16.4)

  26. Sem aula

    feriado nacional de Finados

  27. Prolog: origens, elementos básicos, limitações e aplicações (Sebesta, cap. 16.5-16.8)

  28. Programação orientada a eventos: callbacks e tratamento de eventos (Sebesta, cap. 14.5-14.7)

  29. Promises e programação assíncrona (Unidade 6 do plano de ensino; leitura complementar)

  30. Fundamentos de concorrência, paralelismo e concorrência em nível de subprogramas (Sebesta, cap. 13.1-13.2)

  31. Sem aula

    feriado nacional do Dia de Zumbi e da Consciência Negra

  32. Threads, semáforos e monitores (Sebesta, cap. 13.3-13.4 e 13.7-13.8)

  33. Corrotinas e passagem de mensagens (Sebesta, cap. 9.13 e 13.5)

  34. Concorrência em linguagens funcionais, paralelismo em nível de instrução e computação distribuída (Sebesta, cap. 13.9-13.10; leitura complementar)

  35. Seminário integrador: comparação crítica de paradigmas e linguagens com os critérios do cap. 1

  36. Síntese da disciplina, revisão final, devolutiva de atividades e encerramento do semestre

  37. Exames especiais

    sem aulas regulares; eventual exame da disciplina em data e horário a confirmar

  38. Atividade avaliativa

    Exame 1 - unidades 1 a 3 (20 pontos)

  39. Atividade avaliativa

    Exame 2 - unidade 4, programação funcional (20 pontos)

  40. Atividade avaliativa

    Exame 3 - unidades 5 e 6, lógica, eventos e concorrência (20 pontos)

  41. Atividade avaliativa

    Exercícios curtos - 15 atividades de 2 pontos (30 pontos no total)

  42. Atividade avaliativa

    TP 1 - miniatividade prática guiada de programação funcional/lógica (5 pontos)

  43. Atividade avaliativa

    TP 2 - miniatividade prática guiada de eventos/concorrência (5 pontos)

Linguagens de Programação - Guilherme Soares