Skip to content

Commit 286797a

Browse files
committed
Atualiza .gitignore para ignorar projetos fp-programacao-funcional-java-projeto-base e projeto1-poligonos-flatmap
que estão em repositórios separados.
1 parent eae4be0 commit 286797a

File tree

6 files changed

+205
-0
lines changed

6 files changed

+205
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,6 @@ hs_err_pid*
3737

3838
#MacOS Files
3939
.DS_Store
40+
41+
fp-programacao-funcional-java-projeto-base/
42+
projeto1-poligonos-flatmap/

00-Aulas.adoc

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
= Aulas
2+
3+
== Aula 1: Apresentação da Disciplina
4+
5+
Google Meet
6+
7+
8+
=== ## Aprendendo a Aprender
9+
10+
Alguém aí conhece o canal do Fábio Akita?
11+
Ele publica vídeos sobre diversos assuntos, a maioria são assuntos complexos sobre computação e os vídeos normalmente são bem longos.
12+
13+
Mas ele também fala muito sobre carreira e aprendizado. Por isso, sugiro os dois vídeos a sugerir do canal:
14+
15+
- https://youtu.be/oUPaJxk6TZ0
16+
- https://youtu.be/L0hTOY5n9G8
17+
18+
O primeiro é o "Aprendendo a aprender" e o segundo "O que a faculdade não te ensina sobre mercado".
19+
20+
Os dois vídeos abordam a forma como muitos alunos levam seu aprendizado e o que esperam aprender em um curso superior. É um tapa na cara para muitos acordarem para a realidade e mudarem suas atitudes, levando mais a sério os estudos.
21+
22+
Uma das coisas que ele aborda nos vídeos é o interese de muitos por receitas prontas, por pular a teoria e ficar no bê-a-bá da parte prática de muitas disciplinas.
23+
24+
A disciplina de programação funcional é um exemplo disto. Existe toda uma teoria envolvida e os alunos normalmente não se importam, acham chato e não dão a mínima. Então, sugiro fortemente que assistam.
25+
26+
Este é o tipo de conteúdo que eu gostaria que estivesse disponível quando comecei a faculdade há mais de 20 anos.
27+
28+
== Aula 2
29+
30+
Bom dia pessoal.
31+
Semana passada apresentei a disciplina, como serão as aulas, as atividades que precisam fazer, o processo de avaliação e a ementa.
32+
33+
Esta semana iniciamos de fato no conteúdo sobre programação funcional.
34+
Como todas as aulas são gravadas, vocês podem assistir quando for mais conveniente.
35+
Lembrando que as presenças são registradas pelo acesso aos vídeos pelo Moodle.
36+
37+
Para esta semana, acessem https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=2
38+
Este primeiro vídeo apresenta os fundamentos da programação funcional, sua importância e porque não dá mais pra viver sem usar tal paradigma.
39+
40+
A aula mostra um pouco de teoria, mas também já parte para mostrar exemplos de código.
41+
Bons estudos a todos e qualquer dúvida, estou à disposição.
42+
43+
Só lembrando que toda semana vocês têm uma tarefa que deve ser feita e entregue em um prazo de 1 mês. Após isso, a tarefa encerra.
44+
Por isso, sugiro que tirem um tempo semanalmente para a disciplina, assistam a aula e já façam a atividade em seguida.
45+
46+
== Aula 03
47+
48+
Bom dia pessoal. Essa semana temos um vídeo sobre um tópico que pode ser novo pra maioria, um pouco confuso, mas fundamental para programação em geral, não só para programação funcional.
49+
50+
Estou falando de imutabilidade, um conceito super importante para criar software menos suscetível a bugs.
51+
52+
A aula é bem interessante por mostrar esse conceito em diferentes linguagens e como as versões mais novas de Java facilitam isso
53+
54+
55+
Acessem em https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=3
56+
57+
58+
Assistam a aula e façam a atividade proposta
59+
60+
== Aula 04
61+
62+
Bom dia pessoal.
63+
Essa semana vamos aprofundar em funções, que apesar de parecer algo que todo mundo já sabe, é simplesmente o coração da programação funcional e há novos conceitos a serem aprendidos sobre este tópico.
64+
65+
Vocês vão ver que, por mais que você conheça um determinado assunto, sempre há muito a aprofundar e assim criar código mais fácil de manter, reutilizar e menos sucetível a bugs.
66+
Bons estudos e qualquer dúvida, estou à disposição.
67+
68+
69+
Acessem em https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=4
70+
71+
== Aula 05
72+
73+
Bom dia Pessoal. Espero que estejam todos bem.
74+
A aula de hoje vamos iniciar em um dos tópicos mais importantes da programação funcional em Java: as expressões lambda.
75+
Em JavaScript elas são conhecidas como Arrow Functions (Funções Seta), mas este é um nome inventado por JS apenas, apesar de ser bonitinho 😊
76+
77+
Vamos falar também sobre um dos recursos mais importantes introduzidos na linguagem Java: os Streams, que permitem realizar o processamento de dados de forma absurdamente simples, com menos código e menos bugs.
78+
79+
Acessem em https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=5
80+
81+
== Aula 06
82+
83+
Bom dia pessoal.
84+
A aula dessa semana continua no assunto de streams e aborda alguns conceitos novos,
85+
principalmente o conceito de interfaces funcionais usado em Java e outras linguagens como TypeScript (apesar de poder mudar de nome).
86+
87+
Esse conceito é fundamental para conseguir se tornar fluente em programação funcional em Java.
88+
89+
Bons estudos. Qualquer dúvida, estou à disposição.
90+
91+
92+
https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=6
93+
94+
== Aula 07
95+
96+
Bom dia pessoal.
97+
98+
Nossa última aula foi abordado o conceito de interfaces funcionais, que é essencial
99+
para entender e escrever código funcional, principalmente para entender o que uma determinada
100+
função espera por parâmetro, quando tal parâmetro é outra função.
101+
102+
Essa semana continuamos nesse assunto, conhecendo mais algumas interfaces funcionais
103+
e iniciando em um novo assunto de coleta de dados com Streams.
104+
105+
Bons estudos.
106+
107+
https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=7
108+
109+
== Aula 08
110+
111+
Olá pessoal.
112+
Espero que estejam todos bem.
113+
Na aula passada entramos em um assunto novo, que não é exclusivo de Java,
114+
e que pode ser mais confuso para quem não tem familiaridade com programação funcional.
115+
116+
Quem já assistiu a última aula?
117+
Como está indo? Vocês têm dúvidas, dificuldades?
118+
119+
120+
Amanhã temos nossa próxima aula, onde vamos introduzir o tipo Optional,
121+
que também existe em diferentes linguagens (as vezes com nomes diferentes).
122+
Por fim, vamos entender o que é Null Safety e sua importância para o desenvolvimento de software
123+
(apesar de Java ainda não ter isso).
124+
125+
https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=8
126+
127+
128+
== Aula 09
129+
130+
Bom dia pessoal, como estão por ai?
131+
Esta semana avançamos em programação funcional com Java e vamos cobrir 3 tópicos:
132+
1) Vamos aprender sobre redução de dados, que é algo muito comum em várias linguagens funcionais.
133+
2) Vamos reaprender a usar o tipo Map (HashMap), que tem vários novos métodos funcionais que reduzem bastante o trabalho para realizar algumas tarefas.
134+
3) Por fim, vamos falar sobre coleta de dados, que é uma operação bastante útil
135+
para coletar os dados que foram processados em um Stream, depois que executamos
136+
operações como filter() e map().
137+
138+
Estes 3 recursos são super poderosos, permitindo que a gente executa operações mais complexas
139+
com a muito menos código e ainda menos sucetível a bugs.
140+
141+
https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=9
142+
143+
== Aula 10
144+
145+
Bom dia pessoal.
146+
Espero que estejam todos bem.
147+
148+
Essa semana entramos em um novo tópico interessantíssimo
149+
que é a Lazy Evaluation: Avaliação Preguiçosa ou Tardia.
150+
Este é um assunto que não é exclusivo de programação
151+
funcional, mas é muito mais empregado e benéfico
152+
em tal paradigma em linguagens que tem um maior suporte
153+
à programação funcional, como Java e outras.
154+
155+
A aula ainda mostra como a falta deste recurso em JavaScript pode
156+
se criar um problema de desempenho em aplicações web (mas tudo depende e a aula dá mais detalhes).
157+
158+
Segue o link. Bons estudos e bom final de semana.
159+
160+
https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=10
161+
162+
== Aula 11
163+
164+
Boa tarde pessoal.
165+
166+
Na última semana abordamos o assunto de "Avaliação Preguiçosa",
167+
vendo que Java torna o processamento de dados com Streams
168+
bem mais eficiente que em linguagens como JavaScript.
169+
170+
No tópico dessa semana vamos falar sobre operações intermediárias
171+
e terminais, que está diretamente ligado com "Avaliação Preguiçosa".
172+
Entender esses conceitos é fundamental para escrever código
173+
eficiente em qualquer linguagem.
174+
175+
https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=11
176+
177+
== Aula 12
178+
179+
Bom dia pessoal. Espero que estejam todos bem.
180+
Neste vídeo vamos continuar indo a fundo nos recursos de programação funcional com Stream em Java.
181+
Vamos ver os recursos da função flatMap, que permite "achatar" conjuntos de dados como
182+
Listas de Listas (ex.: List<List<String>>), transformando em alguma estrutura como List<String>.
183+
184+
https://moodle.ifto.edu.br/moodle/course/view.php?id=24376&section=12

apresentacao-curso.adoc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Este curso apresenta os principais conceitos de programação funcional
2+
que têm uma utilização direta na prática. Tais conceitos vão te ajudar
3+
a escrever código de melhor qualidade, com menos bugs, mais claros, reutilizáveis
4+
e mais fácil de dar manutenção.
5+
6+
Estes conceitos são apresentados sempre com exemplos práticos,
7+
mostrando não apenas a forma de escrever código seguindo o paradigma funcional,
8+
mas as melhores práticas para você se tornar um melhor desenvolvedor.
9+
10+
São apresentados conceitos como funções puras, imutabilidade,
11+
modelo de programação Map/Reduce, expressões lambda e muito mais.
12+
13+
O curso inicialmente foca na linguagem Java, mas mostra como diversos recursos
14+
de programação funcional são implementados em outras linguagens.
15+
16+
É disponibilizado um projeto base para o aluno poder executar as tarefas
17+
apresentadas nas aulas, além de atividades complementares que ele pode usar
18+
para praticar os conceitos e recursos apresentados ao longo do curso.

aula07.xcf

2.41 MB
Binary file not shown.

aula14.xcf

4.76 MB
Binary file not shown.

aula15.xcf

4.27 MB
Binary file not shown.

0 commit comments

Comments
 (0)