Skip to content

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

Closed
lpil opened this issue Jul 28, 2016 · 9 comments
Closed

Large jump in difficulty when tournament challenge is reached #174

lpil opened this issue Jul 28, 2016 · 9 comments

Comments

@lpil
Copy link
Member

lpil commented Jul 28, 2016

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.

@IanWhitney
Copy link
Contributor

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?

@lpil
Copy link
Member Author

lpil commented Jul 28, 2016

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.

@IanWhitney
Copy link
Contributor

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.

@kytrinyx
Copy link
Member

kytrinyx commented Aug 1, 2016

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:

  1. isolated, individual skills
  2. integrating skills
  3. understanding context and knowing when something is appropriate

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).

@lpil
Copy link
Member Author

lpil commented Aug 1, 2016

I'll see if any of my tests might be useful and open a PR to discuss. :)

@lpil
Copy link
Member Author

lpil commented Aug 3, 2016

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.

@petertseng
Copy link
Member

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.

@lpil
Copy link
Member Author

lpil commented Aug 6, 2016

That mirrors my experience.

@IanWhitney
Copy link
Contributor

A PR to move it sounds like the next step to me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants