Skip to content

[List Ops]: Review/Improve Exercise #3156

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
BethanyG opened this issue Aug 10, 2022 · 2 comments
Closed

[List Ops]: Review/Improve Exercise #3156

BethanyG opened this issue Aug 10, 2022 · 2 comments
Assignees

Comments

@BethanyG
Copy link
Member

This is a tracking issue for reviewing and improving the List Ops practice exercise for Python.

Please see issues #3142, #3141 (with the related #2078 in problem-specifications), and #3154 for details and discussion on some explanations/clarity that's needed.

In particular, there are the following issues:

  1. concat instructions seem unclear, and could be mis-interpreted to mean "fully unpack". ([List Ops]: def concat(lists) possible test error #3142)
  2. foldr is not fully explained, and can lead to confusion ([LIst Ops] Wrong test case in list-ops exercise (python) #3084)
  3. Unclear if append requires a new list or the mutation of either list A or list B ([List Ops]: Potential mismatch between instructions and tests #3141)
  4. Unclear what is "allowed" and "disallowed" when re-implementing list operations. Are all common sequence operations off the table? Are built-ins? What sort of variations should the student explore? ([List Ops]: clarity about what operations we are permitted to use #3154)

As discussed in #2078, there are several avenues we could take in clarifying/filling out this exercise:

  1. An instruction append, along the lines of this exercise -- not that we have to be that imperative, but we can add a few instructions/variations. As noted in the discussion in [List Ops]: clarity about what operations we are permitted to use #3154, we probably don't want to do anything that might "give away" a specific solution, but we could always suggest/encourage thinking about certain modules, approaches, or functions in a hinty sort of way.
  2. A hints.md file, similar to the one for this exercise. I especially like the opening paragraph that reminds the student that there are multiple paths/strategies. We might outline useful groups of functions or modules at different "levels" of difficulty. Again, these would probably be in the form of questions like "how might x help you to not use the + operator here??" or "could y help you out with this?"
  3. A set of mentor notes (see the website-copy repo for examples for Python). In the mentor notes, we could encourage mentors to nudge students to challenge themselves with one or more variations on the exercise.
  4. Some additional Python-specific tests that nudge a student in a particular direction. We'd want to be careful to not fish for a specific implementation, so this approach might be limited.
@github-actions

This comment was marked as resolved.

@BethanyG
Copy link
Member Author

BethanyG commented Jun 23, 2023

@BethanyG BethanyG self-assigned this Jun 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant