Buscar

Aula 1- Apresentação Disciplina-2021-1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação Funcional 
(COMP0393) 
 
Giovanny F. L. Palma 
Leila M. A. Silva 
Copyright 2021 @ by Leila Silva 
1 
Dados do Curso 
 Créditos: 4 (60 horas) 
 e-mail: 
 Prof. Giovanny: giovanny@academico.ufs.br 
 Profa. Leila: leila@academico.ufs.br 
 Monitores: 
 Camille Sousa Meneses de Santana: millesms@academico.ufs.br 
 Cristian Di Giovanni: cristiandg@academico.ufs.br 
 Luiz Gustavo (enggustavo.caldas@academico.ufs.br) 
 Plano de ensino: SIGAA 
 Material sobre o curso (guia de estudo semanal, aulas e materiais diversos): 
 https://sites.google.com/academico.ufs.br/pf-dcomp-ufs-2021-1/p%C3%A1gina-inicial 
 Ferramentas necessárias: 
 Editor de texto da sua preferência (ex: Notepad) 
 Haskell: GHCi , Repl.it ou Jupyter (só para Linux) 
 CodeWorld (para a parte de figuras e animações) 
 Chats e Fóruns (Telegram): https://t.me/joinchat/N69SRs7P_jZhNmFh 
 Avaliações (Google Classroom) 
 
 
Leila Silva 2 
mailto:giovanny@academico.ufs.br
mailto:giovanny@academico.ufs.br
mailto:giovanny@academico.ufs.br
mailto:giovanny@academico.ufs.br
mailto:giovanny@academico.ufs.br
mailto:leila@academico.ufs.br
mailto:leila@academico.ufs.br
mailto:leila@academico.ufs.br
mailto:leila@academico.ufs.br
mailto:leila@academico.ufs.br
mailto:millesms@academico.ufs.br
mailto:enggustavo.caldas@academico.ufs.br
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
https://t.me/joinchat/N69SRs7P_jZhNmFh
GHCi 
● Compilador Haskell interativo 
● Baixe e instale em sua máquina 
– https://www.haskell.org/downloads/ 
– Use a opção Haskell Platform e escolha o seu 
sistema operacional 
– Link para um vídeo sobre como instalar: 
https://www.youtube.com/watch?v=jxkTARMwBI 
OBS: Aula de reforço neste sábado para dúvidas de instalação e 
exploração do ambiente 
 3 
https://www.haskell.org/downloads/
https://www.haskell.org/downloads/
https://www.youtube.com/watch?v=jxkTARMwBI
https://www.youtube.com/watch?v=jxkTARMwBI
Repl.It 
● Ambiente online colaborativo para várias 
linguagens. Pode ser acessado do celular. 
● Já inclui o GHCi e editor 
● Interessante para compartilhar código com 
colegas em estudos em grupo 
– https://repl.it/languages/haskell 
4 
https://repl.it/languages/haskell
https://repl.it/languages/haskell
Jupyter 
● Ambiente online para várias linguagens, 
mas só para Linux 
– https://jupyter.org 
● IHaskell – Haskell para Jupyter 
– https://github.com/gibiansky/IHaskell 
 
 
5 
https://jupyter.org/
https://github.com/gibiansky/IHaskell
CodeWorld 
● Ambiente online para trabalhar com 
gráficos e animações 
– https://code.world/haskell 
 
6 
https://code.world/haskell
https://code.world/haskell
Dados do Curso 
 Ementa 
 
Indução Matemática. Resolução de problemas por indução. 
Paradigma funcional. Expressões. Valores. Funções e tipos. Tipos 
primitivos de dados e tipos derivados. Recursividade. Definições 
por casamento de padrão. Solução de problemas de baixa 
complexidade. Polimorfismo e funções de alta ordem. Avaliação 
de expressões lazy e eager. Programação com listas. Tipos 
algébricos. Raciocínio com programas. 
 
Leila Silva 7 
Dados do Curso 
 Objetivos 
 Estudar o paradigma da Programação Funcional; 
 Aplicar a programação funcional na resolução de 
problemas; 
 Raciocinar sobre programas funcionais, inclusive 
realizando prova de corretude de programas. 
 
Leila Silva 8 
Dados do Curso 
 Habilidades 
 Conhecer e compreender os principais elementos da Programação 
Funcional; 
 Compreender e propor soluções computacionais algorítmicas; 
 Raciocinar sobre programas funcionais. 
 Não se espera que: 
 Apenas leia passivamente soluções; 
 Memorize soluções e não seja capaz de propor novas soluções; 
 Tenha uma atitude passiva na resolução de exercícios, observando 
como os colegas mais engajados resolvem os problemas. 
Leila Silva 9 
Dados do Curso 
 Metodologia: 
 Aulas assíncronas com a explanação do conteúdo, sugestão 
de leituras, vídeos e exercícios; 
 Prática assíncrona dos exercícios sugeridos usando o GHCi; 
 Aulas síncronas para elucidação de dúvidas e resolução de 
questões, com a participação de alunos. 
 Atendimento síncrono e assíncrono pelos professores e 
monitores para esclarecimento de dúvidas. 
 
 
 
 
 
Leila Silva 10 
Dados do Curso 
 Avaliações: 
 Provas subjetivas individuais: 3 (P1 , P2 e P3) 
 Listas obrigatórias individuais: 4 (L1 , L2 , L3 e L4) 
 Projeto obrigatório individual: 2(PJ1 e PJ2) 
 Médias das Unidades: 
 NU1 = 0,6 * P1 +0,25* L1 + 0,15* PJ1 
 NU2 = 0,75 * P2 +0,25* PJ2 
 NU3 = 0,6 * P3 +0,2* L2 + 0,1* L3 + 0,1* L4 
 Média final: média aritmética das três unidades. 
 Datas das Provas: definidas no plano de ensino 
 Observação: Nos casos previstos nas normas acadêmicas, haverá uma 
prova de reposição no final do semestre com o assunto todo, para 
aqueles alunos que faltaram alguma avaliação com justificativa legal. 
Não haverá prova para reposição de notas fora destes casos. 
 É recomendada a leitura detalhada das normas acadêmicas da UFS para 
se inteirar dos casos previstos em lei. 
 
 
 
 
 
Leila Silva 11 
Dados do Curso 
 O que fazer para alcançar sucesso na disciplina? 
 Perceber que você está construindo seu futuro profissional 
então deve perseguir qualidade em tudo que fizer. 
 Para atingir qualidade é preciso: 
 Estudar pelo menos 8 horas por semana em casa para a disciplina; 
 Ler várias fontes bibliográficas sobre o assunto; 
 Fazer todos os exercícios propostos; 
 Discutir suas soluções com os colegas e monitores; 
 Procurar monitores e professores para esclarecer dúvidas; 
 Participar com entusiasmo das aulas síncronas. 
 Lembre-se seu futuro profissional depende de sua atitude 
pró-ativa HOJE. 
Leila Silva 12 
Dados do Curso 
 Livros principais: 
 Simon Thompson, Haskell: The Craft of Functional 
Programming, Addison-Wesley, 2011. 
 Miran Lipovaca, Learn You a Haskell for Great Good, 
2011. (http://learnyouahaskell.com)- grátis online 
 Cláudio Sá e Márcio Silva. Haskell, uma Abordagem 
Prática, Novatec, 2006. 
 Will Kurt, Get Programming with Haskell, Manning, 
2020 (disponível grátis online) 
 Site principal: http://www. haskell.org 
Leila Silva 13 
http://learnyouahaskell.com)-/
http://learnyouahaskell.com)-/
http://learnyouahaskell.com)-/
http://learnyouahaskell.com)-/
http://learnyouahaskell.com)-/
http://learnyouahaskell.com)-/
Dados do Curso 
 Plano de Aula: detalhado no SIGAA 
 Três unidades principais 
 Unidade 1: 
 Apresentação da disciplina. Motivação. 
 Revisão de Conceitos Matemáticos: Álgebra de Boole, Coleções, Relações e 
Funções. 
 Introdução à programação funcional. A linguagem Haskell. 
 Tipos básicos , operadores, funções , definições locais e casamento de padrão. 
 Introdução ao GHCi. 
 Pensamento Computacional. 
 Projeto de programas. 
 Figuras e Animações no ambiente CodeWorld 
 Tuplas e listas. Compreensões. 
 Testes de funções com QuickCheck 
 
 Funções sobre listas. 
 
 
Leila Silva 14 
Dados do Curso 
 Plano de Aula: detalhado no SIGAA 
 Unidade 2: 
 Indução Matemática. 
 Recursão primitiva. 
 Indução forte e Recursão geral. 
 Técnicas para a construção de funções recursivas 
 Construção de figuras recursivas. 
 Programação com listas. 
Leila Silva 15 
Dados do Curso 
 Plano de Aula: detalhado no SIGAA 
 Unidade 3: 
 Raciocínio com programas. Provas de propriedades em Haskell. 
 Polimorfismo e Sobrecarga 
 Classes de tipos e checagem de tipos. 
 Generalização: Funções como argumentos. 
 Funções como resultado. 
 Tipos algébricos. 
 Módulos 
 Programação preguiçosa. 
 Entrada e saída Introdução a Monads 
 
 
Leila Silva 16

Outros materiais