summaryrefslogtreecommitdiff
path: root/old_curriculum/README-template.hbs
diff options
context:
space:
mode:
Diffstat (limited to 'old_curriculum/README-template.hbs')
-rw-r--r--old_curriculum/README-template.hbs190
1 files changed, 190 insertions, 0 deletions
diff --git a/old_curriculum/README-template.hbs b/old_curriculum/README-template.hbs
new file mode 100644
index 0000000..5cfec7f
--- /dev/null
+++ b/old_curriculum/README-template.hbs
@@ -0,0 +1,190 @@
+<!--
+{{ autogenerated_notice }}
+-->
+
+# rustlings
+
+Small exercises to get you used to reading and writing Rust code. Includes practice reading and
+responding to compiler messages!
+
+This repo is very much the smallest thing that could possibly work :)
+
+## To do these exercises
+
+Thanks to [btbytes'](https://twitter.com/btbytes) [prlinks](https://github.com/btbytes/prlink), you
+can now click on the links below to load the exercises in the rust playground!
+
+There are infinite correct answers-- the exercises are sometimes left very open-ended. Scroll down
+in the playground to find comments that have hints.
+
+If you need more help or would like to compare solutions, you can ask in [#rust-beginners on
+irc.mozilla.org](https://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-beginners ), the
+[user forum](https://users.rust-lang.org/), or [the subreddit](https://reddit.com/r/rust). If an
+exercise could be improved in any way, please [create an
+issue](https://github.com/carols10cents/rustlings/issues/new) or submit a pull request!
+
+### Variable bindings
+
+[Relevant chapter in The Rust Programming
+Language](https://doc.rust-lang.org/book/second-edition/ch03-01-variables-and-mutability.html)
+
+{{ playground_link "variables/variables1.rs" }}
+{{ playground_link "variables/variables2.rs" }}
+{{ playground_link "variables/variables3.rs" }}
+{{ playground_link "variables/variables4.rs" }}
+
+### Functions
+
+[Relevant chapter in The Rust Programming
+Language](https://doc.rust-lang.org/book/second-edition/ch03-03-how-functions-work.html)
+
+{{ playground_link "functions/functions1.rs" }}
+{{ playground_link "functions/functions2.rs" }}
+{{ playground_link "functions/functions3.rs" }}
+{{ playground_link "functions/functions4.rs" }}
+{{ playground_link "functions/functions5.rs" }}
+
+### Primitive types
+
+[Relevant chapter in The Rust Programming
+Language](https://doc.rust-lang.org/book/second-edition/ch03-02-data-types.html)
+
+{{ playground_link "primitive_types/primitive_types1.rs" }}
+{{ playground_link "primitive_types/primitive_types2.rs" }}
+{{ playground_link "primitive_types/primitive_types3.rs" }}
+{{ playground_link "primitive_types/primitive_types4.rs" }}
+{{ playground_link "primitive_types/primitive_types5.rs" }}
+{{ playground_link "primitive_types/primitive_types6.rs" }}
+
+### Tests
+
+Going out of order from the book to cover tests-- many of the following exercises will ask you to
+make tests pass!
+
+[Relevant chapter in The Rust Programming
+Language](https://doc.rust-lang.org/book/second-edition/ch11-01-writing-tests.html)
+
+{{ playground_link "tests/tests1.rs" }}
+{{ playground_link "tests/tests2.rs" }}
+{{ playground_link "tests/tests3.rs" }}
+{{ playground_link "tests/tests4.rs" }}
+
+### If
+
+[Relevant chapter in The Rust Programming
+Language](https://doc.rust-lang.org/book/second-edition/ch03-05-control-flow.html)
+
+{{ playground_link "if/if1.rs" }}
+
+### Strings
+
+[Relevant chapter in The Rust Programming
+Language](https://doc.rust-lang.org/book/second-edition/ch08-02-strings.html)
+
+{{ playground_link "strings/strings1.rs" }}
+{{ playground_link "strings/strings2.rs" }}
+{{ playground_link "strings/strings3.rs" }}
+
+### Move semantics
+
+These exercises are adapted from [pnkfelix]()'s [Rust
+Tutorial](https://pnkfelix.github.io/rust-examples-icfp2014/) -- thank you Felix!!!
+
+Relevant chapters in the book:
+
+- [Ownership](https://doc.rust-lang.org/book/second-edition/ch04-01-what-is-ownership.html)
+- [References and borrowing](https://doc.rust-lang.org/book/second-edition/ch04-02-references-and-borrowing.html)
+
+Note that the exercises in this section may look similar to each other but they are subtly
+different :)
+
+{{ playground_link "move_semantics/move_semantics1.rs" }}
+{{ playground_link "move_semantics/move_semantics2.rs" }}
+{{ playground_link "move_semantics/move_semantics3.rs" }}
+{{ playground_link "move_semantics/move_semantics4.rs" }}
+
+### Modules
+
+[Relevant chapter in The Rust Programming
+Language](https://doc.rust-lang.org/book/second-edition/ch07-01-mod-and-the-filesystem.html)
+
+{{ playground_link "modules/modules1.rs" }}
+{{ playground_link "modules/modules2.rs" }}
+
+### Macros
+
+Check out:
+
+- [The Macros section of the first edition of the book
+ book](https://doc.rust-lang.org/book/first-edition/macros.html)
+- [The Macros appendix of the second edition of the
+ book](https://doc.rust-lang.org/book/second-edition/appendix-04-macros.html)
+- [The Little Book of Rust Macros](https://danielkeep.github.io/tlborm/book/index.html)
+
+{{ playground_link "macros/macros1.rs" }}
+{{ playground_link "macros/macros2.rs" }}
+{{ playground_link "macros/macros3.rs" }}
+{{ playground_link "macros/macros4.rs" }}
+
+### Error Handling
+
+The [Error
+Handling](https://doc.rust-lang.org/book/second-edition/ch09-02-recoverable-errors-with-result.html)
+and [Generics](https://doc.rust-lang.org/book/second-edition/ch10-01-syntax.html) sections are
+relevant.
+
+{{ playground_link "error_handling/option1.rs" }}
+{{ playground_link "error_handling/result1.rs" }}
+{{ playground_link "error_handling/errors1.rs" }}
+{{ playground_link "error_handling/errors2.rs" }}
+{{ playground_link "error_handling/errors3.rs" }}
+{{ playground_link "error_handling/errorsn.rs" }}
+
+### Standard library types
+
+#### `Arc`
+
+The [Concurrency](https://doc.rust-lang.org/book/second-edition/ch16-03-shared-state.html) section
+is relevant.
+
+{{ playground_link "standard_library_types/arc1.rs" }}
+
+#### Iterators
+
+Do not adjust your monitors-- iterators 1 and 2 are indeed missing. Iterator 3 is a bit challenging
+so we're leaving space for some exercises to lead up to it!
+
+Check out the [Iterators chapter of the
+book](https://doc.rust-lang.org/book/second-edition/ch13-02-iterators.html) and the [Iterator
+docs](https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html).
+
+{{ playground_link "standard_library_types/iterator3.rs" }}
+{{ playground_link "standard_library_types/iterators4.rs" }}
+
+### Threads
+
+See [the Dining Philosophers
+example](https://doc.rust-lang.org/1.4.0/book/first-edition/dining-philosophers.html) and the
+[Concurrency Chapter](https://doc.rust-lang.org/book/second-edition/ch16-01-threads.html) from the
+book.
+
+{{ playground_link "threads/threads1.rs" }}
+
+### Uncategorized
+
+A few exercises based on things I've encountered or had trouble with getting used to.
+
+{{ playground_link "ex1.rs" }}
+{{ playground_link "ex2.rs" }}
+{{ playground_link "ex3.rs" }}
+{{ playground_link "ex4.rs" }}
+{{ playground_link "ex5.rs" }}
+
+## To help with this repo/TODO list
+
+* File issues for problems or suggestions!
+* Contribute more exercises! Anything that took you time to get used to, or that you had trouble
+ with, or that deserves practice would be a good exercise!
+* How could the process of doing these exercises work better? This is an open-ended question :) Are
+ the playground links good enough? Are there ways that we could make going to the next exercise
+ easier without forking the playground??