Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
How does one measure how basic something is? Would bitshifts and loops be more basic or less basic? I think sticking to "other" might be better here.
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.
Good point. We can't. I didn't really think much about that for two reasons:
So, if we want to avoid any kind of comparison —which might be preferable— we could simply say 'other tools.' If a comparison is still desired, I’m personally indifferent.
Thoughts, maintainers?
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 feel that other tools/approaches fits better in this case.
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.
"other tools" sounds good to me!
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.
On Sun, Nov 17, 2024 at 09:30:28AM -0800, Isaac Good wrote:
That seems excessive, especially if you choose to write a library
function not using the built in bit-count functionality provided by your
standard library.
I agree with the "other tools" approach, for sure.
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.
Keeping what we have on Problem Specifications is also an option. The wording is a suggestion, a request, rather than a restriction, the restriction would be in the tests, if those restrictions exist.
Is a comment needed for that in general? Based on the solutions I have seen that ignore the suggestion, it seems that it is generally interpreted as a suggestion rather than a restriction.
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.
If we don't have a consensus here, it might be best to bump this back to the forum to discuss until we can agree on something.
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 don't know how it is interpreted. All I see is a clear restriction stated in a very aggressive manner.
Restrictions: Keep your hands off that bit-count functionality provided by your standard library!
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.
Well, folks, I don’t know. The only thing I'll say is that those instructions didn't achieve what they were supposed to. My reasoning for this is outlined in my initial forum post.
Regarding the wording, while I agree that it matters, for this particular exercise, once someone reads the phrase "Avoid ... that directly counts the number of bits" they'll immediately understand the restriction because it clearly conveys the intent. In contrast, terms like "bit-count functionality" can easily be misinterpreted, as "functionality" implies a broad range of things. In fact, it's even worse than using the word function.
That said, none of the terms — function, functionality, or more basic tools—seems likely to make a significant difference here. As I mentioned earlier, the purpose of the restriction is to specify what cannot be used, not what can.
Additionally, the second sentence — Instead, try solving this yourself using other tools — feels superfluous at this point.
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.
This basically outlines why I think that an append file would be the better solution, as it can be directed to the specific language track, and that restriction is very much dependent on the language, in terms of what should or should not be used in that track. Those specifics can be addressed more locally than Problem Specifications can.
I get the wording "Restrictions" is pretty strong, yet no matter how we communicate to the student, it is up to them to determine where they get the value of "learning" from, even if it contradicts the restriction and the learn something by using something that is restricted. In terms of "absolutes" there are ways to more directly restrict something programmatically, but also ways that a clever student can bypass those restrictions, and doing so may also provide learning opportunities to them.
It is not an easy problem.
The "confused me" problem is something that we likely deal with (OK, I deal with this) every day, and the solution to this is very often solving the problem (or not) but then submitting it for review and asking, which likely will give an opportunity for clarity.
As I mentioned in the forum, I would interpret this as "provide this functionality yourself", regardless of the "other tools" since solving this myself will provide that "other tool" at that point. Is it superfluous? By definition it definitely is as it is extra confirmation that the solution is "something other than a built in solution".