java icon indicating copy to clipboard operation
java copied to clipboard

Bowling: feedback exercise

Open antonmry opened this issue 5 years ago • 10 comments

I completed the bowling exercise but I found it a lot harder than all the previous exercises in the track. I can't imagine how it is for someone starting with the language.

The main exercise is fine but all the validations are quite tedious and I'm not sure if they are really teaching something. I took a look at most of the public solutions and there are many of them which are incomplete.

Also, there are exceptions which are tested only when launched from the score method but the test fails when they are launched from the roll method. This is hard to debug and probably it's an error.

Finally, the empty java file when you start it's named Bowling.java but I think it should be named BowlingGame.java.

IMHO this exercise should be moved to hard or delete all the test which are just doing validations of the rolls.

antonmry avatar Mar 12 '20 07:03 antonmry

BTW I will be happy to create a PR addressing this issue if there is a consensus about how to solve it.

Also, it's fine if you disagree and the issue is closed. I understand the complexity of the exercises isn't objective

antonmry avatar Mar 12 '20 08:03 antonmry

Thanks for this feedback @antonmry

Also, there are exceptions which are tested only when launched from the score method but the test fails when they are launched from the roll method. This is hard to debug and probably it's an error.

Good catch. The canonical data shows which method should be causing the exception and some of the tests should throw from the roll method so those tests should not be calling the score method at all.

Finally, the empty java file when you start it's named Bowling.java but I think it should be named BowlingGame.java.

Agreed. Even the reference solution caught this and fixed it, but we never fixed the stub file.

IMHO this exercise should be moved to hard or delete all the test which are just doing validations of the rolls.

So, all of the tests come from the canonical data, so we are unlikely to change those: https://github.com/exercism/problem-specifications/blob/master/exercises/bowling/canonical-data.json

That said, I have no problem with considering this to be a hard exercise (it already is marked as difficulty 6). Some of the track structure is about to change anyway with v3. That said, I think the bigger issue is that this gets unlocked by "scrabble-score" which is relatively quite easy (difficulty 3). It should probably not get unlocked until something more like "bank-account". With that said, there are a lot of much more difficult exercises that get unlocked by the easy ones so there is lots of room for improvement on that front.

BTW I will be happy to create a PR addressing this issue if there is a consensus about how to solve it.

Please feel free to send a PR to clean up these issues. Maybe leave the difficulty one for a separate PR from the other cleanup stuff.

jmrunkle avatar Apr 14 '20 15:04 jmrunkle

I fixed a few of these issues while migrating to assertThrows but there is still more to fix here. In particular

  1. the difficulty should probably be increased
  2. the stub java file should be renamed as BowlingGame.java

jmrunkle avatar Apr 23 '20 17:04 jmrunkle

Thanks @jmrunkle. I have created a PR to address the rename of Bowling.java: https://github.com/exercism/java/pull/1827

Regarding the difficulty, it would be great to have feedback from other developers.

antonmry avatar Apr 24 '20 06:04 antonmry

Unfortunately, there's not a lot of other active maintainers on the Java track. If this were an issue that affected more than one exercise, I'd be inclined to try getting them involved. For a single-exercise issue, you can accept the opinions of one maintainer.

jmrunkle avatar Apr 24 '20 14:04 jmrunkle

I would like to join the java track to provide assistance. If you feel this is a good first issue, I can take it.

stavoxnetworks avatar Nov 14 '20 04:11 stavoxnetworks

Hi @stavoxnetworks if you are interesting to contribute regularly on Java Track. I propose you this issue.

https://github.com/exercism/v3/issues/1994

Exercism maintainers of all tracks are working hard to move tracks to new platform version (v3). Java track needs a lot of help to gain this result. Every help is welcome

If you need help or more details put a comment into the signaled issue

mirkoperillo avatar Nov 16 '20 08:11 mirkoperillo

This issue has been automatically marked as action/stale because it has not had recent activity. Please update if there are new updates to provide.

github-actions[bot] avatar Sep 24 '21 03:09 github-actions[bot]

I solved this exercise yesterday so I could address this issue. In my defence, and so you can have an idea of my capacities, I never worked professionally as a programmer, I don't know design patterns or algorithms.

I have all the challenges available to me, except one, I believe it's the problem being solved with issue #2081.

Captura de ecrã 2022-01-16, às 20 56 38

About the difficulty, I spent less than four hours solving the challenge, my first solution with an array and booleans would not be enough. So I redid everything to use TreeMaps, I believe the tests as they stand now are really good and we can use them clearly as a guide to evolve the solution, the only difficulty was the time, the instructions are also easy to follow.

I took less than 15 minutes to solve scrabble, is difficulty 7 hard @jmrunkle?

AlbusPortucalis avatar Jan 16 '22 20:01 AlbusPortucalis

This issue has been automatically marked as action/stale because it has not had recent activity. Please update if there are new updates to provide.

github-actions[bot] avatar Apr 17 '22 03:04 github-actions[bot]