Rust for Kids Bootcamp

Hi, I'm planning a bootcamp for kids to learn rust (8-15 years). I wanted to seek opinions on how I can make learning easier and fun for them. They have no programming experience. And is there a material like rust for kids out there ?

Thanks a lot

5 Likes

I suspect that the biggest problem you’ll have compared to other programming languages is the strictness of Rust’s compiler— Even experienced programmers get frustrated with the borrow checker at first.

Rust’s compiler errors are quite helpful, but also intimidating. Think about how you can get the kids past the initial shock of a massive block of text so that they actually try to read it.

8 Likes

I've taught kids before. A little older than that. Mostly high school aged. I think you'll find that the lack of Rust material geared towards kids that age will be the least of your problems.

I don't know how much time you'll have with them, but I find that I spend most of my time helping them just opening a shell, and a text editor and running the program. Most of them won't even understand (at first) that the program has to be written in a precise way or else the computer will reject it in some way. They won't even know what a rejection looks like. In general, there is confusion at every level. You'll also need to deal with varying skill levels. If the group is self-selected, then it's likely there will be people there who chose it because it looked like the least worst option given other choices (or someone chose for them) and also people there who chose because they've written code before. That's a big gap and it can be surprising and challenging to deal with if you aren't prepared.

I usually use Python for such tasks. In part because installation of tools is itself usually a challenge, depending on the environment. I've taught in high schools before, for example, and the kids have to use the laptops provided by the school. Now all of a sudden you've got the problem of whether certain tools are installed or not. And if they're not, can you even install them in the first place? And if you could, how much time do you want to burn on that? The advantage of Python is that it's usually already installed for one reason or another.

Anyway, food for thought. I know it's not the question you asked. (I am not personally aware of any learning materials for Rust targeting that age group.)

19 Likes

Here is a worksheet I used to lead a bunch of high school aged kids through writing a very very simple spell checker: https://burntsushi.net/stuff/life-conference-worksheet-2019-02.pdf

It didn't go perfectly, but I did have some kids finish the basic task after 2 hours. All of the laptops they had already had everything we needed (essentially, curl, nano and python). So we didn't need to spend any time on installation of tools.

1 Like

Thanks a lot :pray:.
Gonna check through the material. @2e71828 all points noted. The work sheet is very great. I will build on it.
Thanks

I suggest to start with common computer science terms before exposing them to Rust. If you rush, you risk scaring them and having them to think that programming is not "their thing", and get the opposite result of what you are looking for (which I assume is to get kids interested into programming).

All in all, wish it goes well!

1 Like

Ok. Actually computer science is part of their curriculum in school. But still gonna expose them to basic concepts before diving in proper

You might want to consider using rustyline instead of std::io::Stdin::read_line to make things easier when writing basic interactive programs, as I figured out throughout this thread on how to write a very simple program in Rust.

The first two lines are a bit tough, but it gets easier afterwards:

But I'm not sure. Overall Rust seems to be tough to start with for teaching programming, but maybe it has advantages too. I like how you could use Rust to better teach "by-reference" vs "by-value" etc.

1 Like

One thing I find useful when teaching others is that when learning to program for the first time, you are really learning three entirely separate things:

  1. Programming constructs and terminology - variables, functions, control flow, etc.
  2. Language specifics - in this case Rust
  3. Tools - Build tools, IDE's, packaging, running, testing, etc.

In part, that's why learning your first language is such an uphill climb. Learning a second language allows you to reuse much of what you already know.

6 Likes