-
Notifications
You must be signed in to change notification settings - Fork 544
Large jump in difficulty when tournament challenge is reached #174
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
Comments
We currently follow the standard test suite. You're right that it it's more of a big-bang integration test than a collection of fine-grained unit tests. I would love to see a proposal for a new test suite over in x-common As for the Rust placement -- until #152 the Tournament exercise was later in the track. But once we removed the File IO part of the code we felt it was safe to move it up. I'm fine with moving it later, I just want to understand the problems people are having with it. I haven't done Tournament, so I have not looked at the solutions students have provided. That means my only reference for how to solve this problem is the example. Judging by that, it's certainly a complex solution but it doesn't introduce a lot of new Rust ideas. But that's only the example. Maybe students are solving this in different ways, ways that introduce a bunch of new Rust concepts all at once. What was your experience solving it? Were the problems you faced due more to Rust or to the lack of small-step tests? |
With my limited experience of Rust this was one of the first times I'd had to connect up several small components to perform a larger task. In other function languages this is simple but in Rust it means interacting with borrow checker more and designing function signatures. Perhaps this is the new concept? Coupled with the integration style tests rather than unit style tests it got tricky. I added tests where it would pass without the sorting functionality so I could approach the problem more incrementally. |
I would love to see the tests you wrote. I think the main problem with this exercise is the test suite. Once we have a better test suite we might spot a better place for the exercise. |
I've been reading a bunch about learning theory in the past few months, and one model of skill development / difficulty progression that I've come across looks something like this:
Even if someone can do all the isolated bits and pieces, integrating those pieces into a larger whole is a separate skill set (and not obvious). |
I'll see if any of my tests might be useful and open a PR to discuss. :) |
Actually now that I look I don't feel I have a test that really helps here. I would like to have one that allows the user to implement the board without the sorting functionality, I'm not sure you could do that unless there was one match between two teams with the same name, and they drew. |
My new candidate positions are somewhere in the last five problems of "getting Rusty" or the beginning of "Putting it all Together". I am having a hard time explaining this; it's a general feeling from how much work I think one would need to do on the input before being able to get the expected output. In tournament, you have to look at each line, parse it, look at the result, increment two win/draw/loss counts (one for each team that played). then at the end calculate scores and sort. wordy also has string parsing, maybe this tells us it should be brought closer there. |
That mirrors my experience. |
A PR to move it sounds like the next step to me. |
Exercises previous to tournament only really include one problem, while this one includes quite a few and includes a test suite that doesn't break the challenge down into the component parts.
This results in a rather sudden and uncomfortable jump in difficulty. I feel that the tournament challenge should be perhaps moved later in the series or simplified.
The text was updated successfully, but these errors were encountered: