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
campers hardcoding solutions for final projects #54063
Comments
One option could be trying to join the two, when that's possible. Taking the same example as above:
|
note, it's not only an issue for the Pokémon search app, I have seen this for the palindrome checker and the roman numeral converter too |
Yeah, campers seem to be struggling really hard with how to create original functions that meet the user story outcomes here. This isn't wholly surprising, as up to the point where they get to the first project (and some of the later projects) they no longer encounter places where we ask them to generate small functions to accomplish a task. I think the fix is twofold. One, we need to test for and prohibit testing to the solutions. Second, we need to give campers smaller opportunities to build single functions from scratch that meet a tested objective - maybe something that looks like https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/#basic-javascript 🙃 |
Yeah something like that basic JavaScript path would be great before we get to the html/css/javascript projects considering their bulky size. As for the prohibiting testing to the solutions, I like the idea of a hidden test with additional inputs the code is tested against rather making all the tests generic. Some specific actual tests are nice so we can run the code right there and see a response in the console. If they're not coding just towards the solution, then those additional inputs will work and everything will be fine. |
that is why the new intro project is being created |
I vote for this approach
A combination of generic and specific user stories would be ideal |
That's a good project but it's one project though. I'm proposing that we give back the campers the opportunities to do many small one off functions to practice open ended problem solving before they get to the certification projects. |
Yeah, I see where you are coming from. A new GitHub issue would have to be opened for this particular discussion and the rest of the JS team would need to weigh in 👍 |
Generic tests could also add some randomness to the equation. Either by picking test case from a specific set test cases/results, or a more generated test case. For example: Pokémon Search App:
Roman Numeral Converter:
Palindrome Checker:
|
that last one, it can be also used to test palindromes: generate 4 letters, reverse the order and concat the two together: voilá a palindrome |
Exactly, and with minimal care, the risk of generating confusing inputs (ie. during one try with generated input There's one more thing that occurred to me. When User Stories are taken literally, it might be hard to say that hardcoded solution is not fulfilling them. (Leaving out the obvious fact that project is not functional at all). Below the user stories, there's line:
Which still technically is accomplished with hardcoding. Perhaps user stories should additionally be changed to have only the general versions, while leaving detailed examples to tests? Or present test cases more explicitly as examples in user stories ie.:
|
I like the idea of language that explains both the goal and the test. Just gotta be careful to phrase it clearly and simply but that would focus first on the target functionality |
The JavaScript final projects have an issue, I don't know if how they are written, there are really specific user stories and no general one. Anyway, it's scarely common that campers try hardcoding the solutions. Should we try to write tests that discourage this?
Or, alternatively, more generic userstories that explain the thing better?
Like, we have
But there isn't a more generic user story that is explicit on the requirement.
The text was updated successfully, but these errors were encountered: