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

grains: add topics to config.json, update difficulty #430

Merged
merged 1 commit into from
Jan 6, 2017

Conversation

robphoenix
Copy link
Contributor

No description provided.

@robphoenix robphoenix changed the title grains: add topics to config.json, update dificulty grains: add topics to config.json, update difficulty Jan 5, 2017
@robphoenix
Copy link
Contributor Author

robphoenix commented Jan 5, 2017

I considered upping the difficulty to 3 because of the possibility to use a bitwise operation approach, rather than powers.

Maybe a note could be added to the test file about taking a bitwise approach, with some links to what bitwise operations are. In a similar way to the way the house exercise suggests the use of recursion but allows a simpler approach.

Then, should the difficulty rating stay with the simpler approach, or the more challenging approach?

EDIT: see #431

@@ -107,9 +107,15 @@
"topics": []
},
{
"difficulty": 1,
"difficulty": 2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we change difficulty, don't we need to put it into correct order in this array ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, where we want to put this exercise just depends on: Do we think grains is well-placed in this track, given its difficulty relative to the exercises around it?

Maybe the picture would be easier to see if we have a single PR proposing difficulty numbers for all the exercises, without adding topics to most of them yet (it's what #345 suggests to do).

For example, is there any exercise before grains that we would rate a 3? Any exercise after grains that we would rate a 1? If so, that is a bit strange, and then maybe some of those exercises should get moved.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me I've been adding the difficulty and topics at the same time as the process of making those judgements is intrinsically combined. I'll look at other peoples submissions and see if there are any comments indicating peoples feelings regarding the exercise, so that the difficulty rating is not confined to my own experience. This is especially important for exercises that I completed a while back where maybe I've forgotten some of the pain of not knowing the solution. At the same time I'm looking for what topics are being covered. For some exercises the submissions are all very similar, and so the topics list and difficulty is quite easy. For others, such as this one, there can be a number of different approaches, covering different topics.

I think it would be a more difficult task to rate all the exercises in one fell swoop and then add topics as we go. Would someone need to have completed all the exercises to do this? If they're reviewing the exercise to gauge difficulty, is it not worth making a note of topics simultaneously? Or would the initial difficulty ratings be a quick and simple best guess effort, to be adjusted over time? (My concern with this is starting an exercise's rating with a misleading level of difficulty) My intention from here is to add topics to exercises in the current order they are in, I only added grains out of step as I completed it yesterday and wanted to tackle it while fresh in my mind.

I agree with @petertseng, it's hard to make a judgement on order until there are adjacent exercises to compare against.

Also to consider is the idea of this exercise being simple in one way, but potentially introducing a difficult concept.

I've updated the config.json in the xpython track in a similar way to this, and my assumption was that any reordering could occur when there's sufficient information to compare the exercises. I wanted to get started on this to at least have a kind of baseline from which to work from. Anyway I've rambled on, sorry.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be a more difficult task to rate all the exercises in one fell swoop and then add topics as we go. Would someone need to have completed all the exercises to do this? If they're reviewing the exercise to gauge difficulty, is it not worth making a note of topics simultaneously? Or would the initial difficulty ratings be a quick and simple best guess effort, to be adjusted over time?

My suspicion is that if we think the track is already well-ordered, we can take it slow.

My experience in another track: In Haskell, it was slightly urgent to get the track ordered quickly since some problems were in wildly wrong places, so I did everything in one go by roughly guessing how I'd approach the problem and estimating the difficulty of that approach, resulting in exercism/haskell#402 . I had not completed every exercise personally, but I was at least familiar with the tests being given in every single exercise, since I had reviewed PRs updating every single one of them. I also cross-referenced with F# as that track has implemented almost every exercise and assigned difficulties to each one. You're right that these guesses could have been wrong, but it was better than the alternative.

That approach may not be necessary for this track. I had previous work checking ordering in #279, but this only checked stub files vs not. I haven't checked other things about track ordering.

At a quick glance, I would say react is probably too early, and variable-length-quantity probably doesn't belong at the very end.

My intention from here is to add topics to exercises in the current order they are in, I only added grains out of step as I completed it yesterday and wanted to tackle it while fresh in my mind.

Ah, that explains it. Thanks. I was wondering why you suddenly jumped to grains...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so, just so I'm clear, are you & @ferhatelmas OK if I continue adding difficulty & topics at the same time to exercises? I'll mostly go in order, unless I complete another exercise as I go, though it shouldn't take too long to catch up with myself. I'm just not familiar enough with the exercises to tackle all the difficulties at once. I'll also cross-reference with other tracks as I go.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so, just so I'm clear, are you & @ferhatelmas OK if I continue adding difficulty & topics at the same time to exercises?

OK with me

"Control-flow (if-else statements)",
"Bitwise operations",
"Mathematics",
"Floating-point numbers",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uncertain of this one, given that all answers fit in unsigned integers. But did you see someone use floating-point numbers? If so, OK.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was less the use of floating-point numbers and more the type conversion to a float that occurs; math.Pow(2, float64(n-1))
Now I write this, I've just checked the topics list and see there is a Type conversion topic, so I think I'll swap it out for that, what do you think @petertseng @ferhatelmas ?

@robphoenix robphoenix force-pushed the update-config-json/grains branch from 766ca31 to e17f9ad Compare January 6, 2017 11:08
Copy link
Member

@petertseng petertseng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New topics look OK. In case someone wonders, I think it is good to list all possible topics, even if a solution might not use all of them (summing all the powers of two versus bit-twiddling). We can be liberal in topics (we will probably be slightly conservative in difficulty)

@@ -107,9 +107,15 @@
"topics": []
},
{
"difficulty": 1,
"difficulty": 2,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be a more difficult task to rate all the exercises in one fell swoop and then add topics as we go. Would someone need to have completed all the exercises to do this? If they're reviewing the exercise to gauge difficulty, is it not worth making a note of topics simultaneously? Or would the initial difficulty ratings be a quick and simple best guess effort, to be adjusted over time?

My suspicion is that if we think the track is already well-ordered, we can take it slow.

My experience in another track: In Haskell, it was slightly urgent to get the track ordered quickly since some problems were in wildly wrong places, so I did everything in one go by roughly guessing how I'd approach the problem and estimating the difficulty of that approach, resulting in exercism/haskell#402 . I had not completed every exercise personally, but I was at least familiar with the tests being given in every single exercise, since I had reviewed PRs updating every single one of them. I also cross-referenced with F# as that track has implemented almost every exercise and assigned difficulties to each one. You're right that these guesses could have been wrong, but it was better than the alternative.

That approach may not be necessary for this track. I had previous work checking ordering in #279, but this only checked stub files vs not. I haven't checked other things about track ordering.

At a quick glance, I would say react is probably too early, and variable-length-quantity probably doesn't belong at the very end.

My intention from here is to add topics to exercises in the current order they are in, I only added grains out of step as I completed it yesterday and wanted to tackle it while fresh in my mind.

Ah, that explains it. Thanks. I was wondering why you suddenly jumped to grains...

@robphoenix robphoenix merged commit ca54c3b into exercism:master Jan 6, 2017
@robphoenix robphoenix deleted the update-config-json/grains branch January 10, 2017 11:48
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