These optional training courses are available for developers of all skill levels. Add them to your ticket when you register to attend.
Rust for Beginners
Learn everything you need to get started writing Rust programs. The tutorial puts a focus on Ownership and Borrowing, which are the key techniques that Rust uses to achieve both safety and low-level performance.
This class assumes no prior knowledge of Rust, though programming experience in some other language would be helpful.
Participants should bring their own laptops. Additional machine setup instructions will be sent ~1 week prior to the training.RoomA
This training is aimed at developers who are familiar with Rust and/or embedded systems, and are looking to learn more about embedded Rust. The exercise driven class will provide a guided experience of writing embedded application code and is divided into two segments.
The first segment lets students get to know their hardware and the embedded Rust tooling. They will take an existing template project and gain familiarity with building, running, and debugging an embedded application. The goal is to blink the onboard LEDs and eventually create blinking patterns.
For the second segment, a color grid will be displayed on the presenter's projector screen, and each student will be given a portion of the total grid that they may remotely draw on by sending radio packets. This involves using the BSP interface and learning about serde and automatic serialisation of Rust data structures. Patterns, such as gradients, shapes, letters or simple animations can be drawn.
Participants should bring their own laptops. Additional machine setup instructions will be sent ~1 week prior to the training.
Hardware Requirements: This class requires the Limited DWM1001-DEV/1479-1005-ND Development Kit/Board. Students can purchase their hardware directly and bring it along (but don't forget!) or purchase as a merchandise addon with registration.RoomB
This free workshop is for people who are members of groups that are underrepresented in tech, in the style of RailsBridge. There will be a morning introduction to Rust concepts and an afternoon hands-on project. This class assumes no prior knowledge of Rust, but familiarity with any other programming language, the command line, and a text editor is recommended.
Participants should fill in this form to apply.RoomD
Traits and Threads
Move your Rust knowledge up a level! This tutorial introduces the second key piece of Rust, its trait system. You’ll learn how the trait system is the foundation for generic programming in Rust, allowing you to write one piece of code that can be reused in many contexts. The session will also cover how to write threaded programs in Rust, and demonstrate how threaded programming in Rust builds on the trait system to guarantee data-race freedom.
This tutorial assumes basic understanding of ownership and borrowing; if you have been writing Rust for a while, you should do fine.RoomA
This workshop will walk you through creating a very simple game using the Rust programming language. You will learn the basics of game development and see how to put together various Rust libraries in order to create something that you can play. The game will be built incrementally so that you understand each of the smaller steps needed to produce a complete game. By the end of the workshop, you will have a small project that you can build on to add as many cool features as you want! Some of the topics covered during the workshop include: game loops, basic 2D rendering, Entity-Component-Systems (ECS), and much more!
No prior experience with game development is required and any game development concepts you need will be taught throughout the workshop. You will however need to be somewhat comfortable writing simple Rust programs. The workshop will not directly use advanced features of the Rust language, but you will be implementing some traits, so try to come in comfortable with that. Chapters 1 - 9 (and parts of Chapter 10) of the Rust book cover everything you need.RoomB