Skip to content

Python Functional Programming Course

enki-hq edited this page Jun 1, 2020 · 12 revisions

Functional Programming Course Overview

Table of Contents

Content

Below you can find the ordered content of the topic, in a linear progression

The linear progression of content aims to cover all content, course by course, workout by workout as follows:

  • first course is the only core one, denoted by its manifest
  • the next course is denoted by the first item of the next array in each course manifest
  • each course has its order of workouts designated by the sections field in the same aforementioned manifest

Insights:

no name content aspects standards PQ RQ Quiz done
1 the-slice-built-in-function 👶 introduction
💪 workout
🦑 deep
use-iteration-protocol.1: 10
2 the-reversed-built-in-function 👶 introduction
💪 workout
🦑 deep
use-iteration-protocol.1: 10
3 the-zip-built-in-function 👶 introduction
💪 workout
🦑 deep
use-iteration-protocol.1: 10
4 the-sum-built-in-function 👶 introduction
💪 workout
🦑 deep
use-iteration-protocol.1: 10
5 the-all-built-in-function 👶 introduction
💪 workout
🦑 deep

Exercises:

no name type aspects standards done
1 py-practice-functional-features codewars 👶 introduction
💪 workout
🦑 deep
functional-programming-features.0: 3000
use-iteration-protocol.1: 10

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 the-map-built-in-function 👶 introduction
💪 workout
🦑 deep
data-structures-uses.0: 10
data-structures-uses.1: 10
native-types-operations.3: 10
use-iteration-protocol.1: 10
2 the-filter-built-in-function 👶 introduction
💪 workout
🦑 deep
3 the-reduce-built-in-function 👶 introduction
💪 workout
🦑 deep
data-structures-uses.0: 10
data-structures-uses.1: 10
native-types-operations.3: 10
use-iteration-protocol.1: 10
4 the-max-built-in-function 👶 introduction
💪 workout
🦑 deep
data-structures-uses.0: 10
data-structures-uses.1: 10
native-types-operations.3: 10
use-iteration-protocol.1: 10
5 the-sorted-built-in-function 👶 introduction
💪 workout
🦑 deep
6 the-sorted-built-in-function-ii 👶 introduction
💪 workout
🦑 deep

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 list-comprehension 👶 introduction
💪 workout
🦑 deep
use-iteration-protocol.1: 10
native-types-operations.4: 10
use-comprehensions.0: 1000
use-comprehensions.2: 3000
2 nested-lists-comprehension 👶 introduction
💪 workout
🦑 deep
use-iteration-protocol.1: 10
native-types-operations.4: 10
3 set-comprehension 👶 introduction use-comprehensions.0: 1000
use-comprehensions.4: 3000
use-comprehensions.5: 3000
4 dictionary-comprehension 👶 introduction
💪 workout
🦑 deep
use-comprehensions.0: 1000
use-comprehensions.3: 3000
5 speed-up-your-for-loop-using-map-or-list-comprehensions 💪 workout use-iteration-protocol.1: 10
use-comprehensions.0: 10
use-comprehensions.4: 10
use-comprehensions.5: 10

Exercises:

no name type aspects standards done
1 py-practice-list-comprehension codewars 👶 introduction
💪 workout
🦑 deep
use-comprehensions.0: 1000
use-comprehensions.2: 3000
2 py-practice-list-comprehension2 codewars 👶 introduction
💪 workout
🦑 deep
use-comprehensions.0: 1000
use-comprehensions.1: 1000
use-comprehensions.2: 3000
3 py-practice-dictionary-comprehension codewars 👶 introduction
💪 workout
🦑 deep
use-comprehensions.0: 1000
use-comprehensions.3: 3000
4 py-practice-set-comprehension codewars 👶 introduction
💪 workout
🦑 deep
use-comprehensions.0: 1000
use-comprehensions.4: 3000
use-comprehensions.5: 3000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-a-closure 👶 introduction
💪 workout
2 what-are-decorators 👶 introduction
💪 workout
3 decorators-syntax 👶 introduction
💪 workout
4 decorators-methods 👶 introduction
💪 workout
5 functools-wraps 💪 workout
🦑 deep

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-functional-programming 👶 introduction
2 why-functional-programming 👶 introduction
🔮 obscura
3 why-functional-programming-ii 👶 introduction
🔮 obscura
4 why-functional-programming-iii 👶 introduction
🔮 obscura
5 why-functional-programming-iv 👶 introduction
🔮 obscura

Exercises:

no name type aspects standards done
1 py-practice-functional-features2 codewars 👶 introduction
💪 workout
🦑 deep
functional-programming-features.1: 3000
2 py-practice-functional-imperative codewars 👶 introduction
💪 workout
contrast-functional-imperative.0: 1000
contrast-functional-imperative.1: 1000
3 py-practice-pure-functions codewars 💪 workout
🦑 deep
pure-functions.1: 1000
pure-functions.2: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 is-python-functional-language 🔮 obscura
2 functions-vs-procedures 🔮 obscura
3 functional-particularities-of-python 👶 introduction
🔮 obscura
4 lambda-functions 👶 introduction

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-are-generators 👶 introduction
2 yield-and-next 👶 introduction
3 recursive-generator 💪 workout
4 generator-of-generators 👶 introduction
💪 workout
5 benefits-of-using-generators 🔮 obscura

Exercises:

no name type aspects standards done
1 py-practice-generators codewars 👶 introduction
💪 workout
🦑 deep
functional-programming-features.4: 5000
2 py-practice-pure-functions2 codewars 👶 introduction
💪 workout
pure-functions.1: 1000
pure-functions.2: 1000
functional-programming-features.4: 1000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-immutability 👶 introduction
🔮 obscura
2 distinguish-the-mutability-of-common-types 👶 introduction
🔮 obscura
3 why-types-have-immutability 👶 introduction
🔮 obscura
4 why-types-have-immutability-ii 👶 introduction
🔮 obscura
5 avoiding-identity-mutation 💪 workout
🔮 obscura
6 atomicity-of-failure 💪 workout
🔮 obscura
7 immutability-gotchas 💪 workout

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-an-iterable 👶 introduction
2 what-are-iterators 👶 introduction
3 the-iteration-protocol 👶 introduction
💪 workout
4 the-itertools-module 💪 workout
5 the-itertools-module-ii 💪 workout
6 iterators-applications 💪 workout

Exercises:

no name type aspects standards done
1 py-practice-functional-libraries codewars 👶 introduction
💪 workout
pure-functions.1: 1000
pure-functions.2: 1000
2 py-practice-next-iter codewars 💪 workout
🦑 deep
use-iteration-protocol.0: 1000
use-iteration-protocol.1: 2000
use-iteration-protocol.2: 2000
use-iteration-protocol.4: 3000

Game:

⚠️ There is no game in this workout.

Standards

✅ - At least one insight covers this

❌ - Nothing covers this

🛠️ - This standard has no objectives yet

❌ Contrast Functional Programming with Imperative Programming

  1. ❌ Distinguish between imperative and functional code
  2. ❌ Evaluate the suitability of a functional style of programming for a given task
  3. ❌ Refactor iterative code into functional code

❌ Write pure functions in Python

  1. ❌ Analyze a function to determine whether side effects will occur
  2. ❌ Distinguish between pure and impure functions
  3. ❌ Write pure functions in Python

❌ Identify and use Python’s functional programming features

  1. ❌ Use python's library of built-in functions to transform data using the iterator protocol
  2. ❌ Use list and dictionary comprehensions to transform data in a functional style
  3. ❌ Use decorators to modularize code
  4. ❌ Use decorators to handle errors in a data pipeline
  5. ❌ Use generators to generate iterators

❌ Use comprehensions to transform data

  1. ✅ Read python comprehensions and predict the result
  2. ❌ Read complex or nested comprehension statements and predict the result
  3. ❌ Use list comprehensions to iterate over and transform a list of data
  4. ✅ Use dictionary comprehensions to iterate over and transform a dictionary of data
  5. ✅ Use set comprehensions to iterate over and transform a set of data
  6. ✅ Use nested comprehensions to transform multidimensional data

❌ Use libraries to provide extended support for functional programming

  1. ❌ Recognize functional programming features not native to python
  2. ❌ Use a library to provide support for immutable data structures
  3. ❌ Use a library to provide support for Functors, such as Applicative Functors and Monads

Aspects

Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.

These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.

For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration

👶 Introduction

If you are being introduced to the topic for the first time

Insights:

  1. the-slice-built-in-function
  2. the-reversed-built-in-function
  3. the-zip-built-in-function
  4. the-sum-built-in-function
  5. the-all-built-in-function
  6. the-map-built-in-function
  7. the-filter-built-in-function
  8. the-reduce-built-in-function
  9. the-max-built-in-function
  10. the-sorted-built-in-function
  11. the-sorted-built-in-function-ii
  12. list-comprehension
  13. nested-lists-comprehension
  14. set-comprehension
  15. dictionary-comprehension
  16. what-is-a-closure
  17. what-are-decorators
  18. decorators-syntax
  19. decorators-methods
  20. what-is-functional-programming
  21. why-functional-programming
  22. why-functional-programming-ii
  23. why-functional-programming-iii
  24. why-functional-programming-iv
  25. functional-particularities-of-python
  26. lambda-functions
  27. what-are-generators
  28. yield-and-next
  29. generator-of-generators
  30. what-is-immutability
  31. distinguish-the-mutability-of-common-types
  32. why-types-have-immutability
  33. why-types-have-immutability-ii
  34. what-is-an-iterable
  35. what-are-iterators
  36. the-iteration-protocol

Exercises:

  1. py-practice-functional-features
  2. py-practice-list-comprehension
  3. py-practice-list-comprehension2
  4. py-practice-dictionary-comprehension
  5. py-practice-set-comprehension
  6. py-practice-functional-features2
  7. py-practice-functional-imperative
  8. py-practice-generators
  9. py-practice-pure-functions2
  10. py-practice-functional-libraries

⚠️ There are no games tagged with this aspect in functional-programming.

💪 Workout

Theory put into practice/that’s how you achieve X points

Insights:

  1. the-slice-built-in-function
  2. the-reversed-built-in-function
  3. the-zip-built-in-function
  4. the-sum-built-in-function
  5. the-all-built-in-function
  6. the-map-built-in-function
  7. the-filter-built-in-function
  8. the-reduce-built-in-function
  9. the-max-built-in-function
  10. the-sorted-built-in-function
  11. the-sorted-built-in-function-ii
  12. list-comprehension
  13. nested-lists-comprehension
  14. dictionary-comprehension
  15. speed-up-your-for-loop-using-map-or-list-comprehensions
  16. what-is-a-closure
  17. what-are-decorators
  18. decorators-syntax
  19. decorators-methods
  20. functools-wraps
  21. recursive-generator
  22. generator-of-generators
  23. avoiding-identity-mutation
  24. atomicity-of-failure
  25. immutability-gotchas
  26. the-iteration-protocol
  27. the-itertools-module
  28. the-itertools-module-ii
  29. iterators-applications

Exercises:

  1. py-practice-functional-features
  2. py-practice-list-comprehension
  3. py-practice-list-comprehension2
  4. py-practice-dictionary-comprehension
  5. py-practice-set-comprehension
  6. py-practice-functional-features2
  7. py-practice-functional-imperative
  8. py-practice-pure-functions
  9. py-practice-generators
  10. py-practice-pure-functions2
  11. py-practice-functional-libraries
  12. py-practice-next-iter

⚠️ There are no games tagged with this aspect in functional-programming.

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

Insights:

  1. the-slice-built-in-function
  2. the-reversed-built-in-function
  3. the-zip-built-in-function
  4. the-sum-built-in-function
  5. the-all-built-in-function
  6. the-map-built-in-function
  7. the-filter-built-in-function
  8. the-reduce-built-in-function
  9. the-max-built-in-function
  10. the-sorted-built-in-function
  11. the-sorted-built-in-function-ii
  12. list-comprehension
  13. nested-lists-comprehension
  14. dictionary-comprehension
  15. functools-wraps

Exercises:

  1. py-practice-functional-features
  2. py-practice-list-comprehension
  3. py-practice-list-comprehension2
  4. py-practice-dictionary-comprehension
  5. py-practice-set-comprehension
  6. py-practice-functional-features2
  7. py-practice-pure-functions
  8. py-practice-generators
  9. py-practice-next-iter

⚠️ There are no games tagged with this aspect in functional-programming.

✨ New

Recently added/gained traction feature

⚠️ There are no insights tagged with this aspect in functional-programming. :warning: There are no exercises tagged with this aspect in functional-programming. :warning: There are no games tagged with this aspect in functional-programming.

🔮 Obscura

Stories, obscure details that don’t specifically relate to a learning objective

Insights:

  1. why-functional-programming
  2. why-functional-programming-ii
  3. why-functional-programming-iii
  4. why-functional-programming-iv
  5. is-python-functional-language
  6. functions-vs-procedures
  7. functional-particularities-of-python
  8. benefits-of-using-generators
  9. what-is-immutability
  10. distinguish-the-mutability-of-common-types
  11. why-types-have-immutability
  12. why-types-have-immutability-ii
  13. avoiding-identity-mutation
  14. atomicity-of-failure

⚠️ There are no exercises tagged with this aspect in functional-programming. :warning: There are no games tagged with this aspect in functional-programming.

✅ All content has been tagged with aspects.

Clone this wiki locally