-
Notifications
You must be signed in to change notification settings - Fork 520
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
problems.md: Remove topics #242
Merged
petertseng
merged 5 commits into
exercism:master
from
petertseng:rm-topics-from-problems-md
Jan 8, 2017
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
9e6faae
problems.md: Remove topics
petertseng c91e08c
problems.md: Collapse problem lists into single sentence
petertseng ed5518d
problems.md: rename to problem_ordering.md
petertseng 12b5415
problem_ordering.md: Describe approach abstractly
IanWhitney 9e4a3a1
problem_ordering: spelling s/knowlegde/knowledge
petertseng File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# Rust Track Problem Order | ||
|
||
The actual source of truth of problem order and topics is [config.json](config.json), but this file documents our reasoning behind the problem order in that file. | ||
|
||
## Background | ||
|
||
- https://github.com/exercism/xrust/issues/126 | ||
- https://github.com/exercism/xrust/issues/127 | ||
- http://designisrefactoring.com/2016/07/09/exercism-shouldnt-make-you-cry/ | ||
|
||
## Our Approach | ||
|
||
We order our problems for students who are learning Rust. With that audience in mind, we follow two rules when adding new problems. | ||
|
||
- A exercise should introduce one new concept | ||
- Exercises should progress from Rust basics to advanced Rust concepts | ||
|
||
### One New Concept | ||
|
||
If a problem solution requires students to use both `Result` and `HashMap`, then at least one of these concepts should be introduced by an earlier problem. | ||
|
||
If the track has several problems that rely on a concept, group them together to reinforce learning. | ||
|
||
### Progress Through Rust | ||
|
||
#### Early Problems | ||
|
||
Early problems should focus on Rust syntax and concepts that are present in many programming languages: conditionals, looping, higher-order-functions. | ||
|
||
#### Middle Problems | ||
|
||
Problems in the middle of the of the track should introduce concepts that are less common. `Result` and `Option` and Traits, for example. Or syntax such as `while let`. | ||
|
||
Through the middle section of the track students should gain familiarity with a wide range of Rust concepts. | ||
|
||
#### Later Problems | ||
|
||
Problems late in the track should do one of two things: | ||
|
||
1. Introduce advanced concepts -- Lifetimes, Concurrency, Unsafety | ||
2. Require a complex solution that synthesizes all the knowledge students have gained to date |
This file was deleted.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it gives me a bit of pause to see higher-order functions in the same sentence. But why is that? I realized:
Result
andOption
... because I usually associate higher-order functions,Result
, andOption
all with functional programming.Result
orOption
(the latter two need static typing to really make sense)So despite my "weird" feeling, the sentence is correct and I've no change to suggest. I just wanted to share the feeling.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think HOF will depend entirely on the students' background. Those coming from Ruby/JS/Python/Java 8 will be familiar. I think they are becoming pretty standard, though that might just be my years of Ruby speaking.