Skip to content

Tracking Issue: A0 module for First Language-Learners / Refresh on Low-Level Concepts #25

Open
@coastalwhite

Description

@coastalwhite

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:

  1. Students learning Rust as their first programming language
  2. 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:

  1. General overview of the concept. Gives an intuition for the student, but probably too abstract to apply.
  2. Several examples. These should increase in level. Try to find some quite complicated examples that really test the understanding of the student.
  3. 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 and Vec but nothing else.
  • Compilers
    - CLI interaction with cargo or rustc

Useful Reference Resources

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions