exercism / exercism/nim

Update the track structure

Open
#181 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Nim
Stars
60
Forks
27
Avg merge
10d 12h
Merged PRs (30d)
1

Description

For simplicity, new exercises are being implemented as `bonus` exercises, meaning that `unlocked_by` is set to `null` in `config.json`.

Therefore after the new exercises are merged, we should probably consider:
1. Changing the `core` exercises (to include some of the current `bonus` exercises, or some of the new exercises).
2. Turning the remaining `bonus` exercises into side exercises.
3. Tweaking the exercise order.
4. Tweaking the difficulty ratings.
5. Changing `config.json` to follow [this proposed ordering](https://github.com/exercism/configlet/issues/152#issuecomment-449981969), which may become part of `configlet` in the future. This should help reduce diff noise when reordering exercises later.
6. Changing the `topics` be more useful and specific to Nim.

I don't currently have strong opinions on the track structure, but other tracks have put significant thought into it. We should consider (or steal) their ideas, at least as a starting point. I'll write some suggestions later. Let me know if you have any thoughts.

Some recent work by other tracks:
- [Python](https://github.com/exercism/python/pull/1633) (which copied Ruby)
- [C#](https://github.com/exercism/csharp/pull/744)

Regarding difficulty: most of our currently implemented exercises are relatively easy. Some tracks use a restricted set of ratings (such as: `1`, `4`, `7` and `10`). If we do this, I think nearly all our our current exercises should be difficulty `1` so that we can have a clear difference later between `easy` and `medium` difficulty.

It's also easier to implement good solutions in Nim than in many languages.

### Current Nim track structure
`configlet tree config.json --with-difficulty`
```
core
----
├─ hello-world [1]
│ ├─ pangram [1]
│ └─ hamming [1]

├─ two-fer [1]
│ ├─ isogram [1]
│ └─ acronym [1]

├─ leap [1]
│ ├─ difference-of-squares [1]
│ └─ triangle [1]

├─ bob [1]
│ ├─ word-count [3]
│ ├─ anagram [1]
│ └─ bracket-push [1]

├─ allergies [1]

├─ sum-of-multiples [1]
│ ├─ armstrong-numbers [1]
│ ├─ grains [2]
│ ├─ collatz-conjecture [1]
│ └─ scrabble-score [1]

├─ grade-school [1]
│ └─ atbash-cipher [1]

bonus
-----
reverse-string [1]
rna-transcription [1]
gigasecond [1]
run-length-encoding [1]
roman-numerals [1]
space-age [1]
nth-prime [1]
queen-attack [1]
all-your-base [1]
nucleotide-count [1]
raindrops [1]
react [8]
darts [1]
secret-handshake [1]
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.