Skip to content

Python Functional Programming Course

enki-hq edited this page Jul 3, 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
2 the-reversed-built-in-function
3 the-zip-built-in-function
4 the-sum-built-in-function
5 the-all-built-in-function

Exercises:

no name type aspects standards done
1 py-practice-functional-features codewars functional-programming-features.0: 3000

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 the-map-built-in-function
2 the-filter-built-in-function
3 the-reduce-built-in-function
4 the-max-built-in-function
5 the-sorted-built-in-function

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
2 nested-lists-comprehension
3 set-comprehension
4 dictionary-comprehension
5 speed-up-your-for-loop-using-map-or-list-comprehensions

Exercises:

no name type aspects standards done
1 py-practice-list-comprehension codewars 👶 introduction
💪 workout
use-comprehensions.0: 1000
use-comprehensions.2: 3000
2 py-practice-list-comprehension2 codewars 👶 introduction
💪 workout
use-comprehensions.0: 1000
use-comprehensions.1: 1000
use-comprehensions.2: 3000
3 py-practice-dictionary-comprehension codewars 👶 introduction
💪 workout
use-comprehensions.0: 1000
use-comprehensions.3: 3000
4 py-practice-set-comprehension codewars 👶 introduction 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

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

  1. py-practice-list-comprehension
  2. py-practice-list-comprehension2
  3. py-practice-dictionary-comprehension
  4. py-practice-set-comprehension
  5. py-practice-functional-features2
  6. py-practice-functional-imperative
  7. py-practice-generators
  8. py-practice-pure-functions2
  9. 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

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

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

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

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

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

  1. py-practice-functional-features2
  2. py-practice-pure-functions
  3. py-practice-generators
  4. 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. 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. py-practice-functional-features
  7. the-map-built-in-function
  8. the-filter-built-in-function
  9. the-reduce-built-in-function
  10. the-max-built-in-function
  11. the-sorted-built-in-function
  12. list-comprehension
  13. nested-lists-comprehension
  14. set-comprehension
  15. dictionary-comprehension
  16. speed-up-your-for-loop-using-map-or-list-comprehensions
  17. what-is-a-closure
  18. what-are-decorators
  19. decorators-syntax
  20. decorators-methods
  21. functools-wraps
  22. what-is-functional-programming
  23. why-functional-programming
  24. is-python-a-functional-language
  25. functional-particularities-of-python
  26. lambda-functions
  27. what-are-generators
  28. yield-and-next
  29. recursive-generator
  30. generator-of-generators
  31. benefits-of-using-generators
  32. what-is-immutability
  33. distinguish-the-mutability-of-common-types
  34. why-types-have-immutability
  35. more-benefits-of-immutability
  36. immutability-gotchas
  37. what-is-an-iterable
  38. what-are-iterators
  39. the-iteration-protocol
  40. the-itertools-module
  41. iterators-applications

Clone this wiki locally