Terceiro quadrimestre de 2014

Horário:

(Sim, a aula de terça de manhã é com as duas turmas juntas; as outras aulas são separadas)

Sala de aula:

Professor: Jerônimo C. Pellegrini

Sala do professor: S 805 (bloco B)

Email do professor: jeronimo.pellegrini ufabc edu br

Notas finais

Novidades

18/12 -- Notas finais disponíveis
17/12 -- Notas da fase 2 disponíveis
16/12 -- Versão final adiada para amanhã!
14/12 -- Não teremos aula 16/12 
12/12 -- Critério de avaliação relaxado (tanto para os testes como para o trabalho) -- FELIZ NATAL!!!
         [ inserir aqui risada característica de Papai Noel ]
11/12 -- Notas do T5 disponíveis [ REVISÃO NA SEXTA 12/12 ]
03/12 -- notas do T4 disponíveis [ REVISÃO NA SEXTA ]
27/11 -- Conceitos da fase 1 disponíveis
27/11 -- Vista/revisão na semana que vem
26/11 -- notas do T3 disponíveis
14/11 -- nova versão das notas de aula disponível (133)
14/11 -- Sobre trabalho.scm (leia abaixo)
13/11 -- Notas da fase 0 disponíveis
11/11 -- FASES I E II DO TRABALHO ADIADAS!!!
09/11 -- FASE I DO TRABALHO SERÁ ADIADA. Detalhes amanhã
07/11 -- Conceitos do T2 disponíveis
06/11 -- Sugestão de alternativa ao SLIME para Common Lisp
04/11 -- subsídios para uso de TCP e threads agora no site do trabalho
02/11 -- respondendo a dúvida posta em sala:
         para abrir um arquivo fazendo append, não há forma
         padronizada em Scheme. No Chicken, use o módulo "posix".
         Por exemplo:
           (define fd (file-open "zy" (+ open/wronly open/append open/creat)))
           (define out (open-output-file* f #:append))
           (display "hi" out)
           (newline out)
           (close-output-file out)
         Veja documentação em http://wiki.call-cc.org/man/4/Unit%20posix
28/10 -- dias atrás incluí algumas dicas na descrição do trabalho. leiam!
27/10 -- instruções para entrega do trabalho
24/10 -- laboratório disponível todas as manhãs!
21/10 -- descrição do trabalho atualizada, conforme falamos em sala
21/10 -- datas de entrega do trabalho atualizadas
15/10 -- avaliação do T1 disponível
13/10 -- especificação do trabalho disponível
07/10 -- nova versão das notas de aula disponível (132)
06/10 -- informação sobre Scheme com Vi disponível
01/10 -- datas das avaliações disponíveis
30/09 -- início do curso

Sobre trabaho.scm

Testei em uma máquina fora do laboratório e funcionou. Isso inidica que é um bug naquela versão do Chicken! :-( Estou usando .9.1 (rev 1d21ec8)

Usem interpretado por enquanto...

Ementa

Visão comparativa entre os paradigmas de programação. Paradigma funcional. Paradigma concorrente.

Avaliação

O conceito final da disciplina poderá ser:

A avaliação consistirá de

Descartaremos a pior das notas dos minitestes, e T = ∑Ti (a soma das quatro melhores notas de teste).

O conceito final será dado por

Datas das avaliações:

Trabalho prático

A descrição está aqui!

Prazos:

Conceitos

Veja as notas do teste 1

Programa

Este programa está sujeito a mudanças simples. Grandes mudanças não devem acontecer.

  1. PROGRAMAÇÃO FUNCIONAL EM SCHEME
    1. Elementos básicos de Scheme
    2. Procedimentos
    3. Variáveis: ambientes, extensão e escopo
    4. Sistemas de tipos (estático/dinâmico; seguro/inseguro)
    5. Listas e vetores
    6. Fechos
    7. (POO com fechos)
    8. Metaprogramação
    9. Avaliação preguiçosa
    10. Streams (aplicação de av. preguiçosa)
    11. Continuações
    12. Aplicações de continuações: escape, multitarefa, backtracking, exceções
    13. Programação em Lógica
    14. Modelos de gerenciamento de memória; coleta de lixo
  2. PROGRAMAÇÃO CONCORRENTE
    1. Processos, threads e formas de concorrência
    2. Problemas inerentes à programação concorrente
    3. Memória compartilhada:
      • Semáforos
      • Monitores
      • Memória transacional
      • Thread pools
    4. Passagem de mensagens:
      • Passagem de mensagens síncrona e assíncrona

Bibliografia e ferramentas

Mais relevantes para este curso:

Outros links de interesse:

Para desenvolvimento em Scheme

Bibliografia

Principal

Secundária