elm icon indicating copy to clipboard operation
elm copied to clipboard

Add new concept `json` and concept exercise `githup-api`

Open jiegillet opened this issue 1 year ago • 5 comments

Closes #538

@ceddlyburge, @mpizenberg I would love to have notes from both of you on this one, since it's one of those tricky topics for beginners. I'm not convinced I took the best approach, so any feedback is welcome. There is no hurry, let's take our time and get it right.

For the concept exercise, as we discussed on the issue, I took the approach of writing decoders for a real-life GitHub API. Not all fields are included of course, but the ones that are mentioned and their specs are real, which felt nice.

For the concept introduction, I tool the approach of decoding GeoJSON, which got me excited at first because it's another real use case, but now I wonder if it wasn't too complex.

Configlet on CI fails, which is expected, it will keep failing until we finalize the intro and I copy it in the exercise.

jiegillet avatar May 20 '24 23:05 jiegillet

The learning objectives in the design document look good, although as you suggested it might be a lot? I suppose this is pretty far in the curriculum so probably it doesn’t matter as much and it’s good to have some meaty exercises?

Just to clarify, because I haven’t looked at the platform for quite some time. I should review the concept about.md which will be the first thing students will read? (Or at least a simplified minimized version of that). And then there is the exercise instructions.md ?

mpizenberg avatar May 26 '24 16:05 mpizenberg

The learning objectives in the design document look good, although as you suggested it might be a lot? I suppose this is pretty far in the curriculum so probably it doesn’t matter as much and it’s good to have some meaty exercises?

That's what I'm leaning towards. It want people to be able to use JSON decoders after going through this, so we should cover whatever will get them 80% of the way there. The parsing concept is also similarly beefy.

Just to clarify, because I haven’t looked at the platform for quite some time. I should review the concept about.md which will be the first thing students will read? (Or at least a simplified minimized version of that). And then there is the exercise instructions.md ?

Yes, that's right, the first thing they will see is the instructions (I'm not really planning on minimizing too much other than the last section, because everything is necessary for solving the exercise), then the exercise instructions, along with the hints if they choose to read them.

jiegillet avatar May 26 '24 23:05 jiegillet

@mpizenberg @ceddlyburge I know I said we can take our time, but let's still move forward :) If you have any concerns concerning the approach, we can revisit it, and if you don't, the concept and exercise are ready for review.

jiegillet avatar Sep 09 '24 04:09 jiegillet

Hi @jiegillet , what sort of feedback are you looking for? Should I review this with the plan to approve it? Or do you want more general comments on the approach taken and things like that?

ceddlyburge avatar Sep 09 '24 12:09 ceddlyburge

I was thinking a more general one first, since JSON decoders is a pain point for beginners, it's worth thinking about the approach. It's been a while since I opened the PR though, I don't remember the details.

If it's too much work, review with the intent of approving is also fine, because it's a bit wasteful to just leave it unreviewed forever.

jiegillet avatar Sep 10 '24 07:09 jiegillet

It does make it long,, and it requires the student to understand both the geojson API and the GitHub api to do the exercise.

But examples do make things easier to understand.

Maybe use the github API instead of the geojson? Then students only have to understand that one?

ceddlyburge avatar Dec 10 '24 10:12 ceddlyburge

Maybe use the github API instead of the geojson? Then students only have to understand that one?

We can't show the answers of the concept exercise in the introduction, that would make the exercise meaningless.

It does make it long,, and it requires the student to understand both the geojson API and the GitHub api to do the exercise.

But examples do make things easier to understand.

Then let's publish as it is and see if we get feedback? That's what the "beta" status is about. Speaking of, I think we could remove that beta status on most of the other concepts (all?), since we are generally happy with them.

jiegillet avatar Dec 11 '24 03:12 jiegillet

I was thinking that you could pick out bits that might help the solution,but not be the solution. I'm happy to merge it and await feedback though :)

ceddlyburge avatar Dec 11 '24 09:12 ceddlyburge