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

Sort exercises in track config #421

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

BNAndras
Copy link
Sponsor Member

I normalized current difficulties to 2 (easy), 4 (medium), or 8 (hard) and then sorted the exercises by difficulty and name. That'll let students find exercises for each difficulty quicker.

@BNAndras BNAndras requested a review from fapdash June 23, 2024 18:18
@BNAndras BNAndras added the x:rep/tiny Tiny amount of reputation label Jun 23, 2024
@fapdash
Copy link
Contributor

fapdash commented Jun 23, 2024

Doesn't it make sense to keep the difficulty values as they are and to sort by them?
The student might not see the difference but earlier exercises in a certain difficulty level should still be easier than the later ones.

@BNAndras
Copy link
Sponsor Member Author

I think using prerequisites responsibly would convey that intent much clearer and take better advantage of how the website presents content. Do this easier string exercise before trying this other string exercise that might be harder. The site doesn’t make any claim that the display order is the recommended order so I don’t think we can do that here.

Sorting by raw difficulty helps if there are clear differences between the levels. The differences between an easy and medium exercise are usually evident judging by the number of student attempts and solutions. The differences between difficulty 2 and 3 might be too small to be useful though. We also don’t know how the difficulty levels were originally assigned which would have been different people at different periods.

@BNAndras
Copy link
Sponsor Member Author

But if you want to keep the difficulties as-is and then sort the exercises, that's fine by me. I just have a strong opinion. :)

@fapdash
Copy link
Contributor

fapdash commented Jun 26, 2024

Didn't find the time to read and think about it yet, will respond the following days! Sorry for the delay.

@BNAndras
Copy link
Sponsor Member Author

No rush.

@keiravillekode
Copy link
Contributor

Perhaps consider upgrading the difficulty of a few exercises:

2 -> 4 - matching-brackets
2 -> 4 - simple-cipher
5 -> 8 - zebra-puzzle

@fapdash
Copy link
Contributor

fapdash commented Jun 27, 2024

@BNAndras Isn't a syllabus necessary to make use of the prerequesites?
In tracks that don't feature a learning mode I usually just go through the exercises by order. Certainly not everyone will do the same, but I think it's an obvious and simple approach. Just "go next".
Imo a good UX will accommodate different types of students / learning approaches.

@keiravillekode lgtm. In my experience the "easy" difficulty tends to include jumps in difficulty on some tracks bc the problem-specifications feature dead simple exercise and then still pretty basic exercises, but they certainly take more effort. Feels off to me sometimes. That's why I at least would like to try to order the exercises by ascending difficulty within the 3 broad difficulty categories.

@fapdash
Copy link
Contributor

fapdash commented Jun 27, 2024

@BNAndras Can you please include the script that you are using to order the exercises in the bin directory and ask contributors to execute that script when contributing a new exercise? :)

@BNAndras
Copy link
Sponsor Member Author

@BNAndras Isn't a syllabus necessary to make use of the prerequesites? In tracks that don't feature a learning mode I usually just go through the exercises by order. Certainly not everyone will do the same, but I think it's an obvious and simple approach. Just "go next". Imo a good UX will accommodate different types of students / learning approaches.

Oh, boy. That's egg on my face. You're 100% correct on the prereqs.

As far as the script goes, it's a jq snippet at https://forum.exercism.org/t/are-go-practice-exercises-ordered/4464/7. So yeah I can toss it in the bin folder. We can make a GHA that checks PRs to see if the exercises are ordered so that'll catch a new exercise being added in the wrong place.

@fapdash
Copy link
Contributor

fapdash commented Jun 27, 2024

Oh, boy. That's egg on my face. You're 100% correct on the prereqs.

All good, I looked it up in the docs because I wasn't sure myself :)

As far as the script goes, it's a jq snippet at https://forum.exercism.org/t/are-go-practice-exercises-ordered/4464/7. So yeah I can toss it in the bin folder. We can make a GHA that checks PRs to see if the exercises are ordered so that'll catch a new exercise being added in the wrong place.

Great idea! :)
It might be even possible to have a GHA that automatically adds a commit if the PR is not ordered, but not sure how much hassle that is to set up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
x:rep/tiny Tiny amount of reputation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants