Open to everyone 👪 - The Polkadot Blockchain Academy's Rust Qualifier Exam.

Overview

Rust Qualifier Exam

An open source learning resource, available to all.

This exam is maintained by the Polkadot Blockchain Academy, for the benefit of the entire Rust community. The Academy accepts individuals modestly skilled in Rust, and maintains this exam to help everyone asses their proficiency being of a level we would consider for the program.

We encourage everyone to take this exam for fun, to help assess your own Rust understanding, or as part of your application to the Polkadot Blockchain Academy.

Honor Code

When used as a qualifier for the Academy, this exam is intended to be taken individually without help from other programmers, AIs, or the breadth of the internet. The first section of the exam is the honor code. Please read it carefully and thoughtfully before you review or start any work.

Those not applying to the Academy are free to relax the honor code as you deem fit, however, the license and use policy forbids publishing solutions for everyone. Naturally as an exam, public solutions undermine usefulness of this public good for the whole community. We humbly ask you respect the intended academic integrity of our community when considering how you interact with the exam in your communities.

Time Commitment

The exam is intended to be quite a challenge for those more novice in Rust. It is expected to take a minimum of 10-20 hours for the average applicant to complete. Your time may be shorter or significantly longer than this.

Organization

This exam is structured as a single Rust crate with many modules. Each module contains some well-commented starter code, and some todo!() macros that you should replace with solution code.

Tests

Each module contains a small starter test suite to help you know whether your solutions are on the right track or not. You can run these tests with standard cargo commands. The provided tests are mostly failing when you first begin, but they should all pass by the time you are finished.

# Run the unit tests
cargo test

# Run the doc doc tests
cargo test --doc

The provided tests are not a complete test suite. You are encouraged to write additional tests to ensure that their code works as intended.

The Academy maintains a larger more thorough test suite privately. If you are applying, your submission will be assessed with this more thorough test suite. To be sure that the test suite will always work, do not change any function or type signatures unless explicitly permitted to do so.

The entire exam should be completed using Rust stable toolchain with the specified version in Cargo.toml as the Academy test suite will explicitly use this version.

Completing the Exam

Work through the exam by replacing each occurrence of todo!() with your solution to the problem. When all the provided tests pass, plus all the additional tests you wrote are passing, your work is finished. If you are pushing to any remote servers while solving the exam (as is required for PBA applicants) be sure that the remote servers are not publicly viewable. You may not publish solutions to the exam, please read the License and use policies for specifics.

Applying to the Polkadot Blockchain Academy

The Polkadot Blockchain Academy is a classroom-based educational program covering the conceptual underpinnings and the hands-on application of blockchain technology. The curriculum covers disciplines such as economics, governance, game theory, cryptography, peer-based and distributed network systems, systems and API design, and much more. In addition to theoretical modules, students will apply their knowledge and build blockchains and parachains using Substrate.

To apply to the Polkadot Blockchain Academy, please visit https://dot.li/pba-github for information, location, and dates of the current or next cohort, and a form that will start the process for consideration in the next cohort. This qualifier exam is just one part of the process and is not, by itself, an application.

License and Use Policies

Mozilla Public License Version 2.0 - See the LICENSE for details.

In addition to the license, you may not publish materials that reveal, directly or indirectly, in any way, solutions to this exam publicly. Lastly, you should not share any solutions or privately to prevent peer-collusion and respect the academic integrity of this public good resource of the Academy's community.

🚀 Good luck! 🚀

You might also like...
Open-source Rust framework for building event-driven live-trading & backtesting systems

Barter Barter is an open-source Rust framework for building event-driven live-trading & backtesting systems. Algorithmic trade with the peace of mind

botwork is a single-binary, generic and open-source automation framework written in Rust for acceptance testing & RPA

botwork botwork is a single-binary, generic and open-source automation framework written in Rust for acceptance testing, acceptance test driven develo

Open source programming language written in Rust.

No longer maintained! Tron Programming Language An open-source programming language written in Rust. Installation Before starting the installation, pl

Open source programming language written in Rust.

Tron Programming Language An open-source programming language written in Rust. Installation Before starting the installation, please make sure that yo

Nonsible is an alternative to Ansible. It is open source and developed in Rust.

Nonsible is an alternative to Ansible. It is open source and developed in Rust. The idea is not to depend on factors like Python, as it commits us to having Python installed on all of our machines, among other requirements.

Add path effects to open glyphs in a UFO file
Add path effects to open glyphs in a UFO file

ufostroker Add path effects to open contours in a UFO file Given a glyph with open contours: You can apply a noodle effect: ufostroker -i Open.ufo -o

niwl - a prototype system for open, decentralized, metadata resistant communication

niwl - a prototype system for open, decentralized, metadata resistant communication niwl (/nɪu̯l/) - fog, mist or haze (Welsh). niwl is an experimenta

This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files
This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files

This utility traverses through your filesystem looking for open-source dependencies that are seeking donations by parsing README.md and FUNDING.yml files

Galileo OSNMA (Open Service Navigation Message Authentication)

galileo-osnma galileo-osnma is a Rust implementation of the Galileo OSNMA (Open Service Navigation Message Authentication) protocol. This protocol is

Comments
  • fix percent bug in tests mod

    fix percent bug in tests mod

    As per the file instructions, no efficiency should exceed 100.

    /// NOTE: all efficiencies are interpreted as u8 values that can be at most 100, and represent a percent.

    InternalCombustion is instantiated with an effieciency value greater than 100, causing a correct implementation of its provide_energy_with_efficiency() method to always fail while running the ic_1() test.

    opened by 0xjuju 0
Owner
Polkadot Blockchain Academy
An intensive, in-person educational program deeply exploring foundational concepts and hands-on blockchain curriculum. Built with Polkadot and Substrate tech.
Polkadot Blockchain Academy
H2O Open Source Kubernetes operator and a command-line tool to ease deployment (and undeployment) of H2O open-source machine learning platform H2O-3 to Kubernetes.

H2O Kubernetes Repository with official tools to aid the deployment of H2O Machine Learning platform to Kubernetes. There are two essential tools to b

H2O.ai 16 Nov 12, 2022
A template with cookie cutter CLI, Program and Integration tests for Solana blockchain

About solana-cli-program template is a sample app demonstrating the creation of a minimal CLI application written in Rust to interact with Solana and

null 46 Nov 3, 2022
Prototype for a CLI/Libary designed for interacting with NASA Open APIs with Rust.

Overview Voyager is a swiss army knife library for the NASA Open APIs. It is designed to bundle all the NASA APIs into a single package. Voyager can b

Ethan Gallucci 4 Aug 14, 2022
An open source artifact manager. Written in Rust back end and an Vue front end to create a fast and modern experience

nitro_repo Nitro Repo is an open source free artifact manager. Written with a Rust back end and a Vue front end to create a fast and modern experience

Wyatt Jacob Herkamp 30 Dec 14, 2022
zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.

zigfi zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets

Aldrin Zigmund Cortez Velasco 18 Oct 24, 2022
A blazing fast command line license generator for your open source projects written in Rust🚀

Overview This is a blazing fast ⚡ , command line license generator for your open source projects written in Rust. I know that GitHub

Shoubhit Dash 43 Dec 30, 2022
An open source, programmed in rust, privacy focused tool for reading programming resources (like stackoverflow) fast, efficient and asynchronous from the terminal.

Falion An open source, programmed in rust, privacy focused tool for reading programming resources (like StackOverFlow) fast, efficient and asynchronou

Obscurely 17 Dec 20, 2022
Horus is an open source tool for running forensic and administrative tasks at the kernel level using eBPF, a low-overhead in-kernel virtual machine, and the Rust programming language.

Horus Horus is an open-source tool for running forensic and administrative tasks at the kernel level using eBPF, a low-overhead in-kernel virtual mach

null 4 Dec 15, 2022
Open source email client written in Rust and Dioxus. Under 🏗️

Blazemail A full-featued, beautiful, mail client that doesn't suck. Works on mac, windows, linux, mobile, web, etc. Features, status Blazemail is curr

Jon Kelley 13 Dec 19, 2022
Open-source Fortnite launcher, built in Rust.

Instigator Instigator is a basic command-line Fortnite launcher I've been working on for the last day and a bit. It is extremely basic. It injects con

jacksta 9 Feb 3, 2023