python
python copied to clipboard
Request to Remaster Pascal's Triangle
The TL;DR Version 🥱
I've rewritten Pascal's Triangle as an exercise to practice recursion, but the exercise is currently listed as 'deprecated'. I am of the belief that the conditions under which it became deprecated 8 years ago no longer apply. I am requesting permission to open a PR to re-instate Pascal's Triangle as an exercise.
The Nuanced Version 🎓
As has been brought to my attention, Pascal's Triangle was deprecated with PR #104 in response to Issue #99, the given reason being:
I'd also like to focus the nitpicking community by deprecating some exercises whose core problem appears in other exercises.
My impression from this is that, back in 2014, the pool of contributors to the Python track was limited to such an extent that a decision had to be made about which exercises the maintainers wanted the community to ignore. However, I read this enforced ignorance as a 'for the time being' kind of thing. To my mind, the fact that these exercises were deprecated in the config file (rather than foregone) and still exist in the repository, implies an intention to, at some point in the future, bring them up to date and reinstate them. My belief that deprecation is a temporary state of being for an exercise is reinforced by:
- The reinstatement of the Raindrops exercise in PR #1633 (which, on the whole, was a copying of the Ruby track core into the Python track, but explicitly included the de-deprecation of Raindrops).
- The improvement over the years of the Pascal's Triangle exercise despite its deprecation (see issue #1127, PR #1164, issue #606, PR #705, PR #2792, etc.).
As for the focusing of nitpicking efforts - well, from what I can tell, the Python community is larger today than it was 8 years ago, and while I don't know how active (proportionally speaking) it is now as compared to then, it stands to reason that, on average, a larger community is likely to result in more active contributors overall. If this is so (which seems more likely than not), then I don't think the initial justification still stands.
As for the idea that the 'core problem' of Pascal's Triangle appears in other exercises and it should therefore be deprecated - it's a pretty weak argument. I mean, why does it matter if there are similarities across practice exercises? Isn't that kind of the point of practice exercises - to repeatedly apply the concept(s) (i.e. practice)? Even if the similarities are significant, I still don't think that this renders the exercise pointless. Let's say someone comes across the exercise after having done an exercise with the same 'core problem' - they either will, or won't solve it quickly. If they solve it quickly, then hooray 🎉, they get that sweet, sweet dopamine rush of accomplishment, and they're on to something else in no time. If they struggle to solve it, then apparently they still needed the practice, and it seems like a good thing that the exercise was there. Either way, the existence of the exercise either did no harm, or was outright necessary.
However, if you find my reasoning unconvincing, then the exercise can still be re-instated - the solution is to simply change the exercise to make it sufficiently dissimilar to other exercises. I've noticed the addition of recursion as a concept, and I think Pascal's Triangle is an ideal candidate to practice recursion.
So, with all this in mind, may I please open a PR to re-instate the Pascal's Triangle exercise, with the specific intent that it be used to practice recursion?
🤖 🤖
Hi! 👋🏽 👋 Welcome to the Exercism Python Repo!
Thank you for opening an issue! 🐍 🌈 ✨
- If you are requesting support, we will be along shortly to help. (generally within 72 hours, often more quickly).
- Found a problem with tests, exercises or something else?? 🎉
◦ We'll take a look as soon as we can & identify what work is needed to fix it. (generally within 72 hours).
◦ 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!
- Here because of an obvious (and small set of) spelling, grammar, or punctuation issues with one exercise,
concept, or Python document?? 🌟Please feel free to submit a PR, linking to this issue.
🎉
‼️ Please Do Not ‼️ ❗ Run checks on the whole repo & submit a bunch of PRs. ...These sorts of things are not considered helpful, and will likely be closed by reviewers. |
- For anything complicated or ambiguous, let's discuss things -- we will likely welcome a PR from you.
-
Here to suggest a feature or new exercise?? Hooray! Please keep in mind Chesterton's Fence.
Thoughtful suggestions will likely result faster & more enthusiastic responses from maintainers.
💛 💙 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. 🌈 ✨
Hey @PaulT89 - apologies for the long rumination on this. Things got busy, and I also needed time to really think on it. I am still not totally convinced that this problem is terribly useful on the Python track, but as you've said:
... the exercise can still be re-instated - the solution is to simply change the exercise to make it sufficiently dissimilar to other exercises. I've noticed the addition of recursion as a concept, and I think Pascal's Triangle is an ideal candidate to practice recursion.
So given that, I am willing to have you give reconstituting it a go. Having an additional practice problem can't hurt. But let's give it a really good once-over, and see if we can make it sufficiently different from other exercises -- maybe more focused on specific techniques like recursion or text processing, etc? Let me know what you think.
It will probably require some adjustments like adding an instruction addendum
, hints
, and massaging the test generation template/adding an additional_tests.json
.
I'll get on that in a day or two - IRL craziness going on for me right now. I've already done most of the work, but it was a while ago and I'll need to recheck everything (for my own peace of mind, if nothing else).