GithubHelp home page GithubHelp logo

d-rekk / teach-rs Goto Github PK

View Code? Open in Web Editor NEW

This project forked from trifectatechfoundation/teach-rs

0.0 0.0 0.0 3.71 MB

A modular, reusable university course for Rust

Home Page: https://teach-rs.tweede.golf

License: Creative Commons Attribution Share Alike 4.0 International

C 26.78% Rust 73.22%

teach-rs's Introduction

Teach-rs

Teach-rs

Teach-rs is a university course for computer science students, introducing the Rust Programming Language, and is available for anyone who wants to teach Rust.

Why? Have a look at our blog post introducing the course.

This repo will contain everything that's needed to organize the course: slides, exercises, tools, setup instructions and more.

While all the available material is user-ready, this repo is not yet as exhaustive as we'd like, so feedback and contributions are welcome! So is sponsorship; read more below or on our Sponsorship page.

Usage

The teacher's guide can be found here. Have a look at the ModMod Readme for instructions on how to render the content of a track.

Structure

The actual content can be found in the content directory. The content is structured in a tree of Tracks, Modules, Units, and Topics. Tracks define a single course, which consists of one or more Modules, which again combines one or more Units, which again is a set of Topics. Units roughly correspond to one lecture+tutorial (or at least that is the idea, but TODO), and consist of several Topics. Related Units are combined in a Module. Topics are packages that cover a single topic, and include a small number of slides, some exercises, and an exercise descripion. Topics can define their learning objectives, further reading material, and how they should be summarized in a Unit introduction.

Tracks, Modules, Units, and Topics and the files they refer to are described in the several TOML files in the content directory. ModMod combines the content into a structure that can be directly published to your students in a Git repo, for instance.

Pre-defined tracks

  • Rust Language Introduction aims to introduce the basics to the Rust programming language, and to enable students to engineer their own applications and crates.
  • Rust for the Web covers content that is needed to use Rust in web applications.
  • Rust for Systems Programming contains more low-level topics, to teach systems programming using Rust.
  • Scientific Rust is about using Rust in scientific programming.
  • Full contains all available teach-rs content.

Note: although the outline of the tracks is mostly complete, the tracks may still contain TODOs. You're invited to contribute your own content to fix these!

High-level goals

Teach-rs aims to provide an open-source course, lectures, tutorials and exercises, that can be used by any higher education institution. Use one of the pre-defined tracks, or compose your own with the content we provide and your own.

  1. Provide a modular, resuable basis for live-taught Rust courses
  2. Provide students with practical, hands-on experience
  3. Provide students with background information of Rust features
  4. Provide students with ability to judge whether Rust fits a project
  5. Provide several specialized learning tracks that focus on different applications (e.g. systems, embedded, web)
  6. Enable teachers to contribute their material for others to use

About the project

The project is executed by Henk Oordt and others at Tweede golf. It is a not-for-profit project, where the only requirement is that the cost of our work is covered.

We're very happy with support in developing the course material from:

  • Bernard van Gastel, Radboud University
  • Florian Gilcher, Ferrous Systems
  • Jonathan Donszelmann, TU Delft

Contributing

If you'd like to improve teach-rs, either by doing touchups, restructuring a module, or even adding a module, please refer to the contributing guidelines before you get started.

Our sponsors

Founding sponsors

Logo STU FIIT

Logo TG

Logo Rust Edu

Logo RF

The initial sponsor of the project is the Faculty of Informatics and Information Technologies (FIIT) of the Slovak University of Technology (STU) in Bratislava, Slovakia. FIIT's contribution has enabled us to layout the groundwork for the course. Tweede golf and Rust Edu have also contributed substantially to the creation of teach-rs.

In addition, lead developer Henk has received a grant from the Rust Foundation.

Silver sponsors

And a big thank you to our Silver sponsors:

Support teach-rs

We are in search of further funding for this project. Contact us if you´re interested, or sponsor our work. At the moment, any one-time or montly donation would support the maintenance of the project. Larger donations would enable us to create new modules and improve existing course material.

teach-rs's People

Contributors

hdoordt avatar folkertdev avatar rubdos avatar rnijveld avatar squell avatar erikjee avatar tobiassl1 avatar alexandruradovici avatar andybalaam avatar lisetroos avatar ifraixedes avatar bvgastel avatar samclercky avatar thvdveld avatar d-rekk avatar esteban-stafford avatar 0xkelvin avatar kianmeng avatar ioperator avatar pohlm01 avatar ticosax avatar pavadeli avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.