-// This is Rust-101, a small tutorial to the [Rust language](http://www.rust-lang.org/).
-// This is intended to be an interactive, hands-on course: I believe the only way to
-// *really* learn a language is to write code in it, so you should be coding during
-// the course. These documents mainly serve as a guide to the teacher, reminding me
-// what to explain in which order, and making sure I have sample code for all topics
-// I plan to cover. They may also be helpful as an offline resource, but you're on your
-// own then.
-
-// The actual course is in the partXX.rs files. I suggest you get started with
-// [the first part](part00.html), or jump directly to where you left off:
+// Why Rust?
+// ---------
+//
+// When you got here, I am kind of assuming that you already decided to give Rust at
+// least a look, so that I don't have to do much convincing here. But just in
+// case, here's why I think Rust is worth learning:<br/>
+// At this time, Rust is a language with a pretty unique set of goals. Rust aims to
+// achieve C++-style control over memory and execution behavior (like, static vs. dynamic
+// dispatch), which makes it possible to construct abstractions that carry no run-time
+// cost. This is combined with the comfort of high-level functional languages and guaranteed
+// safety (as in, the program will not crash in uncontrolled ways). The vast majority of existing
+// languages sacrifices control for safety (for example, by enforcing the usage of
+// a garbage collector) or vice versa. Rust can run without dynamic allocation (i.e., without
+// a heap), and even without an operating system. In fact, Rust rules out more classes of bugs
+// than languages that achieve safety with a garbage collector: Besides dangling pointers and
+// double-free, Rust also prevents issues such as iterator invalidation and data races. Finally,
+// it cleans up behind you, and deallocates resources (memory, but also file descriptors and really
+// anything) when you don't need them anymore.
+//
+//
+// Getting started
+// ---------------
+//
+// You will need to have Rust installed, of course. It is available for download on
+// [the Rust website](https://www.rust-lang.org/). Make sure you get at least version 1.3.
+// More detailed installation instructions are provided in
+// [The Book](https://doc.rust-lang.org/stable/book/).
+// This will also install `cargo`, the tool responsible for building rust projects (or *crates*).
+//
+// Next, we have to prepare a workspace for you to conduct your Rust-101 work in, so that you don't
+// have to start with an empty file. The easiest way is to
+// [download the workspace](https://www.ralfj.de/projects/rust-101/workspace.zip)
+// matching the online tutorial. Try `cargo build` in that new folder to check that compiling your
+// workspace succeeds.
+// (You can also execute it with `cargo run`, but you'll need to do some work before this does
+// anything useful.)
+//
+// Alternatively, you can build the workspace from source by fetching the
+// [git repository](https://www.ralfj.de/git/rust-101.git) and running `make workspace`.