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

Choose core exercises structure #794

Closed
2 tasks
robphoenix opened this issue Aug 3, 2017 · 7 comments
Closed
2 tasks

Choose core exercises structure #794

robphoenix opened this issue Aug 3, 2017 · 7 comments

Comments

@robphoenix
Copy link
Contributor

From #717:

If you haven't already, now would be a good time to do the following:

- [x] add a rough estimate of difficulty to each exercise (scale: 1-10)
- [x] add topics to each exercise

  • choose at most 20 exercises to be core exercises (set core: true, and delete the unlocked_by key)
  • for each exercise that is not core, decide which exercise is the prerequisite (max 1)

If possible, leave 3 or 4 simple exercises as (core: false, unlocked_by: null), as this will provide new participants with some exercises that they can tackle even if they have not finished the first core exercise.

@robphoenix
Copy link
Contributor Author

If you've not already seen this, it should be useful exercism/discussions#175 (comment)

@tleen
Copy link
Member

tleen commented Aug 3, 2017

I'm going to be mulling these over in my head for awhile as we have a ton of exercises. For starters what does everyone think our most simple exercises are?

These are our difficulty 1 exercises:

@tleen
Copy link
Member

tleen commented Aug 5, 2017

I'm gonna say our easiest exercises are:

  • hello-world - to introduce the environment
  • hamming - simple looping
  • raindrops - conditionals

Then very similar:

  • gigasecond - slightly more complex than hello world, but not too different either
  • leap - another mathy but quick problem (leap and gigasecond should prob have one unlock the other?)

A little harder but also similar:

  • scrabble-score - should use map style lookups (but doesn't have to)
  • etl - should unlock from scrabble? another map exercise transforming the map instead of reading from it
  • accumulate - to introduce functions as args

This is my rough read on the first few exercises.

@robphoenix
Copy link
Contributor Author

tbh I'm finding this quite hard to conceptualise in my head how to sort the exercises, and have been kind of avoiding it. I'm going to need to sit down with a pen and paper and map it out I think.

@tleen
Copy link
Member

tleen commented Aug 8, 2017

Me too. It is really hard even doing baby steps like above. When confronted with a problem I don't know how to fix my first instinct is always to build something just to help get my head around the problem. The visualizer is awesome, and great for seeing the track come together, but at the same time I am much more of a command-line show-me-in-text guy. I spent some time over the weekend making a quick and dirty exercism-config-to-csv command line tool that would let me look at configs/sort them like a spreadsheet.

Some more quick tooling and adding a descriptive field (#798) may make this much easier.

Trying to map it out all at once is too prohibitive. We should start with some baby steps: identifying core and perhaps sequencing the difficulty 1&2's then move on from there.

Ultimately we will get through this, take a look at our early work and think, "nope it can be done better" and fix it. We will make some errors, but that is part of the process and we can always fix later!

@tleen
Copy link
Member

tleen commented Aug 11, 2017

Some more data that may be helpful, this is the difficulty -> exercise listing:

D # Exercises
1 8 hello-world, leap, gigasecond, hamming, raindrops, accumulate, etl, scrabble-score
2 9 pangram, bob, difference-of-squares, grains, luhn, rna-transcription, roman-numerals, strain, nucleotide-count
3 25 clock, acronym, triangle, series, parallel-letter-frequency, isogram, crypto-square, largest-series-product, sieve, protein-translation, anagram, word-count, robot-name, atbash-cipher, phone-number, prime-factors, nth-prime, beer-song, wordy, meetup, tree-building, kindergarten-garden, simple-cipher, tournament, all-your-base
4 13 twelve-days, house, pascals-triangle, bank-account, food-chain, perfect-numbers, allergies, diamond, custom-set, pig-latin, matrix, word-search, ledger
5 18 error-handling, secret-handshake, queen-attack, sum-of-multiples, pythagorean-triplet, circular-buffer, transpose, diffie-hellman, grade-school, saddle-points, binary-search, binary-search-tree, paasio, minesweeper, poker, variable-length-quantity, change, bowling
6 2 palindrome-products, robot-simulator
7 4 bracket-push, say, ocr-numbers, pov
8 1 forth
9 2 react, connect

(I've been building some stuff to help us get more information from the track configuration(s): dump track configuration, get all track configurations as a single file and run reports against that file.)

@tleen
Copy link
Member

tleen commented Aug 13, 2017

FWIW, here are the core exercises in other tracks:

Track Exercises
bash hello-world, leap, pangram, error-handling
c hello-world, isogram, gigasecond, hamming, grains, beer-song, difference-of-squares, binary-search, roman-numerals, allergies, atbash-cipher, phone-number, clock, sieve, robot-simulator, pascals-triangle, binary, palindrome-products, scrabble-score
csharp hello-world, leap, bob, sum-of-multiples, two-fer, raindrops, nucleotide-count, accumulate, grade-school, kindergarten-garden, clock, binary-search, allergies, saddle-points, markdown, book-store
ecmascript hello-world, leap, rna-transcription, simple-cipher, pangram, bob, gigasecond, space-age, binary, prime-factors, matrix, linked-list, pascals-triangle, secret-handshake, grade-school, robot-name, wordy, list-ops
fsharp hello-world, leap, bob, sum-of-multiples, space-age, raindrops, accumulate, grade-school, clock, beer-song, kindergarten-garden, queen-attack, robot-simulator, allergies, ocr-numbers, tree-building, binary-search-tree, pig-latin
java hello-world, two-fer, hamming, gigasecond, scrabble-score, difference-of-squares, secret-handshake, matrix, triangle, rotational-cipher, saddle-points, flatten-array, word-count, robot-name, linked-list, binary-search, bank-account
javascript hello-world, leap, rna-transcription, simple-cipher, pangram, bob, gigasecond, space-age, binary, prime-factors, matrix, linked-list, pascals-triangle, secret-handshake, grade-school, robot-name, wordy, list-ops
lua hello-world, hamming, house, difference-of-squares, binary-search, matrix, isogram, bank-account, nth-prime, diamond, run-length-encoding, robot-name, leap, custom-set, pig-latin, list-ops, binary, allergies
r hello-world, leap, hamming, raindrops, bob, anagram, sum-of-multiples, word-count, phone-number, rotational-cipher, largest-series-product

robphoenix added a commit to robphoenix/exercism-go that referenced this issue Aug 21, 2017
robphoenix added a commit that referenced this issue Aug 21, 2017
robphoenix added a commit to robphoenix/exercism-go that referenced this issue Sep 11, 2017
This PR stems from exercism#717, exercism#794, exercism#805, exercism#813, exercism#825

Closes exercism#828, exercism#829, exercism#830

It should be noted that while my name is attached to this commit, this
PR would not have been possible without the hard work and insights of
Tom Leen (@tleen).

For Exercism v2, codename Nextercism, the structure of exercises will
change. It will no longer be a linear progression, rather there will be
a series of core exercises that will lead on from one another with
mentor approval. These core exercises will in turn unlock other
exercises that can be completed as and when. This change implements the
new exercise progression structure.
robphoenix added a commit to robphoenix/exercism-go that referenced this issue Sep 12, 2017
This PR stems from exercism#717, exercism#794, exercism#805, exercism#813, exercism#825

Closes exercism#828, exercism#829, exercism#830

It should be noted that while my name is attached to this commit, this
PR would not have been possible without the hard work and insights of
Tom Leen (@tleen).

For Exercism v2, codename Nextercism, the structure of exercises will
change. It will no longer be a linear progression, rather there will be
a series of core exercises that will lead on from one another with
mentor approval. These core exercises will in turn unlock other
exercises that can be completed as and when. This change implements the
new exercise progression structure.
robphoenix added a commit that referenced this issue Sep 12, 2017
* [nextercism] Restructure config.json

This PR stems from #717, #794, #805, #813, #825

Closes #828, #829, #830

It should be noted that while my name is attached to this commit, this
PR would not have been possible without the hard work and insights of
Tom Leen (@tleen).

For Exercism v2, codename Nextercism, the structure of exercises will
change. It will no longer be a linear progression, rather there will be
a series of core exercises that will lead on from one another with
mentor approval. These core exercises will in turn unlock other
exercises that can be completed as and when. This change implements the
new exercise progression structure.
robphoenix added a commit to robphoenix/exercism-go that referenced this issue Oct 9, 2017
* [nextercism] Restructure config.json

This PR stems from exercism#717, exercism#794, exercism#805, exercism#813, exercism#825

Closes exercism#828, exercism#829, exercism#830

It should be noted that while my name is attached to this commit, this
PR would not have been possible without the hard work and insights of
Tom Leen (@tleen).

For Exercism v2, codename Nextercism, the structure of exercises will
change. It will no longer be a linear progression, rather there will be
a series of core exercises that will lead on from one another with
mentor approval. These core exercises will in turn unlock other
exercises that can be completed as and when. This change implements the
new exercise progression structure.
robphoenix added a commit that referenced this issue Oct 10, 2017
* [nextercism] Restructure config.json

This PR stems from #717, #794, #805, #813, #825

Closes #828, #829, #830

It should be noted that while my name is attached to this commit, this
PR would not have been possible without the hard work and insights of
Tom Leen (@tleen).

For Exercism v2, codename Nextercism, the structure of exercises will
change. It will no longer be a linear progression, rather there will be
a series of core exercises that will lead on from one another with
mentor approval. These core exercises will in turn unlock other
exercises that can be completed as and when. This change implements the
new exercise progression structure.
robphoenix added a commit to robphoenix/exercism-go that referenced this issue Oct 10, 2017
* [nextercism] Restructure config.json

This PR stems from exercism#717, exercism#794, exercism#805, exercism#813, exercism#825

Closes exercism#828, exercism#829, exercism#830

It should be noted that while my name is attached to this commit, this
PR would not have been possible without the hard work and insights of
Tom Leen (@tleen).

For Exercism v2, codename Nextercism, the structure of exercises will
change. It will no longer be a linear progression, rather there will be
a series of core exercises that will lead on from one another with
mentor approval. These core exercises will in turn unlock other
exercises that can be completed as and when. This change implements the
new exercise progression structure.
robphoenix added a commit to robphoenix/exercism-go that referenced this issue Oct 10, 2017
* [nextercism] Restructure config.json

This PR stems from exercism#717, exercism#794, exercism#805, exercism#813, exercism#825

Closes exercism#828, exercism#829, exercism#830

It should be noted that while my name is attached to this commit, this
PR would not have been possible without the hard work and insights of
Tom Leen (@tleen).

For Exercism v2, codename Nextercism, the structure of exercises will
change. It will no longer be a linear progression, rather there will be
a series of core exercises that will lead on from one another with
mentor approval. These core exercises will in turn unlock other
exercises that can be completed as and when. This change implements the
new exercise progression structure.
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