exercism / java

Exercism exercises in Java.
https://exercism.org/tracks/java
MIT License
693 stars 672 forks source link

Organization: adding prerequisites to practice exercises #1923

Closed mirkoperillo closed 10 months ago

mirkoperillo commented 3 years ago

One of the v3 migration requirements is to add what concepts are prerequisites for face with the practice exercise. here more details

The goal of this issue is to give a sort of general overview on this task. We should improve the configuration of 120 exercise. The idea is to claim in a comment of this issue a set of exercise to work on, to avoid some overlapping of work. We will tick every exercise already revisited.

ericbalawejder commented 3 years ago

This check list is a huge help. I started this issue a few weeks ago and stalled. I started with the first two exercises in the practice array of the config.json file to help understand the requirements.

"practice": [
      {
        "slug": "hello-world",
        "name": "Hello World",
        "uuid": "f77dc7e3-35a8-4300-a7c8-2c1765e9644d",
        "practices": [],
        "prerequisites": [],
        "difficulty": 1,
        "topics": [
          "strings"
        ]
      },
      {
        "slug": "two-fer",
        "name": "Two Fer",
        "uuid": "74515d45-565b-4be2-96c4-77e58efa9257",
        "practices": [],
        "prerequisites": [],
        "difficulty": 1,
        "topics": [
          "conditionals",
          "strings"
        ]
      },

I used the topics for practices. How should we go about adding more to the practices array?

From the docs: "Each prerequisite concept should have its own entry in the top-level "concepts" array."

I'm confused. Does this mean only one concept slug should be in the prerequisites array? Maybe I'm confusing concept (general) with the actual Concept exercise?

"practice": [
      {
        "slug": "hello-world",
        "name": "Hello World",
        "uuid": "f77dc7e3-35a8-4300-a7c8-2c1765e9644d",
        "practices": ["strings"],
        "prerequisites": ["lasagna"],
        "difficulty": 1
      },
      {
        "slug": "two-fer",
        "name": "Two Fer",
        "uuid": "74515d45-565b-4be2-96c4-77e58efa9257",
        "practices": ["conditionals", "strings"],
        "prerequisites": ["squeaky-clean"],
        "difficulty": 1
      },
mirkoperillo commented 3 years ago

I'm confused. Does this mean only one concept slug should be in the prerequisites array?

No, a practice exercise could have more than one Concept prerequisite. This is the example in the documentation

{
  "exercises": {
    "practice": [
      {
        "uuid": "8ba15933-29a2-49b1-a9ce-70474bad3007",
        "slug": "leap",
        "name": "Leap",
        "practices": ["if-statements", "numbers", "operator-precedence"],
        "prerequisites": ["if-statements", "numbers"],
        "difficulty": 1
      }
    ]
  }
}

There are 2 concepts as prerequisites of the practice exercise. I hope to understand right your doubts

github-actions[bot] commented 3 years ago

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.