Rust 101: an open-source university course

Henk
Embedded software engineer
Liset
Marketing & Partnerships
Rust 101: an open-source university course
In 2009 Rust was a new language. In 2022 that isn't true anymore. Nor does Rust have anything to prove. It's made it to the Linux Kernel, and Microsoft have dubbed it "the Industry’s Best Chance at Safe Systems Programming".

Still, outside the big tech companies Rust is not a mainstream language. From the developers point of view: it is hard to find a Rust job.

Why?

let mut reasoning = "Rust is great and all, but...".to_owned();
loop {
  reasoning.push_str("There aren't a lot of job openings, because...");
  reasoning.push_str("Companies are hesitant to adopt it, because...");
  reasoning.push_str("There aren't many experienced developers, because...");
}

Rust 101 is here to break that vicious cycle!

How?

By sparking students' imaginations - and that of professors, of course!

Imagination!

It's education to the rescue: if higher education can help more students to learn Rust, employers will be confident they can grow teams, and developers will be able to land Rust jobs.

What?

Rust 101 is:

  • a uni course;
  • practical, hands-on experience;
  • introducing Rust from scratch;
  • focused on where and why to use Rust;
  • open-source and ready to use.

The mix of theory and hands-on experience becomes obvious when you take a look at the repository or the outline of the course, which consists of 9 lectures, 9 tutorials and 1 final project.

When used in full 12-week format, the schedule is:

WeekTopic
1Course intro; Language basics
2Ecosystem and tools; Advanced Syntax, Ownership, References
3Traits and generics
4Application programming
5Multitasking
6Idiomatic Rust patterns
7Rust for web
8Safe Unsafe Rust
9FFI and Dynamic modules
10Final project
11Final project
12Final project presentation

In short, each module starts with a lecture on the theory and is then followed by a tutorial where students do exercises (i.e. writing code).

Rust 101 offers universities a Rust course they can pick and choose from.

Run it as a whole for a complete introduction to the language, or take the base modules and customize the course to your needs.

Who?

The Rust 101 project is run by Henk Oordt and others at Tweede golf. It is a not-for-profit project, where the only requirement is that the cost of our work is covered. Tweede golf has received funding from Slovak University of Technology in Bratislava (STU) that has enabled us to lay the groundwork for the course. In addition, Henk has received a grant from the Rust Foundation.

We are very happy to have received support from folks at the Radboud University and the Delft University of Technology, as well as from Ferrous Systems, Europe's leading Rust agency. They have helped us with feedback and contributions to the course material.

(our services)

Want to sponsor Rust 101?

You'd contribute to:

  • maintenance of the material
  • updates as Rust evolves
  • reusability of the course

Contribute to Rust 101

When?

At the time of writing (December 2022) the course is under development, in preparation for its first run at STU Bratislava, Feb - May 2023.

UPDATE (summer 2023): Henk and colleagues have finished teaching the course! They travelled to Bratislava in February to meet the students for the first course, then gave online lectures and tutorials, and students eventually produced their own Rust project. Read more in this blog.

Keep an eye on the GitHub repo or follow us for more updates.

How can you help?

We are looking for contributions, feedback and input (for instance: "What are your requirements for a Rust course?") from higher education institutions. Contact Henk if you would like to help out.

Also, we are looking for additional sponsors to make the course material suitable for re-use by other universities. Please consider donating on our GitHub sponsor page and/or sharing this blogpost to anyone who might appreciate the cause.

If your institution opts to sponsors us as a "Rust 101 Course Gold sponsor" we're happy to on-board your lecturers to get you started with the course. Contact Liset if you´d like to talk about this option.

Henk
Embedded software engineer
Liset
Marketing & Partnerships

Stay up-to-date

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

Related articles

When sudo-rs development started, we added several dependencies using Rust’s crates ecosystem to quickly ramp up development. During development we accrued approximately 135 transitive (direct and indirect) dependencies. Once this was identified, we managed to reduce our total dependencies down to three. In this blog, we explain why and how we did this.
In February of 2024, I was invited by Matthias Endler of Corrode to join him on his podcast Rust in Production. We discussed how Tweede golf uses Rust in production, to ensure the safety and security of critical infrastructure software.
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.