Preparar aulas a partir da seção "Conteúdo Programático"
-
Introdução e benefícios da programação funcional.
-
Fundamentos da programação funcional em linguagens dinâmica e estaticamente tipadas.
-
Imutabilidade e corretude de software.
-
Funções puras. Funções como elementos de primeira classe.
-
Referências de funções/métodos.
-
Funções de callback.
-
Composição de funções.
-
Diferenças entre programação funcional e orientada a objetos.
-
Diferenças de uso de programação funcional em linguagens dinâmica e estaticamente tipadas.
-
Expressões lambda (lambda expressions / arrow functions) e funções anônimas.
-
Modelo de programação Map/Reduce: operações de filtro, mapeamento e redução em conjuntos de dados.
-
Processamento paralelo de dados.
-
Aridade de funções e o impacto em programação funcional.
O próprio professor titular é o tutor da disciplina. É utilizada plataforma Moodle, onde os alunos são automaticamente cadastrados na disciplina. Utiliza-se ainda grupo no Telegram (link no Moodle) para ter contato direto com a turma.
O atendimento ao aluno ocorre por meio do Telegram ou, quando solicitado, por chamadas de vídeo no Google Meet ou atendimento presencial no campus.
-
Compreender os benefícios da programação funcional e sua importância atual no desenvolvimento de software.
-
Compreender a estrutura de um código utilizando programação funcional.
-
Compreender como diferentes paradigmas de programação podem coexistir em uma mesma base de código.
-
Entender os benefícios da programação funcional para o reuso de funções e concisão de código.
-
Entender o conceito de funções com responsabilidade única na programação funcional e os benefícios para o teste de software.
-
Entender as diferenças entre a criação de expressões lambda vs passagem de referência para funções/métodos.
-
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.
-
Utilizar recursos de programação funcional de linguagens dinâmica e estática/fortemente tipadas.
-
Aplicar processamento de dados por meio de operações de mapeamentoe redução.
-
Realizar busca e filtragem de dados com programação funcional.
-
Aplicar conceitos de imutabilidade em processamento de dados com programação funcional.
-
Realizar agrupamento de dados e cálculo de estatísticas com programação funcional.
-
Criar expressões lambda (lambda expressions / arrow functions) e passá-las por parâmetro para outras funções.
-
Declarar funções em variáveis / constantes.
-
Passar funções como parâmetro para outras funções.
-
Reutilizar funções com programação funcional.
Apresentar os conceitos fundamentais de programação funcional e obter prática na escrita de código seguindo tal paradigma.
-
Compreender os fundamentos de programação funcional
-
Entender a importância de tal paradigma
-
Conhecer os recursos de diferentes linguagens funcionais
-
Escrever código seguindo tal paradigma usando linguagens estáticas e dinâmicas
-
Apresentação da Disciplina
-
Introdução à Programação Funcional
-
Imutabilidade: um dos aspectos mais importantes da Programação Funcional
-
Funções: o coração da Programação Funcional
-
Iniciando a prática com Lambdas e Streams em Java
-
Java Streams, boas práticas e Interfaces Funcionais
-
Interfaces funcionais: Predicate, Comparator | Coletando dados
-
Dominando o tipo Optional e o que é Null Safety
-
Redução de Dados, Redescobrindo o Map e Coleta de dados para um Map
-
Lazy Evaluation: avaliação preguiçosa ou tardia
-
Operações Intermediárias e Terminais com Streams
-
Processando elementos contendo um conjunto de dados com Stream.flatMap
-
Projeto Polígonos
-
Loops com Streams numéricas em Java
-
Código funcional em todo lugar
-
Erros comuns ao iniciar em programação funcional em Java
-
Interfaces Funcionais personalizadas
-
JDK 8 Massive Open and Online Course: Lambdas and Streams Introduction (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
-
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
-
JavaScript. Mozilla Developer Network (MDN). 2022. Disponível em https://developer.mozilla.org/pt-BR/docs/Web/JavaScript
-
Introduction to Functional Programming: JavaScript Paradigms (somente inglês). TopTal Inc. Disponível em https://www.toptal.com/javascript/functional-programming-javascript
-
✅ SILVA, Maurício Samy. JavaScript: guia do programador. São Paulo: Novatec, 2010. 604p., il. (n. 1). ISBN 978-85-7522-248-5.
-
✅ 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.
-
✅ MORRISON, Michael. Use a cabeça: Java script. Rio de Janeiro: Alta Books, 2008. 606 p. (n. 1).