diff --git a/src/SUMMARY.md b/src/SUMMARY.md index e42dbf56..6166be23 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -1,11 +1,13 @@ # Summary [Welcome to Comprehensive Rust 🦀](welcome.md) +- [Running the Course](running-the-course.md) + - [Course Structure](running-the-course/course-structure.md) + - [Keyboard Shortcuts](running-the-course/keyboard-shortcuts.md) - [Using Cargo](cargo.md) - [Rust Ecosystem](cargo/rust-ecosystem.md) - [Code Samples](cargo/code-samples.md) - [Running Cargo Locally](cargo/running-locally.md) -- [Course Structure](structure.md) # Day 1: Morning diff --git a/src/cargo/code-samples.md b/src/cargo/code-samples.md index 2d035cbb..95fca6d9 100644 --- a/src/cargo/code-samples.md +++ b/src/cargo/code-samples.md @@ -16,8 +16,8 @@ fn main() { } ``` -You can use Ctrl-Enter to execute the code when focus is in the text -box. +You can use Ctrl + Enter to execute the code when focus is in the +text box.
diff --git a/src/running-the-course.md b/src/running-the-course.md new file mode 100644 index 00000000..2ce11327 --- /dev/null +++ b/src/running-the-course.md @@ -0,0 +1,58 @@ +# Running the Course + +> This page is for the course instructor. + +Here is a bit of background information about how we've been running the course +internally at Google. + +To run the course, you need to: + +1. Make yourself familiar with the course material. We've included speaker notes + on some of the pages to help highlight the key points (please help us by + contributing more speaker notes!). You should make sure to open the speaker + notes in a popup (click the link with a little arrow next to "Speaker + Notes"). This way you have a clean screen to present to the class. + +2. Decide on the dates. Since the course is large, we recommend that you + schedule the four days over two weeks. Course participants have said that + they find it helpful to have a gap in the course since it helps them process + all the information we give them. + +3. Find a room large enough for your in-person participants. We recommend a + class size of 15-20 people. That's small enough that people are comfortable + asking questions --- it's also small enough that one instructor will have + time to answer the questions. + +4. On the day of your course, show up to the room a little early to set things + up. We recommend presenting directly using `mdbook serve` running on your + laptop. This ensures optimal performance with no lag as you change pages. + Using your laptop will also allow you to fix typos as you or the course + participants spot them. + +5. Let people solve the exercises by themselves or in small groups. Make sure to + ask people if they're stuck or if there is anything you can help with. When + you see that several people have the same problem, call it out to the class + and offer a solution, e.g., by showing people where to find the relvant + information in the standard library. + +6. If you don't skip the Android specific parts on Day 4, you will need an [AOSP + checkout][1]. Make a checkout of the [course repository][2] on the same + machine and move the `src/android/` directory into the root of your AOSP + checkout. This will ensure that the Android build system sees the + `Android.bp` files in `src/android/`. + + Ensure that `adb sync` works with your emulator or real device and pre-build + all Android examples using `src/android/build_all.sh`. Read the script to see + the commands it runs and make sure they work when you run them by hand. + +That is all, good luck running the course! We hope it will be as much fun for +you as it has been for us! + +Please [provide feedback][3] afterwards so that we can keep improving the +course. We would love to hear what worked well for you and what can be made +better. Your students are also very welcome to [send us feedback][4]! + +[1]: https://source.android.com/docs/setup/download/downloading +[2]: https://github.com/google/comprehensive-rust +[3]: https://github.com/google/comprehensive-rust/discussions/86 +[4]: https://github.com/google/comprehensive-rust/discussions/100 diff --git a/src/structure.md b/src/running-the-course/course-structure.md similarity index 54% rename from src/structure.md rename to src/running-the-course/course-structure.md index 9c2d5b6d..f87f1d49 100644 --- a/src/structure.md +++ b/src/running-the-course/course-structure.md @@ -1,7 +1,8 @@ # Course Structure -The course is fast paced and we will cover a lot of ground over the next 3--4 -days: +> This page is for the course instructor. + +The course is fast paced and covers a lot of ground: * Day 1: Basic Rust, ownership and the borrow checker. * Day 2: Compound data types, pattern matching, the standard library. @@ -14,9 +15,5 @@ days: ## Format -The course is interactive and your questions will drive our exploration of Rust! - -* Please ask questions when you get them, don't save them to the end. -* Discussions are very much encouraged! -* We will likely talk about things ahead of the slides. - * The slides are just a support and we are free to skip them as we like. +The course is meant to be very interactive and we recommend letting the +questions drive the exploration of Rust! diff --git a/src/running-the-course/keyboard-shortcuts.md b/src/running-the-course/keyboard-shortcuts.md new file mode 100644 index 00000000..b055493e --- /dev/null +++ b/src/running-the-course/keyboard-shortcuts.md @@ -0,0 +1,8 @@ +# Keyboard Shortcuts + +There are several useful keyboard shortcuts in mdBook: + +* Arrow-Left: Navigate to the previous page. +* Arrow-Right: Navigate to the next page. +* Ctrl + Enter: Execute the code sample that has focus. +* s: Activate the search bar. diff --git a/src/welcome-day-1.md b/src/welcome-day-1.md index 4817d6d3..0f06a539 100644 --- a/src/welcome-day-1.md +++ b/src/welcome-day-1.md @@ -13,6 +13,19 @@ today:
+Please remind the students that: + +* They should ask questions when they get them, don't save them to the end. +* The class is meant to be interactive and discussions are very much encouraged! + * As an instructor, you should try to keep the discussions relevant, i.e., + keep the related to how Rust does things vs some other language. It can be + hard to find the right balance, but err on the side of allowing discussions + since they engage people much more than one-way communication. +* The questions will likely mean that we about things ahead of the slides. + * This is perfectly okay! Repetition is an important part of leaning. Remember + that the slides are just a support and you are free to skip them as you + like. + The idea for the first day is to show _just enough_ of Rust to be able to speak about the famous borrow checker. The way Rust handles memory is a major feature and we should show students this right away.