Nesta disciplina vamos estudar paradigmas, características, questões de projeto
e critérios de avaliação de linguagens de programação.
Veja o programa
e o critério de avaliação
da disciplina.
Os alunos desta disciplina devem inscrever-se no grupo
uem-lp para receberem informações e
discutirem o conteúdo da disciplina. Por favor, use o seu nome verdadeiro na
lista para o professor poder identificá-lo.
Avaliações
Entrega dos Resumos
No terceiro e quarto bimestre a cada conteúdo ministrado o aluno deverá
entregar uma folha com anotações sobre o conteúdo. No dia da avaliação o
professor entregará todas as anotações do bimestre para o aluno, que poderá
consultá-las para fazer a prova. As anotações são pessoais e intransferíveis.
Estas anotações não fazem parte do critério de avaliação e portanto, o aluno
que optar por não entregar as anotações, não perderá nenhuma nota, mas não terá
material para consultar no dia da prova.
Normas de entrega das anotações
- Usar folha de papel A4 branco com as anotações manuscritas.
- Escrever na primeira linha com caneta vermelha: nome, RA, código da disciplina e turma.
- As anotações fora das normas não serão aceitas.
- Avaliação final
- 13/12
- Pode usar os resumos do 3° e 4° (manuscritos pelo próprio aluno)
- Os resumos não devem conter código Racket ou Prolog
- 4° avaliação
- 22/11 - Prova escrita (conteúdo: 4° bimestre). Valor: 50% da nota.
- 25/11 (até as 23h) - Trabalho loterias. Valor: 50% da nota.
- 3° avaliação
- 11/10 - Prova escrita (conteúdo: 3° bimestre). Valor: 50% da nota.
- 10/10 (até as 23h) - Trabalho sstat. Valor: 50% da nota.
- 2° avaliação
- 14/06 - Prova escrita (conteúdo: 2° bimestre). Valor: 50% da nota.
- 23/06 - Trabalho resame-prolog. Valor: 50% da nota.
- 1° avaliação
- 05/04 - Prova escrita (conteúdo: 1° bimestre). Valor: 50% da nota.
- 18/04 - Trabalho resame-racket. Valor: 50% da nota.
Aulas
No terceiro e quarto bimestre usaremos como base o livro
Conceitos de Linguagens de Programação,
9ª edição (já está disponível a 10ª edição
americana).
4° bimestre
- Capítulo 11: Tipos abstratos de dados e construções encapsuladas (04/10)
- Notas de aula
- Entrega do resumo: 18/10
- Exercícios (9 edição do livro)
- Revisão: 2, 3, 12, 13, 22
- Problemas: 10,
- Capítulo 12: Suporte a programação orientada a objeto (18/10, 25/10)
- Notas de aula
- Exemplo vtable C++
- Entrega do resumo: 01/11 (até C++)
- Entrega do resumo: 08/11 (Java e implementação das construções, não é
necessário falar sobre C# e Ada)
- Exercícios (9 edição do livro)
- Revisão: 1, 4, 9, 20, 23, 28, 32, 34
- Problemas: 3, 10, 12, 13, 14, 18, 20, 22, 25
3° bimestre
- Capítulo 1: Aspectos preliminares (26/07)
- Notas de aula
- Entrega do resumo: 02/08
- Exercícios
- Revisão: 24
- Problemas: 1, 3, 4, 11
- Capítulo 5: Nomes, vinculações e escopo (02/08)
- Notas de aula
- Entrega do resumo: 09/08
- Exercícios
- Revisão: 6, 7, 9, 11, 12, 13, 16, 17
- Problemas: 3, 6, 8, 10
- Capítulo 6: Tipos de dados (09/08, 16/08 e 23/08)
- Notas de aula
- Entrega do resumo: 23/08 (até arranjos)
- Entrega do resumo: 30/08 (restante do capítulo)
- Exercícios
- Revisão: 4, 5, 7, 9, 31, 35, 36, 43, 44, 45, 50, 51
- Problemas: 21, 22
- Capítulo 7: Expressões e sentenças de atribuição (30/08)
- Notas de aula
- Entrega do resumo: 06/09
- Exercícios
- Revisão: 1, 8, 12, 15, 16
- Problemas: 2, 4, 13, 21
- Capítulo 8: Estruturas de controle no nível de sentença (06/09)
- Notas de aula
- Entrega do resumo: 13/09
- Exercícios
- Revisão: 5, 8, 9, 13, 15, 22, 24
- Problemas: 5, 9
- Capítulo 9: Subprogramas (13/09 e 20/09)
- Notas de aula
- Entrega do resumo: 20/09 (até métodos de passagem de parâmetros)
- Entrega do resumo: 27/09 (restante do capítulo)
- Exercícios
- Revisão: 7, 8, 11, 16, 17, 23, 25, 34
- Problemas: 1, 5, 14
- Capítulo 10: Implementando subprogramas (27/09)
- Notas de aula
- Entrega do resumo: 10/10
- Exercícios
- Revisão: 2, 5, 7, 11
- Problemas: 1, 2
2° bimestre
- Fundamentos (26/04, 03/05 e 10/05)
- Conteúdo: Fatos, regras e consultas. Átomos, números, variáveis e termos
complexos (estruturas). Unificação e retrocesso. Operações aritméticas e
relacionais. Recursividade. Acumaladores.
- Referências: Capítulo 1 e 2 do livro Programming in Prolog. Capítulos
1
,
2
e
5
do livro
Learn Prolog Now.
- Referências complementares: Introduction to
Prolog.
- Exercícios (algumas soluções).
- Listas (17/05 e 24/05)
- Conteúdo: Listas. Construção de decomposição de Listas. Predicados pré definidos.
- Referências: Capítulo 3 e sessão 7.5 do livro Programming in Prolog. Capítulos
4
e
6
do livro
Learn Prolog Now.
- Exemplos.
- Exercícios (algumas soluções).
- Corte e retrocesso (29/05)
- Conteúdo: Operador de corte. Usos do operador de corte. Combinação corte
e falha. Negação como falha. Estratégia gerar e testar. Alternativas ao uso do corte.
Problemas com o uso do corte.
- Referências: Capítulo 4 do livro Programming in Prolog. Capítulo
10
do livro
Learn Prolog Now.
- Exemplos.
- Exercícios (algumas soluções).
- 2° avaliação (14/06)
1° bimestre
- Apresentação da disciplina (07/02)
- Fundamentos (14/02 e 22/02)
- Listas (01/03)
- Funções (08/03 e 15/03)
- Conteúdo: Funções como objetos de primeira classe, funções anônimas,
funções de alta ordem, funções variádicas, fechamentos (closure) e
ambientes, vinculação local (
let
), funções foldr
, foldl
, map
e
filter
.
- Referências: Seções
1.3
(1.3.1 e 1.3.2) e
2.2.3
do livro SICP.
- Referências complementares: Seção
4.2 e
5.5 do livro
The Scheme Programming Languague.
- Exemplos.
- Exercícios.
- Finalização (22/03)
- Conteúdo: Outras linguagens funcionais, avaliação do paradigma de programação funcional.
- 1° avaliação (05/04)
- Resolução da 1° avaliação (19/04)
Links
Incentivo ao aprendizado de novas linguagens de programação
Racket
Prolog
Outros