Rust 101's first run at STU Bratislava

Embedded software engineer
Rust 101's first run at STU Bratislava
When we first introduced Rust 101 to you on our website, preparations for its first run where in full swing. The action started in February 2023; 20 students of the Faculty of Informatics and Information Technologies of the Slovak University of Technology in Bratislava followed 9 lectures and 9 tutorials, and worked on their own rust project to round off the course. The course was completed in May.

This first run was mainly taught by course creator Henk himself. Also involved were TG devs Folkert (co-teacher and co-developer), Ruben (co-teacher and co-developer) and Marc (co-developer and teaching assistant).

16 February 2023: the first lecture

On 16 February, Henk and Folkert had travelled to Bratislava and finally met with some of the staff and, of course, their students for the next 12 weeks. After a round of introductions in the classroom, it was time to dive into everyone's new favourite subject: Rust 101.

First lecture Day 1 of Rust 101 at STU FIIT: Henk is teaching and Folkert is assisting

Example of material

The remaining lectures were taught remotely. Marc had arranged a Discord server where students could enlist each other and their teachers for help, both during and outside class hours.

The full course covered a wide array of subjects, structured in such a way that even students who had never worked with Rust found themselves more and more confident in experimenting with it and eventually writing their own code. This is where the Discord server served its purpose.

To give you an example of what one set of a lecture and tutorial look like, take a look at the slides and the exercises of Module C, which deals with concurrency and parallelism in Rust.

Final project example

To show their teachers and prove to themselves what they had learnt, the students were tasked to design and build their own Rust project. They were given three weeks to do this and during class hours, Henk was available for live chatting or videocalling.

Now, teachers aren't supposed to pick favourites, but we'd like to show you someone's (we're not naming any names...) favourite project, because it's pretty cool to think that this was done by students who couldn't have done this two months earlier.

The students who did this project wrote a full-fledged image analysis and manipulation service in Rust. Pretty awesome if you ask us!

Final project structure The application structure of the image analysis and manipulation program

The future

It is our strong hope that many unis will pick up this course, or add one like it to the computer sciences curriculum in the near future. To make sure that this course material can be used by any institution, regardless of their budget or timeline, Rust 101 is modular and open-source. Educators can pick and choose the elements they want to cover, meaning they don't have to use the full 12-week course and can even incorportate parts of it into other courses!

Interested in running (part of) Rust 101 at your university? Check out the repo. If you're looking for help getting started, or you're looking for a teacher for this course, contact Henk.

(our services)

Interested in Rust?

We offer:

  • Engineering in Rust
  • Training and workshops
  • Rust 101

> Our Rust services

Embedded software engineer

Stay up-to-date

Stay up-to-date with our work and blog posts?

Related articles

At the end of 2022, we announced the creation of Rust 101, a university course that introduces students of computer science to Rust. Initially, the course was created for the Faculty of Informatics and Information Technologies at STU Bratislava (FIIT), but from the start we've wanted to create an open-source, modular and reusable set of teaching resources. Having now achieved that milestone, it is time for a new announcement: Rust 101 has evolved to teach-rs.
Asynchronous programming is pretty weird. While it is straightforward enough to understand in principle (write code that looks synchronous, but may be run concurrently yada yada yada), it is not so obvious how and when async functions actually perform work. This blog aims to shed light on how that works in Rust.
In Dutch we have a saying 'meten is weten', which translates to 'to measure is to know'. That sentiment is frequently overlooked in setting up computers and networks.