Comments (4)
And here's my first suggested order, grouped into sections just so I could explain why I put certain problems together:
Getting Started
This ordering feels pretty good to me. These problems tend to show up early in tracks and they don't seem to hit any of Rust's weirder edges.
problem | topics |
---|---|
hello-world | Some/None. Really? We did that in Hello World? |
gigasecond | Crates, type stuff. |
leap | Math, booleans |
raindrops | case (or formatting). Mutable string |
bob | chars, string functions |
beer-song | case, vector (?), loop |
difference-of-squares | fold & map |
Getting into Rust
Now we start to hit some more Rust-specific stuff. And the order here I'm less clear on.
problem | topics |
---|---|
hamming | result |
scrabble-score | chaining map/fold. Hashmap (maybe) |
nucleotide-count | filter, entry api, mutablity, match |
word-count | hashmap, str vs string, chars, entry api |
etl | btree |
sieve | vector, map, while let (optional) |
rna-transcription | match, struct, str vs string |
roman-numerals | mutable, results, loops, struct, traits |
hexadecimal | Option, zip/fold/chars, map |
grade-school | struct, entry api, Vec, Option |
queen-attack | struct, trait (optional), Result |
allergies | struct, enum, bitwise (probably), vectors, filter |
sublist | enum, generic over type |
phone-number | option, format, unwrap_or, iters, match |
custom-set | generic over type, vector, equality, struct |
Lifetimes
Now for the real Rust-specific stuff. We only have three exercises that require lifetimes. Anagrams is the easiest, since it doesn't use structs & randomness
problem | topics |
---|---|
anagram | lifetimes, str vs string, loops, iter, vector |
nucleotide-codons | struct, hash map, lifetimes, Result |
robot-name | struct, slices, randomness, lifetimes, self mut |
Putting it all together
These are the ones where I looked at the example code and said "I dunno what this is even doing." I have no opinion about the order of these, since I don't fully understand them.
problem | topics |
---|---|
minesweeper | board state, Vec, heavy logic |
dominoes | I do not even know, man |
parallel-letter-frequency | multi threading? heavy |
tournament | enum, file io, try!, result, hashmap, struct |
rectangles | traits and structs, enum |
forth | like, everything but lifetimes |
circular-buffer | same |
from rust.
@IanWhitney this is so good!
from rust.
I'm about to do a PR to add the Pangram exercise. My example implementation may not be the way most students go, so I'm not sure we can rely on it to figure out where the exercise should go.
But, most solutions will almost certainly use
- iterators
- Higher-order functions
- Sets
Based on that, I think it would go towards the start of the Getting Into Rust section. Somewhere in the first 3 problems.
from rust.
And #131, when it's ready for merge, should probably be in the 2nd half of Getting Into Rust. Somewhere around hexadecimal
, I think.
from rust.
Related Issues (20)
- Improve example solution testing scripts
- CamelCase test unintentionally removed from acronym exercise HOT 2
- Building a training set of tags for rust HOT 25
- Tests fail with no output HOT 16
- Tests don't pass when sending Cargo.toml with optional dependency HOT 1
- Remove all util functions from test files HOT 6
- Test in CI that stubs don't generate clippy warnings HOT 1
- Move more CI tests to rust tooling
- Concepts for this track are not displayed HOT 1
- word-count: change interface from u32 to usize
- test type_override fails even when correct solution is made in macros lesson HOT 1
- Performance issue about the Isogram problem approach HOT 1
- Add test that templates match generated test suite HOT 5
- One of two-bucket's test case is wrong HOT 3
- Improve exercise order HOT 1
- new test case for Phone Number HOT 2
- Wrong source link in the exercise `Reverse String` HOT 2
- protein-translation: adds extra codons without mentioning them in instructions HOT 2
- protein-translation: slightly confusing setup HOT 7
- grep exercise fails with implementation using clap on the grader HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust.