{"action":"created","issue":{"url":"https://api.github.com/repos/exercism/discussions/issues/60","repository_url":"https://api.github.com/repos/exercism/discussions","labels_url":"https://api.github.com/repos/exercism/discussions/issues/60/labels{/name}","comments_url":"https://api.github.com/repos/exercism/discussions/issues/60/comments","events_url":"https://api.github.com/repos/exercism/discussions/issues/60/events","html_url":"https://github.com/exercism/discussions/issues/60","id":168719504,"number":60,"title":"Problem ordering, topics covered, and understanding of concepts required","user":{"login":"kytrinyx","id":276834,"avatar_url":"https://avatars.githubusercontent.com/u/276834?v=3","gravatar_id":"","url":"https://api.github.com/users/kytrinyx","html_url":"https://github.com/kytrinyx","followers_url":"https://api.github.com/users/kytrinyx/followers","following_url":"https://api.github.com/users/kytrinyx/following{/other_user}","gists_url":"https://api.github.com/users/kytrinyx/gists{/gist_id}","starred_url":"https://api.github.com/users/kytrinyx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kytrinyx/subscriptions","organizations_url":"https://api.github.com/users/kytrinyx/orgs","repos_url":"https://api.github.com/users/kytrinyx/repos","events_url":"https://api.github.com/users/kytrinyx/events{/privacy}","received_events_url":"https://api.github.com/users/kytrinyx/received_events","type":"User","site_admin":true},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":18,"created_at":"2016-08-01T19:12:46Z","updated_at":"2016-08-12T05:50:14Z","closed_at":null,"body":"For the past three years, the ordering of exercises has been done based on gut feelings and wild guesses.\r\n\r\nOver time this has proven to work OK-ish, but it's not great. There are easy exercises that get placed too far back, exercises that are too similar to one another, and exercises that are too difficult that end up early in the track, and we mostly don't notice until someone says out loud that they're struggling with something.\r\n\r\n@IanWhitney did a thorough analysis of the rust track in https://github.com/exercism/xrust/issues/127, which resulted in reordering the exercises. He wrote about the experience in an essay called _[Exercism Shouldn't Make You Cry](http://designisrefactoring.com/2016/07/09/exercism-shouldnt-make-you-cry/)_\r\n\r\nWe're also talking about similar issues in F# (https://github.com/exercism/xfsharp/issues/133 - @ErikSchierboom) and Elixir (https://github.com/exercism/xelixir/issues/190 - @devonestes), and I'm sure the topic has been mentioned elsewhere and I've missed it.\r\n\r\nBack in the day, Peter Minten talked about how we might classify exercises more systematically, in https://github.com/exercism/x-common/issues/63 and https://github.com/exercism/x-common/issues/72.\r\n\r\nI think that if we have language-specific classifications and topics, we should do it in the language-specific repository (keeping all the language-specific stuff together).\r\n\r\nWhat if we did this in `config.json`? We could have a new key, `exercises`, which contained an array of objects with the problem slug and topics. x-api could be changed to look preferentially at the new key, and fall back to the old one if it's missing. Then we could migrate all the tracks without having to do everything all at once.\r\n\r\nThe topics would be optional, but having it in the actual codebase would probably help crowdsource this data.\r\n\r\n@exercism/track-maintainers Thoughts?"},"comment":{"url":"https://api.github.com/repos/exercism/discussions/issues/comments/239366306","html_url":"https://github.com/exercism/discussions/issues/60#issuecomment-239366306","issue_url":"https://api.github.com/repos/exercism/discussions/issues/60","id":239366306,"user":{"login":"ErikSchierboom","id":135246,"avatar_url":"https://avatars.githubusercontent.com/u/135246?v=3","gravatar_id":"","url":"https://api.github.com/users/ErikSchierboom","html_url":"https://github.com/ErikSchierboom","followers_url":"https://api.github.com/users/ErikSchierboom/followers","following_url":"https://api.github.com/users/ErikSchierboom/following{/other_user}","gists_url":"https://api.github.com/users/ErikSchierboom/gists{/gist_id}","starred_url":"https://api.github.com/users/ErikSchierboom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ErikSchierboom/subscriptions","organizations_url":"https://api.github.com/users/ErikSchierboom/orgs","repos_url":"https://api.github.com/users/ErikSchierboom/repos","events_url":"https://api.github.com/users/ErikSchierboom/events{/privacy}","received_events_url":"https://api.github.com/users/ErikSchierboom/received_events","type":"User","site_admin":false},"created_at":"2016-08-12T05:50:13Z","updated_at":"2016-08-12T05:50:13Z","body":"Let's change it to slug then. I'll start working on mapping topics to exercises for the F# track."}}
{"actor":{"display_login":"ErikSchierboom"}}