Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
coastalwhite opened this issue Jan 23, 2023 · 0 comments · May be fixed by #28
Open

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

coastalwhite opened this issue Jan 23, 2023 · 0 comments · May be fixed by #28

Comments

@coastalwhite
Copy link

coastalwhite commented Jan 23, 2023

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

@coastalwhite coastalwhite changed the title Tracking Issue: A0 module for First Language-Learners / Fresh on Low-Level Concepts Tracking Issue: A0 module for First Language-Learners / Refresh on Low-Level Concepts Jan 23, 2023
@coastalwhite coastalwhite linked a pull request Jan 28, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant