Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create more and better exercises #1082

Closed
mgeisler opened this issue Aug 15, 2023 · 4 comments · Fixed by #1073
Closed

Create more and better exercises #1082

mgeisler opened this issue Aug 15, 2023 · 4 comments · Fixed by #1073
Assignees
Labels
enhancement New feature or request

Comments

@mgeisler
Copy link
Collaborator

One of the more consistent asks from course participants is more exercises. People like the interactive form, but they also want to play with Rust themselves.

The current exercises have some problems:

  • They sometimes rely on content not fully covered at the time (Day 1 afternoon exercises uses methods which are not fully introduced at this point)
  • They sometimes ask you to solve a problem where the problem itself is challenging (the multi-threaded link checker in the Concurrency section is more of a mini-project than an exercise).

To solve the above, we should write new exercises. The exercises should be trivial: the participants should be able to come up with a correct solution in 30 seconds — the challenge should be "How to implement this in Rust?" The Luhn exercise is a good example: it's easy to see how to solve it in a C-like way where you just iterate through the characters one by one and ignore most error cases. So students can start with that version and iterate on it to make it nicer.

Exercises can also be less free-form than the current exercises. If we provide more scaffolding for the students, we can guide them better and ask them to implement a bigger task. This is something we should do for the link checker exercise. We should provide most of the solution and just let students fill in 20-30 missing lines. That reflects how engineers typically work: you read a lot more code than you write and you are often asked to work in an existing system.

@mgeisler mgeisler added the enhancement New feature or request label Aug 15, 2023
@mgeisler mgeisler self-assigned this Aug 15, 2023
@mgeisler mgeisler changed the title Create more and smaller exercises Create more and better exercises Aug 15, 2023
@djmitche
Copy link
Collaborator

The reorg being planned in #1073 involves a lot more "spots" for exercises, so it'd be great to write exercises that fit in those spots, rather than just more exercises :)

There are already a few new exercises mentioned in that PR (but not fully written yet), but a bunch of segments just have "Exercise: ???" at the end.

@mgeisler
Copy link
Collaborator Author

The reorg being planned in #1073 involves a lot more "spots" for exercises, so it'd be great to write exercises that fit in those spots, rather than just more exercises :)

Good point! 😄 The part about adding more scaffolding should help here, right? It's easier to do a 10 minute exercise if we provide most of the answer already.

@djmitche
Copy link
Collaborator

Yes - we definitely need to have better, shorter time-boxes for the exercises. I think it's OK for some segments to have slightly longer or shorter exercises, but probably 15 minutes is the max.

@mgeisler
Copy link
Collaborator Author

The rewrite in #1073 has a lot more exercises, so we can mark this as fixed when that is merged.

@djmitche djmitche self-assigned this Nov 20, 2023
mgeisler added a commit that referenced this issue Nov 29, 2023
I've taken some work by @fw-immunant and others on the new organization
of the course and condensed it into a form amenable to a text editor and
some computational analysis. You can see the inputs in `course.py` but
the interesting bits are the output: `outline.md` and `slides.md`.

The idea is to break the course into more, smaller segments with
exercises at the ends and breaks in between. So `outline.md` lists the
segments, their duration, and sums those durations up per-day. It shows
we're about an hour too long right now! There are more details of the
segments in `slides.md`, or you can see mostly the same stuff in
`course.py`.

This now contains all of the content from the v1 course, ensuring both
that we've covered everything and that we'll have somewhere to redirect
every page.

Fixes #1082.
Fixes #1465.

---------

Co-authored-by: Nicole LeGare <dlegare.1001@gmail.com>
Co-authored-by: Martin Geisler <mgeisler@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants