BCC 222
Programação Funcional

José Romildo Malaquias
Sala 21 – DECOM – ICEB III
Instituto de Ciências Exatas e Biológicas
Universidade Federal de Ouro Preto
romildo@iceb.ufop.br

2014/2

Sumário

1 Dados gerais
2 Objetivos
3 Ementa
4 Metodologia de Ensino
5 Atividades Discentes
6 Bibliografia
7 Avaliações
8 Código de honra do aluno
9 Grupo de discussão
10 Ferramentas
11 Aulas
12 Provas
13 Trabalhos
14 Notas e frequências

1 Dados gerais

Departamento: Computação
Unidade: Instituto de Ciências Exatas e Biológicas
Carga horária semanal: 2 teóricas + 2 práticas = 4 total
Duração em semanas: 18
Carga horária semestral: 72 horas-aula
Pré-requisitos: BCC201 – Introdução à Programação
Cursos: Ciência da Computação: obrigatória 3o período

2 Objetivos

Ao final do curso espera-se que os alunos possuam os seguintes conhecimentos e habilidades:

3 Ementa

  1. Características dos principais paradigmas de programação.
  2. Princípios do paradigma de programação funcional.
  3. Principais características das linguagens de programação funcional:
  4. Estudo de uma linguagem funcional moderna e desenvolvimento de programas nesta linguagem, enfocando aspectos de correção, modularidade e reuso de código.

4 Metodologia de Ensino

Aulas teóricas
Aulas expositivas sobre o conteúdo. Os conceitos serão apresentados através da solução de problemas que requerem aplicação de tais conceitos. Será dada uma forte ênfase na implementação como instrumento para garantir a assimilação dos conceitos de orientação a objetos.
Aulas práticas
Aulas práticas onde o aluno terá a oportunidade de escrever programas e trechos de programas usando os conceitos e construções sendo estudados. Para tanto deverá seguir um roteiro com as tarefas a serem realizadas.

5 Atividades Discentes

Listas de exercícios
Exercícios de implementação de programas e trechos de programas para assimilação dos conceitos apresentados.
Trabalhos
Exercícios de implementação mais elaborados para consolidar os conceitos estudados.

6 Bibliografia

[1]

PIC
Graham Hutton. Programming in Haskell. Bibliografia básica. Cambridge University Press, 2007, p. 200. isbn: 0521692695. Livro-texto.

[2]

PIC
Simon Thompson. Haskell: The Craft of Functional Programming. Terceira edição. Bibliografia básica. Addison-Wesley, 2011, p. 608. isbn: 0201882957.

[3]

PIC
Bryan O’Sullivan, Don Stewart e John Goerzen. Real world Haskell. O’Reilly Series. O’Reilly, 2008, p. 700. isbn: 0596514980, 9780596514983.

[4]

PIC
Paul Hudak. The Haskell School of Expression – Learning Functional Programming through Multimedia. New York: Cambridge University Press, 2000, p. 416. isbn: 0521644089, 0521643384.

[5]

PIC
Miran Lipovača. Learn You a Haskell for Great Good!: A Beginner’s Guide. No Starch Press Series. No Starch Press, 2011. isbn: 9781593272838.

7 Avaliações

A avaliação será feita por um conjunto de provas escritas, um conjunto de trabalhos práticos, e um conjunto de listas de exercícios. A tabela a seguir enumera as atividades de avaliação previstas, com os respectivos pesos na formação da nota final, e datas de realização.





avaliação peso data assuntos




Prova 1
7
01/10/2014 (quarta-feira)



Prova 2 05/11/2014 (quarta-feira)



Prova 3 10/12/2014 (quarta-feira)




Trabalhos 2




Exercícios 1




Exame especial 17/12/2014 (quarta-feira) De acordo com a resolução CEPE 2.880




As atividades deverão ser submetidas através do site da disciplina no sistema Moodle do DECOM: http://www.decom.ufop.br/moodle/course/view.php?id=315

8 Código de honra do aluno

Este assunto deve ser muito simples. Não entregue trabalhos de outra pessoa como sendo seus, e não compartilhe suas soluções com outros alunos.

Você deve se sentir livre para discutir os problemas propostos e os projetos de programação com os colegas, mas todo trabalho que você submeter ao professor deve ser de sua própria autoria. Ou seja, você deve elaborar suas próprias soluções para os problemas e implementar seus projetos de programação você mesmo.

Se você discutir suas idéias com outros estudantes, não tem problema, mas faça uma observação sobre o mesmo na submissão do seu trabalho.

As atividades propostas são para trabalho individual.

9 Grupo de discussão

Existe um grupo de discussão sobre o conteúdo da disciplina no Google Groups que deverá ser utilizado ativamente pelos alunos, professor e monitores durante o curso.

O professor e os monitores poderão propor questões para discussão no grupo, bem como problemas para serem resolvidos.

Caberá aos alunos discutir as questões e problemas propostos, apontando soluções básicas e/ou soluções alternativas ou comentando o assunto. Os alunos poderão também propor algum problema ou levantar alguma questão para discussão que julgarem interessante.

O endereço do grupo de discussão é http://groups.google.com/group/bcc222.

Cada aluno deverá se inscrever imediatamente no grupo e começar a participar das discussões.

10 Ferramentas

Nas aulas será utilizada a linguagem Haskell para desenvolver os conceitos de programação funcional. A implementação mais conhecida e usada de Haskell é o GHC, que pode ser obitido em conjunto com várias bibliotecas através da Plataforma Haskell.

Para desenvolver aplicações precisamos de um editor de texto. No Windows pode-se usar por exemplo o notepad++.

Existe também um plugin para o ambiente de desenvolvimento Eclipse: EclipseFP.

11 Aulas







#
Data
Assuntos

Atividades







1 18/08/2014 Seg 0. Apresentação do curso
1. Introdução

Exercícios dos slides







12 Provas



Prova Soluções


13 Trabalhos




Assunto

Trabalho

Data entrega



14 Notas e frequências

Resultados de avaliações e frequências

Última atualização: 2014-08-18 02:58:12 por José Romildo Malaquias.