exercism / python

Exercism exercises in Python.
https://exercism.org/tracks/python
MIT License
1.88k stars 1.26k forks source link

[List Ops]: Review/Improve Exercise #3156

Closed BethanyG closed 9 months ago

BethanyG commented 2 years ago

This is a tracking issue for reviewing and improving the List Ops practice exercise for Python.

Please see issues #3142, #3141 (with the related #2078 in problem-specifications), and #3154 for details and discussion on some explanations/clarity that's needed.

In particular, there are the following issues:

  1. concat instructions seem unclear, and could be mis-interpreted to mean "fully unpack". (#3142)
  2. foldr is not fully explained, and can lead to confusion (#3084)
  3. Unclear if append requires a new list or the mutation of either list A or list B (#3141)
  4. Unclear what is "allowed" and "disallowed" when re-implementing list operations. Are all common sequence operations off the table? Are built-ins? What sort of variations should the student explore? (#3154)

As discussed in #2078, there are several avenues we could take in clarifying/filling out this exercise:

  1. An instruction append, along the lines of this exercise -- not that we have to be that imperative, but we can add a few instructions/variations. As noted in the discussion in #3154, we probably don't want to do anything that might "give away" a specific solution, but we could always suggest/encourage thinking about certain modules, approaches, or functions in a hinty sort of way.
  2. A hints.md file, similar to the one for this exercise. I especially like the opening paragraph that reminds the student that there are multiple paths/strategies. We might outline useful groups of functions or modules at different "levels" of difficulty. Again, these would probably be in the form of questions like "how might x help you to not use the + operator here??" or "could y help you out with this?"
  3. A set of mentor notes (see the website-copy repo for examples for Python). In the mentor notes, we could encourage mentors to nudge students to challenge themselves with one or more variations on the exercise.
  4. Some additional Python-specific tests that nudge a student in a particular direction. We'd want to be careful to not fish for a specific implementation, so this approach might be limited.
github-actions[bot] commented 2 years ago

🤖   🤖

Hi! 👋🏽 👋 Welcome to the Exercism Python Repo!

Thank you for opening an issue! 🐍  🌈 ✨


​          ◦ If you'd also like to make a PR to fix the issue, please have a quick look at the Pull Requests doc.
             We  💙  PRs that follow our Exercism & Track contributing guidelines!


💛  💙  While you are here... If you decide to help out with other open issues, you have our gratitude 🙌 🙌🏽.
Anything tagged with [help wanted] and without [Claimed] is up for grabs.
Comment on the issue and we will reserve it for you. 🌈 ✨

BethanyG commented 1 year ago

More recent discussion and debate from the forum, WRT ordering in foldl and foldr:

https://forum.exercism.org/t/misleading-foldr-tests-in-python-track-list-ops/6215/9 https://forum.exercism.org/t/bug-in-python-list-ops-test/4835/35 https://forum.exercism.org/t/suggestion-refocus-list-ops-on-iterators-instead-of-lists/5089/9

As well as related PRs: https://github.com/exercism/python/pull/3405 https://github.com/exercism/python/pull/3403 https://github.com/exercism/python/pull/3402