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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Exercise reordering #776

Closed
wants to merge 1 commit into from

Conversation

coriolinus
Copy link
Member

Working with exercism core team on this. Feel free to comment and improve. All other track maintenance temporarily suspended while this is in progress. Estimated date of completion: 1 Feb 2019.

- uncore pythagorean-triplet: it's pure math, which is not what exercism is about
- move core exercises to top of config.json
@petertseng
Copy link
Member

petertseng commented Dec 17, 2018

I had to think for a bit about how one would visualise the diff produced by this, and I think I came up with a way to do that. Define the flat representation of a config.json as follows: Write all core exercises in order, then write all side exercises alphabetically and the core exercise that unlocks it. To visualise the diff produced by this PR, diff the flat representation of the original vs new config.json.

As of commit fb0a46e :

$ diff -u <(ruby ../problem-specifications/tree.rb --flat <(git show master:config.json)) <(ruby ../problem-specifications/tree.rb --flat config.json)
--- /proc/self/fd/11	2018-12-17 03:53:02.372319646 +0000
+++ /proc/self/fd/12	2018-12-17 03:53:02.372319646 +0000
@@ -3,19 +3,18 @@
 [deprecated] hexadecimal
 [core]
 hello-world
-pythagorean-triplet
+bracket-push
+atbash-cipher
 saddle-points
+anagram
+space-age
+sublist
 clock
 luhn
-atbash-cipher
-bracket-push
-sublist
-space-age
-macros
-poker
-anagram
 minesweeper
 parallel-letter-frequency
+macros
+poker
 forth
 
 [side]
@@ -31,13 +30,13 @@
 book-store unlocked by poker
 bowling unlocked by clock
 circular-buffer unlocked by minesweeper
-collatz-conjecture unlocked by pythagorean-triplet
+collatz-conjecture unlocked by luhn
 crypto-square unlocked by atbash-cipher
 custom-set unlocked by sublist
 decimal unlocked by poker
 diamond unlocked by luhn
 difference-of-squares unlocked by hello-world
-diffie-hellman unlocked by pythagorean-triplet
+diffie-hellman unlocked by luhn
 dominoes unlocked by poker
 dot-dsl unlocked by clock
 etl unlocked by clock
@@ -65,6 +64,7 @@
 prime-factors unlocked by hello-world
 protein-translation unlocked by anagram
 proverb unlocked by hello-world
+pythagorean-triplet unlocked by luhn
 queen-attack unlocked by clock
 rail-fence-cipher unlocked by atbash-cipher
 raindrops unlocked by hello-world
@@ -80,7 +80,7 @@
 say unlocked by saddle-points
 scale-generator unlocked by poker
 scrabble-score unlocked by saddle-points
-series unlocked by pythagorean-triplet
+series unlocked by luhn
 sieve unlocked by clock
 simple-cipher unlocked by atbash-cipher
 simple-linked-list unlocked by clock

@petertseng
Copy link
Member

Oh, I actually wonder whether we're really disrupting people with pythagorean triplet so early, ever since it got the new tests in #713 - the performance is now a big factor, remember how I had to do #732 to make it more reasonable. While it's a fine chance to discuss asymptotic performance, having it that early is not the best for the goal of gaining fluency.

Consider this the evidence I provide in favour of the recommendation: Attempt to break off a small part of this effort that involves moving pythagorean-triplet to a more suitable place, and have it merged sooner than later.

@coriolinus
Copy link
Member Author

coriolinus commented Dec 17, 2018 via email

@petertseng
Copy link
Member

petertseng commented Dec 18, 2018

I originally wrote it for #560 (comment) but it became so often used that I decided I needed to preserve it at https://github.com/petertseng/exercism-problem-specifications/blob/list-tracks/tree.rb

Of course, back then it only supported the non-flat way of showing the track

@emcoding
Copy link

I like the visualisation very much! I'd like to give it to other maintainers who are working through the same process. Is that okay?

@petertseng
Copy link
Member

Well, I don't see why not. The usual deals about "no warranties, express or implied" apply, as one would expect. If people don't want to receive code, perhaps at least they at willing to receive the idea. The idea is of course independent of the code.

@emcoding
Copy link

@maintainers/rust
Is it possible/doable to get this reordering merged?

@coriolinus
Copy link
Member Author

coriolinus commented Jan 22, 2019 via email

@coriolinus
Copy link
Member Author

Superseded by #804.

@coriolinus coriolinus closed this Mar 5, 2019
@coriolinus coriolinus deleted the exercise-reordering branch July 29, 2019 17:16
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

Successfully merging this pull request may close these issues.

3 participants