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

How-to Docs: Creating a new concept exercise #371

Open
junedev opened this issue Aug 12, 2022 · 2 comments
Open

How-to Docs: Creating a new concept exercise #371

junedev opened this issue Aug 12, 2022 · 2 comments

Comments

@junedev
Copy link
Member

junedev commented Aug 12, 2022

We have the "spec" style documentation about what is in a concept exercise once it is done but we don't have a document about how to approach creating a new exercise from scratch.

Some notes on what could be mentioned:

  • Start from thinking about learning objectives (i.e. what should the student learn from the exercise) if they are not yet mentioned in the issue already. If the concept exists already, check what is taught there so you know what the exercise should practice.
  • If you want to save some time, check whether there is some existing concept exercise from another track that has a similar concept. A list can be found here: https://exercism.org/docs/building/tracks/stories. When adapting an existing exercise, make sure all tasks actually make sense for your track. Modify the exercise to the needs of your language.
  • (From @kytrinyx:) When inventing an exercise from scratch, think about the expressions/syntax that you would like to see the student write as part of the solution (based on the learning objectives). Then try to retro-fit some story onto those things.
  • Most stories/themes can be used for any kind of exercise, if you struggle to come up with a story, read some of the existing stories (https://exercism.org/docs/building/tracks/stories). Often, that can help to spark some inspiration even if there is no 1to1 match.
  • The introduction can be taken from the concept introduction if the concept exists already (e.g. via configlet generate), usually no additional content has to be written in this case.
  • Copy some existing exercise so you get all the right general files set up, potentially already remove existing content and add todo markers instead.
  • Possible order of approaching things: design.md (to clarify learning objectives), exemplar and instructions, tests, stub, configs
@kytrinyx
Copy link
Member

if they are not yet mentioned in the issue already

I think we should make sure that learning objectives are a part of the issue as part of #367

@junedev
Copy link
Member Author

junedev commented Aug 13, 2022

@kytrinyx Ideally yes, but I wanted to account for the fact that some people might not follow that guidance when creating the issue or a contributor works on a "legacy" issue that was created before that guidance even existed.

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

No branches or pull requests

2 participants