Open
Description
This tracks the progress of the A0 module, which aims to help bridge the gap for two target groups to move onto A1. The groups that are targeted:
- Students learning Rust as their first programming language
- Students who know high-level programming languages but are unfamiliar with low-level concepts
This should really represent an optional course that can be included in specific situations. It could serve as a resource for students or provide exercises to study specific low-level concepts.
This was proposed and discussed in #18.
Module Content
This is a list of things this module should aim to teach. This is not necessarily ordered.
- Hello World in Rust
- Input / Output
- Variables
- Branching
- Loop Conditions
- For (Each)
- While
- For Each
- Break Loop
- Static Typing
- Binary and Variables in Memory
- Bit operations
- Signed integer
- Unsigned integer
- String
- Boolean
- Arrays
- Tuples- Structures
- Functions
- Parameters & Return value
- Recursion - Stack and Heap
- Copy-by-Reference versus Copy-by-Value
Slides
The slides on a specific concept should focus the rough structure:
- General overview of the concept. Gives an intuition for the student, but probably too abstract to apply.
- Several examples. These should increase in level. Try to find some quite complicated examples that really test the understanding of the student.
- Last quick summary of the concept.
Exercises
The module contains many small and rewarding exercises to teach. All of these exercise should be on the Rust Playground and try to really focus on a specific concept per time.
What this module does not contain
- Operating System concepts
- System-Calls
- Low-Level Memory Management - An exploration of the standard library. Talk about
Box
andVec
but nothing else. - Compilers
- CLI interaction with cargo or rustc
Useful Reference Resources
Metadata
Metadata
Assignees
Labels
No labels