Sobre a disciplina | Aulas | Avaliações | Bibliografia | Quizzes
Primeiro semestre de 2020
Professora: Andrea Schwertner Charão
Carga horária: 60h
Horários: segundas e quartas, das 14:30 às 16:30
Sala: 368, CT - Práticas: 334, CT
- Ementa: informações sobre objetivos, programa, metodologia e bibliografia.
ATENÇÃO: Devido à pandemia do Covid-19, a UFSM está com atividades presenciais suspensas. Devido a isso, o planejamento inicial foi alterado e estamos usando um servidor no Discord para interagir por áudio e chat. Os dias e horários de aula continuam sendo uma referência para a disciplina, sendo que as atividades de cada aula estão registradas na tabela abaixo. Cada nova aula é planejada em função do progresso da turma observado no Discord.
Aula | Data | Dia | Assunto/Atividade |
---|---|---|---|
1 | 09/03/2020 | Seg | Apresentação do programa da disciplina e do plano de ensino. Introdução à disciplina. |
2 | 11/03/2020 | Qua |
Introdução à programação funcional. Introdução a funções em linguagem Haskell . |
- | 16/03/2020 | Seg | Sem aula. Evento Mulheres na Tecnologia |
3 | 18/03/2020 | Qua | Programação funcional: prática com definição de funções e uso de funções de alta ordem. |
4 | 23/03/2020 | Seg | Programação funcional: prática com funções de alta ordem e funções lambda. |
5 | 25/03/2020 | Qua | Programação funcional: prática com funções em geral, especialmente funções de alta ordem e funções lambda. |
6 | 30/03/2020 | Seg | Programação funcional: questionário sobre os conteúdos vistos até esta data. |
7 | 01/04/2020 | Qua | Programação funcional: prática sobre tuplas e listas. |
8 | 06/04/2020 | Seg | Programação funcional: prática com programas mais longos (let/where,I/O). Exemplos: validação de CPF e geração de SVG usando programação funcional. |
9 | 08/04/2020 | Qua | Programação funcional: prática com geração de listas e list comprehension. |
10 | 13/04/2020 | Seg | Programação funcional: prática com recursão, construção de listas e pattern matching. |
11 | 15/04/2020 | Qua | Programação funcional: prática de programação funcional com entrega no GitHub Classroom. |
12 | 20/04/2020 | Seg | Programação funcional: resolução/correção dos exercícios haskell08 e visão geral do trabalho de Haskell (t1). |
13 | 22/04/2020 | Qua | Programação funcional: implementação da primeira parte do trabalho de Haskell (t1). |
14 | 27/04/2020 | Seg | Programação funcional: implementação da primeira parte do trabalho de Haskell (t1). |
- | 28/04/2020 | Qua | Sem aula. |
15 | 04/05/2020 | Seg | Programação funcional: implementação da segunda parte do trabalho de Haskell (t1). |
16 | 06/05/2020 | Qua | Programação funcional: implementação da segunda parte do trabalho de Haskell (t1). |
17 | 11/05/2020 | Seg | Avaliação do trabalho com Haskell. Prática com Hlint para melhoria do código do t1. |
18 | 13/05/2020 | Qua | Introdução à programação lógica: slides ou vídeo. Introdução à linguagem Prolog (fatos, regras, consultas e variáveis): slides. Primeira prática com Prolog. |
19 | 18/05/2020 | Seg | Programação lógica em Prolog. Segunda prática com Prolog: consultas e regras, listas e problemas de lógica. |
20 | 20/05/2020 | Qua | Programação lógica em Prolog. Terceira prática com Prolog: processo de execução de programas Prolog, execução passo-a-passo. |
21 | 25/05/2020 | Seg | Programação lógica em Prolog. Quarta prática com Prolog: exemplo de programa que simula raciocínio dedutivo. |
22 | 27/05/2020 | Qua | Programação lógica em Prolog: listas e recursão (slides e vídeo). Quinta prática com Prolog: definindo predicados recursivos. |
23 | 01/06/2020 | Seg | Programação lógica: desenvolvimento do trabalho de Prolog (t2). |
24 | 03/06/2020 | Qua | Programação lógica: desenvolvimento do trabalho de Prolog (t2). |
25 | 08/06/2020 | Seg | Programação lógica: desenvolvimento do trabalho de Prolog (t2). |
26 | 10/06/2020 | Qua | Programação lógica: desenvolvimento da parte comum (questões de exames) do trabalho de Prolog (t2). |
27 | 15/06/2020 | Seg | Avaliação do trabalho de Prolog. Áudio com encerramento das unidades sobre programação funcional e lógica. Programação orientada a objetos: primeiro contato com Java. |
28 | 17/06/2020 | Qua | Programação orientada a objetos: introdução (slides e vídeo), conceitos e exemplos de encapsulamento, classes, objetos, métodos, atributos, construtores (slides e vídeo). Segunda prática com Java. |
29 | 22/06/2020 | Seg | Programação orientada a objetos: terceira prática com Java (classes, objetos, métodos, atributos, uso de static, uso de this, Swing e ArrayList). |
30 | 24/06/2020 | Qua | Programação orientada a objetos: herança. Quarta prática com Java (extends, protected, super). |
31 | 29/06/2020 | Seg | Programação orientada a objetos: polimorfismo. Quinta prática com Java. |
32 | 01/07/2020 | Qua | Programação orientada a objetos: classes abstratas e interfaces em Java. Sexta prática com Java. |
33 | 06/07/2020 | Seg | Introdução à programação concorrente. Concorrência em Java: prática com classe Thread, interface Runnable, métodos run, start e join. |
33 | 08/07/2020 | Seg | Problemas de programação concorrente: sincronização. Exclusão mútua em Java: prática com synchronized. |
- Primeiro bimestre
- Trabalho Haskell (20%)
- Trabalho Prolog (20%)
- Prova (40%) -
29/04 - Trabalho tema flexível (20%) -
04/05
- Segundo bimestre
- Trabalho parte 1 (35%)
- Trabalho parte 2 (35%)
- Prova (30%) -
29/06
- Avaliação final (exame):
13/07/2020
- Robert Sebesta. Conceitos de Linguagens de Programação. Bookman, 2018. Disponível no Portal de E-books da UFSM.
- Miran Lipovača. Learn You a Haskell for Great Good!.
- Patrick Blackburn, Johan Bos, and Kristina Striegnitz. Learn Prolog Now (recomendado).
- Markus Triska. The Power of Prolog.
- Outros materiais de referência indicados ao final de cada grupo de slides.