-
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
problems.md: Remove topics #242
Conversation
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.
As you can see, I have chosen not to add a sections.json yet since I'm not 100% convinced it's worth the time.
difference-of-squares | fold & map | ||
sum-of-multiples | algorithm, borrowing | ||
grains | math, panic | ||
* hello-world |
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.
Or alternatively, would "This section starts at hello-world
and ends at grains
" be acceptable? Might be less maintenance/duplication that way?
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.
Added that as a separate commit, see if we like it.
The "This section begins with..." seem like they'll go quickly out of date. How about something more abstract, that states our values without going into the exact implementation. https://gist.github.com/IanWhitney/3dc56aef520afe3146924b3552abdc52 is an idea |
Your proposal seems good to me, since it removes the last traces of duplication. So now, I have to ask: Do you mind if I start with that? I'll see if I have any changes to suggest. |
|
||
#### Early Problems | ||
|
||
Early problems should focus on Rust syntax and concepts that are present in many programming languages: conditionals, looping, higher-order-functions. |
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:
- It seems "weird" to put this in the section before
Result
andOption
... because I usually associate higher-order functions,Result
, andOption
all with functional programming. - And of these three, it does seem that higher-order functions take more effort to understand.
- However, maybe my estimates of the effort required to understand any concept in this sentence are wildly wrong.
- Finally, on further reflection, it is true in my experience that a language can have higher-order functions without either
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.
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 knowlegde students have gained to date |
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.
spelling of "knowledge"
spelling error in commit message s/hrad/hard/ |
History: Thanks to the hard work of #167 and #127, we have topics in problems.md that tell why we ordered problems a certain way. After #229 (motivated by #179), we copied the topics into config.json, since now all tracks can take advantage of the "topics" concept. To reduce duplication, we can remove topics from problems.md now. What's left in problems.md is a bit of prose explaining why we order our problems the way they do, and the division of the problems into sections. Closes #236
This reduces duplication and hopefully requires fewer changes to problems.md
Since it only has the ordering philosophy and not the actual topics, it's time to rename.
Specific statements of "This section begins with..." seem like they'll go quickly out of date. This commit uses something more abstract, that states our values without going into the exact implementation.
As noted in #195, difficulty rating is hard. This commit proposes a difficulty rating scale that should be completely unambiguous, requiring no judgment: In the last version of problems.md before it was rewritten in #242: * Everything in "Introduction" stays at 1. * Everything in "Getting Rusty" gets a 4. * Everything in "Rust Gets Strange" gets a 7. * Everything in "Putting it all Together" gets a 10. It is acknowledged that this is not a perfect difficulty scheme. See, for example, how many exercises are at 4. However, it is more accurate than leaving them all at 1 because it is generally true that those exercises in "Getting Rusty" are more difficult than those in "Introduction". It is a starting point from which further adjustments can be made. I posit that there is little motivation to adjust further until the difficulty ratings actually show up on the website, since until then they are just arbitrary numbers with no meaning. Closes #179.
History:
Thanks to the hard work of #167 and #127, we have topics in problems.md
that tell why we ordered problems a certain way.
After #229 (motivated by #179), we copied the topics into config.json,
since now all tracks can take advantage of the "topics" concept.
To reduce duplication, we can remove topics from problems.md now.
What's left in problems.md is a bit of prose explaining why we order our
problems the way they do, and the division of the problems into
sections.
Closes #236