mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-04-26 01:04:35 +02:00
Merge pull request #120 from google/running-the-course
Add instructions about how to run the course
This commit is contained in:
commit
a8fb8ad2b6
@ -1,11 +1,13 @@
|
|||||||
# Summary
|
# Summary
|
||||||
|
|
||||||
[Welcome to Comprehensive Rust 🦀](welcome.md)
|
[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)
|
- [Using Cargo](cargo.md)
|
||||||
- [Rust Ecosystem](cargo/rust-ecosystem.md)
|
- [Rust Ecosystem](cargo/rust-ecosystem.md)
|
||||||
- [Code Samples](cargo/code-samples.md)
|
- [Code Samples](cargo/code-samples.md)
|
||||||
- [Running Cargo Locally](cargo/running-locally.md)
|
- [Running Cargo Locally](cargo/running-locally.md)
|
||||||
- [Course Structure](structure.md)
|
|
||||||
|
|
||||||
|
|
||||||
# Day 1: Morning
|
# Day 1: Morning
|
||||||
|
@ -16,8 +16,8 @@ fn main() {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
You can use <kbd>Ctrl-Enter</kbd> to execute the code when focus is in the text
|
You can use <kbd>Ctrl + Enter</kbd> to execute the code when focus is in the
|
||||||
box.
|
text box.
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
58
src/running-the-course.md
Normal file
58
src/running-the-course.md
Normal file
@ -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
|
@ -1,7 +1,8 @@
|
|||||||
# Course Structure
|
# Course Structure
|
||||||
|
|
||||||
The course is fast paced and we will cover a lot of ground over the next 3--4
|
> This page is for the course instructor.
|
||||||
days:
|
|
||||||
|
The course is fast paced and covers a lot of ground:
|
||||||
|
|
||||||
* Day 1: Basic Rust, ownership and the borrow checker.
|
* Day 1: Basic Rust, ownership and the borrow checker.
|
||||||
* Day 2: Compound data types, pattern matching, the standard library.
|
* Day 2: Compound data types, pattern matching, the standard library.
|
||||||
@ -14,9 +15,5 @@ days:
|
|||||||
|
|
||||||
## Format
|
## Format
|
||||||
|
|
||||||
The course is interactive and your questions will drive our exploration of Rust!
|
The course is meant to be very interactive and we recommend letting the
|
||||||
|
questions drive the 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.
|
|
8
src/running-the-course/keyboard-shortcuts.md
Normal file
8
src/running-the-course/keyboard-shortcuts.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Keyboard Shortcuts
|
||||||
|
|
||||||
|
There are several useful keyboard shortcuts in mdBook:
|
||||||
|
|
||||||
|
* <kbd>Arrow-Left</kdb>: Navigate to the previous page.
|
||||||
|
* <kbd>Arrow-Right</kbd>: Navigate to the next page.
|
||||||
|
* <kbd>Ctrl + Enter</kbd>: Execute the code sample that has focus.
|
||||||
|
* <kbd>s</kbd>: Activate the search bar.
|
@ -13,6 +13,19 @@ today:
|
|||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
|
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
|
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
|
about the famous borrow checker. The way Rust handles memory is a major feature
|
||||||
and we should show students this right away.
|
and we should show students this right away.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user