Skip to content

Commit 65e86ee

Browse files
authored
Rework etl documentation (#2250)
* Rework etl documentation This PR is part of our project of making our Practice Exercises more consistent and human. For more context please see the following forum-thread: https://forum.exercism.org/t/new-project-making-practice-exercises-more-consistent-and-human-across-exercism/3943 The main change is to use a made-up game instead of Scrabble, and use localization as the pretext for the story. * Update exercises/etl/metadata.toml
1 parent f9d58cb commit 65e86ee

File tree

5 files changed

+46
-43
lines changed

5 files changed

+46
-43
lines changed

exercises/etl/canonical-data.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"exercise": "etl",
33
"comments": [
4-
"Transforms a set of legacy Scrabble data stored as letters per score",
4+
"Transforms a set of legacy Lexiconia data stored as letters per score",
55
"to a set of data stored score per letter.",
66
"Note: The expected input data for these tests should have",
77
"integer keys (not stringified numbers as shown in the JSON below",

exercises/etl/description.md

Lines changed: 0 additions & 40 deletions
This file was deleted.

exercises/etl/instructions.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Instructions
2+
3+
Your task is to change the data format of letters and their point values in the game.
4+
5+
Currently, letters are stored in groups based on their score, in a one-to-many mapping.
6+
7+
- 1 point: "A", "E", "I", "O", "U", "L", "N", "R", "S", "T",
8+
- 2 points: "D", "G",
9+
- 3 points: "B", "C", "M", "P",
10+
- 4 points: "F", "H", "V", "W", "Y",
11+
- 5 points: "K",
12+
- 8 points: "J", "X",
13+
- 10 points: "Q", "Z",
14+
15+
This needs to be changed to store each individual letter with its score in a one-to-one mapping.
16+
17+
- "a" is worth 1 point.
18+
- "b" is worth 3 points.
19+
- "c" is worth 3 points.
20+
- "d" is worth 2 points.
21+
- etc.
22+
23+
As part of this change, the team has also decided to change the letters to be lower-case rather than upper-case.
24+
25+
~~~~exercism/note
26+
If you want to look at how the data was previously structured and how it needs to change, take a look at the examples in the test suite.
27+
~~~~

exercises/etl/introduction.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Introduction
2+
3+
You work for a company that makes an online multiplayer game called Lexiconia.
4+
5+
To play the game, each player is given 13 letters, which they must rearrange to create words.
6+
Different letters have different point values, since it's easier to create words with some letters than others.
7+
8+
The game was originally launched in English, but it is very popular, and now the company wants to expand to other languages as well.
9+
10+
Different languages need to support different point values for letters.
11+
The point values are determined by how often letters are used, compared to other letters in that language.
12+
13+
For example, the letter 'C' is quite common in English, and is only worth 3 points.
14+
But in Norwegian it's a very rare letter, and is worth 10 points.
15+
16+
To make it easier to add new languages, your team needs to change the way letters and their point values are stored in the game.

exercises/etl/metadata.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
title = "ETL"
2-
blurb = "We are going to do the `Transform` step of an Extract-Transform-Load."
3-
source = "Exercise by the JumpstartLab team for students at The Turing School of Software and Design."
2+
blurb = "Change the data format for scoring a game to more easily add other languages."
3+
source = "Based on an exercise by the JumpstartLab team for students at The Turing School of Software and Design."
44
source_url = "https://turing.edu"

0 commit comments

Comments
 (0)