Paradigmas de programação – CI1062 (PaP)

Ensino Remoto Emergencial (ERE 20/21)

Página com informações gerais da disciplina: ementa, datas das provas, bibliografia, exercícios, etc.

Avisos

================================

=> Resultado parcial divulgado neste link.
=>  Dia 17 não haverá aula. O conteúdo da aula do dia 17 (próxima quarta) será dado na aula do dia 22/03.

=> Especificação do trabalho 2 disponível. >

=> Início dia 18/01/2021.

=> Moodle: https://moodle.c3sl.ufpr.br/course/view.php?id=415

=> Ferramenta Draw.io

=> Especificação do trabalho 1 disponível. 

=> Locais dos encontros virtuais: https://bbb.c3sl.ufpr.br/b/mar-d3c-kdz 

=> Publicado um conjunto de Notebooks Haskell com código ilustrando conceitos de programação funcionalista.
=>
Publicado um conjunto de Notebooks Java com código ilustrando conceitos de programação orientada a objetos.

================================

Material de aula

Slides :

Videos

Programação OO

=> Exercicio das formas geométricas
=> Conta em banco
=> Calculadora
=> Notebooks Java com exemplos ilustrativos
=> Lista de exercícios 01
=> Extrato do modelo de sistema acadêmico
=> Sistema de controle de pós graduação – contém o sistema completo:  o modelo completo, interfaces, acesso aos dados, etc.
Sites externos
=> Tutorial sobre reflexão em Java
=> Outro Tutorial sobre reflexão em Java
=> Java Reflextion API
=> Material da Oracle sobre tipos genéricos
=> ‘Resumão’ sobre design patterns no Wikipedia
=> Anti-patterns: anti-padrões de desenvolvimento…

Padrões de projeto

Padrões de projeto: visão geral
Singleton
FactoryMethod
Composite
Observer
Visitor

Programação funcionalista

=> Exercicios funcionalista

Outros recursos (sites externos)
=> Funcões como entidades de primeira ordem
=> Curso online – introdução à programação funcional
=> Curso de programação funcional usando Haskell – Univ. de Edinburgo
=> Apostila de Haskell

Programação funcionalista e Apache Spark

=> Tutorial em português http://www.inf.ufpr.br/erlfilho/tutorials/spark/
=> Página com Quick Start da Apache
Execução nas máquinas locais : /home/soft/linux/eclipsemodeling/spark-2.1.1-bin-hadoop2.7/bin/spark-shell

Modalidades e meios:

Atividades síncronas: aulas por videconferência
Atividades assíncronas: textos, listas de exercícios e trabalhos. Calendário:
Início: 18/01/2021
Fim: 24/03/2021
Trabalho 1: 01/03/2021 : https://web.inf.ufpr.br/didonet/ci1062-ere-trabalho-1/
Trabalho 2: 17/03/2021
Prova final: 24/03/2021
Horário dos encontros síncronos (ES): Segundas-feiras 13h30, e dias 17 e 24 de março (quarta)

Cronograma detalhado:

18/01/2021 Apresentação da disciplina Modelo Conceitual ES

25/01/2021 Modelo conceitual, Classes e Instâncias ES/EX

01/02/2021 Métodos e atributos ES/ML /EX

08/02/2021 Herança ES/EX

22/02/2021 Polimorfismo 2-3-4 ES

01/03/2021 Classes Abstratas e Interfaces ES/EX/TP1

08/03/2021 Padrões de projeto GOF ES

15/03/2021 Programação funcionalista ES/TP2/ML/EX

17/03/2021 Funções lambda ES / EX

22/03/2021 Listas ES/EX

24/03/2021 Exame Final

Legenda:
ES: Encontro síncrono (2 horas)
ML: Disponibilização pelo professor de material de leitura (tempo necessário para leitura e estudo complementar ao trabalho prático: 4 horas)
EX: Disponibilização pelo professor de exercícios (tempo necessário para realizar a tarefa: 3 horas)
TPn: Disponibilização pelo professor de trabalho prático (tempo necessário para leitura, estudo e implementação do trabalho prático: 9 horas)

Avaliação

Uma provas e dois trabalhos (ver datas acima).

Cálculo da Média Parcial: t1*0.40 + t2*0.60
Cálculo da média final:
– igual à média parcial, se esta é igual ou superior a 7.0 ou inferior a 4.0
– média aritmética entre a média parcial e a nota no exame final, caso contrário.

Será aprovado o aluno que apresentar freqüência mínima igual ou superior a 75% das aulas e obtiver média final igual ou superior a 5.0.

Bibliografia

Programção orientada a objetos: os 4 primeiros livros serão os mais usados
1 => Boratti, Isaias Camilo, Programação orientada a objetos em JAVA, Ano 2007, ISBN: 9788575021996 Florianopolis : Visual Books, 2007
2 => Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides. Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a objetos. Bookman
3 => (o mesmo livro acima em inglês) Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides. Elements of Reusable Object-Oriented Software. Addison-Wesley Professional;
4 => Bruce Eckel, Thinking in Java, 4th Edition, Prentice Hall, 1150 pages (English) ISBN: 0131872486
5 => Cox, Brad J, Programaçao orientada para objeto, Rio de Janeiro : Makron : MacGraw-Hill, 1991
6 => PREISS, Bruno R. Estruturas de dados e algoritmos: padroes de projetos orientados a objetos com Java. Rio de Janeiro: Campus, c2001. xvi, 566. Inclui bibliografia e índice. ISBN 8535206930 (broch.).
7 => Sidnei Wazlawick. Análise e Projeto de Sistemas de Informaçao Orientados a Objetos. Editora Campus, 1994.
8 => JANDL JUNIOR, Peter. Java: guia do programador : atualizado para Java 8. 3. ed São Paulo: Novatec, c2015. 704 p., il. Inclui referências e índice. ISBN 9788575224441 (broch.).
9 => BOENTE, Alfredo. Aprendendo a programar em Java 2: orientado a objetos. Rio de Janeiro: Brasport, 2003. 216 p., il. Inclui bibliografia e índice. ISBN 857452140X (broch.).
10 => ANSELMO, Fernando. Aplicando lógica orientada a objetos em Java. 2. ed. atual. e ampl Florianópolis: Visual Books, 2005. 178 p., il. ISBN 8575021621 (broch.).

——————————-

Programação funcionalista

Os 4 primeiros itens serão os mais utilizados no curso.
1 => Wiki da linguagem Haskell. https://wiki.haskell.org/, https://wiki.haskell.org/A_brief_introduction_to_Haskell
2 => A Gentle Introduction to Haskell – Version 98 (June 2000) https://www.haskell.org/tutorial/
3 => A general introduction to Functional Programming using Haskell. Matteo Rossi. Dipartimento di Elettronica e Informazione. Politecnico di Milano. https://cazzola.di.unimi.it/ps/haskell-p1.pdf
4 => Bird. Introduction to Functional Programming using Haskell. Prentice Hall, New York, 1998.
A.Davie. Introduction to Functional Programming System Using Haskell. Cambridge University Press, 1992.
5 => P. Hudak. Conception, evolution, and application of functional programming languages. ACM Computing Surveys, 21(3):359–411, 1989.

6 => Introduction to Funcional Programming. E.P. Wentworth http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.57.4846&rep=rep1&type=pdf
7 => Haskel: Uma abordagem Prática. De Sá, C. C.; Ferreira da Silva, M. Novatec. São Paulo, 2006