Paradigmas de Programação
Dia, Hora e Local
Objetivo
Tópicos
Bibliografia
Avaliação
Exercícios
Cronograma
Ferramentas
Material Complementar
Dia, Hora e Local
4as e 6as, de 14-16h (Sala 4).
Objetivo
O objetivo desta disciplina é apresentar conceitos fundamentais de linguagens de programação, os quais são importantíssimos para fundamentar um bom programador. De forma a absorver melhor o conhecimento apresentado, todos os paradigmas apresentados serão também requisitados de forma prática.
Tópicos
- O quê? Por quê? Como? Quando? Onde?
- Apresentação dos tópicos, critérios de avaliação, presença
- Histórico
- Gramáticas e BNF
- Tipos de Análise
- Semântica Formal
- Esquemas de Tradução (Compilação, Interpretação, …)
- Nomes, Escopos e Tempo de Amarração
- Tipos de Alocação
- Tipos de Dados
- Coleta de Lixo
- Controle de Fluxo
- Continuações
- Subrotinas e Passagem de Parâmetros
- Sobrecarga de Procedimentos, Módulos Genéricos
- Corotinas
- TAD
- Orientação a Objetos (Herança, Encapsulamento, Classe abstrata, Polimorfismo)
- Tratamento de Exceção
- Programação Funcional
- Programação Lógica (Backtracking, Resolução, Unificação e Listas)
- Programação em Linguagens de Script
- Concorrência
Bibliografia
- Michael L. Scott, Programming Language Pragmatics, Morgan Kaufmann.
- Robert W. Sebesta, Concepts of Programming Language, Addison Wesley.
- Peter Sestoft, Programming Language Concepts, Springer.
- Miran Lipovaca, Aprender Haskell será um Grande Bem para Você
- Marijn Haverbeke, Eloquent JavaScript
- Aditya Y. Bhargava, Grokking Algorithms, Manning Shelter Island.
- Carlos Bazilio, Programando na Cozinha .
Avaliação
Média final = (2*(Prova1 + Prova2) + Média-Trabalhos) / 5
Exercícios
- Trabalhos
- Exercícios sobre Conceitos de Linguagens de Programação
- Lista de Prog. Funcional
- Lista de Prog. OO
Cronograma
| Assunto | Extra | Dia |
|---|---|---|
| Apresentação, Introdução e Avaliação | Vídeo-Aula | 20/ago |
| Tradução (Compilação, Interpretação, …) | Vídeo-Aula | 22/ago |
| Tipos de Análise de um Compilador, Gramáticas e BNF | Vídeo-Aula | 27/ago |
| Tempos de amarração | Vídeo-Aula | 29/ago |
| Tipos de alocação, Coleta de lixo , Tipos de escopo | Vídeo-Aula | 03/set |
| Expressões | 05/set | |
| Fluxo de Controle | 10/set | |
| Tipos de Dados | 12/set | |
| Sincronização do Cronograma | 17/set | |
| Sincronização do Cronograma | 19/set | |
| Rotinas, Passagem de Parâmetros | Vídeo-Aula | 24/set |
| Rotinas Genéricas | Vídeo-Aula | 26/set |
| Revisão | 01/out | |
| Prova | 03/out | |
| Orientação a Objetos (Classes, Encapsulamento) | Vídeo-Aula | 08/out |
| Orientação a Objetos (Herança) | 10/out | |
| Feriado | 15/out | |
| Orientação a Objetos (Classe Abstrata e Interfaces) | 17/out | |
| Orientação a Objetos (Polimorfismo) - Agenda Acadêmica | 22/out | |
| Associação - Agenda Acadêmica | 24/out | |
| Programação Funcional | Vídeo-Aula | 29/out |
| Programação Funcional | 31/out | |
| Programação Funcional | 05/nov | |
| Programação Funcional | 07/nov | |
| Programação Funcional | 12/nov | |
| Programação Funcional | 14/nov | |
| Programação Funcional | 19/nov | |
| Ponto Facultativo (Provável) | 21/nov | |
| Prova | 26/nov | |
| 28/nov | ||
| VR | 03/dez | |
| 05/dez | ||
| VS | 10/dez | |
| 12/dez | ||
| 17/dez |
Ferramentas
- Ferramenta para estudar/compreender BNF
- Ferramenta para exibição de pilha de ativação
- Ferramenta para simulação de manipulação do HEAP (créditos para o ex-aluno Igor Frotté)
- Visualização de Algoritmos e Estruturas de Dados
- Visualização de Algoritmos e Coleta de Lixo
- Guia para Aprendizado de Programação Funcional
Material Complementar
- Repositório para submissão de trabalhos
- Códigos discutidos em sala em diferentes linguagens: GitHub
- Universidade Brasileira Livre em Computação
- Timeline de linguagens e afins
- Compilando Várias Linguagens Simultaneamente
- Video-aulas sobre Prog. OO em Java (Programação III/Cederj)
- Padrão SOLID
- Semântica
- Apresentação de Scala
- Linguagens/Bibliotecas para a Prog. Paralela
25/08/2025 ∙