Skip to content

Improve rating of difficulty #512

Open
@siebenschlaefer

Description

@siebenschlaefer

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions