Select featured exercise for Mindshifting May

This will be an interesting month to select exercises for, as there is little overlap between these languages.
That said, it will be incredibly cool if we do have exercises for all these tracks, as they are likely to be solved in completely different ways across tracks.
If a couple of tracks don’t yet have an exercise, we can always add it before May.

Here is the list of shared exercises:

exercise ballerina pharo-smalltalk prolog red rust tcl unison
hello-world :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
raindrops :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
reverse-string :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
roman-numerals :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
space-age :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
acronym :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
armstrong-numbers :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
bowling :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
collatz-conjecture :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
etl :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
isogram :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
leap :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
run-length-encoding :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
sum-of-multiples :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
two-fer :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark: :x:
allergies :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
anagram :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
bob :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
clock :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
darts :x: :white_check_mark: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark:
diamond :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
difference-of-squares :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
grains :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
hamming :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
high-scores :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark: :x:
knapsack :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
largest-series-product :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
matching-brackets :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
nucleotide-count :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
pangram :x: :white_check_mark: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
protein-translation :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
queen-attack :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
rna-transcription :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
rotational-cipher :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
sieve :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
simple-linked-list :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :white_check_mark:
spiral-matrix :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :white_check_mark:
all-your-base :x: :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
atbash-cipher :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
change :x: :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark:
circular-buffer :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark: :x:
crypto-square :x: :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
dominoes :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
flatten-array :x: :white_check_mark: :white_check_mark: :x: :x: :white_check_mark: :x:
forth :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
grade-school :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
isbn-verifier :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
kindergarten-garden :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
luhn :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
minesweeper :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
pascals-triangle :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
proverb :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
resistor-color-duo :x: :white_check_mark: :x: :white_check_mark: :x: :white_check_mark: :x:
robot-simulator :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
scale-generator :x: :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
secret-handshake :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
sublist :x: :x: :x: :x: :white_check_mark: :white_check_mark: :white_check_mark:
tournament :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
triangle :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
word-count :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark: :x:
wordy :x: :x: :white_check_mark: :x: :white_check_mark: :white_check_mark: :x:
zebra-puzzle :x: :x: :white_check_mark: :x: :x: :white_check_mark: :white_check_mark:
accumulate :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
affine-cipher :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
alphametics :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
beer-song :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
binary :x: :white_check_mark: :white_check_mark: :x: :x: :x: :x:
binary-search :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
book-store :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
complex-numbers :x: :x: :white_check_mark: :x: :x: :white_check_mark: :x:
custom-set :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
diffie-hellman :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
dot-dsl :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
error-handling :white_check_mark: :x: :x: :x: :x: :white_check_mark: :x:
gigasecond :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
grep :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
killer-sudoku-helper :x: :x: :white_check_mark: :x: :x: :white_check_mark: :x:
matrix :x: :white_check_mark: :x: :x: :x: :white_check_mark: :x:
nth-prime :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
ocr-numbers :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
palindrome-products :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
parallel-letter-frequency :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
perfect-numbers :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
phone-number :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
pig-latin :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
poker :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
pov :x: :x: :x: :white_check_mark: :x: :white_check_mark: :x:
prime-factors :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
pythagorean-triplet :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
rail-fence-cipher :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
react :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
rectangles :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
resistor-color :x: :x: :x: :white_check_mark: :x: :white_check_mark: :x:
resistor-color-trio :x: :x: :x: :white_check_mark: :x: :white_check_mark: :x:
robot-name :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
saddle-points :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
satellite :x: :x: :white_check_mark: :x: :x: :white_check_mark: :x:
say :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
scrabble-score :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
series :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
service-invocation :white_check_mark: :x: :x: :x: :x: :x: :x:
simple-cipher :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
twelve-days :x: :white_check_mark: :x: :x: :x: :white_check_mark: :x:
two-bucket :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
variable-length-quantity :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
yacht :x: :x: :x: :x: :white_check_mark: :white_check_mark: :x:
zipper :x: :x: :x: :x: :x: :white_check_mark: :white_check_mark:
bank-account :x: :x: :x: :x: :x: :white_check_mark: :x:
basics-monitor-rush :white_check_mark: :x: :x: :x: :x: :x: :x:
basics-transformation-csv :white_check_mark: :x: :x: :x: :x: :x: :x:
basics-transformation-json :white_check_mark: :x: :x: :x: :x: :x: :x:
basics-transformation-xml :white_check_mark: :x: :x: :x: :x: :x: :x:
binary-search-tree :x: :x: :x: :x: :x: :white_check_mark: :x:
calculator-service :white_check_mark: :x: :x: :x: :x: :x: :x:
cheryls-birthday :x: :x: :white_check_mark: :x: :x: :x: :x:
connect :x: :x: :x: :x: :x: :white_check_mark: :x:
database-employee-onboarding :white_check_mark: :x: :x: :x: :x: :x: :x:
database-large-expenses :white_check_mark: :x: :x: :x: :x: :x: :x:
database-payment-audit :white_check_mark: :x: :x: :x: :x: :x: :x:
database-payment-batches :white_check_mark: :x: :x: :x: :x: :x: :x:
decimal :x: :x: :x: :x: :white_check_mark: :x: :x:
die :x: :white_check_mark: :x: :x: :x: :x: :x:

… continued in next post due to Discourse limits

exercise ballerina pharo prolog red rust tcl unison
dnd-character :x: :x: :x: :x: :x: :white_check_mark: :x:
doubly-linked-list :x: :x: :x: :x: :white_check_mark: :x: :x:
echo-service :white_check_mark: :x: :x: :x: :x: :x: :x:
fizzy :x: :x: :x: :x: :white_check_mark: :x: :x:
floored :x: :x: :white_check_mark: :x: :x: :x: :x:
food-chain :x: :x: :x: :x: :x: :white_check_mark: :x:
garden-party :x: :x: :white_check_mark: :x: :x: :x: :x:
go-counting :x: :x: :x: :x: :x: :white_check_mark: :x:
greeting-service :white_check_mark: :x: :x: :x: :x: :x: :x:
hangman :x: :x: :x: :x: :x: :white_check_mark: :x:
hello-world-service :white_check_mark: :x: :x: :x: :x: :x: :x:
hexadecimal :x: :x: :x: :x: :white_check_mark: :x: :x:
house :x: :x: :x: :x: :x: :white_check_mark: :x:
http-billion-dollar-question :white_check_mark: :x: :x: :x: :x: :x: :x:
http-cake-is-a-lie :white_check_mark: :x: :x: :x: :x: :x: :x:
legacy-service-client :white_check_mark: :x: :x: :x: :x: :x: :x:
linked-list :x: :x: :x: :x: :x: :white_check_mark: :x:
list-ops :x: :x: :x: :x: :x: :white_check_mark: :x:
luhn-from :x: :x: :x: :x: :white_check_mark: :x: :x:
luhn-trait :x: :x: :x: :x: :white_check_mark: :x: :x:
macros :x: :x: :x: :x: :white_check_mark: :x: :x:
majority-element :x: :x: :x: :x: :x: :x: :white_check_mark:
markdown :x: :x: :x: :x: :x: :white_check_mark: :x:
meetup :x: :x: :x: :x: :x: :white_check_mark: :x:
nucleotide-codons :x: :x: :x: :x: :white_check_mark: :x: :x:
order-management :white_check_mark: :x: :x: :x: :x: :x: :x:
paasio :x: :x: :x: :x: :white_check_mark: :x: :x:
rational-numbers :x: :x: :x: :x: :x: :white_check_mark: :x:
rest-api :x: :x: :x: :x: :x: :white_check_mark: :x:
service-composition :white_check_mark: :x: :x: :x: :x: :x: :x:
sgf-parsing :x: :x: :x: :white_check_mark: :x: :x: :x:
square-root :x: :x: :x: :x: :x: :white_check_mark: :x:
strain :x: :x: :x: :x: :x: :white_check_mark: :x:
stream-ops :x: :x: :x: :x: :x: :x: :white_check_mark:
transpose :x: :x: :x: :x: :x: :white_check_mark: :x:
word-search :x: :x: :x: :x: :x: :white_check_mark: :x:
xorcism :x: :x: :x: :x: :white_check_mark: :x: :x:

The only suggestiones made for May in Please help choose featured exercies for #12in23 are

  • Beer Song (present 2/7)
  • Matching Brackets (present 4/7)
  • Zebra Puzzle (present 3/7)

I endorse Matching Brackets. The Zebra Puzzle looks like a good match for Prolog, but I do not know about the other languages.

Some suggestions of my own:

  • Raindrops (6/7) can be properly mindbending: article, demo on Exercism.
  • I wouldn’t be surprised if Bowling (5/7) has highly language-specific solutions. (At least in Haskell it can be interesting.)
  • Sum of Multiples (5/7) can be interesting. At least when you try to minimize memory use.
  • Acronym (4/7) can be done in lots of ways; the featured languages have probably something to say about it.
  • Matching Brackets (4/7) can be done in only(?) two ways (recursive parser or explicit stack), but I expect these to be expressible in interesting ways in at least Prolog, Rust, and Unison. (But I do not know any Prolog.)
  • Roman Numerals (4/7) can be done in various ways, some more strongly supported by the languages and some less so.
  • I’ll stop going down the list for now.

Beware: some exercises cannot be implemented on certain tracks. One such exercise is Flatten Array: forum thread about it. Another well-known one is Two Fer.

Has there been progress on this? Does anyone else have ideas?

Only two more weeks remain in Analytical April.

Not yet. I do want to look at this sooner rather than later. I’ll move it up my todo list.

Having looked at the available exercises, what solutions in the featured tracks look like and the difficulty of the exercises, we have selected the following featured exercises:

  • raindrops (missing in ballerina)
  • isogram (missing in ballerina and red)
  • roman-numerals (missing in ballerina)
  • space-age (missing in ballerina)
  • acronym (missing in ballerina and red)

It would be great if we can add the missing exercises to ballerina and red.
I’ll probably be working on them myself too, so I would like anyone that wants to help to make that known in this thread first to not have duplicate work being.

If you’d like to write approaches/articles for these exercises in the featured tracks, that would be awesome too! Again, please post your intention in this thread.

I’ll start off by saying that I’ll be working on adding raindrops to ballerina.

1 Like

I’ll volunteer Roman Numerals

1 Like

Oh, just read this after I created: raindrops: add exercise by ErikSchierboom · Pull Request #169 · exercism/ballerina · GitHub I can close and you can submit your PR?

I’ll do isogram in ballerina.

No worries. I haven’t submitted mine as I have sieve in review currently.

1 Like

If it takes long-ish, ping me and we’ll get it merged

I’ll grab this one.

1 Like