Skip to content

Python Functional Programming Course

enki-hq edited this page Jul 25, 2018 · 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 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 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
2 what-are-decorators
3 decorators-syntax
4 decorators-methods
5 functools-wraps

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
2 why-functional-programming
3 is-python-a-functional-language
4 functional-particularities-of-python
5 lambda-functions

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
2 yield-and-next
3 recursive-generator
4 generator-of-generators
5 benefits-of-using-generators

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
2 distinguish-the-mutability-of-common-types
3 why-types-have-immutability
4 more-benefits-of-immutability
5 immutability-gotchas

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
2 what-are-iterators
3 the-iteration-protocol
4 the-itertools-module
5 iterators-applications

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. dictionary-comprehension

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

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

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

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

Content without aspects

  1. set-comprehension
  2. speed-up-your-for-loop-using-map-or-list-comprehensions
  3. what-is-a-closure
  4. what-are-decorators
  5. decorators-syntax
  6. decorators-methods
  7. functools-wraps
  8. what-is-functional-programming
  9. why-functional-programming
  10. is-python-a-functional-language
  11. functional-particularities-of-python
  12. lambda-functions
  13. what-are-generators
  14. yield-and-next
  15. recursive-generator
  16. generator-of-generators
  17. benefits-of-using-generators
  18. what-is-immutability
  19. distinguish-the-mutability-of-common-types
  20. why-types-have-immutability
  21. more-benefits-of-immutability
  22. immutability-gotchas
  23. what-is-an-iterable
  24. what-are-iterators
  25. the-iteration-protocol
  26. the-itertools-module
  27. iterators-applications

Clone this wiki locally