For deliberate practice using Elm I’ve done the following:
Widgets
Pick a widget from a widget library and try to rebuild it in Elm. I’ve done this with my elm-rater library. But, there are many other widgets to be explored.
I think abadi approaches the design and implementation of custom components (widgets) really well. Read the code for datetimepicker and elm-input-extra for example, and then have them try building some of their own widgets.
One-page apps
When I was practicing Elm a while ago I found the Front End Libraries Projects by freeCodeCamp to be a good resource for active learning.
You can use my solutions in Elm as a reference, if you like.
My favorite project to work on out of all of them was the calculator.
Another idea I had for practicing but haven’t tried as yet was building out math learning widgets like you might have found at cut-the-knot in its prime. They were built with Java applets but I think Elm is the perfect tool for the job at building these tiny interactive learning experiences.
Multi-page apps
For React, Angular, Vue and other front-end frameworks they have more extensive tutorials and books that teach you to build modern single-page web apps. I’d say pick one of the tutorials or books and have them go through it in Elm.
I did it recently for Ember’s tutorial, Super Rentals, and it was a really great learning experience. I will be doing more of this in the future myself. There were some interesting details I had to figure out that I only came across by attempting to build it out myself.
I hope these suggestions will be helpful to you.