Is anyone aware of courses at university level in which students are at least encouraged to use Nim (if not required)? Any experience with students who learn python first and then switch to Nim would be appreciated.
I'm considering whether I might do this. I once required all teams to use Scala (many years ago) for a course, but that triggered a "revolt"... The courses I have in mind are all software engineering courses, that have a semester-long project component.
I used Nim while at university, even used it for my master's thesis. I wasn't required nor encouraged to use it, but we where allowed to use any language we wanted and I tried different ones for different assignments (until I found Nim that is). We had been taught C and Python for our beginner courses, and with that background Nim was pretty easy to grasp. If they only know Python it's a good introduction to static typing. Not sure exactly which projects you had in mind, Nim can do pretty much anything so it's a bit hard to give general advice.
I recently showed a Python programmer at work Nim and he seemed very pleased with both the package management, ease of install, and ease of getting started which are all important aspects if you want to avoid another "revolt".
And as a bonus LLMs are pretty bad at Nim, so I guess cheating would be harder.
In my research group specializing in computational materials science and thermodynamics, I've been advocating for using Nim roughly once every two weeks with some success, as we have already reimplemented two Python packages we use internally.
Some of my colleagues who almost exclusively use Python (like 90+% of my field since around 2018) and saw Nim for the first time were able to explain right away what it is doing without any docstrings and make simple modifications. That is until they reached some compile-time metaprogramming.
We also mentioned it in research proposals, highlighting the combination of performance and syntax readability to the general scientific audience.
In a classroom setting, we have yet to start using it; however, I've already convinced my boss to utilize a Nim package I wrote (not public yet) for a course he teaches next Fall (for ~3/4rd year PhDs). It will replace two-lectures-worth of a larger FORTRAN90 codebase, introducing genetic algorithms for solid-state physics Monte Carlo. Then, throughout the semester, students will be given an opportunity to rewrite the remaining FORTRAN parts in Nim in lieu of homework assignments requiring them to modify the original.
And as a bonus LLMs are pretty bad at Nim, so I guess cheating would be harder.
LOL
I use Nim for my homeworks, my profs were impressed that such language exist. I had presentation about it but I couldn't convince them to use Nim for teaching. [they use C++ & Python for that purpose ]