Racket - first language in a primary school

Hello,

I've graduated software engineering many years ago and was considering to learn & use Racket for a full-fledged desktop (GUI) application. However, due to several reasons, had to abandon the project...

Our kid is now going to 5th grade of elementary school and I wonder what do you think about introducing principles of programming along with having strong base in mathematic by using Racket as first programming language?

I hope to achieve better problem-solving skills, more attraction towards math since the official curriculum for informatics was elective and kids were mostly just spending tiem gaming.

Otoh, the future will be probably something around Python...

My university education was Fortran, Pascal, C(++), but I believe that FP languages and something like Racket are more suitable for general introduction to the topic.

Any experience using Racket as first language in primary school?

1 Like

No personal experience here, but check:

My son started "How to Code: Simple Data" from University of British Columbia on edX when he was just a bit older than that. It was a very good introduction to programming. I was particularly pleased with how it built his problem solving skills and endurance. I helped him some, but he was able to do a lot of it pretty independently. The final program is a simple Space Invaders style game, and the fun aspect made it very motivating. The teaching languages make it a lot easier to figure out bugs, so they are less likely to get stuck in a state where nothing works and they don't know how to fix it.

When he had the Space Invader's game working, he deployed it on WeScheme.org and shared it with his friends. I showed it to some fellow developers and they were playing it while waiting for their code to build. They provided him some feedback on the scoring system and he did some pretty big refactoring to incorporate their suggestions. The feedback from peers and others was pretty big motivation for him.

This summer he finished the Complex Data follow up course which was much more challenging, but really expanded his problem solving abilities.

Some other things you might want to check out:

  • Bootstrap - I think their Algebra materials teach math through building a simple game in Racket.
  • HtDP - Designed for college students but still very accessible. Might be useful if you are working through it with them.
  • Picturing Programs - Textbook & curriculum that teach programming with Racket by writing programs that create and manipulate pictures.
  • Realm of Racket - Book that teaches Racket by creating a series of games.
  • The Little Schemer - The first few chapters might be worth looking at for that age or maybe a bit older. I'd recommend doing it with pen and paper because it helps them learn to reason about the way their programs are solving problems instead of just running it to see if it works.
  • CS Unplugged - Not Racket specifically, but a collection of hands on activities that teach computer science concepts without using a computer.
  • MIRTO Robots - If your kids are interested in robotics, checkout the platform they use at Middlesex University. They aren't too difficult to build on your own and you can program them with Racket running on a Raspberry PI that then communicates with an Arduino that talks to the hardware.
3 Likes

If you're still interested in building GUI applications with Racket, I heartily recommend the gui-easy package.

Thank you - it looks interesting, but I'm afraid I don't have enough time for the project at the moment. :slightly_frowning_face: