Crystal Track Update for February 2023!

Crystal blog post 2023/2/28

Another month, that means another blog post.
Some very exciting things have been going on the crystal track, so let’s dig into it.

New exercises

  • Nucleotide Count, you are supposed to count the number of each nucleus there is in a DNA string.
  • Robot Simulator, write a simulator that simulates instructions to a robot, we implemented this exercise with using tuples and symbols, so have fun playing around those datatypes.
  • Phone Number, ever needed a program to clean phone numbers? Well, this exercise will let you practice writing such a program.
  • Palindrome productst, this is one of my favorite exercises on the platform, I found this exercise perfect for thinking about how to optimize a program.
  • Wordy, ever wanted to make your own chatgpt? well, this is that but without the ai part, your goal is to process a mathematical question and then give the answer to that mathematical question.
  • Pythagorean Triplet, a big shout out to @ryanplusplus (seems like they are not on the forum) for implementing this exercise. Your goal is to find the Pythagorean triplet given a sum.

Updated tooling

There are some updates to the tooling this month as well but not as major as last month.

Test runner

By having the new testing script implemented last month were we able to quickly test updates to the test runner.

  1. The first change is quite major, the crystal test runner was updated to v3 from v2 spec. The difference between v2 and v3 is that v3 can hold a taskid, this change won’t be able to be seen at the moment, and will only be visible for concept exercise, which may come (continue reading to know! :eyes: ).
    Here is an example from v2 and v3 from other tracks:



  1. The second change is a fix so the test runner can parse test files that include path, this was the reason the react exercise was broken and made so the exercise could be undeprecated.

Undeprecated exercise

The react exercise is back of around 1 month of being deprecated. When undepricating it I decided to make some additions/changes:

  • Difficulty rating increase 1 → 6
  • Exercise test cases are now templated

Updated exercises

This month there wasn’t done any updates to any exercises, is what I thought I would say, Katarina just opened 2 prs with updates to instructions as I were writting this (on 27 Feb). This update includes updated instructions to deliver more detailed instructions and bringing more of a story in the exercises. If you like to read more about @kytrinyx and @iHiD project to update exercises so can you read more here.
The exercises which were update are:

  • Gigasecond
  • Bob


The file path in the main config.json was incorrect and has now been fix.

@ryanplusplus has gone through the generator and has done some light cleanup.

What is coming

There weren’t a lot of additions this month, that is partly because February is the shortest month of the year and also that I had a 1 week’s holiday this month. But also because a lot of longer-term projects have been going on in the background.

In this section will I list some stuff that is being worked on/planned. Although everything listed here should not be seen as “confirmed” to arrive.

Learning mode

Yes, you heard right, a learning mode for crystal is in active development. The learning mode for crystal aims to make crystal a more accessible language. The learning mode release date is a bit up in the air as of writing but one thing is for certain and that is that it should not be expected in March.

I want to say a big thanks to everyone who has spent the time to help with this goal.
Which is mainly by helping with reviewing the concepts, thereby I want to give an extra thanks to the reviewers (as of writing):

The update of the test runner is a big part of delivering a good user experience around these concept exercises.
As of writing, there are 3 concepts under review and another one in development.
I am aiming for 10 ± 2 concepts for the initial release.


Yes, a represented has started to be experimanted with. A design idea has been brought up and from that, a prototype started to take shape, but the prototype is in the early stages and nothing says that the design will work as required.

Crystal 1.8

The move to crystal 1.8 will be an important move for the track. The track is currently running crystal 1.2, and crystal 1.8 is still an unreleased version. But to be able to launch the learning mode, representer, and do some other planned changes is 1.8 required. This also means that the learning mode and representer won’t launch until 1.8 gets released.

Some other stuff

  • As always will there be arriving some minor changes and fixes
  • More practice exercises

Track updates like this are great - I might steal the idea for the tracks I maintain :slight_smile:

Also, amazing work! :tada:

Amazing work. Thank you! :blue_heart:

I would love that, it is in a way why I do these “blogs” since I want to promote other tracks to doing a similar thing.