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

Improve rating of difficulty #512

Open
siebenschlaefer opened this issue Feb 28, 2022 · 1 comment
Open

Improve rating of difficulty #512

siebenschlaefer opened this issue Feb 28, 2022 · 1 comment

Comments

@siebenschlaefer
Copy link
Contributor

config.json assigns a "difficulty" to each exercise.
Here they are:

1
    hello-world
    leap
    luhn
    space-age
    two-fer
2
    collatz-conjecture
    gigasecond
    grains
    pangram
    raindrops
    reverse-string
    secret-handshake
3
    acronym
    allergies
    armstrong-numbers
    atbash-cipher
    binary
    difference-of-squares
    etl
    grade-school
    hamming
    hexadecimal
    isogram
    matching-brackets
    nucleotide-count
    pascals-triangle
    protein-translation
    rna-transcription
    scrabble-score
    sum-of-multiples
    triangle
    trinary
4
    all-your-base
    binary-search
    robot-simulator
5
    anagram
    bob
    clock
    meetup
    nth-prime
    phone-number
    prime-factors
    queen-attack
    robot-name
    series
    sieve
    word-count
6
    circular-buffer
    complex-numbers
7
    beer-song
    crypto-square
    food-chain
    roman-numerals
10
    binary-search-tree
    say

IMHO some of those ratings are wildly off, e.g.:

  • luhn is definitely more difficult than hello-world, leap, or two-fer
  • I've mentored space-age several hundred times. Many students struggle with that exercise because they member functions have to be const-qualified and they have to choose a type that can represent the age in seconds for all tests.
  • pangram and isogram are very similar, IMHO they are equally difficult.
    (The only thing that makes isogram a little bit tricky is that the description doesn't restrict the characters to ASCII so one has to be careful not to call std::isalpha() or std::tolower() with a char.)
  • Are beer-song and food-chain really that complicated? (Frankly, I never understood the appeal of those exercises.)

I'm sure you can easily spot some more discrepancies.

And a more general question: Are the difficulties rated in comparison to each other or do those ratings have some meaning (e.g. 1=for beginners who just wrote their first hello-world, 4=for those who feel comfortable writing classes and functions, 7=complex tasks with multiple requirements)?

@arcuru
Copy link
Contributor

arcuru commented Apr 21, 2022

The difficulties were set by me, a long time ago, to make sure we were up to date with a new config.json specification: 9ba2926

The reason for the ratings is purely because I made some guesses 5 years ago, and there have not really been discussions about it since AFAIK. I tried to keep the difficulties in relation to each other, but I don't think I had even written solutions to them myself.

Now that the website is showing different levels of difficulty, it may be a good idea to just bucket them into the same easy medium hard that the website does? I don't know if there's any benefit to giving other ratings. - https://github.com/exercism/docs/blob/main/building/tracks/config-json.md#practice-exercises

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