-
-
Notifications
You must be signed in to change notification settings - Fork 69
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
WIP: add prerequisites to practice exercises #324
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Overall this looks good but I don't have good answers to all the questions you raised yet.
I've just picked likely names and put them in prerequisites without adding them elsewhere.
Yep, we can create those later. Knowing which ones we need is quite helpful.
(I wonder if there should be a parent concept of "common data structures" to avoid revealing which ones to use?)
I think if there's one clearly preferable structure to use, it's fine to add that as a pre-req. But it might be useful to have a less-specific container for more advanced exercises so that students learn when to use which structure. @iHiD do you have thoughts on this?
There's also the issue of multiple solutions to problems. Should I add a concept as a prereq if it is commonly used in correct solutions, or only if it is required?
This was discussed on the call today but unfortunately I forgot what the conclusion was (there were a few suggestions)... I'll have to check the VoD once it's up :D
I think any concept that's required to understand the "top" exemplar solution, i.e. the one we currently recommended first in mentoring notes and not one of the performance-optimised solutions, should definitely be a pre-req.
And I'm assuming I should avoid adding concepts that are parents of concepts that are required.
Yes. I don't think it would break anything but there's no need to have them.
@@ -182,7 +185,10 @@ | |||
"slug": "pangram", | |||
"name": "Pangram", | |||
"uuid": "4bc9a4f8-fc4d-4e6b-a93c-07069bbc5bc9", | |||
"prerequisites": [], | |||
"prerequisites": [ | |||
"boolean-logic", "loops", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"boolean-logic", "loops", | |
"boolean-logic", "loops", "sets" |
This gives away the solution but I guess it may still make sense to have it as pre-req?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's the question, I guess. You don't need to use sets to solve this (and many students solve it without sets). Sets are just the most elegant solution.
But this one is perfectly fine, so I don't think I'd want to discourage solutions like this:
ispangram2(input) = all(in(lowercase(input)), 'a':'z')
This is why I think a data-structures or iterables concept might be a good idea?
Co-authored-by: Sascha Mann <git@mail.saschamann.eu>
I've resolved the merge conflicts. I don't know how all of this interacts with us not having concept exercises turned on. Maybe we should move all of these prerequisites to |
Closes #314.
I've done the first few and welcome feedback on whether they're okay.
As I'm sure you know, we don't have enough concepts in config.json to do this at the moment.
Even including all the ones in the concepts dir, we're still missing a concepts for:
I've just picked likely names and put them in
prerequisites
without adding them elsewhere.There's also the issue of multiple solutions to problems. Should I add a concept as a prereq if it is commonly used in correct solutions, or only if it is required?
And I'm assuming I should avoid adding concepts that are parents of concepts that are required.