/elc117-2020a

ELC117 - Paradigmas de Programação - UFSM - 2020a

Primary LanguageProlog

Paradigmas de Programação - ELC117-2020a

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

Sobre a disciplina

  • Ementa: informações sobre objetivos, programa, metodologia e bibliografia.

Aulas

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.

Avaliações

  • 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

Bibliografia

Quizzes

  • Testes (quizzes) de Haskell com correção automática: (1) (2)
  • Testes (quizzes) de Prolog com correção automática: (1) (2)
  • Testes (quizzes) de Java com correção automática: (1) (2)