Skip to content
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

[QUESTION] point subject - Report on an Error and Inconsistency in the "point" Assignment #2826

Open
Armani313 opened this issue Dec 12, 2024 · 1 comment
Assignees
Labels
🙋 question Questions or other issues

Comments

@Armani313
Copy link

point

Dear Developers,

While working on the "point" assignment, I discovered an issue in the instructions and requirements.

Assignment Description:

  1. Create a directory named point.
  2. Copy the provided code into a main.go file inside the point directory.
  3. Make the necessary changes so that the program works correctly, and the setPoint() function works with the int type.
  4. When the program runs, the expected output should be:
    x = 42, y = 21
    

However, the additional conditions state that github.com/01-edu/z01.PrintRune#4, --no-lit=[1-9] must be used. This requirement does not align with the core focus of the lesson. Using z01.PrintRune leads to a trivial direct printing of the answer, which contradicts the main objective of working with pointers and types. Moreover, the --no-lit=[1-9] option does not clearly fit into the logic of the original assignment and creates confusion.

Issues:

  1. Mismatch with the assignment goal:
    The primary purpose of the exercise, as indicated, is to manipulate a point structure and pointers to it, not to use a particular output method like z01.PrintRune.

  2. Lack of clarity regarding additional conditions:
    The instructions to use z01.PrintRune and --no-lit=[1-9] are neither explained nor logically connected to the rest of the assignment.

  3. Unclear objectives:
    It’s not evident why using an external printing package (z01.PrintRune) is required if the standard fmt.Printf function already achieves the expected result.

Suggestion:

I kindly ask you to reconsider the necessity of these additional output constraints. If the aim of the assignment is to reinforce the understanding of pointers, structures, and types, then using z01.PrintRune adds no real educational value. Instead, it only complicates the task and raises unnecessary questions. It would be beneficial either to clearly explain why z01.PrintRune must be used or to remove this requirement altogether, focusing the assignment on its core objectives.

Thank you for your attention. I hope you will review the assignment conditions to make them more understandable and coherent.

Sincerely, Arman Toleshbekov

@HarryVasanth HarryVasanth changed the title point subject - Report on an Error and Inconsistency in the "point" Assignment [QUESTION] point subject - Report on an Error and Inconsistency in the "point" Assignment Dec 12, 2024
@HarryVasanth HarryVasanth added the 🙋 question Questions or other issues label Dec 12, 2024
@MSilva95
Copy link
Member

Hello @Armani313!
To clarify, the additional conditions involving github.com/01-edu/z01.PrintRune#4 and --no-lit=[1-9] are not meant to detract from the core focus of the assignment working with pointers and structures. Instead, they serve a specific purpose: to ensure that students do not hardcode the solution by directly printing the answer with multiple z01.PrintRune calls like so:

func main() {
	points := &point{}

	setPoint(points)

	// This approach hardcodes the output and bypasses logical implementation
	z01.PrintRune('x')
	z01.PrintRune(' ')
	z01.PrintRune('=')
	z01.PrintRune(' ')
	z01.PrintRune('4')
	z01.PrintRune('2')
	z01.PrintRune(',')
	z01.PrintRune(' ')
	z01.PrintRune('y')
	z01.PrintRune(' ')
	z01.PrintRune('=')
	z01.PrintRune(' ')
	z01.PrintRune('2')
	z01.PrintRune('1')
	z01.PrintRune('\n')
}

The first check github.com/01-edu/z01.PrintRune#4 ensures that students are allowed to call z01.PrintRune only 4 times in total, meanwhile, --no-lit=[1-9] prevents the use of literal integers like '4', '2', '1' as hardcoded values.

To summarize, the checks are not meant to force you to use z01.PrintRune, but rather to prevent hard-coding the output when you do use it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🙋 question Questions or other issues
Projects
None yet
Development

No branches or pull requests

3 participants