Rust

Dozent Ivana Zuzic
Ort online
Zeit TBD
Module IN0014, IN2107

Application

The application for the seminar will be handled via the TUM matching system. There is a big interest in this seminar, so put a high priority on it if you're really interested.

Here is a short questionnaire about applyng to this seminar that you can optionally fill in if you are very interested in the seminar. Please log in to fill the questionnaire. Some of the data will be filled in automatically.

What you answer there might influence that you get a higher priority on the matching system. However, you have to be aware that in some cases the matching system doesn't choose you for the seminar even if the course organiser gave you priority. 

Schedule

The pre-course meeting will take place on January 28th, 16:00h in this BBB room.

 

Important Dates Action
14th May 2021 Have the first draft of the paper
11th June 2021 Have the first draft of the slides
21st June 2021 Hand in the final version of the paper and the slides
22nd - 24th June 2021 Talks (obligatory attendance to all of them)

 

Rust

Rust provides high speed of execution and memory efficiency which is expected from modern software. Many tools that aim for efficiency are currently being developed in C++ which requires a lot of effort and discipline from programmers in order to preserve security and reliability. Rust was developed by Mozilla Research to combine the efficiency of C++ with the memory safety of automatic memory management (as in Java and C#) and functional programming concepts (as in Ocaml).

The central feature of Rust is its ownership model that assures memory management. Rust rejects code that could cause reliability issues already at compile-time and gives useful feedback in a form of verbose warnings and error messages.

Content

In this seminar, we will explore the main concepts of Rust and its modern applications. The concepts and applications will be presented with their advantages and disadvantages, together with some running examples, and discussed with the audience.

The seminar is intended for Master students, but advanced Bachelor students are welcome as well.

Organisation

All events of the seminar will be held online in this BBB room.

The seminar is planned for about 14 students that will prepare a written paper and a talk, both in English

It is obligatory to attend all the talks to pass the course.

The course participants will be provided with LaTex templates for the paper and for the presentation. The paper should be 10 pages long and the talk should last 45 minutes in total (30 minutes for presentation + 15 minutes for questions and discussion).

Talks have to demonstrate a concept using real code and working code examples should be part of the presentation.

Prerequesites

Language: good written and spoken English

There are no formal prerequisites, but this course is intended for people who love programming and want to learn about the concepts and applications of Rust. :D

 

Topic suggestions

  • Comparison of Rust Basic Concepts with C++ and Java
  • IDEs, Tools and Module System for Rust
  • Ownership and Lifetimes
  • Reference Counting and Garbage Collection
  • Polymorphism, Traits, Generic Types
  • Collections (Vec, LinkedList, HashMap...) and Iterators in Rust
  • Functional Programming Concepts in Rust
  • Macros in Rust
  • Concurrency in Rust
  • IPC in Rust
  • Rust for Network Servers
  • Rust and WebAssembly for Web Applications
  • Rust for Embedded Programming
  • The Future of Rust
  • Unsafe Rust 

Additional ideas are welcome! :)

Questions and Answers

In case you want to publish the materials you produce during this seminar, please consult the TUM Studienberatung. Generally, there is some non-TUM specific information here on that topic on the following links: https://www.bmbf.de/upload_filestore/pub/Handreichung_UrhWissG.pdf, https://www.urheberrecht.de/wissenschaft/, but rather check it for your own specific case.