Implement a classical mechanics function (e.g. calculating the speed of a falling object) as a python function and use this function as an argument in another function:
use at least 2 of the following functions / concepts of functional programming (https://docs.python.org/3/howto/functional.html):
- lambda function (https://docs.python.org/3/howto/functional.html#small-functions-and-the-lambda-expression)
- map (https://docs.python.org/3/library/functions.html#map)
- reduce (https://docs.python.org/3/library/functools.html#functools.reduce)
- filter (https://docs.python.org/3/library/functions.html#filter)
- generator (https://docs.python.org/3/howto/functional.html#generator-expressions-and-list-comprehensions)
- list comprehension (https://docs.python.org/3/howto/functional.html#generator-expressions-and-list-comprehensions)
For this you have to complete the following steps:
- Discuss in this repository using issus which classical mechanics function you want to implement
- Discuss with the other groups using issues which classical mechanics function they implement. Each group should implement a different function.
- Discuss in this repository using issues who will do which task (developing algorithm, documentation, unit test)
- Discuss who should be the main responsible for the repository (the one that can accept merge requests, let me know in discord so I can adjust rights)
- Discuss and generate milestone for your project to optimize the timeline of your project
- Discuss and generate labels for your issues
- Fork this repository
- Generate the necessary files for your task and commit them. Commmit not just the final result but also intermediate steps. (Think of it like saving the file. Everytime you save, commit)
- create merge requests for your work
Also use discord for discussing solutions to any issues popping up.
- pay attention to add references to all code you use from somewhere else
- seperate the algorithm part in its own library (module) file (https://docs.python.org/3/tutorial/modules.html)
- the unit test should use the assert statement (https://docs.python.org/3/library/unittest.html)
- the doumention should include the output of pylint (https://pypi.org/project/pylint/), pycodestyle (https://pycodestyle.pycqa.org/en/latest/intro.html) or for jupyter notebooks (https://github.com/mattijn/pycodestyle_magic)
- lint other groups code and open issues with the result
Homework Points | |||
---|---|---|---|
Interaction on own project | |||
Category | min per person | point factor | max points |
Commits | 6 | 1 | 6 |
Merge requests | 3 | 1 | 3 |
Merge Accepted | 1 | 1 | 1 |
Branches | 2 | 0.5 | 1 |
Issues | 10 | 0.5 | 5 |
Closed Issues | 5 | 0.2 | 1 |
# Conversations | 25 | 0.2 | 5 |
Total | 22 | ||
Shared project points | |||
# Label | 10 | 0.2 | 2 |
# Milestones | 2 | 1 | 2 |
# Tags | 0 | 1 | 0 |
Total | 10 | 4 | |
Interaction on others project(s) | |||
Category | min per person | point factor | max points |
Commits | 3 | 1 | 3 |
Branches | 1 | 0.5 | 0.5 |
Issues | 9 | 0.5 | 4.5 |
# Conversations | 15 | 0.2 | 3 |
Total | 22 | 11 | |
Result | |||
Task completion | 5 | 1 | 5 |
Sum | 42 |