Skip to content

Commit 1c135f8

Browse files
committed
Adiciona plano de ensino
1 parent fcb62e9 commit 1c135f8

File tree

3 files changed

+94
-2
lines changed

3 files changed

+94
-2
lines changed

.gitignore

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
test-project/
2+
aula-*
3+
aulas-*
4+
exemplos
5+
*.pdf
26

3-
# O projeto agora tem repositório próprio
4-
projeto-base/
57
~$*
68

79
# Compiled class file

functional-programming.jpg

11.3 KB
Loading
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Plano de Ensino Sistemas Distribuídos
2+
3+
## Ementa
4+
5+
Preparar aulas a partir da seção "Conteúdo Programático"
6+
7+
- Introdução e benefícios da programação funcional.
8+
- Fundamentos da programação funcional em linguagens dinâmica e estaticamente tipadas.
9+
- Imutabilidade e corretude de software.
10+
- Funções puras. Funções como elementos de primeira classe.
11+
- Referências de funções/métodos.
12+
- Funções de callback.
13+
- Composição de funções.
14+
- Diferenças entre programação funcional e orientada a objetos.
15+
- Diferenças de uso de programação funcional em linguagens dinâmica e estaticamente tipadas.
16+
- Expressões lambda (lambda expressions / arrow functions) e funções anônimas.
17+
- Modelo de programação Map/Reduce: operações de filtro, mapeamento e redução em conjuntos de dados.
18+
- Processamento paralelo de dados.
19+
- Aridade de funções e o impacto em programação funcional.
20+
21+
## Conteúdo Programático
22+
23+
- ✅ Introdução e benefícios da programação funcional.
24+
- Fundamentos da programação funcional em linguagens dinâmica e estaticamente tipadas.
25+
- ✅ Imutabilidade e corretude de software.
26+
- ✅ Funções puras. Funções como elementos de primeira classe.
27+
- Funções de callback.
28+
- Referências de funções/métodos.
29+
- Composição de funções.
30+
- ✅ Diferenças entre programação funcional e orientada a objetos.
31+
- Diferenças de uso de programação funcional em linguagens dinâmica e estaticamente tipadas.
32+
- Expressões lambda (lambda expressions / arrow functions) e funções anônimas.
33+
* Effective final em Java e outras linguagens: variáveis final/const por padrão
34+
- Modelo de programação Map/Reduce: operações de filtro, mapeamento e redução em conjuntos de dados.
35+
- Processamento paralelo de dados.
36+
- Aridade de funções e o impacto em programação funcional.
37+
38+
## Justificativa
39+
40+
### Competências
41+
42+
- Compreender os benefícios da programação funcional e sua importância atual no desenvolvimento de software.
43+
- Compreender a estrutura de um código utilizando programação funcional.
44+
- Compreender como diferentes paradigmas de programação podem coexistir em uma mesma base de código.
45+
- Entender os benefícios da programação funcional para o reuso de funções e concisão de código.
46+
- Entender o conceito de funções com responsabilidade única na programação funcional e os benefícios para o teste de software.
47+
- Entender as diferenças entre a criação de expressões lambda vs passagem de referência para funções/métodos.
48+
- Entender os perigos da mutabilidade e como escrever código com dados imutáveis. - Conhecer as boas práticas em programação funcional e uso de funções de callback.
49+
50+
### Habilidades
51+
52+
- Utilizar recursos de programação funcional de linguagens dinâmica e estática/fortemente tipadas.
53+
- Aplicar processamento de dados por meio de operações de mapeamentoe redução.
54+
- Realizar busca e filtragem de dados com programação funcional.
55+
- Aplicar conceitos de imutabilidade em processamento de dados com programação
56+
funcional.
57+
- Realizar agrupamento de dados e cálculo de estatísticas com programação funcional.
58+
- Criar expressões lambda (lambda expressions / arrow functions) e passá-las por parâmetro para outras funções.
59+
- Declarar funções em variáveis / constantes.
60+
- Passar funções como parâmetro para outras funções.
61+
- Reutilizar funções com programação funcional.
62+
63+
## Objetivo Geral
64+
65+
Apresentar os conceitos fundamentais de programação funcional e obter prática na escrita de código seguindo tal paradigma.
66+
67+
## Objetivos Específicos
68+
69+
- Compreender os fundamentos de programação funcional
70+
- Entender a importância de tal paradigma
71+
- Conhecer os recursos de diferentes linguagens funcionais
72+
- Escrever código seguindo tal paradigma usando linguagens estáticas e dinâmicas
73+
74+
## Metodologia
75+
76+
Aulas assíncronas gravadas, expositivas e práticas com exercícios propostos.
77+
78+
## Bibliografia Básica
79+
80+
1. JDK 8 Massive Open and Online Course: Lambdas and Streams Introduction
81+
(somente inglês). Oracle Learning Library. 2016. Disponível em https://apexapps.oracle.com/pls/apex/f?p=44785:145:10103135022719::NO:RP,145:P145_EVENT_ID,P145_PREV_PAGE:5067,2
82+
2. Processing Data with Java SE 8 Streams. Oracle. 2014. Disponível em https://www.oracle.com/technical-resources/articles/java/ma14-java-se-8-streams.html
83+
3. JavaScript. Mozilla Developer Network (MDN). 2022. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/JavaScript
84+
4. Introduction to Functional Programming: JavaScript Paradigms (somente inglês). TopTal Inc. Disponível em https://www.toptal.com/javascript/functional-programming-javascript
85+
86+
## Bibliografia Complementar
87+
88+
1. SILVA, Maurício Samy. JavaScript: guia do programador. São Paulo: Novatec, 2010. 604p., il. (n. 1). ISBN 978-85-7522-248-5.
89+
2. GOODMAN, Danny. JavaScript: a bíblia. Tradução de Daniel VIEIRA. Rio de Janeiro: Campus, 2001. 909 p. (n. 1). ISBN 85-352-0828-3.
90+
3. MORRISON, Michael. Use a cabeça ! Java script. Rio de Janeiro: Alta Books, 2008. 606 p. (n. 1).

0 commit comments

Comments
 (0)