Skip to content

Python Functional Programming Course

enki-hq edited this page Mar 6, 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
use-iteration-protocol.1: 10

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
data-structures-uses.0: 10
data-structures-uses.1: 10
native-types-operations.3: 10
use-iteration-protocol.1: 10
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
data-structures-uses.0: 10
data-structures-uses.1: 10
native-types-operations.3: 10
use-iteration-protocol.1: 10

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 is-python-a-functional-language 🔮 obscura
4 functional-particularities-of-python 👶 introduction
🔮 obscura
5 lambda-functions 👶 introduction

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 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 more-benefits-of-immutability 💪 workout
🔮 obscura
5 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 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. list-comprehension
  12. nested-lists-comprehension
  13. set-comprehension
  14. dictionary-comprehension
  15. what-is-a-closure
  16. what-are-decorators
  17. decorators-syntax
  18. decorators-methods
  19. what-is-functional-programming
  20. why-functional-programming
  21. functional-particularities-of-python
  22. lambda-functions
  23. what-are-generators
  24. yield-and-next
  25. generator-of-generators
  26. what-is-immutability
  27. distinguish-the-mutability-of-common-types
  28. why-types-have-immutability
  29. what-is-an-iterable
  30. what-are-iterators
  31. 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. list-comprehension
  12. nested-lists-comprehension
  13. dictionary-comprehension
  14. speed-up-your-for-loop-using-map-or-list-comprehensions
  15. what-is-a-closure
  16. what-are-decorators
  17. decorators-syntax
  18. decorators-methods
  19. functools-wraps
  20. recursive-generator
  21. generator-of-generators
  22. more-benefits-of-immutability
  23. immutability-gotchas
  24. the-iteration-protocol
  25. the-itertools-module
  26. 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. list-comprehension
  12. nested-lists-comprehension
  13. dictionary-comprehension
  14. 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. is-python-a-functional-language
  3. functional-particularities-of-python
  4. benefits-of-using-generators
  5. what-is-immutability
  6. distinguish-the-mutability-of-common-types
  7. why-types-have-immutability
  8. more-benefits-of-immutability

⚠️ 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