Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request to Remaster Pascal's Triangle #3078

Closed
PaulT89 opened this issue Jun 7, 2022 · 3 comments
Closed

Request to Remaster Pascal's Triangle #3078

PaulT89 opened this issue Jun 7, 2022 · 3 comments
Assignees

Comments

@PaulT89
Copy link
Contributor

PaulT89 commented Jun 7, 2022

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:

  1. 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).
  2. 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?

@github-actions

This comment was marked as resolved.

@PaulT89 PaulT89 changed the title Remastering Pascal's Triangle Request to Remaster Pascal's Triangle Jun 12, 2022
@BethanyG
Copy link
Member

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.

@PaulT89
Copy link
Contributor Author

PaulT89 commented Jul 22, 2022

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants