diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..ed8f4a432 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,9 @@ +version: 2 + +updates: + + # Keep dependencies for GitHub Actions up-to-date + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'daily' diff --git a/.github/workflows/configlet.yml b/.github/workflows/configlet.yml new file mode 100644 index 000000000..c86ed0cf5 --- /dev/null +++ b/.github/workflows/configlet.yml @@ -0,0 +1,16 @@ +name: Configlet CI + +on: [push, pull_request, workflow_dispatch] + +jobs: + configlet: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + + - name: Fetch configlet + uses: exercism/github-actions/configlet-ci@main + + - name: Configlet Linter + run: configlet lint diff --git a/bin/fetch-configlet b/bin/fetch-configlet index 915ee034d..43f1c83ce 100755 --- a/bin/fetch-configlet +++ b/bin/fetch-configlet @@ -1,52 +1,58 @@ -#!/bin/bash +#!/usr/bin/env bash set -eo pipefail readonly LATEST='https://api.github.com/repos/exercism/configlet/releases/latest' case "$(uname)" in - (Darwin*) OS='mac' ;; - (Linux*) OS='linux' ;; - (Windows*) OS='windows' ;; - (MINGW*) OS='windows' ;; - (MSYS_NT-*) OS='windows' ;; - (*) OS='linux' ;; + Darwin*) os='mac' ;; + Linux*) os='linux' ;; + Windows*) os='windows' ;; + MINGW*) os='windows' ;; + MSYS_NT-*) os='windows' ;; + *) os='linux' ;; esac -case "$OS" in - (windows*) EXT='zip' ;; - (*) EXT='tgz' ;; +case "${os}" in + windows*) ext='zip' ;; + *) ext='tgz' ;; esac case "$(uname -m)" in - (*64*) ARCH='64bit' ;; - (*686*) ARCH='32bit' ;; - (*386*) ARCH='32bit' ;; - (*) ARCH='64bit' ;; + *64*) arch='64bit' ;; + *686*) arch='32bit' ;; + *386*) arch='32bit' ;; + *) arch='64bit' ;; esac -if [ -z "${GITHUB_TOKEN}" ] -then - HEADER='' -else - HEADER="authorization: Bearer ${GITHUB_TOKEN}" +curlopts=( + --silent + --show-error + --fail + --location + --retry 3 +) + +if [[ -n "${GITHUB_TOKEN}" ]]; then + curlopts+=(--header "authorization: Bearer ${GITHUB_TOKEN}") fi -FILENAME="configlet-${OS}-${ARCH}.${EXT}" +suffix="${os}-${arch}.${ext}" -get_url () { - curl --header "$HEADER" -s "$LATEST" | - awk -v filename=$FILENAME '$1 ~ /browser_download_url/ && $2 ~ filename { print $2 }' | - tr -d '"' +get_download_url() { + curl "${curlopts[@]}" --header 'Accept: application/vnd.github.v3+json' "${LATEST}" | + grep "\"browser_download_url\": \".*/download/.*/configlet.*${suffix}\"$" | + cut -d'"' -f4 } -URL=$(get_url) +download_url="$(get_download_url)" +output_dir="bin" +output_path="${output_dir}/latest-configlet.${ext}" +curl "${curlopts[@]}" --output "${output_path}" "${download_url}" -case "$EXT" in - (*zip) - curl --header "$HEADER" -s --location "$URL" -o bin/latest-configlet.zip - unzip bin/latest-configlet.zip -d bin/ - rm bin/latest-configlet.zip - ;; - (*) curl --header "$HEADER" -s --location "$URL" | tar xz -C bin/ ;; +case "${ext}" in + *zip) unzip "${output_path}" -d "${output_dir}" ;; + *) tar xzf "${output_path}" -C "${output_dir}" ;; esac + +rm -f "${output_path}" diff --git a/config.json b/config.json index 02703a544..828947f77 100644 --- a/config.json +++ b/config.json @@ -1,898 +1,908 @@ { "language": "C", + "slug": "c", "active": true, + "status": { + "concept_exercises": false, + "test_runner": false, + "representer": false, + "analyzer": false + }, "blurb": "C is a small, general-purpose, imperative programming language with a static type system, scopes, and structures. It's typically used as an alternative to assembly programming, such as in operating systems.", + "version": 3, + "online_editor": { + "indent_style": "space", + "indent_size": 4 + }, "test_pattern": "test/test_.*[.]c", - "exercises": [ - { - "slug": "hello-world", - "uuid": "ee307061-5bc2-439c-8815-abd730aedc2d", - "core": true, - "auto_approve": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "strings" - ] - }, - { - "slug": "armstrong-numbers", - "uuid": "a4658ee9-b71c-4764-9652-7ed83d46516b", - "core": true, - "auto_approve": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "control_flow_if_else_statements", - "control_flow_loops", - "logic", - "math" - ] - }, - { - "slug": "darts", - "uuid": "a579e471-86f3-4f29-82ca-e984a2cc8891", - "core": false, - "auto_approve": true, - "unlocked_by": "armstrong-numbers", - "difficulty": 1, - "topics": [ - "control_flow_if_else_statements", - "logic", - "math" - ] - }, - { - "slug": "resistor-color", - "uuid": "75653d83-1a64-472c-ac43-49e87833c7f7", - "core": true, - "auto_approve": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "arrays", - "enums", - "pointers" - ] - }, - { - "slug": "resistor-color-duo", - "uuid": "93271b2e-8ad9-4e7d-8732-5988140e8c00", - "core": false, - "auto_approve": true, - "unlocked_by": "resistor-color", - "difficulty": 1, - "topics": [ - "arrays", - "enums" - ] - }, - { - "slug": "resistor-color-trio", - "uuid": "6cd7bb9c-2817-4c44-8bef-5f2916b2db2d", - "core": false, - "auto_approve": true, - "unlocked_by": "resistor-color", - "difficulty": 1, - "topics": [ - "arrays", - "enums", - "structs" - ] - }, - { - "slug": "isogram", - "uuid": "b3c9d339-60bc-48fe-84ba-77cbc0017a89", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "arrays", - "control_flow_if_else_statements", - "control_flow_loops", - "strings" - ] - }, - { - "slug": "acronym", - "uuid": "1a8ba121-d2c4-4994-8c6b-610d8987346d", - "core": false, - "unlocked_by": "isogram", - "difficulty": 1, - "topics": [ - "control_flow_loops", - "memory_management", - "strings" - ] - }, - { - "slug": "word-count", - "uuid": "1e4f4fcf-c32d-459f-8920-15ac56008666", - "core": false, - "unlocked_by": "isogram", - "difficulty": 3, - "topics": [ - "filtering", - "memory_management", - "strings", - "structs" - ] - }, - { - "slug": "pangram", - "uuid": "6311b9f8-b438-4186-88b2-1e4f55275ccb", - "core": false, - "unlocked_by": "isogram", - "difficulty": 3, - "topics": [ - "control_flow_if_else_statements", - "control_flow_loops", - "strings" - ] - }, - { - "slug": "gigasecond", - "uuid": "000340f6-e30d-4d49-a255-016237d6fe60", - "core": false, - "unlocked_by": "isogram", - "difficulty": 1, - "topics": [ - "dates" - ] - }, - { - "slug": "space-age", - "uuid": "fc03c7de-b0c6-4806-90bb-e9dda846e660", - "core": false, - "unlocked_by": "isogram", - "difficulty": 1, - "topics": [ - "functions" - ] - }, - { - "slug": "meetup", - "uuid": "a7baa53f-e828-457e-a456-ba3471494d80", - "core": false, - "unlocked_by": "hamming", - "difficulty": 4, - "topics": [ - "control_flow_if_statements", - "preprocessor_x_macros_in_test", - "strings", - "structs", - "time_functions" - ] - }, - { - "slug": "hamming", - "uuid": "fa5e6bbb-2eaf-484f-a5c5-de5cb2a9175b", - "core": true, - "unlocked_by": null, - "difficulty": 2, - "topics": [ - "arrays", - "control_flow_loops", - "strings" - ] - }, - { - "slug": "rna-transcription", - "uuid": "d12fea98-bf4e-476d-a91c-799fc98a1690", - "core": false, - "unlocked_by": "hamming", - "difficulty": 2, - "topics": [ - "control_flow_case_statements", - "control_flow_loops", - "strings" - ] - }, - { - "slug": "nucleotide-count", - "uuid": "38669990-e1e6-4486-a603-575a135d1f5c", - "core": false, - "unlocked_by": "hamming", - "difficulty": 2, - "topics": [ - "control_flow_loops_switch_if_statements", - "memory_management", - "strings", - "text_formatting" - ] - }, - { - "slug": "grains", - "uuid": "53959d50-efad-4911-84de-b67efe1bee5f", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "bitwise_operations", - "control_flow_loops", - "performance_optimizations" - ] - }, - { - "slug": "leap", - "uuid": "9b047dda-b85e-4378-9487-9f9cce086e4f", - "core": false, - "unlocked_by": "grains", - "difficulty": 1, - "topics": [ - "control_flow_if_else_statements", - "logic" - ] - }, - { - "slug": "beer-song", - "uuid": "c06789cb-cdd6-44a7-bee5-16e0d85e913a", - "core": false, - "unlocked_by": "grains", - "difficulty": 2, - "topics": [ - "control_flow_if_else_statements", - "control_flow_loops", - "strings" - ] - }, - { - "slug": "raindrops", - "uuid": "93acdd0d-9bd1-4dec-a572-fd12d0c66187", - "core": false, - "unlocked_by": "grains", - "difficulty": 2, - "topics": [ - "control_flow_if_else_statements", - "strings" - ] - }, - { - "slug": "bob", - "uuid": "b0feb5e2-eb94-4393-b60d-cf8a275d1860", - "core": false, - "unlocked_by": "grains", - "difficulty": 5, - "topics": [ - "control_flow_if_else_statements", - "strings" - ] - }, - { - "slug": "difference-of-squares", - "uuid": "9802cbc0-eb70-4840-b8ee-a228f1fc29ea", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "control_flow_loops", - "math" - ] - }, - { - "slug": "sum-of-multiples", - "uuid": "06a3660f-16b0-4391-939e-a9786887b0b2", - "core": false, - "unlocked_by": "difference-of-squares", - "difficulty": 4, - "topics": [ - "control_flow_case_statements", - "control_flow_loops", - "math" - ] - }, - { - "slug": "square-root", - "uuid": "0400f52d-48ae-4300-a72e-32e8a08514d0", - "core": true, - "unlocked_by": null, - "difficulty": 4, - "topics": [ - "bitwise_operations", - "control_flow_loops", - "math" - ] - }, - { - "slug": "grade-school", - "uuid": "68b1de28-7c3d-4e8c-ab51-7abe6779e187", - "core": true, - "unlocked_by": null, - "difficulty": 3, - "topics": [ - "arrays", - "control_flow_if_else_statements", - "control_flow_loops", - "pointers", - "sorting", - "strings", - "structs" - ] - }, - { - "slug": "binary-search", - "uuid": "db1771d2-afd8-4e01-9b6a-6be75029ef1d", - "core": true, - "unlocked_by": null, - "difficulty": 2, - "topics": [ - "arrays", - "control_flow_if_else_statements", - "control_flow_loops", - "searching" - ] - }, - { - "slug": "anagram", - "uuid": "0b64079a-7fec-42b4-bd2e-1b04dd4b7e6e", - "core": false, - "unlocked_by": "binary-search", - "difficulty": 5, - "topics": [ - "filtering", - "strings", - "structs" - ] - }, - { - "slug": "rational-numbers", - "uuid": "c3325db9-8067-4c2f-94b3-b5190b056d38", - "core": true, - "unlocked_by": null, - "difficulty": 5, - "topics": [ - "math", - "structs" - ] - }, - { - "slug": "roman-numerals", - "uuid": "6cde608f-9819-46cd-884b-dbda39a4fa16", - "core": false, - "unlocked_by": "grains", - "difficulty": 3, - "topics": [ - "arrays", - "control_flow_loops", - "memory_management", - "strings", - "structs" - ] - }, - { - "slug": "circular-buffer", - "uuid": "c54a33a3-8c6f-4964-b770-b602d207fa20", - "core": true, - "unlocked_by": null, - "difficulty": 3, - "topics": [ - "arrays", - "buffers", - "control_flow_if_else_statements", - "control_flow_loops", - "flexible_array_members", - "memory_management", - "pointers", - "structs" - ] - }, - { - "slug": "list-ops", - "uuid": "27a56356-d3ad-41d2-923c-2a58fbb36454", - "core": true, - "unlocked_by": null, - "difficulty": 3, - "topics": [ - "arrays", - "control_flow_if_else_statements", - "control_flow_loops", - "flexible_array_members", - "function_pointers", - "memory_management", - "pointers", - "structs" - ] - }, - { - "slug": "pythagorean-triplet", - "uuid": "7b7c61f4-2849-46b7-9057-900bb6b95052", - "core": true, - "auto_approve": true, - "unlocked_by": null, - "difficulty": 4, - "topics": [ - "arrays", - "control_flow_if_else_statements", - "control_flow_loops", - "flexible_array_members", - "memory_management", - "structs" - ] - }, - { - "slug": "saddle-points", - "uuid": "448f9137-4e58-4c26-9853-abe07f01c908", - "core": true, - "auto_approve": true, - "unlocked_by": null, - "difficulty": 4, - "topics": [ - "arrays", - "control_flow_if_else_statements", - "control_flow_loops", - "flexible_array_members", - "memory_management", - "structs" - ] - }, - { - "slug": "allergies", - "uuid": "871f1c41-debd-4807-8ee5-bde54c3918f8", - "core": true, - "unlocked_by": null, - "difficulty": 4, - "topics": [ - "control_flow_if_statements", - "control_flow_loops", - "memory_management", - "structs" - ] - }, - { - "slug": "atbash-cipher", - "uuid": "180f59f3-78ab-4368-9fa7-e3d98a9dca78", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 5, - "topics": [ - "control_flow_if_else_statements", - "control_flow_loops", - "strings" - ] - }, - { - "slug": "series", - "uuid": "40bcec79-7235-4ac6-b69f-8e3a6374188d", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 2, - "topics": [ - "control_flow_if_statements", - "memory_management", - "strings", - "text_formatting" - ] - }, - { - "slug": "react", - "uuid": "929b651e-2017-4f98-b2cb-1dc46c609703", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 10, - "topics": [ - "functions", - "memory_management" - ] - }, - { - "slug": "phone-number", - "uuid": "660d1586-c4e0-4537-94b5-455a983820f8", - "core": true, - "unlocked_by": null, - "difficulty": 4, - "topics": [ - "control_flow_if_else_statements", - "control_flow_loops", - "memory_management", - "strings" - ] - }, - { - "slug": "clock", - "uuid": "b868eeff-400c-4e46-8675-10d85c14b503", - "core": true, - "unlocked_by": null, - "difficulty": 2, - "topics": [ - "control_flow_if_statements", - "preprocessor_x_macros_in_test", - "strings", - "text_formatting" - ] - }, - { - "slug": "sieve", - "uuid": "fb2530a3-cbbf-4ba9-88d0-203faac03e96", - "core": true, - "unlocked_by": null, - "difficulty": 2, - "topics": [ - "control_flow_if_statements", - "math", - "memory_management" - ] - }, - { - "slug": "nth-prime", - "uuid": "a0a703b2-244b-4739-b318-b837618b1047", - "core": false, - "unlocked_by": "sieve", - "difficulty": 4, - "topics": [ - "control_flow_if_else_statements", - "control_flow_loops", - "math", - "performance_optimizations" - ] - }, - { - "slug": "robot-simulator", - "uuid": "e665da31-fda2-4bce-94e9-7d79dffdef14", - "core": true, - "unlocked_by": null, - "difficulty": 2, - "topics": [ - "control_flow_if_statements", - "pointers", - "strings", - "structs", - "variable_argument_lists" - ] - }, - { - "slug": "pascals-triangle", - "uuid": "be19352f-1b63-4673-9a2d-e763ee807741", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "control_flow_if_else_statements", - "math", - "memory_management" - ] - }, - { - "slug": "triangle", - "uuid": "5c6bc8d2-2509-471a-993c-a5bf9d030ca7", - "core": false, - "unlocked_by": "pascals-triangle", - "difficulty": 1, - "topics": [ - "booleans", - "control_flow_if_else_statements", - "structs" - ] - }, - { - "slug": "perfect-numbers", - "uuid": "a1168a15-d46f-4541-8b58-68bca0c54733", - "core": false, - "unlocked_by": "pascals-triangle", - "difficulty": 1, - "topics": [ - "control_flow_if_else_statements", - "math" - ] - }, - { - "slug": "collatz-conjecture", - "uuid": "5a47f8a5-36a1-4479-bb77-ef5fbab4bae0", - "core": false, - "unlocked_by": "pascals-triangle", - "difficulty": 2, - "topics": [ - "functions", - "math" - ] - }, - { - "slug": "binary", - "uuid": "8621177c-1068-4610-bf5b-26cf23340ae6", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "control_flow_if_statements", - "control_flow_loops", - "math" - ] - }, - { - "slug": "all-your-base", - "uuid": "e3574f75-89cb-4dda-8fce-14ce3141b595", - "core": false, - "unlocked_by": "binary", - "difficulty": 3, - "topics": [ - "arrays", - "control_flow_if_else_statements", - "control_flow_loops", - "math" - ] - }, - { - "slug": "palindrome-products", - "uuid": "8dd43f6c-37ba-42b1-bb85-9ad693e4ce03", - "core": false, - "unlocked_by": "binary", - "difficulty": 2, - "topics": [ - "functions", - "math", - "pointers", - "strings", - "structs" - ] - }, - { - "slug": "sublist", - "uuid": "a19acc6f-2530-434d-9c98-2d8d4ca635d3", - "core": false, - "unlocked_by": "binary", - "difficulty": 4, - "topics": [ - "arrays", - "control_flow_if_statements", - "control_flow_loops", - "pointers", - "searching" - ] - }, - { - "slug": "largest-series-product", - "uuid": "4b5974fe-dcff-4542-ad3e-2782201cba1e", - "core": false, - "unlocked_by": "binary", - "difficulty": 5, - "topics": [ - "control_flow_loops", - "math", - "performance_optimizations", - "strings" - ] - }, - { - "slug": "scrabble-score", - "uuid": "8c631290-13b7-4d25-9ee7-ced2e534deb4", - "core": false, - "unlocked_by": "binary", - "difficulty": 4, - "topics": [ - "pointers", - "searching", - "strings", - "structs" - ] - }, - { - "slug": "queen-attack", - "uuid": "b0a152e9-5a45-41f9-bda0-427111d9a56c", - "core": true, - "unlocked_by": null, - "difficulty": 1, - "topics": [ - "control_flow_if_statements", - "enums", - "functions", - "structs" - ] - }, - { - "slug": "linked-list", - "uuid": "58107e5f-8091-4429-9130-13f2c7dac9a9", - "core": true, - "unlocked_by": null, - "difficulty": 4, - "topics": [ - "functions", - "lists", - "pointers", - "structs" - ] - }, - { - "slug": "complex-numbers", - "uuid": "472b1a6b-2b7a-4609-a97d-4c2b6c941a1f", - "core": false, - "unlocked_by": "difference-of-squares", - "difficulty": 2, - "topics": [ - "math", - "performance_optimizations", - "structs" - ] - }, - { - "slug": "etl", - "uuid": "9b6faac9-10dd-46ff-9d29-7242e74f5c06", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 2, - "topics": [ - "pointers", - "structs" - ] - }, - { - "slug": "prime-factors", - "uuid": "f34db12c-7acc-4287-92a6-c077938512d7", - "core": false, - "unlocked_by": "sieve", - "difficulty": 2, - "topics": [ - "algorithms", - "math" - ] - }, - { - "slug": "luhn", - "uuid": "8c0762e6-702e-4733-a0a1-65099e2a46f7", - "core": false, - "unlocked_by": "pascals-triangle", - "difficulty": 2, - "topics": [ - "algorithms", - "strings" - ] - }, - { - "slug": "matching-brackets", - "uuid": "cd573670-54da-4291-ab78-afd5d77fbeac", - "core": false, - "unlocked_by": "isogram", - "difficulty": 5, - "topics": [ - "control_flow_if_statements", - "recursion", - "stacks" - ] - }, - { - "slug": "say", - "uuid": "523fa391-08d4-4c4e-95e6-20335cd157a0", - "core": false, - "unlocked_by": "circular-buffer", - "difficulty": 6, - "topics": [ - "algorithms", - "control_flow_if_statements", - "strings" - ] - }, - { - "slug": "crypto-square", - "uuid": "23c2a169-eea2-4636-af62-4a77a4dc3d7b", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 6, - "topics": [ - "algorithms", - "control_flow_if_statements", - "strings" - ] - }, - { - "slug": "secret-handshake", - "uuid": "119c20a6-849f-412e-b0a6-113a2cedc72d", - "core": false, - "unlocked_by": "hamming", - "difficulty": 3, - "topics": [ - "algorithms", - "control_flow_if_statements", - "strings" - ] - }, - { - "slug": "pig-latin", - "uuid": "62f539e7-f682-412d-bf86-38503e7cebca", - "core": false, - "unlocked_by": "hamming", - "difficulty": 4, - "topics": [ - "algorithms", - "control_flow_if_statements", - "functions", - "strings" - ] - }, - { - "slug": "minesweeper", - "uuid": "2e97072f-9e77-4ddd-9d75-6162a927bab1", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 3, - "topics": [ - "arrays", - "control_flow_if_statements", - "strings" - ] - }, - { - "slug": "run-length-encoding", - "uuid": "b22152b9-99d1-411c-8cf2-f89e8f5f8141", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 4, - "topics": [ - "algorithms", - "control_flow_if_statements", - "strings" - ] - }, - { - "slug": "two-fer", - "uuid": "15653c72-5468-415f-9425-6c58d552d346", - "core": false, - "unlocked_by": "grains", - "difficulty": 1, - "topics": [ - "control_flow_if_statements", - "strings" - ] - }, - { - "slug": "wordy", - "uuid": "c1392944-08fd-45c3-b508-41d682f832d3", - "core": false, - "unlocked_by": "grains", - "difficulty": 4, - "topics": [ - "algorithms", - "control_flow_if_statements", - "functions", - "strings" - ] - }, - { - "slug": "binary-search-tree", - "uuid": "1b33f528-8f29-4582-a268-07be2d1a4516", - "core": false, - "unlocked_by": "binary-search", - "difficulty": 6, - "topics": [ - "arrays", - "control_flow_loops", - "recursion", - "structs" - ] - }, - { - "slug": "diamond", - "uuid": "8605a296-1c67-4723-84ac-3a25d77ed015", - "core": false, - "unlocked_by": "phone-number", - "difficulty": 3, - "topics": [ - "arrays", - "control_flow_if_statements", - "functions", - "strings" - ] - }, - { - "slug": "rail-fence-cipher", - "uuid": "314dcf23-9cd9-4488-b53e-6dee1b303980", - "core": false, - "unlocked_by": "isogram", - "difficulty": 4, - "topics": [ - "arrays", - "control_flow_if_statements", - "strings" - ] - }, - { - "slug": "two-bucket", - "uuid": "d8ecb4c4-2af2-423c-9f39-4adab687ecd6", - "core": false, - "unlocked_by": "grade-school", - "difficulty": 6, - "topics": [ - "algorithms", - "control_flow_if_else_statements", - "control_flow_loops" - ] - } - ] + "exercises": { + "concept": [], + "practice": [ + { + "slug": "hello-world", + "name": "Hello World", + "uuid": "ee307061-5bc2-439c-8815-abd730aedc2d", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "strings" + ] + }, + { + "slug": "armstrong-numbers", + "name": "Armstrong Numbers", + "uuid": "a4658ee9-b71c-4764-9652-7ed83d46516b", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_else_statements", + "control_flow_loops", + "logic", + "math" + ] + }, + { + "slug": "resistor-color", + "name": "Resistor Color", + "uuid": "75653d83-1a64-472c-ac43-49e87833c7f7", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "arrays", + "enums", + "pointers" + ] + }, + { + "slug": "isogram", + "name": "Isogram", + "uuid": "b3c9d339-60bc-48fe-84ba-77cbc0017a89", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "arrays", + "control_flow_if_else_statements", + "control_flow_loops", + "strings" + ] + }, + { + "slug": "hamming", + "name": "Hamming", + "uuid": "fa5e6bbb-2eaf-484f-a5c5-de5cb2a9175b", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "arrays", + "control_flow_loops", + "strings" + ] + }, + { + "slug": "grains", + "name": "Grains", + "uuid": "53959d50-efad-4911-84de-b67efe1bee5f", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "bitwise_operations", + "control_flow_loops", + "performance_optimizations" + ] + }, + { + "slug": "difference-of-squares", + "name": "Difference Of Squares", + "uuid": "9802cbc0-eb70-4840-b8ee-a228f1fc29ea", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_loops", + "math" + ] + }, + { + "slug": "square-root", + "name": "Square Root", + "uuid": "0400f52d-48ae-4300-a72e-32e8a08514d0", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "bitwise_operations", + "control_flow_loops", + "math" + ] + }, + { + "slug": "grade-school", + "name": "Grade School", + "uuid": "68b1de28-7c3d-4e8c-ab51-7abe6779e187", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "arrays", + "control_flow_if_else_statements", + "control_flow_loops", + "pointers", + "sorting", + "strings", + "structs" + ] + }, + { + "slug": "binary-search", + "name": "Binary Search", + "uuid": "db1771d2-afd8-4e01-9b6a-6be75029ef1d", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "arrays", + "control_flow_if_else_statements", + "control_flow_loops", + "searching" + ] + }, + { + "slug": "rational-numbers", + "name": "Rational Numbers", + "uuid": "c3325db9-8067-4c2f-94b3-b5190b056d38", + "prerequisites": [], + "difficulty": 5, + "topics": [ + "math", + "structs" + ] + }, + { + "slug": "circular-buffer", + "name": "Circular Buffer", + "uuid": "c54a33a3-8c6f-4964-b770-b602d207fa20", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "arrays", + "buffers", + "control_flow_if_else_statements", + "control_flow_loops", + "flexible_array_members", + "memory_management", + "pointers", + "structs" + ] + }, + { + "slug": "list-ops", + "name": "List Ops", + "uuid": "27a56356-d3ad-41d2-923c-2a58fbb36454", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "arrays", + "control_flow_if_else_statements", + "control_flow_loops", + "flexible_array_members", + "function_pointers", + "memory_management", + "pointers", + "structs" + ] + }, + { + "slug": "pythagorean-triplet", + "name": "Pythagorean Triplet", + "uuid": "7b7c61f4-2849-46b7-9057-900bb6b95052", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "arrays", + "control_flow_if_else_statements", + "control_flow_loops", + "flexible_array_members", + "memory_management", + "structs" + ] + }, + { + "slug": "saddle-points", + "name": "Saddle Points", + "uuid": "448f9137-4e58-4c26-9853-abe07f01c908", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "arrays", + "control_flow_if_else_statements", + "control_flow_loops", + "flexible_array_members", + "memory_management", + "structs" + ] + }, + { + "slug": "allergies", + "name": "Allergies", + "uuid": "871f1c41-debd-4807-8ee5-bde54c3918f8", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "control_flow_if_statements", + "control_flow_loops", + "memory_management", + "structs" + ] + }, + { + "slug": "phone-number", + "name": "Phone Number", + "uuid": "660d1586-c4e0-4537-94b5-455a983820f8", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "control_flow_if_else_statements", + "control_flow_loops", + "memory_management", + "strings" + ] + }, + { + "slug": "clock", + "name": "Clock", + "uuid": "b868eeff-400c-4e46-8675-10d85c14b503", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_if_statements", + "preprocessor_x_macros_in_test", + "strings", + "text_formatting" + ] + }, + { + "slug": "sieve", + "name": "Sieve", + "uuid": "fb2530a3-cbbf-4ba9-88d0-203faac03e96", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_if_statements", + "math", + "memory_management" + ] + }, + { + "slug": "robot-simulator", + "name": "Robot Simulator", + "uuid": "e665da31-fda2-4bce-94e9-7d79dffdef14", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_if_statements", + "pointers", + "strings", + "structs", + "variable_argument_lists" + ] + }, + { + "slug": "pascals-triangle", + "name": "Pascals Triangle", + "uuid": "be19352f-1b63-4673-9a2d-e763ee807741", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_else_statements", + "math", + "memory_management" + ] + }, + { + "slug": "binary", + "name": "Binary", + "uuid": "8621177c-1068-4610-bf5b-26cf23340ae6", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_statements", + "control_flow_loops", + "math" + ] + }, + { + "slug": "queen-attack", + "name": "Queen Attack", + "uuid": "b0a152e9-5a45-41f9-bda0-427111d9a56c", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_statements", + "enums", + "functions", + "structs" + ] + }, + { + "slug": "linked-list", + "name": "Linked List", + "uuid": "58107e5f-8091-4429-9130-13f2c7dac9a9", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "functions", + "lists", + "pointers", + "structs" + ] + }, + { + "slug": "darts", + "name": "Darts", + "uuid": "a579e471-86f3-4f29-82ca-e984a2cc8891", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_else_statements", + "logic", + "math" + ] + }, + { + "slug": "resistor-color-duo", + "name": "Resistor Color Duo", + "uuid": "93271b2e-8ad9-4e7d-8732-5988140e8c00", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "arrays", + "enums" + ] + }, + { + "slug": "resistor-color-trio", + "name": "Resistor Color Trio", + "uuid": "6cd7bb9c-2817-4c44-8bef-5f2916b2db2d", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "arrays", + "enums", + "structs" + ] + }, + { + "slug": "acronym", + "name": "Acronym", + "uuid": "1a8ba121-d2c4-4994-8c6b-610d8987346d", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_loops", + "memory_management", + "strings" + ] + }, + { + "slug": "gigasecond", + "name": "Gigasecond", + "uuid": "000340f6-e30d-4d49-a255-016237d6fe60", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "dates" + ] + }, + { + "slug": "space-age", + "name": "Space Age", + "uuid": "fc03c7de-b0c6-4806-90bb-e9dda846e660", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "functions" + ] + }, + { + "slug": "pangram", + "name": "Pangram", + "uuid": "6311b9f8-b438-4186-88b2-1e4f55275ccb", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "control_flow_if_else_statements", + "control_flow_loops", + "strings" + ] + }, + { + "slug": "word-count", + "name": "Word Count", + "uuid": "1e4f4fcf-c32d-459f-8920-15ac56008666", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "filtering", + "memory_management", + "strings", + "structs" + ] + }, + { + "slug": "rail-fence-cipher", + "name": "Rail Fence Cipher", + "uuid": "314dcf23-9cd9-4488-b53e-6dee1b303980", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "arrays", + "control_flow_if_statements", + "strings" + ] + }, + { + "slug": "matching-brackets", + "name": "Matching Brackets", + "uuid": "cd573670-54da-4291-ab78-afd5d77fbeac", + "prerequisites": [], + "difficulty": 5, + "topics": [ + "control_flow_if_statements", + "recursion", + "stacks" + ] + }, + { + "slug": "nucleotide-count", + "name": "Nucleotide Count", + "uuid": "38669990-e1e6-4486-a603-575a135d1f5c", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_loops_switch_if_statements", + "memory_management", + "strings", + "text_formatting" + ] + }, + { + "slug": "rna-transcription", + "name": "Rna Transcription", + "uuid": "d12fea98-bf4e-476d-a91c-799fc98a1690", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_case_statements", + "control_flow_loops", + "strings" + ] + }, + { + "slug": "secret-handshake", + "name": "Secret Handshake", + "uuid": "119c20a6-849f-412e-b0a6-113a2cedc72d", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "algorithms", + "control_flow_if_statements", + "strings" + ] + }, + { + "slug": "meetup", + "name": "Meetup", + "uuid": "a7baa53f-e828-457e-a456-ba3471494d80", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "control_flow_if_statements", + "preprocessor_x_macros_in_test", + "strings", + "structs", + "time_functions" + ] + }, + { + "slug": "pig-latin", + "name": "Pig Latin", + "uuid": "62f539e7-f682-412d-bf86-38503e7cebca", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "algorithms", + "control_flow_if_statements", + "functions", + "strings" + ] + }, + { + "slug": "leap", + "name": "Leap", + "uuid": "9b047dda-b85e-4378-9487-9f9cce086e4f", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_else_statements", + "logic" + ] + }, + { + "slug": "two-fer", + "name": "Two Fer", + "uuid": "15653c72-5468-415f-9425-6c58d552d346", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_statements", + "strings" + ] + }, + { + "slug": "beer-song", + "name": "Beer Song", + "uuid": "c06789cb-cdd6-44a7-bee5-16e0d85e913a", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_if_else_statements", + "control_flow_loops", + "strings" + ] + }, + { + "slug": "raindrops", + "name": "Raindrops", + "uuid": "93acdd0d-9bd1-4dec-a572-fd12d0c66187", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_if_else_statements", + "strings" + ] + }, + { + "slug": "roman-numerals", + "name": "Roman Numerals", + "uuid": "6cde608f-9819-46cd-884b-dbda39a4fa16", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "arrays", + "control_flow_loops", + "memory_management", + "strings", + "structs" + ] + }, + { + "slug": "wordy", + "name": "Wordy", + "uuid": "c1392944-08fd-45c3-b508-41d682f832d3", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "algorithms", + "control_flow_if_statements", + "functions", + "strings" + ] + }, + { + "slug": "bob", + "name": "Bob", + "uuid": "b0feb5e2-eb94-4393-b60d-cf8a275d1860", + "prerequisites": [], + "difficulty": 5, + "topics": [ + "control_flow_if_else_statements", + "strings" + ] + }, + { + "slug": "complex-numbers", + "name": "Complex Numbers", + "uuid": "472b1a6b-2b7a-4609-a97d-4c2b6c941a1f", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "math", + "performance_optimizations", + "structs" + ] + }, + { + "slug": "sum-of-multiples", + "name": "Sum Of Multiples", + "uuid": "06a3660f-16b0-4391-939e-a9786887b0b2", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "control_flow_case_statements", + "control_flow_loops", + "math" + ] + }, + { + "slug": "two-bucket", + "name": "Two Bucket", + "uuid": "d8ecb4c4-2af2-423c-9f39-4adab687ecd6", + "prerequisites": [], + "difficulty": 6, + "topics": [ + "algorithms", + "control_flow_if_else_statements", + "control_flow_loops" + ] + }, + { + "slug": "anagram", + "name": "Anagram", + "uuid": "0b64079a-7fec-42b4-bd2e-1b04dd4b7e6e", + "prerequisites": [], + "difficulty": 5, + "topics": [ + "filtering", + "strings", + "structs" + ] + }, + { + "slug": "binary-search-tree", + "name": "Binary Search Tree", + "uuid": "1b33f528-8f29-4582-a268-07be2d1a4516", + "prerequisites": [], + "difficulty": 6, + "topics": [ + "arrays", + "control_flow_loops", + "recursion", + "structs" + ] + }, + { + "slug": "say", + "name": "Say", + "uuid": "523fa391-08d4-4c4e-95e6-20335cd157a0", + "prerequisites": [], + "difficulty": 6, + "topics": [ + "algorithms", + "control_flow_if_statements", + "strings" + ] + }, + { + "slug": "etl", + "name": "Etl", + "uuid": "9b6faac9-10dd-46ff-9d29-7242e74f5c06", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "pointers", + "structs" + ] + }, + { + "slug": "series", + "name": "Series", + "uuid": "40bcec79-7235-4ac6-b69f-8e3a6374188d", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "control_flow_if_statements", + "memory_management", + "strings", + "text_formatting" + ] + }, + { + "slug": "diamond", + "name": "Diamond", + "uuid": "8605a296-1c67-4723-84ac-3a25d77ed015", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "arrays", + "control_flow_if_statements", + "functions", + "strings" + ] + }, + { + "slug": "minesweeper", + "name": "Minesweeper", + "uuid": "2e97072f-9e77-4ddd-9d75-6162a927bab1", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "arrays", + "control_flow_if_statements", + "strings" + ] + }, + { + "slug": "run-length-encoding", + "name": "Run Length Encoding", + "uuid": "b22152b9-99d1-411c-8cf2-f89e8f5f8141", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "algorithms", + "control_flow_if_statements", + "strings" + ] + }, + { + "slug": "atbash-cipher", + "name": "Atbash Cipher", + "uuid": "180f59f3-78ab-4368-9fa7-e3d98a9dca78", + "prerequisites": [], + "difficulty": 5, + "topics": [ + "control_flow_if_else_statements", + "control_flow_loops", + "strings" + ] + }, + { + "slug": "crypto-square", + "name": "Crypto Square", + "uuid": "23c2a169-eea2-4636-af62-4a77a4dc3d7b", + "prerequisites": [], + "difficulty": 6, + "topics": [ + "algorithms", + "control_flow_if_statements", + "strings" + ] + }, + { + "slug": "react", + "name": "React", + "uuid": "929b651e-2017-4f98-b2cb-1dc46c609703", + "prerequisites": [], + "difficulty": 10, + "topics": [ + "functions", + "memory_management" + ] + }, + { + "slug": "prime-factors", + "name": "Prime Factors", + "uuid": "f34db12c-7acc-4287-92a6-c077938512d7", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "algorithms", + "math" + ] + }, + { + "slug": "nth-prime", + "name": "Nth Prime", + "uuid": "a0a703b2-244b-4739-b318-b837618b1047", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "control_flow_if_else_statements", + "control_flow_loops", + "math", + "performance_optimizations" + ] + }, + { + "slug": "perfect-numbers", + "name": "Perfect Numbers", + "uuid": "a1168a15-d46f-4541-8b58-68bca0c54733", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "control_flow_if_else_statements", + "math" + ] + }, + { + "slug": "triangle", + "name": "Triangle", + "uuid": "5c6bc8d2-2509-471a-993c-a5bf9d030ca7", + "prerequisites": [], + "difficulty": 1, + "topics": [ + "booleans", + "control_flow_if_else_statements", + "structs" + ] + }, + { + "slug": "collatz-conjecture", + "name": "Collatz Conjecture", + "uuid": "5a47f8a5-36a1-4479-bb77-ef5fbab4bae0", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "functions", + "math" + ] + }, + { + "slug": "luhn", + "name": "Luhn", + "uuid": "8c0762e6-702e-4733-a0a1-65099e2a46f7", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "algorithms", + "strings" + ] + }, + { + "slug": "palindrome-products", + "name": "Palindrome Products", + "uuid": "8dd43f6c-37ba-42b1-bb85-9ad693e4ce03", + "prerequisites": [], + "difficulty": 2, + "topics": [ + "functions", + "math", + "pointers", + "strings", + "structs" + ] + }, + { + "slug": "all-your-base", + "name": "All Your Base", + "uuid": "e3574f75-89cb-4dda-8fce-14ce3141b595", + "prerequisites": [], + "difficulty": 3, + "topics": [ + "arrays", + "control_flow_if_else_statements", + "control_flow_loops", + "math" + ] + }, + { + "slug": "scrabble-score", + "name": "Scrabble Score", + "uuid": "8c631290-13b7-4d25-9ee7-ced2e534deb4", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "pointers", + "searching", + "strings", + "structs" + ] + }, + { + "slug": "sublist", + "name": "Sublist", + "uuid": "a19acc6f-2530-434d-9c98-2d8d4ca635d3", + "prerequisites": [], + "difficulty": 4, + "topics": [ + "arrays", + "control_flow_if_statements", + "control_flow_loops", + "pointers", + "searching" + ] + }, + { + "slug": "largest-series-product", + "name": "Largest Series Product", + "uuid": "4b5974fe-dcff-4542-ad3e-2782201cba1e", + "prerequisites": [], + "difficulty": 5, + "topics": [ + "control_flow_loops", + "math", + "performance_optimizations", + "strings" + ] + } + ] + }, + "concepts": [], + "key_features": [], + "tags": [] } diff --git a/exercises/acronym/.meta/tests.toml b/exercises/practice/acronym/.meta/tests.toml similarity index 100% rename from exercises/acronym/.meta/tests.toml rename to exercises/practice/acronym/.meta/tests.toml diff --git a/exercises/acronym/README.md b/exercises/practice/acronym/README.md similarity index 100% rename from exercises/acronym/README.md rename to exercises/practice/acronym/README.md diff --git a/exercises/acronym/makefile b/exercises/practice/acronym/makefile similarity index 100% rename from exercises/acronym/makefile rename to exercises/practice/acronym/makefile diff --git a/exercises/acronym/src/acronym.c b/exercises/practice/acronym/src/acronym.c similarity index 100% rename from exercises/acronym/src/acronym.c rename to exercises/practice/acronym/src/acronym.c diff --git a/exercises/acronym/src/acronym.h b/exercises/practice/acronym/src/acronym.h similarity index 100% rename from exercises/acronym/src/acronym.h rename to exercises/practice/acronym/src/acronym.h diff --git a/exercises/acronym/src/example.c b/exercises/practice/acronym/src/example.c similarity index 100% rename from exercises/acronym/src/example.c rename to exercises/practice/acronym/src/example.c diff --git a/exercises/acronym/test/test_acronym.c b/exercises/practice/acronym/test/test_acronym.c similarity index 100% rename from exercises/acronym/test/test_acronym.c rename to exercises/practice/acronym/test/test_acronym.c diff --git a/exercises/acronym/test/vendor/unity.c b/exercises/practice/acronym/test/vendor/unity.c similarity index 100% rename from exercises/acronym/test/vendor/unity.c rename to exercises/practice/acronym/test/vendor/unity.c diff --git a/exercises/acronym/test/vendor/unity.h b/exercises/practice/acronym/test/vendor/unity.h similarity index 100% rename from exercises/acronym/test/vendor/unity.h rename to exercises/practice/acronym/test/vendor/unity.h diff --git a/exercises/acronym/test/vendor/unity_internals.h b/exercises/practice/acronym/test/vendor/unity_internals.h similarity index 100% rename from exercises/acronym/test/vendor/unity_internals.h rename to exercises/practice/acronym/test/vendor/unity_internals.h diff --git a/exercises/all-your-base/.meta/tests.toml b/exercises/practice/all-your-base/.meta/tests.toml similarity index 100% rename from exercises/all-your-base/.meta/tests.toml rename to exercises/practice/all-your-base/.meta/tests.toml diff --git a/exercises/all-your-base/README.md b/exercises/practice/all-your-base/README.md similarity index 100% rename from exercises/all-your-base/README.md rename to exercises/practice/all-your-base/README.md diff --git a/exercises/all-your-base/makefile b/exercises/practice/all-your-base/makefile similarity index 100% rename from exercises/all-your-base/makefile rename to exercises/practice/all-your-base/makefile diff --git a/exercises/all-your-base/src/all_your_base.c b/exercises/practice/all-your-base/src/all_your_base.c similarity index 100% rename from exercises/all-your-base/src/all_your_base.c rename to exercises/practice/all-your-base/src/all_your_base.c diff --git a/exercises/all-your-base/src/all_your_base.h b/exercises/practice/all-your-base/src/all_your_base.h similarity index 100% rename from exercises/all-your-base/src/all_your_base.h rename to exercises/practice/all-your-base/src/all_your_base.h diff --git a/exercises/all-your-base/src/example.c b/exercises/practice/all-your-base/src/example.c similarity index 100% rename from exercises/all-your-base/src/example.c rename to exercises/practice/all-your-base/src/example.c diff --git a/exercises/all-your-base/src/example.h b/exercises/practice/all-your-base/src/example.h similarity index 100% rename from exercises/all-your-base/src/example.h rename to exercises/practice/all-your-base/src/example.h diff --git a/exercises/all-your-base/test/test_all_your_base.c b/exercises/practice/all-your-base/test/test_all_your_base.c similarity index 100% rename from exercises/all-your-base/test/test_all_your_base.c rename to exercises/practice/all-your-base/test/test_all_your_base.c diff --git a/exercises/all-your-base/test/vendor/unity.c b/exercises/practice/all-your-base/test/vendor/unity.c similarity index 100% rename from exercises/all-your-base/test/vendor/unity.c rename to exercises/practice/all-your-base/test/vendor/unity.c diff --git a/exercises/all-your-base/test/vendor/unity.h b/exercises/practice/all-your-base/test/vendor/unity.h similarity index 100% rename from exercises/all-your-base/test/vendor/unity.h rename to exercises/practice/all-your-base/test/vendor/unity.h diff --git a/exercises/all-your-base/test/vendor/unity_internals.h b/exercises/practice/all-your-base/test/vendor/unity_internals.h similarity index 100% rename from exercises/all-your-base/test/vendor/unity_internals.h rename to exercises/practice/all-your-base/test/vendor/unity_internals.h diff --git a/exercises/allergies/.meta/tests.toml b/exercises/practice/allergies/.meta/tests.toml similarity index 100% rename from exercises/allergies/.meta/tests.toml rename to exercises/practice/allergies/.meta/tests.toml diff --git a/exercises/allergies/README.md b/exercises/practice/allergies/README.md similarity index 100% rename from exercises/allergies/README.md rename to exercises/practice/allergies/README.md diff --git a/exercises/allergies/makefile b/exercises/practice/allergies/makefile similarity index 100% rename from exercises/allergies/makefile rename to exercises/practice/allergies/makefile diff --git a/exercises/allergies/src/allergies.c b/exercises/practice/allergies/src/allergies.c similarity index 100% rename from exercises/allergies/src/allergies.c rename to exercises/practice/allergies/src/allergies.c diff --git a/exercises/allergies/src/allergies.h b/exercises/practice/allergies/src/allergies.h similarity index 100% rename from exercises/allergies/src/allergies.h rename to exercises/practice/allergies/src/allergies.h diff --git a/exercises/allergies/src/example.c b/exercises/practice/allergies/src/example.c similarity index 100% rename from exercises/allergies/src/example.c rename to exercises/practice/allergies/src/example.c diff --git a/exercises/allergies/src/example.h b/exercises/practice/allergies/src/example.h similarity index 100% rename from exercises/allergies/src/example.h rename to exercises/practice/allergies/src/example.h diff --git a/exercises/allergies/test/test_allergies.c b/exercises/practice/allergies/test/test_allergies.c similarity index 100% rename from exercises/allergies/test/test_allergies.c rename to exercises/practice/allergies/test/test_allergies.c diff --git a/exercises/allergies/test/vendor/unity.c b/exercises/practice/allergies/test/vendor/unity.c similarity index 100% rename from exercises/allergies/test/vendor/unity.c rename to exercises/practice/allergies/test/vendor/unity.c diff --git a/exercises/allergies/test/vendor/unity.h b/exercises/practice/allergies/test/vendor/unity.h similarity index 100% rename from exercises/allergies/test/vendor/unity.h rename to exercises/practice/allergies/test/vendor/unity.h diff --git a/exercises/allergies/test/vendor/unity_internals.h b/exercises/practice/allergies/test/vendor/unity_internals.h similarity index 100% rename from exercises/allergies/test/vendor/unity_internals.h rename to exercises/practice/allergies/test/vendor/unity_internals.h diff --git a/exercises/anagram/.meta/tests.toml b/exercises/practice/anagram/.meta/tests.toml similarity index 100% rename from exercises/anagram/.meta/tests.toml rename to exercises/practice/anagram/.meta/tests.toml diff --git a/exercises/anagram/README.md b/exercises/practice/anagram/README.md similarity index 100% rename from exercises/anagram/README.md rename to exercises/practice/anagram/README.md diff --git a/exercises/anagram/makefile b/exercises/practice/anagram/makefile similarity index 100% rename from exercises/anagram/makefile rename to exercises/practice/anagram/makefile diff --git a/exercises/anagram/src/anagram.c b/exercises/practice/anagram/src/anagram.c similarity index 100% rename from exercises/anagram/src/anagram.c rename to exercises/practice/anagram/src/anagram.c diff --git a/exercises/anagram/src/anagram.h b/exercises/practice/anagram/src/anagram.h similarity index 100% rename from exercises/anagram/src/anagram.h rename to exercises/practice/anagram/src/anagram.h diff --git a/exercises/anagram/src/example.c b/exercises/practice/anagram/src/example.c similarity index 100% rename from exercises/anagram/src/example.c rename to exercises/practice/anagram/src/example.c diff --git a/exercises/anagram/test/test_anagram.c b/exercises/practice/anagram/test/test_anagram.c similarity index 100% rename from exercises/anagram/test/test_anagram.c rename to exercises/practice/anagram/test/test_anagram.c diff --git a/exercises/anagram/test/vendor/unity.c b/exercises/practice/anagram/test/vendor/unity.c similarity index 100% rename from exercises/anagram/test/vendor/unity.c rename to exercises/practice/anagram/test/vendor/unity.c diff --git a/exercises/anagram/test/vendor/unity.h b/exercises/practice/anagram/test/vendor/unity.h similarity index 100% rename from exercises/anagram/test/vendor/unity.h rename to exercises/practice/anagram/test/vendor/unity.h diff --git a/exercises/anagram/test/vendor/unity_internals.h b/exercises/practice/anagram/test/vendor/unity_internals.h similarity index 100% rename from exercises/anagram/test/vendor/unity_internals.h rename to exercises/practice/anagram/test/vendor/unity_internals.h diff --git a/exercises/armstrong-numbers/.meta/tests.toml b/exercises/practice/armstrong-numbers/.meta/tests.toml similarity index 100% rename from exercises/armstrong-numbers/.meta/tests.toml rename to exercises/practice/armstrong-numbers/.meta/tests.toml diff --git a/exercises/armstrong-numbers/README.md b/exercises/practice/armstrong-numbers/README.md similarity index 100% rename from exercises/armstrong-numbers/README.md rename to exercises/practice/armstrong-numbers/README.md diff --git a/exercises/armstrong-numbers/makefile b/exercises/practice/armstrong-numbers/makefile similarity index 100% rename from exercises/armstrong-numbers/makefile rename to exercises/practice/armstrong-numbers/makefile diff --git a/exercises/armstrong-numbers/src/armstrong_numbers.c b/exercises/practice/armstrong-numbers/src/armstrong_numbers.c similarity index 100% rename from exercises/armstrong-numbers/src/armstrong_numbers.c rename to exercises/practice/armstrong-numbers/src/armstrong_numbers.c diff --git a/exercises/armstrong-numbers/src/armstrong_numbers.h b/exercises/practice/armstrong-numbers/src/armstrong_numbers.h similarity index 100% rename from exercises/armstrong-numbers/src/armstrong_numbers.h rename to exercises/practice/armstrong-numbers/src/armstrong_numbers.h diff --git a/exercises/armstrong-numbers/src/example.c b/exercises/practice/armstrong-numbers/src/example.c similarity index 100% rename from exercises/armstrong-numbers/src/example.c rename to exercises/practice/armstrong-numbers/src/example.c diff --git a/exercises/armstrong-numbers/src/example.h b/exercises/practice/armstrong-numbers/src/example.h similarity index 100% rename from exercises/armstrong-numbers/src/example.h rename to exercises/practice/armstrong-numbers/src/example.h diff --git a/exercises/armstrong-numbers/test/test_armstrong_numbers.c b/exercises/practice/armstrong-numbers/test/test_armstrong_numbers.c similarity index 100% rename from exercises/armstrong-numbers/test/test_armstrong_numbers.c rename to exercises/practice/armstrong-numbers/test/test_armstrong_numbers.c diff --git a/exercises/armstrong-numbers/test/vendor/unity.c b/exercises/practice/armstrong-numbers/test/vendor/unity.c similarity index 100% rename from exercises/armstrong-numbers/test/vendor/unity.c rename to exercises/practice/armstrong-numbers/test/vendor/unity.c diff --git a/exercises/armstrong-numbers/test/vendor/unity.h b/exercises/practice/armstrong-numbers/test/vendor/unity.h similarity index 100% rename from exercises/armstrong-numbers/test/vendor/unity.h rename to exercises/practice/armstrong-numbers/test/vendor/unity.h diff --git a/exercises/armstrong-numbers/test/vendor/unity_internals.h b/exercises/practice/armstrong-numbers/test/vendor/unity_internals.h similarity index 100% rename from exercises/armstrong-numbers/test/vendor/unity_internals.h rename to exercises/practice/armstrong-numbers/test/vendor/unity_internals.h diff --git a/exercises/atbash-cipher/.meta/tests.toml b/exercises/practice/atbash-cipher/.meta/tests.toml similarity index 100% rename from exercises/atbash-cipher/.meta/tests.toml rename to exercises/practice/atbash-cipher/.meta/tests.toml diff --git a/exercises/atbash-cipher/README.md b/exercises/practice/atbash-cipher/README.md similarity index 100% rename from exercises/atbash-cipher/README.md rename to exercises/practice/atbash-cipher/README.md diff --git a/exercises/atbash-cipher/makefile b/exercises/practice/atbash-cipher/makefile similarity index 100% rename from exercises/atbash-cipher/makefile rename to exercises/practice/atbash-cipher/makefile diff --git a/exercises/atbash-cipher/src/atbash_cipher.c b/exercises/practice/atbash-cipher/src/atbash_cipher.c similarity index 100% rename from exercises/atbash-cipher/src/atbash_cipher.c rename to exercises/practice/atbash-cipher/src/atbash_cipher.c diff --git a/exercises/atbash-cipher/src/atbash_cipher.h b/exercises/practice/atbash-cipher/src/atbash_cipher.h similarity index 100% rename from exercises/atbash-cipher/src/atbash_cipher.h rename to exercises/practice/atbash-cipher/src/atbash_cipher.h diff --git a/exercises/atbash-cipher/src/example.c b/exercises/practice/atbash-cipher/src/example.c similarity index 100% rename from exercises/atbash-cipher/src/example.c rename to exercises/practice/atbash-cipher/src/example.c diff --git a/exercises/atbash-cipher/src/example.h b/exercises/practice/atbash-cipher/src/example.h similarity index 100% rename from exercises/atbash-cipher/src/example.h rename to exercises/practice/atbash-cipher/src/example.h diff --git a/exercises/atbash-cipher/test/test_atbash_cipher.c b/exercises/practice/atbash-cipher/test/test_atbash_cipher.c similarity index 100% rename from exercises/atbash-cipher/test/test_atbash_cipher.c rename to exercises/practice/atbash-cipher/test/test_atbash_cipher.c diff --git a/exercises/atbash-cipher/test/vendor/unity.c b/exercises/practice/atbash-cipher/test/vendor/unity.c similarity index 100% rename from exercises/atbash-cipher/test/vendor/unity.c rename to exercises/practice/atbash-cipher/test/vendor/unity.c diff --git a/exercises/atbash-cipher/test/vendor/unity.h b/exercises/practice/atbash-cipher/test/vendor/unity.h similarity index 100% rename from exercises/atbash-cipher/test/vendor/unity.h rename to exercises/practice/atbash-cipher/test/vendor/unity.h diff --git a/exercises/atbash-cipher/test/vendor/unity_internals.h b/exercises/practice/atbash-cipher/test/vendor/unity_internals.h similarity index 100% rename from exercises/atbash-cipher/test/vendor/unity_internals.h rename to exercises/practice/atbash-cipher/test/vendor/unity_internals.h diff --git a/exercises/beer-song/.meta/tests.toml b/exercises/practice/beer-song/.meta/tests.toml similarity index 100% rename from exercises/beer-song/.meta/tests.toml rename to exercises/practice/beer-song/.meta/tests.toml diff --git a/exercises/beer-song/README.md b/exercises/practice/beer-song/README.md similarity index 100% rename from exercises/beer-song/README.md rename to exercises/practice/beer-song/README.md diff --git a/exercises/beer-song/makefile b/exercises/practice/beer-song/makefile similarity index 100% rename from exercises/beer-song/makefile rename to exercises/practice/beer-song/makefile diff --git a/exercises/beer-song/src/beer_song.c b/exercises/practice/beer-song/src/beer_song.c similarity index 100% rename from exercises/beer-song/src/beer_song.c rename to exercises/practice/beer-song/src/beer_song.c diff --git a/exercises/beer-song/src/beer_song.h b/exercises/practice/beer-song/src/beer_song.h similarity index 100% rename from exercises/beer-song/src/beer_song.h rename to exercises/practice/beer-song/src/beer_song.h diff --git a/exercises/beer-song/src/example.c b/exercises/practice/beer-song/src/example.c similarity index 100% rename from exercises/beer-song/src/example.c rename to exercises/practice/beer-song/src/example.c diff --git a/exercises/beer-song/src/example.h b/exercises/practice/beer-song/src/example.h similarity index 100% rename from exercises/beer-song/src/example.h rename to exercises/practice/beer-song/src/example.h diff --git a/exercises/beer-song/test/test_beer_song.c b/exercises/practice/beer-song/test/test_beer_song.c similarity index 100% rename from exercises/beer-song/test/test_beer_song.c rename to exercises/practice/beer-song/test/test_beer_song.c diff --git a/exercises/beer-song/test/vendor/unity.c b/exercises/practice/beer-song/test/vendor/unity.c similarity index 100% rename from exercises/beer-song/test/vendor/unity.c rename to exercises/practice/beer-song/test/vendor/unity.c diff --git a/exercises/beer-song/test/vendor/unity.h b/exercises/practice/beer-song/test/vendor/unity.h similarity index 100% rename from exercises/beer-song/test/vendor/unity.h rename to exercises/practice/beer-song/test/vendor/unity.h diff --git a/exercises/beer-song/test/vendor/unity_internals.h b/exercises/practice/beer-song/test/vendor/unity_internals.h similarity index 100% rename from exercises/beer-song/test/vendor/unity_internals.h rename to exercises/practice/beer-song/test/vendor/unity_internals.h diff --git a/exercises/binary-search-tree/.meta/tests.toml b/exercises/practice/binary-search-tree/.meta/tests.toml similarity index 100% rename from exercises/binary-search-tree/.meta/tests.toml rename to exercises/practice/binary-search-tree/.meta/tests.toml diff --git a/exercises/binary-search-tree/README.md b/exercises/practice/binary-search-tree/README.md similarity index 100% rename from exercises/binary-search-tree/README.md rename to exercises/practice/binary-search-tree/README.md diff --git a/exercises/binary-search-tree/makefile b/exercises/practice/binary-search-tree/makefile similarity index 100% rename from exercises/binary-search-tree/makefile rename to exercises/practice/binary-search-tree/makefile diff --git a/exercises/binary-search-tree/src/binary_search_tree.c b/exercises/practice/binary-search-tree/src/binary_search_tree.c similarity index 100% rename from exercises/binary-search-tree/src/binary_search_tree.c rename to exercises/practice/binary-search-tree/src/binary_search_tree.c diff --git a/exercises/binary-search-tree/src/binary_search_tree.h b/exercises/practice/binary-search-tree/src/binary_search_tree.h similarity index 100% rename from exercises/binary-search-tree/src/binary_search_tree.h rename to exercises/practice/binary-search-tree/src/binary_search_tree.h diff --git a/exercises/binary-search-tree/src/example.c b/exercises/practice/binary-search-tree/src/example.c similarity index 100% rename from exercises/binary-search-tree/src/example.c rename to exercises/practice/binary-search-tree/src/example.c diff --git a/exercises/binary-search-tree/src/example.h b/exercises/practice/binary-search-tree/src/example.h similarity index 100% rename from exercises/binary-search-tree/src/example.h rename to exercises/practice/binary-search-tree/src/example.h diff --git a/exercises/binary-search-tree/test/test_binary_search_tree.c b/exercises/practice/binary-search-tree/test/test_binary_search_tree.c similarity index 100% rename from exercises/binary-search-tree/test/test_binary_search_tree.c rename to exercises/practice/binary-search-tree/test/test_binary_search_tree.c diff --git a/exercises/binary-search-tree/test/vendor/unity.c b/exercises/practice/binary-search-tree/test/vendor/unity.c similarity index 100% rename from exercises/binary-search-tree/test/vendor/unity.c rename to exercises/practice/binary-search-tree/test/vendor/unity.c diff --git a/exercises/binary-search-tree/test/vendor/unity.h b/exercises/practice/binary-search-tree/test/vendor/unity.h similarity index 100% rename from exercises/binary-search-tree/test/vendor/unity.h rename to exercises/practice/binary-search-tree/test/vendor/unity.h diff --git a/exercises/binary-search-tree/test/vendor/unity_internals.h b/exercises/practice/binary-search-tree/test/vendor/unity_internals.h similarity index 100% rename from exercises/binary-search-tree/test/vendor/unity_internals.h rename to exercises/practice/binary-search-tree/test/vendor/unity_internals.h diff --git a/exercises/binary-search/.meta/tests.toml b/exercises/practice/binary-search/.meta/tests.toml similarity index 100% rename from exercises/binary-search/.meta/tests.toml rename to exercises/practice/binary-search/.meta/tests.toml diff --git a/exercises/binary-search/README.md b/exercises/practice/binary-search/README.md similarity index 100% rename from exercises/binary-search/README.md rename to exercises/practice/binary-search/README.md diff --git a/exercises/binary-search/makefile b/exercises/practice/binary-search/makefile similarity index 100% rename from exercises/binary-search/makefile rename to exercises/practice/binary-search/makefile diff --git a/exercises/binary-search/src/binary_search.c b/exercises/practice/binary-search/src/binary_search.c similarity index 100% rename from exercises/binary-search/src/binary_search.c rename to exercises/practice/binary-search/src/binary_search.c diff --git a/exercises/binary-search/src/binary_search.h b/exercises/practice/binary-search/src/binary_search.h similarity index 100% rename from exercises/binary-search/src/binary_search.h rename to exercises/practice/binary-search/src/binary_search.h diff --git a/exercises/binary-search/src/example.c b/exercises/practice/binary-search/src/example.c similarity index 100% rename from exercises/binary-search/src/example.c rename to exercises/practice/binary-search/src/example.c diff --git a/exercises/binary-search/src/example.h b/exercises/practice/binary-search/src/example.h similarity index 100% rename from exercises/binary-search/src/example.h rename to exercises/practice/binary-search/src/example.h diff --git a/exercises/binary-search/test/test_binary_search.c b/exercises/practice/binary-search/test/test_binary_search.c similarity index 100% rename from exercises/binary-search/test/test_binary_search.c rename to exercises/practice/binary-search/test/test_binary_search.c diff --git a/exercises/binary-search/test/vendor/unity.c b/exercises/practice/binary-search/test/vendor/unity.c similarity index 100% rename from exercises/binary-search/test/vendor/unity.c rename to exercises/practice/binary-search/test/vendor/unity.c diff --git a/exercises/binary-search/test/vendor/unity.h b/exercises/practice/binary-search/test/vendor/unity.h similarity index 100% rename from exercises/binary-search/test/vendor/unity.h rename to exercises/practice/binary-search/test/vendor/unity.h diff --git a/exercises/binary-search/test/vendor/unity_internals.h b/exercises/practice/binary-search/test/vendor/unity_internals.h similarity index 100% rename from exercises/binary-search/test/vendor/unity_internals.h rename to exercises/practice/binary-search/test/vendor/unity_internals.h diff --git a/exercises/binary/.meta/tests.toml b/exercises/practice/binary/.meta/tests.toml similarity index 100% rename from exercises/binary/.meta/tests.toml rename to exercises/practice/binary/.meta/tests.toml diff --git a/exercises/binary/README.md b/exercises/practice/binary/README.md similarity index 100% rename from exercises/binary/README.md rename to exercises/practice/binary/README.md diff --git a/exercises/binary/makefile b/exercises/practice/binary/makefile similarity index 100% rename from exercises/binary/makefile rename to exercises/practice/binary/makefile diff --git a/exercises/binary/src/binary.c b/exercises/practice/binary/src/binary.c similarity index 100% rename from exercises/binary/src/binary.c rename to exercises/practice/binary/src/binary.c diff --git a/exercises/binary/src/binary.h b/exercises/practice/binary/src/binary.h similarity index 100% rename from exercises/binary/src/binary.h rename to exercises/practice/binary/src/binary.h diff --git a/exercises/binary/src/example.c b/exercises/practice/binary/src/example.c similarity index 100% rename from exercises/binary/src/example.c rename to exercises/practice/binary/src/example.c diff --git a/exercises/binary/src/example.h b/exercises/practice/binary/src/example.h similarity index 100% rename from exercises/binary/src/example.h rename to exercises/practice/binary/src/example.h diff --git a/exercises/binary/test/test_binary.c b/exercises/practice/binary/test/test_binary.c similarity index 100% rename from exercises/binary/test/test_binary.c rename to exercises/practice/binary/test/test_binary.c diff --git a/exercises/binary/test/vendor/unity.c b/exercises/practice/binary/test/vendor/unity.c similarity index 100% rename from exercises/binary/test/vendor/unity.c rename to exercises/practice/binary/test/vendor/unity.c diff --git a/exercises/binary/test/vendor/unity.h b/exercises/practice/binary/test/vendor/unity.h similarity index 100% rename from exercises/binary/test/vendor/unity.h rename to exercises/practice/binary/test/vendor/unity.h diff --git a/exercises/binary/test/vendor/unity_internals.h b/exercises/practice/binary/test/vendor/unity_internals.h similarity index 100% rename from exercises/binary/test/vendor/unity_internals.h rename to exercises/practice/binary/test/vendor/unity_internals.h diff --git a/exercises/bob/.meta/tests.toml b/exercises/practice/bob/.meta/tests.toml similarity index 100% rename from exercises/bob/.meta/tests.toml rename to exercises/practice/bob/.meta/tests.toml diff --git a/exercises/bob/README.md b/exercises/practice/bob/README.md similarity index 100% rename from exercises/bob/README.md rename to exercises/practice/bob/README.md diff --git a/exercises/bob/makefile b/exercises/practice/bob/makefile similarity index 100% rename from exercises/bob/makefile rename to exercises/practice/bob/makefile diff --git a/exercises/bob/src/bob.c b/exercises/practice/bob/src/bob.c similarity index 100% rename from exercises/bob/src/bob.c rename to exercises/practice/bob/src/bob.c diff --git a/exercises/bob/src/bob.h b/exercises/practice/bob/src/bob.h similarity index 100% rename from exercises/bob/src/bob.h rename to exercises/practice/bob/src/bob.h diff --git a/exercises/bob/src/example.c b/exercises/practice/bob/src/example.c similarity index 100% rename from exercises/bob/src/example.c rename to exercises/practice/bob/src/example.c diff --git a/exercises/bob/src/example.h b/exercises/practice/bob/src/example.h similarity index 100% rename from exercises/bob/src/example.h rename to exercises/practice/bob/src/example.h diff --git a/exercises/bob/test/test_bob.c b/exercises/practice/bob/test/test_bob.c similarity index 100% rename from exercises/bob/test/test_bob.c rename to exercises/practice/bob/test/test_bob.c diff --git a/exercises/bob/test/vendor/unity.c b/exercises/practice/bob/test/vendor/unity.c similarity index 100% rename from exercises/bob/test/vendor/unity.c rename to exercises/practice/bob/test/vendor/unity.c diff --git a/exercises/bob/test/vendor/unity.h b/exercises/practice/bob/test/vendor/unity.h similarity index 100% rename from exercises/bob/test/vendor/unity.h rename to exercises/practice/bob/test/vendor/unity.h diff --git a/exercises/bob/test/vendor/unity_internals.h b/exercises/practice/bob/test/vendor/unity_internals.h similarity index 100% rename from exercises/bob/test/vendor/unity_internals.h rename to exercises/practice/bob/test/vendor/unity_internals.h diff --git a/exercises/circular-buffer/.meta/tests.toml b/exercises/practice/circular-buffer/.meta/tests.toml similarity index 100% rename from exercises/circular-buffer/.meta/tests.toml rename to exercises/practice/circular-buffer/.meta/tests.toml diff --git a/exercises/circular-buffer/README.md b/exercises/practice/circular-buffer/README.md similarity index 100% rename from exercises/circular-buffer/README.md rename to exercises/practice/circular-buffer/README.md diff --git a/exercises/circular-buffer/makefile b/exercises/practice/circular-buffer/makefile similarity index 100% rename from exercises/circular-buffer/makefile rename to exercises/practice/circular-buffer/makefile diff --git a/exercises/circular-buffer/src/circular_buffer.c b/exercises/practice/circular-buffer/src/circular_buffer.c similarity index 100% rename from exercises/circular-buffer/src/circular_buffer.c rename to exercises/practice/circular-buffer/src/circular_buffer.c diff --git a/exercises/circular-buffer/src/circular_buffer.h b/exercises/practice/circular-buffer/src/circular_buffer.h similarity index 100% rename from exercises/circular-buffer/src/circular_buffer.h rename to exercises/practice/circular-buffer/src/circular_buffer.h diff --git a/exercises/circular-buffer/src/example.c b/exercises/practice/circular-buffer/src/example.c similarity index 100% rename from exercises/circular-buffer/src/example.c rename to exercises/practice/circular-buffer/src/example.c diff --git a/exercises/circular-buffer/src/example.h b/exercises/practice/circular-buffer/src/example.h similarity index 100% rename from exercises/circular-buffer/src/example.h rename to exercises/practice/circular-buffer/src/example.h diff --git a/exercises/circular-buffer/test/test_circular_buffer.c b/exercises/practice/circular-buffer/test/test_circular_buffer.c similarity index 100% rename from exercises/circular-buffer/test/test_circular_buffer.c rename to exercises/practice/circular-buffer/test/test_circular_buffer.c diff --git a/exercises/circular-buffer/test/vendor/unity.c b/exercises/practice/circular-buffer/test/vendor/unity.c similarity index 100% rename from exercises/circular-buffer/test/vendor/unity.c rename to exercises/practice/circular-buffer/test/vendor/unity.c diff --git a/exercises/circular-buffer/test/vendor/unity.h b/exercises/practice/circular-buffer/test/vendor/unity.h similarity index 100% rename from exercises/circular-buffer/test/vendor/unity.h rename to exercises/practice/circular-buffer/test/vendor/unity.h diff --git a/exercises/circular-buffer/test/vendor/unity_internals.h b/exercises/practice/circular-buffer/test/vendor/unity_internals.h similarity index 100% rename from exercises/circular-buffer/test/vendor/unity_internals.h rename to exercises/practice/circular-buffer/test/vendor/unity_internals.h diff --git a/exercises/clock/.meta/tests.toml b/exercises/practice/clock/.meta/tests.toml similarity index 100% rename from exercises/clock/.meta/tests.toml rename to exercises/practice/clock/.meta/tests.toml diff --git a/exercises/clock/README.md b/exercises/practice/clock/README.md similarity index 100% rename from exercises/clock/README.md rename to exercises/practice/clock/README.md diff --git a/exercises/clock/makefile b/exercises/practice/clock/makefile similarity index 100% rename from exercises/clock/makefile rename to exercises/practice/clock/makefile diff --git a/exercises/clock/src/clock.c b/exercises/practice/clock/src/clock.c similarity index 100% rename from exercises/clock/src/clock.c rename to exercises/practice/clock/src/clock.c diff --git a/exercises/clock/src/clock.h b/exercises/practice/clock/src/clock.h similarity index 100% rename from exercises/clock/src/clock.h rename to exercises/practice/clock/src/clock.h diff --git a/exercises/clock/src/example.c b/exercises/practice/clock/src/example.c similarity index 100% rename from exercises/clock/src/example.c rename to exercises/practice/clock/src/example.c diff --git a/exercises/clock/test/test_clock.c b/exercises/practice/clock/test/test_clock.c similarity index 100% rename from exercises/clock/test/test_clock.c rename to exercises/practice/clock/test/test_clock.c diff --git a/exercises/clock/test/vendor/unity.c b/exercises/practice/clock/test/vendor/unity.c similarity index 100% rename from exercises/clock/test/vendor/unity.c rename to exercises/practice/clock/test/vendor/unity.c diff --git a/exercises/clock/test/vendor/unity.h b/exercises/practice/clock/test/vendor/unity.h similarity index 100% rename from exercises/clock/test/vendor/unity.h rename to exercises/practice/clock/test/vendor/unity.h diff --git a/exercises/clock/test/vendor/unity_internals.h b/exercises/practice/clock/test/vendor/unity_internals.h similarity index 100% rename from exercises/clock/test/vendor/unity_internals.h rename to exercises/practice/clock/test/vendor/unity_internals.h diff --git a/exercises/collatz-conjecture/.meta/tests.toml b/exercises/practice/collatz-conjecture/.meta/tests.toml similarity index 100% rename from exercises/collatz-conjecture/.meta/tests.toml rename to exercises/practice/collatz-conjecture/.meta/tests.toml diff --git a/exercises/collatz-conjecture/README.md b/exercises/practice/collatz-conjecture/README.md similarity index 100% rename from exercises/collatz-conjecture/README.md rename to exercises/practice/collatz-conjecture/README.md diff --git a/exercises/collatz-conjecture/makefile b/exercises/practice/collatz-conjecture/makefile similarity index 100% rename from exercises/collatz-conjecture/makefile rename to exercises/practice/collatz-conjecture/makefile diff --git a/exercises/collatz-conjecture/src/collatz_conjecture.c b/exercises/practice/collatz-conjecture/src/collatz_conjecture.c similarity index 100% rename from exercises/collatz-conjecture/src/collatz_conjecture.c rename to exercises/practice/collatz-conjecture/src/collatz_conjecture.c diff --git a/exercises/collatz-conjecture/src/collatz_conjecture.h b/exercises/practice/collatz-conjecture/src/collatz_conjecture.h similarity index 100% rename from exercises/collatz-conjecture/src/collatz_conjecture.h rename to exercises/practice/collatz-conjecture/src/collatz_conjecture.h diff --git a/exercises/collatz-conjecture/src/example.c b/exercises/practice/collatz-conjecture/src/example.c similarity index 100% rename from exercises/collatz-conjecture/src/example.c rename to exercises/practice/collatz-conjecture/src/example.c diff --git a/exercises/collatz-conjecture/test/test_collatz_conjecture.c b/exercises/practice/collatz-conjecture/test/test_collatz_conjecture.c similarity index 100% rename from exercises/collatz-conjecture/test/test_collatz_conjecture.c rename to exercises/practice/collatz-conjecture/test/test_collatz_conjecture.c diff --git a/exercises/collatz-conjecture/test/vendor/unity.c b/exercises/practice/collatz-conjecture/test/vendor/unity.c similarity index 100% rename from exercises/collatz-conjecture/test/vendor/unity.c rename to exercises/practice/collatz-conjecture/test/vendor/unity.c diff --git a/exercises/collatz-conjecture/test/vendor/unity.h b/exercises/practice/collatz-conjecture/test/vendor/unity.h similarity index 100% rename from exercises/collatz-conjecture/test/vendor/unity.h rename to exercises/practice/collatz-conjecture/test/vendor/unity.h diff --git a/exercises/collatz-conjecture/test/vendor/unity_internals.h b/exercises/practice/collatz-conjecture/test/vendor/unity_internals.h similarity index 100% rename from exercises/collatz-conjecture/test/vendor/unity_internals.h rename to exercises/practice/collatz-conjecture/test/vendor/unity_internals.h diff --git a/exercises/complex-numbers/.meta/tests.toml b/exercises/practice/complex-numbers/.meta/tests.toml similarity index 100% rename from exercises/complex-numbers/.meta/tests.toml rename to exercises/practice/complex-numbers/.meta/tests.toml diff --git a/exercises/complex-numbers/README.md b/exercises/practice/complex-numbers/README.md similarity index 100% rename from exercises/complex-numbers/README.md rename to exercises/practice/complex-numbers/README.md diff --git a/exercises/complex-numbers/makefile b/exercises/practice/complex-numbers/makefile similarity index 100% rename from exercises/complex-numbers/makefile rename to exercises/practice/complex-numbers/makefile diff --git a/exercises/complex-numbers/src/complex_numbers.c b/exercises/practice/complex-numbers/src/complex_numbers.c similarity index 100% rename from exercises/complex-numbers/src/complex_numbers.c rename to exercises/practice/complex-numbers/src/complex_numbers.c diff --git a/exercises/complex-numbers/src/complex_numbers.h b/exercises/practice/complex-numbers/src/complex_numbers.h similarity index 100% rename from exercises/complex-numbers/src/complex_numbers.h rename to exercises/practice/complex-numbers/src/complex_numbers.h diff --git a/exercises/complex-numbers/src/example.c b/exercises/practice/complex-numbers/src/example.c similarity index 100% rename from exercises/complex-numbers/src/example.c rename to exercises/practice/complex-numbers/src/example.c diff --git a/exercises/complex-numbers/test/test_complex_numbers.c b/exercises/practice/complex-numbers/test/test_complex_numbers.c similarity index 100% rename from exercises/complex-numbers/test/test_complex_numbers.c rename to exercises/practice/complex-numbers/test/test_complex_numbers.c diff --git a/exercises/complex-numbers/test/vendor/unity.c b/exercises/practice/complex-numbers/test/vendor/unity.c similarity index 100% rename from exercises/complex-numbers/test/vendor/unity.c rename to exercises/practice/complex-numbers/test/vendor/unity.c diff --git a/exercises/complex-numbers/test/vendor/unity.h b/exercises/practice/complex-numbers/test/vendor/unity.h similarity index 100% rename from exercises/complex-numbers/test/vendor/unity.h rename to exercises/practice/complex-numbers/test/vendor/unity.h diff --git a/exercises/complex-numbers/test/vendor/unity_internals.h b/exercises/practice/complex-numbers/test/vendor/unity_internals.h similarity index 100% rename from exercises/complex-numbers/test/vendor/unity_internals.h rename to exercises/practice/complex-numbers/test/vendor/unity_internals.h diff --git a/exercises/crypto-square/.meta/tests.toml b/exercises/practice/crypto-square/.meta/tests.toml similarity index 100% rename from exercises/crypto-square/.meta/tests.toml rename to exercises/practice/crypto-square/.meta/tests.toml diff --git a/exercises/crypto-square/README.md b/exercises/practice/crypto-square/README.md similarity index 100% rename from exercises/crypto-square/README.md rename to exercises/practice/crypto-square/README.md diff --git a/exercises/crypto-square/makefile b/exercises/practice/crypto-square/makefile similarity index 100% rename from exercises/crypto-square/makefile rename to exercises/practice/crypto-square/makefile diff --git a/exercises/crypto-square/src/crypto_square.c b/exercises/practice/crypto-square/src/crypto_square.c similarity index 100% rename from exercises/crypto-square/src/crypto_square.c rename to exercises/practice/crypto-square/src/crypto_square.c diff --git a/exercises/crypto-square/src/crypto_square.h b/exercises/practice/crypto-square/src/crypto_square.h similarity index 100% rename from exercises/crypto-square/src/crypto_square.h rename to exercises/practice/crypto-square/src/crypto_square.h diff --git a/exercises/crypto-square/src/example.c b/exercises/practice/crypto-square/src/example.c similarity index 100% rename from exercises/crypto-square/src/example.c rename to exercises/practice/crypto-square/src/example.c diff --git a/exercises/crypto-square/src/example.h b/exercises/practice/crypto-square/src/example.h similarity index 100% rename from exercises/crypto-square/src/example.h rename to exercises/practice/crypto-square/src/example.h diff --git a/exercises/crypto-square/test/test_crypto_square.c b/exercises/practice/crypto-square/test/test_crypto_square.c similarity index 100% rename from exercises/crypto-square/test/test_crypto_square.c rename to exercises/practice/crypto-square/test/test_crypto_square.c diff --git a/exercises/crypto-square/test/vendor/unity.c b/exercises/practice/crypto-square/test/vendor/unity.c similarity index 100% rename from exercises/crypto-square/test/vendor/unity.c rename to exercises/practice/crypto-square/test/vendor/unity.c diff --git a/exercises/crypto-square/test/vendor/unity.h b/exercises/practice/crypto-square/test/vendor/unity.h similarity index 100% rename from exercises/crypto-square/test/vendor/unity.h rename to exercises/practice/crypto-square/test/vendor/unity.h diff --git a/exercises/crypto-square/test/vendor/unity_internals.h b/exercises/practice/crypto-square/test/vendor/unity_internals.h similarity index 100% rename from exercises/crypto-square/test/vendor/unity_internals.h rename to exercises/practice/crypto-square/test/vendor/unity_internals.h diff --git a/exercises/darts/.meta/tests.toml b/exercises/practice/darts/.meta/tests.toml similarity index 100% rename from exercises/darts/.meta/tests.toml rename to exercises/practice/darts/.meta/tests.toml diff --git a/exercises/darts/README.md b/exercises/practice/darts/README.md similarity index 100% rename from exercises/darts/README.md rename to exercises/practice/darts/README.md diff --git a/exercises/darts/makefile b/exercises/practice/darts/makefile similarity index 100% rename from exercises/darts/makefile rename to exercises/practice/darts/makefile diff --git a/exercises/darts/src/darts.c b/exercises/practice/darts/src/darts.c similarity index 100% rename from exercises/darts/src/darts.c rename to exercises/practice/darts/src/darts.c diff --git a/exercises/darts/src/darts.h b/exercises/practice/darts/src/darts.h similarity index 100% rename from exercises/darts/src/darts.h rename to exercises/practice/darts/src/darts.h diff --git a/exercises/darts/src/example.c b/exercises/practice/darts/src/example.c similarity index 100% rename from exercises/darts/src/example.c rename to exercises/practice/darts/src/example.c diff --git a/exercises/darts/src/example.h b/exercises/practice/darts/src/example.h similarity index 100% rename from exercises/darts/src/example.h rename to exercises/practice/darts/src/example.h diff --git a/exercises/darts/test/test_darts.c b/exercises/practice/darts/test/test_darts.c similarity index 100% rename from exercises/darts/test/test_darts.c rename to exercises/practice/darts/test/test_darts.c diff --git a/exercises/darts/test/vendor/unity.c b/exercises/practice/darts/test/vendor/unity.c similarity index 100% rename from exercises/darts/test/vendor/unity.c rename to exercises/practice/darts/test/vendor/unity.c diff --git a/exercises/darts/test/vendor/unity.h b/exercises/practice/darts/test/vendor/unity.h similarity index 100% rename from exercises/darts/test/vendor/unity.h rename to exercises/practice/darts/test/vendor/unity.h diff --git a/exercises/darts/test/vendor/unity_internals.h b/exercises/practice/darts/test/vendor/unity_internals.h similarity index 100% rename from exercises/darts/test/vendor/unity_internals.h rename to exercises/practice/darts/test/vendor/unity_internals.h diff --git a/exercises/diamond/.meta/tests.toml b/exercises/practice/diamond/.meta/tests.toml similarity index 100% rename from exercises/diamond/.meta/tests.toml rename to exercises/practice/diamond/.meta/tests.toml diff --git a/exercises/diamond/README.md b/exercises/practice/diamond/README.md similarity index 100% rename from exercises/diamond/README.md rename to exercises/practice/diamond/README.md diff --git a/exercises/diamond/makefile b/exercises/practice/diamond/makefile similarity index 100% rename from exercises/diamond/makefile rename to exercises/practice/diamond/makefile diff --git a/exercises/diamond/src/diamond.c b/exercises/practice/diamond/src/diamond.c similarity index 100% rename from exercises/diamond/src/diamond.c rename to exercises/practice/diamond/src/diamond.c diff --git a/exercises/diamond/src/diamond.h b/exercises/practice/diamond/src/diamond.h similarity index 100% rename from exercises/diamond/src/diamond.h rename to exercises/practice/diamond/src/diamond.h diff --git a/exercises/diamond/src/example.c b/exercises/practice/diamond/src/example.c similarity index 100% rename from exercises/diamond/src/example.c rename to exercises/practice/diamond/src/example.c diff --git a/exercises/diamond/src/example.h b/exercises/practice/diamond/src/example.h similarity index 100% rename from exercises/diamond/src/example.h rename to exercises/practice/diamond/src/example.h diff --git a/exercises/diamond/test/test_diamond.c b/exercises/practice/diamond/test/test_diamond.c similarity index 100% rename from exercises/diamond/test/test_diamond.c rename to exercises/practice/diamond/test/test_diamond.c diff --git a/exercises/diamond/test/vendor/unity.c b/exercises/practice/diamond/test/vendor/unity.c similarity index 100% rename from exercises/diamond/test/vendor/unity.c rename to exercises/practice/diamond/test/vendor/unity.c diff --git a/exercises/diamond/test/vendor/unity.h b/exercises/practice/diamond/test/vendor/unity.h similarity index 100% rename from exercises/diamond/test/vendor/unity.h rename to exercises/practice/diamond/test/vendor/unity.h diff --git a/exercises/diamond/test/vendor/unity_internals.h b/exercises/practice/diamond/test/vendor/unity_internals.h similarity index 100% rename from exercises/diamond/test/vendor/unity_internals.h rename to exercises/practice/diamond/test/vendor/unity_internals.h diff --git a/exercises/difference-of-squares/.meta/tests.toml b/exercises/practice/difference-of-squares/.meta/tests.toml similarity index 100% rename from exercises/difference-of-squares/.meta/tests.toml rename to exercises/practice/difference-of-squares/.meta/tests.toml diff --git a/exercises/difference-of-squares/README.md b/exercises/practice/difference-of-squares/README.md similarity index 100% rename from exercises/difference-of-squares/README.md rename to exercises/practice/difference-of-squares/README.md diff --git a/exercises/difference-of-squares/makefile b/exercises/practice/difference-of-squares/makefile similarity index 100% rename from exercises/difference-of-squares/makefile rename to exercises/practice/difference-of-squares/makefile diff --git a/exercises/difference-of-squares/src/difference_of_squares.c b/exercises/practice/difference-of-squares/src/difference_of_squares.c similarity index 100% rename from exercises/difference-of-squares/src/difference_of_squares.c rename to exercises/practice/difference-of-squares/src/difference_of_squares.c diff --git a/exercises/difference-of-squares/src/difference_of_squares.h b/exercises/practice/difference-of-squares/src/difference_of_squares.h similarity index 100% rename from exercises/difference-of-squares/src/difference_of_squares.h rename to exercises/practice/difference-of-squares/src/difference_of_squares.h diff --git a/exercises/difference-of-squares/src/example.c b/exercises/practice/difference-of-squares/src/example.c similarity index 100% rename from exercises/difference-of-squares/src/example.c rename to exercises/practice/difference-of-squares/src/example.c diff --git a/exercises/difference-of-squares/src/example.h b/exercises/practice/difference-of-squares/src/example.h similarity index 100% rename from exercises/difference-of-squares/src/example.h rename to exercises/practice/difference-of-squares/src/example.h diff --git a/exercises/difference-of-squares/test/test_difference_of_squares.c b/exercises/practice/difference-of-squares/test/test_difference_of_squares.c similarity index 100% rename from exercises/difference-of-squares/test/test_difference_of_squares.c rename to exercises/practice/difference-of-squares/test/test_difference_of_squares.c diff --git a/exercises/difference-of-squares/test/vendor/unity.c b/exercises/practice/difference-of-squares/test/vendor/unity.c similarity index 100% rename from exercises/difference-of-squares/test/vendor/unity.c rename to exercises/practice/difference-of-squares/test/vendor/unity.c diff --git a/exercises/difference-of-squares/test/vendor/unity.h b/exercises/practice/difference-of-squares/test/vendor/unity.h similarity index 100% rename from exercises/difference-of-squares/test/vendor/unity.h rename to exercises/practice/difference-of-squares/test/vendor/unity.h diff --git a/exercises/difference-of-squares/test/vendor/unity_internals.h b/exercises/practice/difference-of-squares/test/vendor/unity_internals.h similarity index 100% rename from exercises/difference-of-squares/test/vendor/unity_internals.h rename to exercises/practice/difference-of-squares/test/vendor/unity_internals.h diff --git a/exercises/etl/.meta/tests.toml b/exercises/practice/etl/.meta/tests.toml similarity index 100% rename from exercises/etl/.meta/tests.toml rename to exercises/practice/etl/.meta/tests.toml diff --git a/exercises/etl/README.md b/exercises/practice/etl/README.md similarity index 100% rename from exercises/etl/README.md rename to exercises/practice/etl/README.md diff --git a/exercises/etl/makefile b/exercises/practice/etl/makefile similarity index 100% rename from exercises/etl/makefile rename to exercises/practice/etl/makefile diff --git a/exercises/etl/src/etl.c b/exercises/practice/etl/src/etl.c similarity index 100% rename from exercises/etl/src/etl.c rename to exercises/practice/etl/src/etl.c diff --git a/exercises/etl/src/etl.h b/exercises/practice/etl/src/etl.h similarity index 100% rename from exercises/etl/src/etl.h rename to exercises/practice/etl/src/etl.h diff --git a/exercises/etl/src/example.c b/exercises/practice/etl/src/example.c similarity index 100% rename from exercises/etl/src/example.c rename to exercises/practice/etl/src/example.c diff --git a/exercises/etl/src/example.h b/exercises/practice/etl/src/example.h similarity index 100% rename from exercises/etl/src/example.h rename to exercises/practice/etl/src/example.h diff --git a/exercises/etl/test/test_etl.c b/exercises/practice/etl/test/test_etl.c similarity index 100% rename from exercises/etl/test/test_etl.c rename to exercises/practice/etl/test/test_etl.c diff --git a/exercises/etl/test/vendor/unity.c b/exercises/practice/etl/test/vendor/unity.c similarity index 100% rename from exercises/etl/test/vendor/unity.c rename to exercises/practice/etl/test/vendor/unity.c diff --git a/exercises/etl/test/vendor/unity.h b/exercises/practice/etl/test/vendor/unity.h similarity index 100% rename from exercises/etl/test/vendor/unity.h rename to exercises/practice/etl/test/vendor/unity.h diff --git a/exercises/etl/test/vendor/unity_internals.h b/exercises/practice/etl/test/vendor/unity_internals.h similarity index 100% rename from exercises/etl/test/vendor/unity_internals.h rename to exercises/practice/etl/test/vendor/unity_internals.h diff --git a/exercises/gigasecond/.meta/tests.toml b/exercises/practice/gigasecond/.meta/tests.toml similarity index 100% rename from exercises/gigasecond/.meta/tests.toml rename to exercises/practice/gigasecond/.meta/tests.toml diff --git a/exercises/gigasecond/README.md b/exercises/practice/gigasecond/README.md similarity index 100% rename from exercises/gigasecond/README.md rename to exercises/practice/gigasecond/README.md diff --git a/exercises/gigasecond/makefile b/exercises/practice/gigasecond/makefile similarity index 100% rename from exercises/gigasecond/makefile rename to exercises/practice/gigasecond/makefile diff --git a/exercises/gigasecond/src/example.c b/exercises/practice/gigasecond/src/example.c similarity index 100% rename from exercises/gigasecond/src/example.c rename to exercises/practice/gigasecond/src/example.c diff --git a/exercises/gigasecond/src/example.h b/exercises/practice/gigasecond/src/example.h similarity index 100% rename from exercises/gigasecond/src/example.h rename to exercises/practice/gigasecond/src/example.h diff --git a/exercises/gigasecond/src/gigasecond.c b/exercises/practice/gigasecond/src/gigasecond.c similarity index 100% rename from exercises/gigasecond/src/gigasecond.c rename to exercises/practice/gigasecond/src/gigasecond.c diff --git a/exercises/gigasecond/src/gigasecond.h b/exercises/practice/gigasecond/src/gigasecond.h similarity index 100% rename from exercises/gigasecond/src/gigasecond.h rename to exercises/practice/gigasecond/src/gigasecond.h diff --git a/exercises/gigasecond/test/test_gigasecond.c b/exercises/practice/gigasecond/test/test_gigasecond.c similarity index 100% rename from exercises/gigasecond/test/test_gigasecond.c rename to exercises/practice/gigasecond/test/test_gigasecond.c diff --git a/exercises/gigasecond/test/vendor/unity.c b/exercises/practice/gigasecond/test/vendor/unity.c similarity index 100% rename from exercises/gigasecond/test/vendor/unity.c rename to exercises/practice/gigasecond/test/vendor/unity.c diff --git a/exercises/gigasecond/test/vendor/unity.h b/exercises/practice/gigasecond/test/vendor/unity.h similarity index 100% rename from exercises/gigasecond/test/vendor/unity.h rename to exercises/practice/gigasecond/test/vendor/unity.h diff --git a/exercises/gigasecond/test/vendor/unity_internals.h b/exercises/practice/gigasecond/test/vendor/unity_internals.h similarity index 100% rename from exercises/gigasecond/test/vendor/unity_internals.h rename to exercises/practice/gigasecond/test/vendor/unity_internals.h diff --git a/exercises/grade-school/.meta/tests.toml b/exercises/practice/grade-school/.meta/tests.toml similarity index 100% rename from exercises/grade-school/.meta/tests.toml rename to exercises/practice/grade-school/.meta/tests.toml diff --git a/exercises/grade-school/README.md b/exercises/practice/grade-school/README.md similarity index 100% rename from exercises/grade-school/README.md rename to exercises/practice/grade-school/README.md diff --git a/exercises/grade-school/makefile b/exercises/practice/grade-school/makefile similarity index 100% rename from exercises/grade-school/makefile rename to exercises/practice/grade-school/makefile diff --git a/exercises/grade-school/src/example.c b/exercises/practice/grade-school/src/example.c similarity index 100% rename from exercises/grade-school/src/example.c rename to exercises/practice/grade-school/src/example.c diff --git a/exercises/grade-school/src/example.h b/exercises/practice/grade-school/src/example.h similarity index 100% rename from exercises/grade-school/src/example.h rename to exercises/practice/grade-school/src/example.h diff --git a/exercises/grade-school/src/grade_school.c b/exercises/practice/grade-school/src/grade_school.c similarity index 100% rename from exercises/grade-school/src/grade_school.c rename to exercises/practice/grade-school/src/grade_school.c diff --git a/exercises/grade-school/src/grade_school.h b/exercises/practice/grade-school/src/grade_school.h similarity index 100% rename from exercises/grade-school/src/grade_school.h rename to exercises/practice/grade-school/src/grade_school.h diff --git a/exercises/grade-school/test/test_grade_school.c b/exercises/practice/grade-school/test/test_grade_school.c similarity index 100% rename from exercises/grade-school/test/test_grade_school.c rename to exercises/practice/grade-school/test/test_grade_school.c diff --git a/exercises/grade-school/test/vendor/unity.c b/exercises/practice/grade-school/test/vendor/unity.c similarity index 100% rename from exercises/grade-school/test/vendor/unity.c rename to exercises/practice/grade-school/test/vendor/unity.c diff --git a/exercises/grade-school/test/vendor/unity.h b/exercises/practice/grade-school/test/vendor/unity.h similarity index 100% rename from exercises/grade-school/test/vendor/unity.h rename to exercises/practice/grade-school/test/vendor/unity.h diff --git a/exercises/grade-school/test/vendor/unity_internals.h b/exercises/practice/grade-school/test/vendor/unity_internals.h similarity index 100% rename from exercises/grade-school/test/vendor/unity_internals.h rename to exercises/practice/grade-school/test/vendor/unity_internals.h diff --git a/exercises/grains/.meta/tests.toml b/exercises/practice/grains/.meta/tests.toml similarity index 100% rename from exercises/grains/.meta/tests.toml rename to exercises/practice/grains/.meta/tests.toml diff --git a/exercises/grains/README.md b/exercises/practice/grains/README.md similarity index 100% rename from exercises/grains/README.md rename to exercises/practice/grains/README.md diff --git a/exercises/grains/makefile b/exercises/practice/grains/makefile similarity index 100% rename from exercises/grains/makefile rename to exercises/practice/grains/makefile diff --git a/exercises/grains/src/example.c b/exercises/practice/grains/src/example.c similarity index 100% rename from exercises/grains/src/example.c rename to exercises/practice/grains/src/example.c diff --git a/exercises/grains/src/example.h b/exercises/practice/grains/src/example.h similarity index 100% rename from exercises/grains/src/example.h rename to exercises/practice/grains/src/example.h diff --git a/exercises/grains/src/grains.c b/exercises/practice/grains/src/grains.c similarity index 100% rename from exercises/grains/src/grains.c rename to exercises/practice/grains/src/grains.c diff --git a/exercises/grains/src/grains.h b/exercises/practice/grains/src/grains.h similarity index 100% rename from exercises/grains/src/grains.h rename to exercises/practice/grains/src/grains.h diff --git a/exercises/grains/test/test_grains.c b/exercises/practice/grains/test/test_grains.c similarity index 100% rename from exercises/grains/test/test_grains.c rename to exercises/practice/grains/test/test_grains.c diff --git a/exercises/grains/test/vendor/unity.c b/exercises/practice/grains/test/vendor/unity.c similarity index 100% rename from exercises/grains/test/vendor/unity.c rename to exercises/practice/grains/test/vendor/unity.c diff --git a/exercises/grains/test/vendor/unity.h b/exercises/practice/grains/test/vendor/unity.h similarity index 100% rename from exercises/grains/test/vendor/unity.h rename to exercises/practice/grains/test/vendor/unity.h diff --git a/exercises/grains/test/vendor/unity_internals.h b/exercises/practice/grains/test/vendor/unity_internals.h similarity index 100% rename from exercises/grains/test/vendor/unity_internals.h rename to exercises/practice/grains/test/vendor/unity_internals.h diff --git a/exercises/hamming/.meta/tests.toml b/exercises/practice/hamming/.meta/tests.toml similarity index 100% rename from exercises/hamming/.meta/tests.toml rename to exercises/practice/hamming/.meta/tests.toml diff --git a/exercises/hamming/README.md b/exercises/practice/hamming/README.md similarity index 100% rename from exercises/hamming/README.md rename to exercises/practice/hamming/README.md diff --git a/exercises/hamming/makefile b/exercises/practice/hamming/makefile similarity index 100% rename from exercises/hamming/makefile rename to exercises/practice/hamming/makefile diff --git a/exercises/hamming/src/example.c b/exercises/practice/hamming/src/example.c similarity index 100% rename from exercises/hamming/src/example.c rename to exercises/practice/hamming/src/example.c diff --git a/exercises/hamming/src/example.h b/exercises/practice/hamming/src/example.h similarity index 100% rename from exercises/hamming/src/example.h rename to exercises/practice/hamming/src/example.h diff --git a/exercises/hamming/src/hamming.c b/exercises/practice/hamming/src/hamming.c similarity index 100% rename from exercises/hamming/src/hamming.c rename to exercises/practice/hamming/src/hamming.c diff --git a/exercises/hamming/src/hamming.h b/exercises/practice/hamming/src/hamming.h similarity index 100% rename from exercises/hamming/src/hamming.h rename to exercises/practice/hamming/src/hamming.h diff --git a/exercises/hamming/test/test_hamming.c b/exercises/practice/hamming/test/test_hamming.c similarity index 100% rename from exercises/hamming/test/test_hamming.c rename to exercises/practice/hamming/test/test_hamming.c diff --git a/exercises/hamming/test/vendor/unity.c b/exercises/practice/hamming/test/vendor/unity.c similarity index 100% rename from exercises/hamming/test/vendor/unity.c rename to exercises/practice/hamming/test/vendor/unity.c diff --git a/exercises/hamming/test/vendor/unity.h b/exercises/practice/hamming/test/vendor/unity.h similarity index 100% rename from exercises/hamming/test/vendor/unity.h rename to exercises/practice/hamming/test/vendor/unity.h diff --git a/exercises/hamming/test/vendor/unity_internals.h b/exercises/practice/hamming/test/vendor/unity_internals.h similarity index 100% rename from exercises/hamming/test/vendor/unity_internals.h rename to exercises/practice/hamming/test/vendor/unity_internals.h diff --git a/exercises/hello-world/.meta/tests.toml b/exercises/practice/hello-world/.meta/tests.toml similarity index 100% rename from exercises/hello-world/.meta/tests.toml rename to exercises/practice/hello-world/.meta/tests.toml diff --git a/exercises/hello-world/README.md b/exercises/practice/hello-world/README.md similarity index 100% rename from exercises/hello-world/README.md rename to exercises/practice/hello-world/README.md diff --git a/exercises/hello-world/makefile b/exercises/practice/hello-world/makefile similarity index 100% rename from exercises/hello-world/makefile rename to exercises/practice/hello-world/makefile diff --git a/exercises/hello-world/src/example.c b/exercises/practice/hello-world/src/example.c similarity index 100% rename from exercises/hello-world/src/example.c rename to exercises/practice/hello-world/src/example.c diff --git a/exercises/hello-world/src/hello_world.c b/exercises/practice/hello-world/src/hello_world.c similarity index 100% rename from exercises/hello-world/src/hello_world.c rename to exercises/practice/hello-world/src/hello_world.c diff --git a/exercises/hello-world/src/hello_world.h b/exercises/practice/hello-world/src/hello_world.h similarity index 100% rename from exercises/hello-world/src/hello_world.h rename to exercises/practice/hello-world/src/hello_world.h diff --git a/exercises/hello-world/test/test_hello_world.c b/exercises/practice/hello-world/test/test_hello_world.c similarity index 100% rename from exercises/hello-world/test/test_hello_world.c rename to exercises/practice/hello-world/test/test_hello_world.c diff --git a/exercises/hello-world/test/vendor/unity.c b/exercises/practice/hello-world/test/vendor/unity.c similarity index 100% rename from exercises/hello-world/test/vendor/unity.c rename to exercises/practice/hello-world/test/vendor/unity.c diff --git a/exercises/hello-world/test/vendor/unity.h b/exercises/practice/hello-world/test/vendor/unity.h similarity index 100% rename from exercises/hello-world/test/vendor/unity.h rename to exercises/practice/hello-world/test/vendor/unity.h diff --git a/exercises/hello-world/test/vendor/unity_internals.h b/exercises/practice/hello-world/test/vendor/unity_internals.h similarity index 100% rename from exercises/hello-world/test/vendor/unity_internals.h rename to exercises/practice/hello-world/test/vendor/unity_internals.h diff --git a/exercises/isogram/.meta/tests.toml b/exercises/practice/isogram/.meta/tests.toml similarity index 100% rename from exercises/isogram/.meta/tests.toml rename to exercises/practice/isogram/.meta/tests.toml diff --git a/exercises/isogram/README.md b/exercises/practice/isogram/README.md similarity index 100% rename from exercises/isogram/README.md rename to exercises/practice/isogram/README.md diff --git a/exercises/isogram/makefile b/exercises/practice/isogram/makefile similarity index 100% rename from exercises/isogram/makefile rename to exercises/practice/isogram/makefile diff --git a/exercises/isogram/src/example.c b/exercises/practice/isogram/src/example.c similarity index 100% rename from exercises/isogram/src/example.c rename to exercises/practice/isogram/src/example.c diff --git a/exercises/isogram/src/isogram.c b/exercises/practice/isogram/src/isogram.c similarity index 100% rename from exercises/isogram/src/isogram.c rename to exercises/practice/isogram/src/isogram.c diff --git a/exercises/isogram/src/isogram.h b/exercises/practice/isogram/src/isogram.h similarity index 100% rename from exercises/isogram/src/isogram.h rename to exercises/practice/isogram/src/isogram.h diff --git a/exercises/isogram/test/test_isogram.c b/exercises/practice/isogram/test/test_isogram.c similarity index 100% rename from exercises/isogram/test/test_isogram.c rename to exercises/practice/isogram/test/test_isogram.c diff --git a/exercises/isogram/test/vendor/unity.c b/exercises/practice/isogram/test/vendor/unity.c similarity index 100% rename from exercises/isogram/test/vendor/unity.c rename to exercises/practice/isogram/test/vendor/unity.c diff --git a/exercises/isogram/test/vendor/unity.h b/exercises/practice/isogram/test/vendor/unity.h similarity index 100% rename from exercises/isogram/test/vendor/unity.h rename to exercises/practice/isogram/test/vendor/unity.h diff --git a/exercises/isogram/test/vendor/unity_internals.h b/exercises/practice/isogram/test/vendor/unity_internals.h similarity index 100% rename from exercises/isogram/test/vendor/unity_internals.h rename to exercises/practice/isogram/test/vendor/unity_internals.h diff --git a/exercises/largest-series-product/.meta/tests.toml b/exercises/practice/largest-series-product/.meta/tests.toml similarity index 100% rename from exercises/largest-series-product/.meta/tests.toml rename to exercises/practice/largest-series-product/.meta/tests.toml diff --git a/exercises/largest-series-product/README.md b/exercises/practice/largest-series-product/README.md similarity index 100% rename from exercises/largest-series-product/README.md rename to exercises/practice/largest-series-product/README.md diff --git a/exercises/largest-series-product/makefile b/exercises/practice/largest-series-product/makefile similarity index 100% rename from exercises/largest-series-product/makefile rename to exercises/practice/largest-series-product/makefile diff --git a/exercises/largest-series-product/src/example.c b/exercises/practice/largest-series-product/src/example.c similarity index 100% rename from exercises/largest-series-product/src/example.c rename to exercises/practice/largest-series-product/src/example.c diff --git a/exercises/largest-series-product/src/example.h b/exercises/practice/largest-series-product/src/example.h similarity index 100% rename from exercises/largest-series-product/src/example.h rename to exercises/practice/largest-series-product/src/example.h diff --git a/exercises/largest-series-product/src/largest_series_product.c b/exercises/practice/largest-series-product/src/largest_series_product.c similarity index 100% rename from exercises/largest-series-product/src/largest_series_product.c rename to exercises/practice/largest-series-product/src/largest_series_product.c diff --git a/exercises/largest-series-product/src/largest_series_product.h b/exercises/practice/largest-series-product/src/largest_series_product.h similarity index 100% rename from exercises/largest-series-product/src/largest_series_product.h rename to exercises/practice/largest-series-product/src/largest_series_product.h diff --git a/exercises/largest-series-product/test/test_largest_series_product.c b/exercises/practice/largest-series-product/test/test_largest_series_product.c similarity index 100% rename from exercises/largest-series-product/test/test_largest_series_product.c rename to exercises/practice/largest-series-product/test/test_largest_series_product.c diff --git a/exercises/largest-series-product/test/vendor/unity.c b/exercises/practice/largest-series-product/test/vendor/unity.c similarity index 100% rename from exercises/largest-series-product/test/vendor/unity.c rename to exercises/practice/largest-series-product/test/vendor/unity.c diff --git a/exercises/largest-series-product/test/vendor/unity.h b/exercises/practice/largest-series-product/test/vendor/unity.h similarity index 100% rename from exercises/largest-series-product/test/vendor/unity.h rename to exercises/practice/largest-series-product/test/vendor/unity.h diff --git a/exercises/largest-series-product/test/vendor/unity_internals.h b/exercises/practice/largest-series-product/test/vendor/unity_internals.h similarity index 100% rename from exercises/largest-series-product/test/vendor/unity_internals.h rename to exercises/practice/largest-series-product/test/vendor/unity_internals.h diff --git a/exercises/leap/.meta/tests.toml b/exercises/practice/leap/.meta/tests.toml similarity index 100% rename from exercises/leap/.meta/tests.toml rename to exercises/practice/leap/.meta/tests.toml diff --git a/exercises/leap/README.md b/exercises/practice/leap/README.md similarity index 100% rename from exercises/leap/README.md rename to exercises/practice/leap/README.md diff --git a/exercises/leap/makefile b/exercises/practice/leap/makefile similarity index 100% rename from exercises/leap/makefile rename to exercises/practice/leap/makefile diff --git a/exercises/leap/src/example.c b/exercises/practice/leap/src/example.c similarity index 100% rename from exercises/leap/src/example.c rename to exercises/practice/leap/src/example.c diff --git a/exercises/leap/src/example.h b/exercises/practice/leap/src/example.h similarity index 100% rename from exercises/leap/src/example.h rename to exercises/practice/leap/src/example.h diff --git a/exercises/leap/src/leap.c b/exercises/practice/leap/src/leap.c similarity index 100% rename from exercises/leap/src/leap.c rename to exercises/practice/leap/src/leap.c diff --git a/exercises/leap/src/leap.h b/exercises/practice/leap/src/leap.h similarity index 100% rename from exercises/leap/src/leap.h rename to exercises/practice/leap/src/leap.h diff --git a/exercises/leap/test/test_leap.c b/exercises/practice/leap/test/test_leap.c similarity index 100% rename from exercises/leap/test/test_leap.c rename to exercises/practice/leap/test/test_leap.c diff --git a/exercises/leap/test/vendor/unity.c b/exercises/practice/leap/test/vendor/unity.c similarity index 100% rename from exercises/leap/test/vendor/unity.c rename to exercises/practice/leap/test/vendor/unity.c diff --git a/exercises/leap/test/vendor/unity.h b/exercises/practice/leap/test/vendor/unity.h similarity index 100% rename from exercises/leap/test/vendor/unity.h rename to exercises/practice/leap/test/vendor/unity.h diff --git a/exercises/leap/test/vendor/unity_internals.h b/exercises/practice/leap/test/vendor/unity_internals.h similarity index 100% rename from exercises/leap/test/vendor/unity_internals.h rename to exercises/practice/leap/test/vendor/unity_internals.h diff --git a/exercises/linked-list/README.md b/exercises/practice/linked-list/README.md similarity index 100% rename from exercises/linked-list/README.md rename to exercises/practice/linked-list/README.md diff --git a/exercises/linked-list/makefile b/exercises/practice/linked-list/makefile similarity index 100% rename from exercises/linked-list/makefile rename to exercises/practice/linked-list/makefile diff --git a/exercises/linked-list/src/example.c b/exercises/practice/linked-list/src/example.c similarity index 100% rename from exercises/linked-list/src/example.c rename to exercises/practice/linked-list/src/example.c diff --git a/exercises/linked-list/src/example.h b/exercises/practice/linked-list/src/example.h similarity index 100% rename from exercises/linked-list/src/example.h rename to exercises/practice/linked-list/src/example.h diff --git a/exercises/linked-list/src/linked_list.c b/exercises/practice/linked-list/src/linked_list.c similarity index 100% rename from exercises/linked-list/src/linked_list.c rename to exercises/practice/linked-list/src/linked_list.c diff --git a/exercises/linked-list/src/linked_list.h b/exercises/practice/linked-list/src/linked_list.h similarity index 100% rename from exercises/linked-list/src/linked_list.h rename to exercises/practice/linked-list/src/linked_list.h diff --git a/exercises/linked-list/test/test_linked_list.c b/exercises/practice/linked-list/test/test_linked_list.c similarity index 100% rename from exercises/linked-list/test/test_linked_list.c rename to exercises/practice/linked-list/test/test_linked_list.c diff --git a/exercises/linked-list/test/vendor/unity.c b/exercises/practice/linked-list/test/vendor/unity.c similarity index 100% rename from exercises/linked-list/test/vendor/unity.c rename to exercises/practice/linked-list/test/vendor/unity.c diff --git a/exercises/linked-list/test/vendor/unity.h b/exercises/practice/linked-list/test/vendor/unity.h similarity index 100% rename from exercises/linked-list/test/vendor/unity.h rename to exercises/practice/linked-list/test/vendor/unity.h diff --git a/exercises/linked-list/test/vendor/unity_internals.h b/exercises/practice/linked-list/test/vendor/unity_internals.h similarity index 100% rename from exercises/linked-list/test/vendor/unity_internals.h rename to exercises/practice/linked-list/test/vendor/unity_internals.h diff --git a/exercises/list-ops/.meta/tests.toml b/exercises/practice/list-ops/.meta/tests.toml similarity index 100% rename from exercises/list-ops/.meta/tests.toml rename to exercises/practice/list-ops/.meta/tests.toml diff --git a/exercises/list-ops/README.md b/exercises/practice/list-ops/README.md similarity index 100% rename from exercises/list-ops/README.md rename to exercises/practice/list-ops/README.md diff --git a/exercises/list-ops/makefile b/exercises/practice/list-ops/makefile similarity index 100% rename from exercises/list-ops/makefile rename to exercises/practice/list-ops/makefile diff --git a/exercises/list-ops/src/example.c b/exercises/practice/list-ops/src/example.c similarity index 100% rename from exercises/list-ops/src/example.c rename to exercises/practice/list-ops/src/example.c diff --git a/exercises/list-ops/src/example.h b/exercises/practice/list-ops/src/example.h similarity index 100% rename from exercises/list-ops/src/example.h rename to exercises/practice/list-ops/src/example.h diff --git a/exercises/list-ops/src/list_ops.c b/exercises/practice/list-ops/src/list_ops.c similarity index 100% rename from exercises/list-ops/src/list_ops.c rename to exercises/practice/list-ops/src/list_ops.c diff --git a/exercises/list-ops/src/list_ops.h b/exercises/practice/list-ops/src/list_ops.h similarity index 100% rename from exercises/list-ops/src/list_ops.h rename to exercises/practice/list-ops/src/list_ops.h diff --git a/exercises/list-ops/test/test_list_ops.c b/exercises/practice/list-ops/test/test_list_ops.c similarity index 100% rename from exercises/list-ops/test/test_list_ops.c rename to exercises/practice/list-ops/test/test_list_ops.c diff --git a/exercises/list-ops/test/vendor/unity.c b/exercises/practice/list-ops/test/vendor/unity.c similarity index 100% rename from exercises/list-ops/test/vendor/unity.c rename to exercises/practice/list-ops/test/vendor/unity.c diff --git a/exercises/list-ops/test/vendor/unity.h b/exercises/practice/list-ops/test/vendor/unity.h similarity index 100% rename from exercises/list-ops/test/vendor/unity.h rename to exercises/practice/list-ops/test/vendor/unity.h diff --git a/exercises/list-ops/test/vendor/unity_internals.h b/exercises/practice/list-ops/test/vendor/unity_internals.h similarity index 100% rename from exercises/list-ops/test/vendor/unity_internals.h rename to exercises/practice/list-ops/test/vendor/unity_internals.h diff --git a/exercises/luhn/.meta/tests.toml b/exercises/practice/luhn/.meta/tests.toml similarity index 100% rename from exercises/luhn/.meta/tests.toml rename to exercises/practice/luhn/.meta/tests.toml diff --git a/exercises/luhn/README.md b/exercises/practice/luhn/README.md similarity index 100% rename from exercises/luhn/README.md rename to exercises/practice/luhn/README.md diff --git a/exercises/luhn/makefile b/exercises/practice/luhn/makefile similarity index 100% rename from exercises/luhn/makefile rename to exercises/practice/luhn/makefile diff --git a/exercises/luhn/src/example.c b/exercises/practice/luhn/src/example.c similarity index 100% rename from exercises/luhn/src/example.c rename to exercises/practice/luhn/src/example.c diff --git a/exercises/luhn/src/example.h b/exercises/practice/luhn/src/example.h similarity index 100% rename from exercises/luhn/src/example.h rename to exercises/practice/luhn/src/example.h diff --git a/exercises/luhn/src/luhn.c b/exercises/practice/luhn/src/luhn.c similarity index 100% rename from exercises/luhn/src/luhn.c rename to exercises/practice/luhn/src/luhn.c diff --git a/exercises/luhn/src/luhn.h b/exercises/practice/luhn/src/luhn.h similarity index 100% rename from exercises/luhn/src/luhn.h rename to exercises/practice/luhn/src/luhn.h diff --git a/exercises/luhn/test/test_luhn.c b/exercises/practice/luhn/test/test_luhn.c similarity index 100% rename from exercises/luhn/test/test_luhn.c rename to exercises/practice/luhn/test/test_luhn.c diff --git a/exercises/luhn/test/vendor/unity.c b/exercises/practice/luhn/test/vendor/unity.c similarity index 100% rename from exercises/luhn/test/vendor/unity.c rename to exercises/practice/luhn/test/vendor/unity.c diff --git a/exercises/luhn/test/vendor/unity.h b/exercises/practice/luhn/test/vendor/unity.h similarity index 100% rename from exercises/luhn/test/vendor/unity.h rename to exercises/practice/luhn/test/vendor/unity.h diff --git a/exercises/luhn/test/vendor/unity_internals.h b/exercises/practice/luhn/test/vendor/unity_internals.h similarity index 100% rename from exercises/luhn/test/vendor/unity_internals.h rename to exercises/practice/luhn/test/vendor/unity_internals.h diff --git a/exercises/matching-brackets/.meta/tests.toml b/exercises/practice/matching-brackets/.meta/tests.toml similarity index 100% rename from exercises/matching-brackets/.meta/tests.toml rename to exercises/practice/matching-brackets/.meta/tests.toml diff --git a/exercises/matching-brackets/README.md b/exercises/practice/matching-brackets/README.md similarity index 100% rename from exercises/matching-brackets/README.md rename to exercises/practice/matching-brackets/README.md diff --git a/exercises/matching-brackets/makefile b/exercises/practice/matching-brackets/makefile similarity index 100% rename from exercises/matching-brackets/makefile rename to exercises/practice/matching-brackets/makefile diff --git a/exercises/matching-brackets/src/example.c b/exercises/practice/matching-brackets/src/example.c similarity index 100% rename from exercises/matching-brackets/src/example.c rename to exercises/practice/matching-brackets/src/example.c diff --git a/exercises/matching-brackets/src/example.h b/exercises/practice/matching-brackets/src/example.h similarity index 100% rename from exercises/matching-brackets/src/example.h rename to exercises/practice/matching-brackets/src/example.h diff --git a/exercises/matching-brackets/src/matching_brackets.c b/exercises/practice/matching-brackets/src/matching_brackets.c similarity index 100% rename from exercises/matching-brackets/src/matching_brackets.c rename to exercises/practice/matching-brackets/src/matching_brackets.c diff --git a/exercises/matching-brackets/src/matching_brackets.h b/exercises/practice/matching-brackets/src/matching_brackets.h similarity index 100% rename from exercises/matching-brackets/src/matching_brackets.h rename to exercises/practice/matching-brackets/src/matching_brackets.h diff --git a/exercises/matching-brackets/test/test_matching_brackets.c b/exercises/practice/matching-brackets/test/test_matching_brackets.c similarity index 100% rename from exercises/matching-brackets/test/test_matching_brackets.c rename to exercises/practice/matching-brackets/test/test_matching_brackets.c diff --git a/exercises/matching-brackets/test/vendor/unity.c b/exercises/practice/matching-brackets/test/vendor/unity.c similarity index 100% rename from exercises/matching-brackets/test/vendor/unity.c rename to exercises/practice/matching-brackets/test/vendor/unity.c diff --git a/exercises/matching-brackets/test/vendor/unity.h b/exercises/practice/matching-brackets/test/vendor/unity.h similarity index 100% rename from exercises/matching-brackets/test/vendor/unity.h rename to exercises/practice/matching-brackets/test/vendor/unity.h diff --git a/exercises/matching-brackets/test/vendor/unity_internals.h b/exercises/practice/matching-brackets/test/vendor/unity_internals.h similarity index 100% rename from exercises/matching-brackets/test/vendor/unity_internals.h rename to exercises/practice/matching-brackets/test/vendor/unity_internals.h diff --git a/exercises/meetup/.meta/tests.toml b/exercises/practice/meetup/.meta/tests.toml similarity index 100% rename from exercises/meetup/.meta/tests.toml rename to exercises/practice/meetup/.meta/tests.toml diff --git a/exercises/meetup/README.md b/exercises/practice/meetup/README.md similarity index 100% rename from exercises/meetup/README.md rename to exercises/practice/meetup/README.md diff --git a/exercises/meetup/makefile b/exercises/practice/meetup/makefile similarity index 100% rename from exercises/meetup/makefile rename to exercises/practice/meetup/makefile diff --git a/exercises/meetup/src/example.c b/exercises/practice/meetup/src/example.c similarity index 100% rename from exercises/meetup/src/example.c rename to exercises/practice/meetup/src/example.c diff --git a/exercises/meetup/src/example.h b/exercises/practice/meetup/src/example.h similarity index 100% rename from exercises/meetup/src/example.h rename to exercises/practice/meetup/src/example.h diff --git a/exercises/meetup/src/meetup.c b/exercises/practice/meetup/src/meetup.c similarity index 100% rename from exercises/meetup/src/meetup.c rename to exercises/practice/meetup/src/meetup.c diff --git a/exercises/meetup/src/meetup.h b/exercises/practice/meetup/src/meetup.h similarity index 100% rename from exercises/meetup/src/meetup.h rename to exercises/practice/meetup/src/meetup.h diff --git a/exercises/meetup/test/test_meetup.c b/exercises/practice/meetup/test/test_meetup.c similarity index 100% rename from exercises/meetup/test/test_meetup.c rename to exercises/practice/meetup/test/test_meetup.c diff --git a/exercises/meetup/test/vendor/unity.c b/exercises/practice/meetup/test/vendor/unity.c similarity index 100% rename from exercises/meetup/test/vendor/unity.c rename to exercises/practice/meetup/test/vendor/unity.c diff --git a/exercises/meetup/test/vendor/unity.h b/exercises/practice/meetup/test/vendor/unity.h similarity index 100% rename from exercises/meetup/test/vendor/unity.h rename to exercises/practice/meetup/test/vendor/unity.h diff --git a/exercises/meetup/test/vendor/unity_internals.h b/exercises/practice/meetup/test/vendor/unity_internals.h similarity index 100% rename from exercises/meetup/test/vendor/unity_internals.h rename to exercises/practice/meetup/test/vendor/unity_internals.h diff --git a/exercises/minesweeper/.meta/tests.toml b/exercises/practice/minesweeper/.meta/tests.toml similarity index 100% rename from exercises/minesweeper/.meta/tests.toml rename to exercises/practice/minesweeper/.meta/tests.toml diff --git a/exercises/minesweeper/README.md b/exercises/practice/minesweeper/README.md similarity index 100% rename from exercises/minesweeper/README.md rename to exercises/practice/minesweeper/README.md diff --git a/exercises/minesweeper/makefile b/exercises/practice/minesweeper/makefile similarity index 100% rename from exercises/minesweeper/makefile rename to exercises/practice/minesweeper/makefile diff --git a/exercises/minesweeper/src/example.c b/exercises/practice/minesweeper/src/example.c similarity index 100% rename from exercises/minesweeper/src/example.c rename to exercises/practice/minesweeper/src/example.c diff --git a/exercises/minesweeper/src/example.h b/exercises/practice/minesweeper/src/example.h similarity index 100% rename from exercises/minesweeper/src/example.h rename to exercises/practice/minesweeper/src/example.h diff --git a/exercises/minesweeper/src/minesweeper.c b/exercises/practice/minesweeper/src/minesweeper.c similarity index 100% rename from exercises/minesweeper/src/minesweeper.c rename to exercises/practice/minesweeper/src/minesweeper.c diff --git a/exercises/minesweeper/src/minesweeper.h b/exercises/practice/minesweeper/src/minesweeper.h similarity index 100% rename from exercises/minesweeper/src/minesweeper.h rename to exercises/practice/minesweeper/src/minesweeper.h diff --git a/exercises/minesweeper/test/test_minesweeper.c b/exercises/practice/minesweeper/test/test_minesweeper.c similarity index 100% rename from exercises/minesweeper/test/test_minesweeper.c rename to exercises/practice/minesweeper/test/test_minesweeper.c diff --git a/exercises/minesweeper/test/vendor/unity.c b/exercises/practice/minesweeper/test/vendor/unity.c similarity index 100% rename from exercises/minesweeper/test/vendor/unity.c rename to exercises/practice/minesweeper/test/vendor/unity.c diff --git a/exercises/minesweeper/test/vendor/unity.h b/exercises/practice/minesweeper/test/vendor/unity.h similarity index 100% rename from exercises/minesweeper/test/vendor/unity.h rename to exercises/practice/minesweeper/test/vendor/unity.h diff --git a/exercises/minesweeper/test/vendor/unity_internals.h b/exercises/practice/minesweeper/test/vendor/unity_internals.h similarity index 100% rename from exercises/minesweeper/test/vendor/unity_internals.h rename to exercises/practice/minesweeper/test/vendor/unity_internals.h diff --git a/exercises/nth-prime/.meta/tests.toml b/exercises/practice/nth-prime/.meta/tests.toml similarity index 100% rename from exercises/nth-prime/.meta/tests.toml rename to exercises/practice/nth-prime/.meta/tests.toml diff --git a/exercises/nth-prime/README.md b/exercises/practice/nth-prime/README.md similarity index 100% rename from exercises/nth-prime/README.md rename to exercises/practice/nth-prime/README.md diff --git a/exercises/nth-prime/makefile b/exercises/practice/nth-prime/makefile similarity index 100% rename from exercises/nth-prime/makefile rename to exercises/practice/nth-prime/makefile diff --git a/exercises/nth-prime/src/example.c b/exercises/practice/nth-prime/src/example.c similarity index 100% rename from exercises/nth-prime/src/example.c rename to exercises/practice/nth-prime/src/example.c diff --git a/exercises/nth-prime/src/example.h b/exercises/practice/nth-prime/src/example.h similarity index 100% rename from exercises/nth-prime/src/example.h rename to exercises/practice/nth-prime/src/example.h diff --git a/exercises/nth-prime/src/nth_prime.c b/exercises/practice/nth-prime/src/nth_prime.c similarity index 100% rename from exercises/nth-prime/src/nth_prime.c rename to exercises/practice/nth-prime/src/nth_prime.c diff --git a/exercises/nth-prime/src/nth_prime.h b/exercises/practice/nth-prime/src/nth_prime.h similarity index 100% rename from exercises/nth-prime/src/nth_prime.h rename to exercises/practice/nth-prime/src/nth_prime.h diff --git a/exercises/nth-prime/test/test_nth_prime.c b/exercises/practice/nth-prime/test/test_nth_prime.c similarity index 100% rename from exercises/nth-prime/test/test_nth_prime.c rename to exercises/practice/nth-prime/test/test_nth_prime.c diff --git a/exercises/nth-prime/test/vendor/unity.c b/exercises/practice/nth-prime/test/vendor/unity.c similarity index 100% rename from exercises/nth-prime/test/vendor/unity.c rename to exercises/practice/nth-prime/test/vendor/unity.c diff --git a/exercises/nth-prime/test/vendor/unity.h b/exercises/practice/nth-prime/test/vendor/unity.h similarity index 100% rename from exercises/nth-prime/test/vendor/unity.h rename to exercises/practice/nth-prime/test/vendor/unity.h diff --git a/exercises/nth-prime/test/vendor/unity_internals.h b/exercises/practice/nth-prime/test/vendor/unity_internals.h similarity index 100% rename from exercises/nth-prime/test/vendor/unity_internals.h rename to exercises/practice/nth-prime/test/vendor/unity_internals.h diff --git a/exercises/nucleotide-count/.meta/tests.toml b/exercises/practice/nucleotide-count/.meta/tests.toml similarity index 100% rename from exercises/nucleotide-count/.meta/tests.toml rename to exercises/practice/nucleotide-count/.meta/tests.toml diff --git a/exercises/nucleotide-count/README.md b/exercises/practice/nucleotide-count/README.md similarity index 100% rename from exercises/nucleotide-count/README.md rename to exercises/practice/nucleotide-count/README.md diff --git a/exercises/nucleotide-count/makefile b/exercises/practice/nucleotide-count/makefile similarity index 100% rename from exercises/nucleotide-count/makefile rename to exercises/practice/nucleotide-count/makefile diff --git a/exercises/nucleotide-count/src/example.c b/exercises/practice/nucleotide-count/src/example.c similarity index 100% rename from exercises/nucleotide-count/src/example.c rename to exercises/practice/nucleotide-count/src/example.c diff --git a/exercises/nucleotide-count/src/example.h b/exercises/practice/nucleotide-count/src/example.h similarity index 100% rename from exercises/nucleotide-count/src/example.h rename to exercises/practice/nucleotide-count/src/example.h diff --git a/exercises/nucleotide-count/src/nucleotide_count.c b/exercises/practice/nucleotide-count/src/nucleotide_count.c similarity index 100% rename from exercises/nucleotide-count/src/nucleotide_count.c rename to exercises/practice/nucleotide-count/src/nucleotide_count.c diff --git a/exercises/nucleotide-count/src/nucleotide_count.h b/exercises/practice/nucleotide-count/src/nucleotide_count.h similarity index 100% rename from exercises/nucleotide-count/src/nucleotide_count.h rename to exercises/practice/nucleotide-count/src/nucleotide_count.h diff --git a/exercises/nucleotide-count/test/test_nucleotide_count.c b/exercises/practice/nucleotide-count/test/test_nucleotide_count.c similarity index 100% rename from exercises/nucleotide-count/test/test_nucleotide_count.c rename to exercises/practice/nucleotide-count/test/test_nucleotide_count.c diff --git a/exercises/nucleotide-count/test/vendor/unity.c b/exercises/practice/nucleotide-count/test/vendor/unity.c similarity index 100% rename from exercises/nucleotide-count/test/vendor/unity.c rename to exercises/practice/nucleotide-count/test/vendor/unity.c diff --git a/exercises/nucleotide-count/test/vendor/unity.h b/exercises/practice/nucleotide-count/test/vendor/unity.h similarity index 100% rename from exercises/nucleotide-count/test/vendor/unity.h rename to exercises/practice/nucleotide-count/test/vendor/unity.h diff --git a/exercises/nucleotide-count/test/vendor/unity_internals.h b/exercises/practice/nucleotide-count/test/vendor/unity_internals.h similarity index 100% rename from exercises/nucleotide-count/test/vendor/unity_internals.h rename to exercises/practice/nucleotide-count/test/vendor/unity_internals.h diff --git a/exercises/palindrome-products/.meta/tests.toml b/exercises/practice/palindrome-products/.meta/tests.toml similarity index 100% rename from exercises/palindrome-products/.meta/tests.toml rename to exercises/practice/palindrome-products/.meta/tests.toml diff --git a/exercises/palindrome-products/README.md b/exercises/practice/palindrome-products/README.md similarity index 100% rename from exercises/palindrome-products/README.md rename to exercises/practice/palindrome-products/README.md diff --git a/exercises/palindrome-products/makefile b/exercises/practice/palindrome-products/makefile similarity index 100% rename from exercises/palindrome-products/makefile rename to exercises/practice/palindrome-products/makefile diff --git a/exercises/palindrome-products/src/example.c b/exercises/practice/palindrome-products/src/example.c similarity index 100% rename from exercises/palindrome-products/src/example.c rename to exercises/practice/palindrome-products/src/example.c diff --git a/exercises/palindrome-products/src/example.h b/exercises/practice/palindrome-products/src/example.h similarity index 100% rename from exercises/palindrome-products/src/example.h rename to exercises/practice/palindrome-products/src/example.h diff --git a/exercises/palindrome-products/src/palindrome_products.c b/exercises/practice/palindrome-products/src/palindrome_products.c similarity index 100% rename from exercises/palindrome-products/src/palindrome_products.c rename to exercises/practice/palindrome-products/src/palindrome_products.c diff --git a/exercises/palindrome-products/src/palindrome_products.h b/exercises/practice/palindrome-products/src/palindrome_products.h similarity index 100% rename from exercises/palindrome-products/src/palindrome_products.h rename to exercises/practice/palindrome-products/src/palindrome_products.h diff --git a/exercises/palindrome-products/test/test_palindrome_products.c b/exercises/practice/palindrome-products/test/test_palindrome_products.c similarity index 100% rename from exercises/palindrome-products/test/test_palindrome_products.c rename to exercises/practice/palindrome-products/test/test_palindrome_products.c diff --git a/exercises/palindrome-products/test/vendor/unity.c b/exercises/practice/palindrome-products/test/vendor/unity.c similarity index 100% rename from exercises/palindrome-products/test/vendor/unity.c rename to exercises/practice/palindrome-products/test/vendor/unity.c diff --git a/exercises/palindrome-products/test/vendor/unity.h b/exercises/practice/palindrome-products/test/vendor/unity.h similarity index 100% rename from exercises/palindrome-products/test/vendor/unity.h rename to exercises/practice/palindrome-products/test/vendor/unity.h diff --git a/exercises/palindrome-products/test/vendor/unity_internals.h b/exercises/practice/palindrome-products/test/vendor/unity_internals.h similarity index 100% rename from exercises/palindrome-products/test/vendor/unity_internals.h rename to exercises/practice/palindrome-products/test/vendor/unity_internals.h diff --git a/exercises/pangram/.meta/tests.toml b/exercises/practice/pangram/.meta/tests.toml similarity index 100% rename from exercises/pangram/.meta/tests.toml rename to exercises/practice/pangram/.meta/tests.toml diff --git a/exercises/pangram/README.md b/exercises/practice/pangram/README.md similarity index 100% rename from exercises/pangram/README.md rename to exercises/practice/pangram/README.md diff --git a/exercises/pangram/makefile b/exercises/practice/pangram/makefile similarity index 100% rename from exercises/pangram/makefile rename to exercises/practice/pangram/makefile diff --git a/exercises/pangram/src/example.c b/exercises/practice/pangram/src/example.c similarity index 100% rename from exercises/pangram/src/example.c rename to exercises/practice/pangram/src/example.c diff --git a/exercises/pangram/src/pangram.c b/exercises/practice/pangram/src/pangram.c similarity index 100% rename from exercises/pangram/src/pangram.c rename to exercises/practice/pangram/src/pangram.c diff --git a/exercises/pangram/src/pangram.h b/exercises/practice/pangram/src/pangram.h similarity index 100% rename from exercises/pangram/src/pangram.h rename to exercises/practice/pangram/src/pangram.h diff --git a/exercises/pangram/test/test_pangram.c b/exercises/practice/pangram/test/test_pangram.c similarity index 100% rename from exercises/pangram/test/test_pangram.c rename to exercises/practice/pangram/test/test_pangram.c diff --git a/exercises/pangram/test/vendor/unity.c b/exercises/practice/pangram/test/vendor/unity.c similarity index 100% rename from exercises/pangram/test/vendor/unity.c rename to exercises/practice/pangram/test/vendor/unity.c diff --git a/exercises/pangram/test/vendor/unity.h b/exercises/practice/pangram/test/vendor/unity.h similarity index 100% rename from exercises/pangram/test/vendor/unity.h rename to exercises/practice/pangram/test/vendor/unity.h diff --git a/exercises/pangram/test/vendor/unity_internals.h b/exercises/practice/pangram/test/vendor/unity_internals.h similarity index 100% rename from exercises/pangram/test/vendor/unity_internals.h rename to exercises/practice/pangram/test/vendor/unity_internals.h diff --git a/exercises/pascals-triangle/.meta/tests.toml b/exercises/practice/pascals-triangle/.meta/tests.toml similarity index 100% rename from exercises/pascals-triangle/.meta/tests.toml rename to exercises/practice/pascals-triangle/.meta/tests.toml diff --git a/exercises/pascals-triangle/README.md b/exercises/practice/pascals-triangle/README.md similarity index 100% rename from exercises/pascals-triangle/README.md rename to exercises/practice/pascals-triangle/README.md diff --git a/exercises/pascals-triangle/makefile b/exercises/practice/pascals-triangle/makefile similarity index 100% rename from exercises/pascals-triangle/makefile rename to exercises/practice/pascals-triangle/makefile diff --git a/exercises/pascals-triangle/src/example.c b/exercises/practice/pascals-triangle/src/example.c similarity index 100% rename from exercises/pascals-triangle/src/example.c rename to exercises/practice/pascals-triangle/src/example.c diff --git a/exercises/pascals-triangle/src/example.h b/exercises/practice/pascals-triangle/src/example.h similarity index 100% rename from exercises/pascals-triangle/src/example.h rename to exercises/practice/pascals-triangle/src/example.h diff --git a/exercises/pascals-triangle/src/pascals_triangle.c b/exercises/practice/pascals-triangle/src/pascals_triangle.c similarity index 100% rename from exercises/pascals-triangle/src/pascals_triangle.c rename to exercises/practice/pascals-triangle/src/pascals_triangle.c diff --git a/exercises/pascals-triangle/src/pascals_triangle.h b/exercises/practice/pascals-triangle/src/pascals_triangle.h similarity index 100% rename from exercises/pascals-triangle/src/pascals_triangle.h rename to exercises/practice/pascals-triangle/src/pascals_triangle.h diff --git a/exercises/pascals-triangle/test/test_pascals_triangle.c b/exercises/practice/pascals-triangle/test/test_pascals_triangle.c similarity index 100% rename from exercises/pascals-triangle/test/test_pascals_triangle.c rename to exercises/practice/pascals-triangle/test/test_pascals_triangle.c diff --git a/exercises/pascals-triangle/test/vendor/unity.c b/exercises/practice/pascals-triangle/test/vendor/unity.c similarity index 100% rename from exercises/pascals-triangle/test/vendor/unity.c rename to exercises/practice/pascals-triangle/test/vendor/unity.c diff --git a/exercises/pascals-triangle/test/vendor/unity.h b/exercises/practice/pascals-triangle/test/vendor/unity.h similarity index 100% rename from exercises/pascals-triangle/test/vendor/unity.h rename to exercises/practice/pascals-triangle/test/vendor/unity.h diff --git a/exercises/pascals-triangle/test/vendor/unity_internals.h b/exercises/practice/pascals-triangle/test/vendor/unity_internals.h similarity index 100% rename from exercises/pascals-triangle/test/vendor/unity_internals.h rename to exercises/practice/pascals-triangle/test/vendor/unity_internals.h diff --git a/exercises/perfect-numbers/.meta/tests.toml b/exercises/practice/perfect-numbers/.meta/tests.toml similarity index 100% rename from exercises/perfect-numbers/.meta/tests.toml rename to exercises/practice/perfect-numbers/.meta/tests.toml diff --git a/exercises/perfect-numbers/README.md b/exercises/practice/perfect-numbers/README.md similarity index 100% rename from exercises/perfect-numbers/README.md rename to exercises/practice/perfect-numbers/README.md diff --git a/exercises/perfect-numbers/makefile b/exercises/practice/perfect-numbers/makefile similarity index 100% rename from exercises/perfect-numbers/makefile rename to exercises/practice/perfect-numbers/makefile diff --git a/exercises/perfect-numbers/src/example.c b/exercises/practice/perfect-numbers/src/example.c similarity index 100% rename from exercises/perfect-numbers/src/example.c rename to exercises/practice/perfect-numbers/src/example.c diff --git a/exercises/perfect-numbers/src/example.h b/exercises/practice/perfect-numbers/src/example.h similarity index 100% rename from exercises/perfect-numbers/src/example.h rename to exercises/practice/perfect-numbers/src/example.h diff --git a/exercises/perfect-numbers/src/perfect_numbers.c b/exercises/practice/perfect-numbers/src/perfect_numbers.c similarity index 100% rename from exercises/perfect-numbers/src/perfect_numbers.c rename to exercises/practice/perfect-numbers/src/perfect_numbers.c diff --git a/exercises/perfect-numbers/src/perfect_numbers.h b/exercises/practice/perfect-numbers/src/perfect_numbers.h similarity index 100% rename from exercises/perfect-numbers/src/perfect_numbers.h rename to exercises/practice/perfect-numbers/src/perfect_numbers.h diff --git a/exercises/perfect-numbers/test/test_perfect_numbers.c b/exercises/practice/perfect-numbers/test/test_perfect_numbers.c similarity index 100% rename from exercises/perfect-numbers/test/test_perfect_numbers.c rename to exercises/practice/perfect-numbers/test/test_perfect_numbers.c diff --git a/exercises/perfect-numbers/test/vendor/unity.c b/exercises/practice/perfect-numbers/test/vendor/unity.c similarity index 100% rename from exercises/perfect-numbers/test/vendor/unity.c rename to exercises/practice/perfect-numbers/test/vendor/unity.c diff --git a/exercises/perfect-numbers/test/vendor/unity.h b/exercises/practice/perfect-numbers/test/vendor/unity.h similarity index 100% rename from exercises/perfect-numbers/test/vendor/unity.h rename to exercises/practice/perfect-numbers/test/vendor/unity.h diff --git a/exercises/perfect-numbers/test/vendor/unity_internals.h b/exercises/practice/perfect-numbers/test/vendor/unity_internals.h similarity index 100% rename from exercises/perfect-numbers/test/vendor/unity_internals.h rename to exercises/practice/perfect-numbers/test/vendor/unity_internals.h diff --git a/exercises/phone-number/.meta/tests.toml b/exercises/practice/phone-number/.meta/tests.toml similarity index 100% rename from exercises/phone-number/.meta/tests.toml rename to exercises/practice/phone-number/.meta/tests.toml diff --git a/exercises/phone-number/README.md b/exercises/practice/phone-number/README.md similarity index 100% rename from exercises/phone-number/README.md rename to exercises/practice/phone-number/README.md diff --git a/exercises/phone-number/makefile b/exercises/practice/phone-number/makefile similarity index 100% rename from exercises/phone-number/makefile rename to exercises/practice/phone-number/makefile diff --git a/exercises/phone-number/src/example.c b/exercises/practice/phone-number/src/example.c similarity index 100% rename from exercises/phone-number/src/example.c rename to exercises/practice/phone-number/src/example.c diff --git a/exercises/phone-number/src/example.h b/exercises/practice/phone-number/src/example.h similarity index 100% rename from exercises/phone-number/src/example.h rename to exercises/practice/phone-number/src/example.h diff --git a/exercises/phone-number/src/phone_number.c b/exercises/practice/phone-number/src/phone_number.c similarity index 100% rename from exercises/phone-number/src/phone_number.c rename to exercises/practice/phone-number/src/phone_number.c diff --git a/exercises/phone-number/src/phone_number.h b/exercises/practice/phone-number/src/phone_number.h similarity index 100% rename from exercises/phone-number/src/phone_number.h rename to exercises/practice/phone-number/src/phone_number.h diff --git a/exercises/phone-number/test/test_phone_number.c b/exercises/practice/phone-number/test/test_phone_number.c similarity index 100% rename from exercises/phone-number/test/test_phone_number.c rename to exercises/practice/phone-number/test/test_phone_number.c diff --git a/exercises/phone-number/test/vendor/unity.c b/exercises/practice/phone-number/test/vendor/unity.c similarity index 100% rename from exercises/phone-number/test/vendor/unity.c rename to exercises/practice/phone-number/test/vendor/unity.c diff --git a/exercises/phone-number/test/vendor/unity.h b/exercises/practice/phone-number/test/vendor/unity.h similarity index 100% rename from exercises/phone-number/test/vendor/unity.h rename to exercises/practice/phone-number/test/vendor/unity.h diff --git a/exercises/phone-number/test/vendor/unity_internals.h b/exercises/practice/phone-number/test/vendor/unity_internals.h similarity index 100% rename from exercises/phone-number/test/vendor/unity_internals.h rename to exercises/practice/phone-number/test/vendor/unity_internals.h diff --git a/exercises/pig-latin/.meta/tests.toml b/exercises/practice/pig-latin/.meta/tests.toml similarity index 100% rename from exercises/pig-latin/.meta/tests.toml rename to exercises/practice/pig-latin/.meta/tests.toml diff --git a/exercises/pig-latin/README.md b/exercises/practice/pig-latin/README.md similarity index 100% rename from exercises/pig-latin/README.md rename to exercises/practice/pig-latin/README.md diff --git a/exercises/pig-latin/makefile b/exercises/practice/pig-latin/makefile similarity index 100% rename from exercises/pig-latin/makefile rename to exercises/practice/pig-latin/makefile diff --git a/exercises/pig-latin/src/example.c b/exercises/practice/pig-latin/src/example.c similarity index 100% rename from exercises/pig-latin/src/example.c rename to exercises/practice/pig-latin/src/example.c diff --git a/exercises/pig-latin/src/example.h b/exercises/practice/pig-latin/src/example.h similarity index 100% rename from exercises/pig-latin/src/example.h rename to exercises/practice/pig-latin/src/example.h diff --git a/exercises/pig-latin/src/pig_latin.c b/exercises/practice/pig-latin/src/pig_latin.c similarity index 100% rename from exercises/pig-latin/src/pig_latin.c rename to exercises/practice/pig-latin/src/pig_latin.c diff --git a/exercises/pig-latin/src/pig_latin.h b/exercises/practice/pig-latin/src/pig_latin.h similarity index 100% rename from exercises/pig-latin/src/pig_latin.h rename to exercises/practice/pig-latin/src/pig_latin.h diff --git a/exercises/pig-latin/test/test_pig_latin.c b/exercises/practice/pig-latin/test/test_pig_latin.c similarity index 100% rename from exercises/pig-latin/test/test_pig_latin.c rename to exercises/practice/pig-latin/test/test_pig_latin.c diff --git a/exercises/pig-latin/test/vendor/unity.c b/exercises/practice/pig-latin/test/vendor/unity.c similarity index 100% rename from exercises/pig-latin/test/vendor/unity.c rename to exercises/practice/pig-latin/test/vendor/unity.c diff --git a/exercises/pig-latin/test/vendor/unity.h b/exercises/practice/pig-latin/test/vendor/unity.h similarity index 100% rename from exercises/pig-latin/test/vendor/unity.h rename to exercises/practice/pig-latin/test/vendor/unity.h diff --git a/exercises/pig-latin/test/vendor/unity_internals.h b/exercises/practice/pig-latin/test/vendor/unity_internals.h similarity index 100% rename from exercises/pig-latin/test/vendor/unity_internals.h rename to exercises/practice/pig-latin/test/vendor/unity_internals.h diff --git a/exercises/prime-factors/.meta/tests.toml b/exercises/practice/prime-factors/.meta/tests.toml similarity index 100% rename from exercises/prime-factors/.meta/tests.toml rename to exercises/practice/prime-factors/.meta/tests.toml diff --git a/exercises/prime-factors/README.md b/exercises/practice/prime-factors/README.md similarity index 100% rename from exercises/prime-factors/README.md rename to exercises/practice/prime-factors/README.md diff --git a/exercises/prime-factors/makefile b/exercises/practice/prime-factors/makefile similarity index 100% rename from exercises/prime-factors/makefile rename to exercises/practice/prime-factors/makefile diff --git a/exercises/prime-factors/src/example.c b/exercises/practice/prime-factors/src/example.c similarity index 100% rename from exercises/prime-factors/src/example.c rename to exercises/practice/prime-factors/src/example.c diff --git a/exercises/prime-factors/src/example.h b/exercises/practice/prime-factors/src/example.h similarity index 100% rename from exercises/prime-factors/src/example.h rename to exercises/practice/prime-factors/src/example.h diff --git a/exercises/prime-factors/src/prime_factors.c b/exercises/practice/prime-factors/src/prime_factors.c similarity index 100% rename from exercises/prime-factors/src/prime_factors.c rename to exercises/practice/prime-factors/src/prime_factors.c diff --git a/exercises/prime-factors/src/prime_factors.h b/exercises/practice/prime-factors/src/prime_factors.h similarity index 100% rename from exercises/prime-factors/src/prime_factors.h rename to exercises/practice/prime-factors/src/prime_factors.h diff --git a/exercises/prime-factors/test/test_prime_factors.c b/exercises/practice/prime-factors/test/test_prime_factors.c similarity index 100% rename from exercises/prime-factors/test/test_prime_factors.c rename to exercises/practice/prime-factors/test/test_prime_factors.c diff --git a/exercises/prime-factors/test/vendor/unity.c b/exercises/practice/prime-factors/test/vendor/unity.c similarity index 100% rename from exercises/prime-factors/test/vendor/unity.c rename to exercises/practice/prime-factors/test/vendor/unity.c diff --git a/exercises/prime-factors/test/vendor/unity.h b/exercises/practice/prime-factors/test/vendor/unity.h similarity index 100% rename from exercises/prime-factors/test/vendor/unity.h rename to exercises/practice/prime-factors/test/vendor/unity.h diff --git a/exercises/prime-factors/test/vendor/unity_internals.h b/exercises/practice/prime-factors/test/vendor/unity_internals.h similarity index 100% rename from exercises/prime-factors/test/vendor/unity_internals.h rename to exercises/practice/prime-factors/test/vendor/unity_internals.h diff --git a/exercises/pythagorean-triplet/.meta/tests.toml b/exercises/practice/pythagorean-triplet/.meta/tests.toml similarity index 100% rename from exercises/pythagorean-triplet/.meta/tests.toml rename to exercises/practice/pythagorean-triplet/.meta/tests.toml diff --git a/exercises/pythagorean-triplet/README.md b/exercises/practice/pythagorean-triplet/README.md similarity index 100% rename from exercises/pythagorean-triplet/README.md rename to exercises/practice/pythagorean-triplet/README.md diff --git a/exercises/pythagorean-triplet/makefile b/exercises/practice/pythagorean-triplet/makefile similarity index 100% rename from exercises/pythagorean-triplet/makefile rename to exercises/practice/pythagorean-triplet/makefile diff --git a/exercises/pythagorean-triplet/src/example.c b/exercises/practice/pythagorean-triplet/src/example.c similarity index 100% rename from exercises/pythagorean-triplet/src/example.c rename to exercises/practice/pythagorean-triplet/src/example.c diff --git a/exercises/pythagorean-triplet/src/example.h b/exercises/practice/pythagorean-triplet/src/example.h similarity index 100% rename from exercises/pythagorean-triplet/src/example.h rename to exercises/practice/pythagorean-triplet/src/example.h diff --git a/exercises/pythagorean-triplet/src/pythagorean_triplet.c b/exercises/practice/pythagorean-triplet/src/pythagorean_triplet.c similarity index 100% rename from exercises/pythagorean-triplet/src/pythagorean_triplet.c rename to exercises/practice/pythagorean-triplet/src/pythagorean_triplet.c diff --git a/exercises/pythagorean-triplet/src/pythagorean_triplet.h b/exercises/practice/pythagorean-triplet/src/pythagorean_triplet.h similarity index 100% rename from exercises/pythagorean-triplet/src/pythagorean_triplet.h rename to exercises/practice/pythagorean-triplet/src/pythagorean_triplet.h diff --git a/exercises/pythagorean-triplet/test/test_pythagorean_triplet.c b/exercises/practice/pythagorean-triplet/test/test_pythagorean_triplet.c similarity index 100% rename from exercises/pythagorean-triplet/test/test_pythagorean_triplet.c rename to exercises/practice/pythagorean-triplet/test/test_pythagorean_triplet.c diff --git a/exercises/pythagorean-triplet/test/vendor/unity.c b/exercises/practice/pythagorean-triplet/test/vendor/unity.c similarity index 100% rename from exercises/pythagorean-triplet/test/vendor/unity.c rename to exercises/practice/pythagorean-triplet/test/vendor/unity.c diff --git a/exercises/pythagorean-triplet/test/vendor/unity.h b/exercises/practice/pythagorean-triplet/test/vendor/unity.h similarity index 100% rename from exercises/pythagorean-triplet/test/vendor/unity.h rename to exercises/practice/pythagorean-triplet/test/vendor/unity.h diff --git a/exercises/pythagorean-triplet/test/vendor/unity_internals.h b/exercises/practice/pythagorean-triplet/test/vendor/unity_internals.h similarity index 100% rename from exercises/pythagorean-triplet/test/vendor/unity_internals.h rename to exercises/practice/pythagorean-triplet/test/vendor/unity_internals.h diff --git a/exercises/queen-attack/.meta/tests.toml b/exercises/practice/queen-attack/.meta/tests.toml similarity index 100% rename from exercises/queen-attack/.meta/tests.toml rename to exercises/practice/queen-attack/.meta/tests.toml diff --git a/exercises/queen-attack/README.md b/exercises/practice/queen-attack/README.md similarity index 100% rename from exercises/queen-attack/README.md rename to exercises/practice/queen-attack/README.md diff --git a/exercises/queen-attack/makefile b/exercises/practice/queen-attack/makefile similarity index 100% rename from exercises/queen-attack/makefile rename to exercises/practice/queen-attack/makefile diff --git a/exercises/queen-attack/src/example.c b/exercises/practice/queen-attack/src/example.c similarity index 100% rename from exercises/queen-attack/src/example.c rename to exercises/practice/queen-attack/src/example.c diff --git a/exercises/queen-attack/src/queen_attack.c b/exercises/practice/queen-attack/src/queen_attack.c similarity index 100% rename from exercises/queen-attack/src/queen_attack.c rename to exercises/practice/queen-attack/src/queen_attack.c diff --git a/exercises/queen-attack/src/queen_attack.h b/exercises/practice/queen-attack/src/queen_attack.h similarity index 100% rename from exercises/queen-attack/src/queen_attack.h rename to exercises/practice/queen-attack/src/queen_attack.h diff --git a/exercises/queen-attack/test/test_queen_attack.c b/exercises/practice/queen-attack/test/test_queen_attack.c similarity index 100% rename from exercises/queen-attack/test/test_queen_attack.c rename to exercises/practice/queen-attack/test/test_queen_attack.c diff --git a/exercises/queen-attack/test/vendor/unity.c b/exercises/practice/queen-attack/test/vendor/unity.c similarity index 100% rename from exercises/queen-attack/test/vendor/unity.c rename to exercises/practice/queen-attack/test/vendor/unity.c diff --git a/exercises/queen-attack/test/vendor/unity.h b/exercises/practice/queen-attack/test/vendor/unity.h similarity index 100% rename from exercises/queen-attack/test/vendor/unity.h rename to exercises/practice/queen-attack/test/vendor/unity.h diff --git a/exercises/queen-attack/test/vendor/unity_internals.h b/exercises/practice/queen-attack/test/vendor/unity_internals.h similarity index 100% rename from exercises/queen-attack/test/vendor/unity_internals.h rename to exercises/practice/queen-attack/test/vendor/unity_internals.h diff --git a/exercises/rail-fence-cipher/.meta/tests.toml b/exercises/practice/rail-fence-cipher/.meta/tests.toml similarity index 100% rename from exercises/rail-fence-cipher/.meta/tests.toml rename to exercises/practice/rail-fence-cipher/.meta/tests.toml diff --git a/exercises/rail-fence-cipher/README.md b/exercises/practice/rail-fence-cipher/README.md similarity index 100% rename from exercises/rail-fence-cipher/README.md rename to exercises/practice/rail-fence-cipher/README.md diff --git a/exercises/rail-fence-cipher/makefile b/exercises/practice/rail-fence-cipher/makefile similarity index 100% rename from exercises/rail-fence-cipher/makefile rename to exercises/practice/rail-fence-cipher/makefile diff --git a/exercises/rail-fence-cipher/src/example.c b/exercises/practice/rail-fence-cipher/src/example.c similarity index 100% rename from exercises/rail-fence-cipher/src/example.c rename to exercises/practice/rail-fence-cipher/src/example.c diff --git a/exercises/rail-fence-cipher/src/rail_fence_cipher.c b/exercises/practice/rail-fence-cipher/src/rail_fence_cipher.c similarity index 100% rename from exercises/rail-fence-cipher/src/rail_fence_cipher.c rename to exercises/practice/rail-fence-cipher/src/rail_fence_cipher.c diff --git a/exercises/rail-fence-cipher/src/rail_fence_cipher.h b/exercises/practice/rail-fence-cipher/src/rail_fence_cipher.h similarity index 100% rename from exercises/rail-fence-cipher/src/rail_fence_cipher.h rename to exercises/practice/rail-fence-cipher/src/rail_fence_cipher.h diff --git a/exercises/rail-fence-cipher/test/test_rail_fence_cipher.c b/exercises/practice/rail-fence-cipher/test/test_rail_fence_cipher.c similarity index 100% rename from exercises/rail-fence-cipher/test/test_rail_fence_cipher.c rename to exercises/practice/rail-fence-cipher/test/test_rail_fence_cipher.c diff --git a/exercises/rail-fence-cipher/test/vendor/unity.c b/exercises/practice/rail-fence-cipher/test/vendor/unity.c similarity index 100% rename from exercises/rail-fence-cipher/test/vendor/unity.c rename to exercises/practice/rail-fence-cipher/test/vendor/unity.c diff --git a/exercises/rail-fence-cipher/test/vendor/unity.h b/exercises/practice/rail-fence-cipher/test/vendor/unity.h similarity index 100% rename from exercises/rail-fence-cipher/test/vendor/unity.h rename to exercises/practice/rail-fence-cipher/test/vendor/unity.h diff --git a/exercises/rail-fence-cipher/test/vendor/unity_internals.h b/exercises/practice/rail-fence-cipher/test/vendor/unity_internals.h similarity index 100% rename from exercises/rail-fence-cipher/test/vendor/unity_internals.h rename to exercises/practice/rail-fence-cipher/test/vendor/unity_internals.h diff --git a/exercises/raindrops/.meta/tests.toml b/exercises/practice/raindrops/.meta/tests.toml similarity index 100% rename from exercises/raindrops/.meta/tests.toml rename to exercises/practice/raindrops/.meta/tests.toml diff --git a/exercises/raindrops/README.md b/exercises/practice/raindrops/README.md similarity index 100% rename from exercises/raindrops/README.md rename to exercises/practice/raindrops/README.md diff --git a/exercises/raindrops/makefile b/exercises/practice/raindrops/makefile similarity index 100% rename from exercises/raindrops/makefile rename to exercises/practice/raindrops/makefile diff --git a/exercises/raindrops/src/example.c b/exercises/practice/raindrops/src/example.c similarity index 100% rename from exercises/raindrops/src/example.c rename to exercises/practice/raindrops/src/example.c diff --git a/exercises/raindrops/src/example.h b/exercises/practice/raindrops/src/example.h similarity index 100% rename from exercises/raindrops/src/example.h rename to exercises/practice/raindrops/src/example.h diff --git a/exercises/raindrops/src/raindrops.c b/exercises/practice/raindrops/src/raindrops.c similarity index 100% rename from exercises/raindrops/src/raindrops.c rename to exercises/practice/raindrops/src/raindrops.c diff --git a/exercises/raindrops/src/raindrops.h b/exercises/practice/raindrops/src/raindrops.h similarity index 100% rename from exercises/raindrops/src/raindrops.h rename to exercises/practice/raindrops/src/raindrops.h diff --git a/exercises/raindrops/test/test_raindrops.c b/exercises/practice/raindrops/test/test_raindrops.c similarity index 100% rename from exercises/raindrops/test/test_raindrops.c rename to exercises/practice/raindrops/test/test_raindrops.c diff --git a/exercises/raindrops/test/vendor/unity.c b/exercises/practice/raindrops/test/vendor/unity.c similarity index 100% rename from exercises/raindrops/test/vendor/unity.c rename to exercises/practice/raindrops/test/vendor/unity.c diff --git a/exercises/raindrops/test/vendor/unity.h b/exercises/practice/raindrops/test/vendor/unity.h similarity index 100% rename from exercises/raindrops/test/vendor/unity.h rename to exercises/practice/raindrops/test/vendor/unity.h diff --git a/exercises/raindrops/test/vendor/unity_internals.h b/exercises/practice/raindrops/test/vendor/unity_internals.h similarity index 100% rename from exercises/raindrops/test/vendor/unity_internals.h rename to exercises/practice/raindrops/test/vendor/unity_internals.h diff --git a/exercises/rational-numbers/.meta/tests.toml b/exercises/practice/rational-numbers/.meta/tests.toml similarity index 100% rename from exercises/rational-numbers/.meta/tests.toml rename to exercises/practice/rational-numbers/.meta/tests.toml diff --git a/exercises/rational-numbers/README.md b/exercises/practice/rational-numbers/README.md similarity index 100% rename from exercises/rational-numbers/README.md rename to exercises/practice/rational-numbers/README.md diff --git a/exercises/rational-numbers/makefile b/exercises/practice/rational-numbers/makefile similarity index 100% rename from exercises/rational-numbers/makefile rename to exercises/practice/rational-numbers/makefile diff --git a/exercises/rational-numbers/src/example.c b/exercises/practice/rational-numbers/src/example.c similarity index 100% rename from exercises/rational-numbers/src/example.c rename to exercises/practice/rational-numbers/src/example.c diff --git a/exercises/rational-numbers/src/example.h b/exercises/practice/rational-numbers/src/example.h similarity index 100% rename from exercises/rational-numbers/src/example.h rename to exercises/practice/rational-numbers/src/example.h diff --git a/exercises/rational-numbers/src/rational_numbers.c b/exercises/practice/rational-numbers/src/rational_numbers.c similarity index 100% rename from exercises/rational-numbers/src/rational_numbers.c rename to exercises/practice/rational-numbers/src/rational_numbers.c diff --git a/exercises/rational-numbers/src/rational_numbers.h b/exercises/practice/rational-numbers/src/rational_numbers.h similarity index 100% rename from exercises/rational-numbers/src/rational_numbers.h rename to exercises/practice/rational-numbers/src/rational_numbers.h diff --git a/exercises/rational-numbers/test/test_rational_numbers.c b/exercises/practice/rational-numbers/test/test_rational_numbers.c similarity index 100% rename from exercises/rational-numbers/test/test_rational_numbers.c rename to exercises/practice/rational-numbers/test/test_rational_numbers.c diff --git a/exercises/rational-numbers/test/vendor/unity.c b/exercises/practice/rational-numbers/test/vendor/unity.c similarity index 100% rename from exercises/rational-numbers/test/vendor/unity.c rename to exercises/practice/rational-numbers/test/vendor/unity.c diff --git a/exercises/rational-numbers/test/vendor/unity.h b/exercises/practice/rational-numbers/test/vendor/unity.h similarity index 100% rename from exercises/rational-numbers/test/vendor/unity.h rename to exercises/practice/rational-numbers/test/vendor/unity.h diff --git a/exercises/rational-numbers/test/vendor/unity_internals.h b/exercises/practice/rational-numbers/test/vendor/unity_internals.h similarity index 100% rename from exercises/rational-numbers/test/vendor/unity_internals.h rename to exercises/practice/rational-numbers/test/vendor/unity_internals.h diff --git a/exercises/react/.meta/tests.toml b/exercises/practice/react/.meta/tests.toml similarity index 100% rename from exercises/react/.meta/tests.toml rename to exercises/practice/react/.meta/tests.toml diff --git a/exercises/react/README.md b/exercises/practice/react/README.md similarity index 100% rename from exercises/react/README.md rename to exercises/practice/react/README.md diff --git a/exercises/react/makefile b/exercises/practice/react/makefile similarity index 100% rename from exercises/react/makefile rename to exercises/practice/react/makefile diff --git a/exercises/react/src/example.c b/exercises/practice/react/src/example.c similarity index 100% rename from exercises/react/src/example.c rename to exercises/practice/react/src/example.c diff --git a/exercises/react/src/react.c b/exercises/practice/react/src/react.c similarity index 100% rename from exercises/react/src/react.c rename to exercises/practice/react/src/react.c diff --git a/exercises/react/src/react.h b/exercises/practice/react/src/react.h similarity index 100% rename from exercises/react/src/react.h rename to exercises/practice/react/src/react.h diff --git a/exercises/react/test/test_react.c b/exercises/practice/react/test/test_react.c similarity index 100% rename from exercises/react/test/test_react.c rename to exercises/practice/react/test/test_react.c diff --git a/exercises/react/test/vendor/unity.c b/exercises/practice/react/test/vendor/unity.c similarity index 100% rename from exercises/react/test/vendor/unity.c rename to exercises/practice/react/test/vendor/unity.c diff --git a/exercises/react/test/vendor/unity.h b/exercises/practice/react/test/vendor/unity.h similarity index 100% rename from exercises/react/test/vendor/unity.h rename to exercises/practice/react/test/vendor/unity.h diff --git a/exercises/react/test/vendor/unity_internals.h b/exercises/practice/react/test/vendor/unity_internals.h similarity index 100% rename from exercises/react/test/vendor/unity_internals.h rename to exercises/practice/react/test/vendor/unity_internals.h diff --git a/exercises/resistor-color-duo/.meta/tests.toml b/exercises/practice/resistor-color-duo/.meta/tests.toml similarity index 100% rename from exercises/resistor-color-duo/.meta/tests.toml rename to exercises/practice/resistor-color-duo/.meta/tests.toml diff --git a/exercises/resistor-color-duo/README.md b/exercises/practice/resistor-color-duo/README.md similarity index 100% rename from exercises/resistor-color-duo/README.md rename to exercises/practice/resistor-color-duo/README.md diff --git a/exercises/resistor-color-duo/makefile b/exercises/practice/resistor-color-duo/makefile similarity index 100% rename from exercises/resistor-color-duo/makefile rename to exercises/practice/resistor-color-duo/makefile diff --git a/exercises/resistor-color-duo/src/example.c b/exercises/practice/resistor-color-duo/src/example.c similarity index 100% rename from exercises/resistor-color-duo/src/example.c rename to exercises/practice/resistor-color-duo/src/example.c diff --git a/exercises/resistor-color-duo/src/example.h b/exercises/practice/resistor-color-duo/src/example.h similarity index 100% rename from exercises/resistor-color-duo/src/example.h rename to exercises/practice/resistor-color-duo/src/example.h diff --git a/exercises/resistor-color-duo/src/resistor_color_duo.c b/exercises/practice/resistor-color-duo/src/resistor_color_duo.c similarity index 100% rename from exercises/resistor-color-duo/src/resistor_color_duo.c rename to exercises/practice/resistor-color-duo/src/resistor_color_duo.c diff --git a/exercises/resistor-color-duo/src/resistor_color_duo.h b/exercises/practice/resistor-color-duo/src/resistor_color_duo.h similarity index 100% rename from exercises/resistor-color-duo/src/resistor_color_duo.h rename to exercises/practice/resistor-color-duo/src/resistor_color_duo.h diff --git a/exercises/resistor-color-duo/test/test_resistor_color_duo.c b/exercises/practice/resistor-color-duo/test/test_resistor_color_duo.c similarity index 100% rename from exercises/resistor-color-duo/test/test_resistor_color_duo.c rename to exercises/practice/resistor-color-duo/test/test_resistor_color_duo.c diff --git a/exercises/resistor-color-duo/test/vendor/unity.c b/exercises/practice/resistor-color-duo/test/vendor/unity.c similarity index 100% rename from exercises/resistor-color-duo/test/vendor/unity.c rename to exercises/practice/resistor-color-duo/test/vendor/unity.c diff --git a/exercises/resistor-color-duo/test/vendor/unity.h b/exercises/practice/resistor-color-duo/test/vendor/unity.h similarity index 100% rename from exercises/resistor-color-duo/test/vendor/unity.h rename to exercises/practice/resistor-color-duo/test/vendor/unity.h diff --git a/exercises/resistor-color-duo/test/vendor/unity_internals.h b/exercises/practice/resistor-color-duo/test/vendor/unity_internals.h similarity index 100% rename from exercises/resistor-color-duo/test/vendor/unity_internals.h rename to exercises/practice/resistor-color-duo/test/vendor/unity_internals.h diff --git a/exercises/resistor-color-trio/.meta/tests.toml b/exercises/practice/resistor-color-trio/.meta/tests.toml similarity index 100% rename from exercises/resistor-color-trio/.meta/tests.toml rename to exercises/practice/resistor-color-trio/.meta/tests.toml diff --git a/exercises/resistor-color-trio/README.md b/exercises/practice/resistor-color-trio/README.md similarity index 100% rename from exercises/resistor-color-trio/README.md rename to exercises/practice/resistor-color-trio/README.md diff --git a/exercises/resistor-color-trio/makefile b/exercises/practice/resistor-color-trio/makefile similarity index 100% rename from exercises/resistor-color-trio/makefile rename to exercises/practice/resistor-color-trio/makefile diff --git a/exercises/resistor-color-trio/src/example.c b/exercises/practice/resistor-color-trio/src/example.c similarity index 100% rename from exercises/resistor-color-trio/src/example.c rename to exercises/practice/resistor-color-trio/src/example.c diff --git a/exercises/resistor-color-trio/src/example.h b/exercises/practice/resistor-color-trio/src/example.h similarity index 100% rename from exercises/resistor-color-trio/src/example.h rename to exercises/practice/resistor-color-trio/src/example.h diff --git a/exercises/resistor-color-trio/src/resistor_color_trio.c b/exercises/practice/resistor-color-trio/src/resistor_color_trio.c similarity index 100% rename from exercises/resistor-color-trio/src/resistor_color_trio.c rename to exercises/practice/resistor-color-trio/src/resistor_color_trio.c diff --git a/exercises/resistor-color-trio/src/resistor_color_trio.h b/exercises/practice/resistor-color-trio/src/resistor_color_trio.h similarity index 100% rename from exercises/resistor-color-trio/src/resistor_color_trio.h rename to exercises/practice/resistor-color-trio/src/resistor_color_trio.h diff --git a/exercises/resistor-color-trio/test/test_resistor_color_trio.c b/exercises/practice/resistor-color-trio/test/test_resistor_color_trio.c similarity index 100% rename from exercises/resistor-color-trio/test/test_resistor_color_trio.c rename to exercises/practice/resistor-color-trio/test/test_resistor_color_trio.c diff --git a/exercises/resistor-color-trio/test/vendor/unity.c b/exercises/practice/resistor-color-trio/test/vendor/unity.c similarity index 100% rename from exercises/resistor-color-trio/test/vendor/unity.c rename to exercises/practice/resistor-color-trio/test/vendor/unity.c diff --git a/exercises/resistor-color-trio/test/vendor/unity.h b/exercises/practice/resistor-color-trio/test/vendor/unity.h similarity index 100% rename from exercises/resistor-color-trio/test/vendor/unity.h rename to exercises/practice/resistor-color-trio/test/vendor/unity.h diff --git a/exercises/resistor-color-trio/test/vendor/unity_internals.h b/exercises/practice/resistor-color-trio/test/vendor/unity_internals.h similarity index 100% rename from exercises/resistor-color-trio/test/vendor/unity_internals.h rename to exercises/practice/resistor-color-trio/test/vendor/unity_internals.h diff --git a/exercises/resistor-color/.meta/tests.toml b/exercises/practice/resistor-color/.meta/tests.toml similarity index 100% rename from exercises/resistor-color/.meta/tests.toml rename to exercises/practice/resistor-color/.meta/tests.toml diff --git a/exercises/resistor-color/README.md b/exercises/practice/resistor-color/README.md similarity index 100% rename from exercises/resistor-color/README.md rename to exercises/practice/resistor-color/README.md diff --git a/exercises/resistor-color/makefile b/exercises/practice/resistor-color/makefile similarity index 100% rename from exercises/resistor-color/makefile rename to exercises/practice/resistor-color/makefile diff --git a/exercises/resistor-color/src/example.c b/exercises/practice/resistor-color/src/example.c similarity index 100% rename from exercises/resistor-color/src/example.c rename to exercises/practice/resistor-color/src/example.c diff --git a/exercises/resistor-color/src/example.h b/exercises/practice/resistor-color/src/example.h similarity index 100% rename from exercises/resistor-color/src/example.h rename to exercises/practice/resistor-color/src/example.h diff --git a/exercises/resistor-color/src/resistor_color.c b/exercises/practice/resistor-color/src/resistor_color.c similarity index 100% rename from exercises/resistor-color/src/resistor_color.c rename to exercises/practice/resistor-color/src/resistor_color.c diff --git a/exercises/resistor-color/src/resistor_color.h b/exercises/practice/resistor-color/src/resistor_color.h similarity index 100% rename from exercises/resistor-color/src/resistor_color.h rename to exercises/practice/resistor-color/src/resistor_color.h diff --git a/exercises/resistor-color/test/test_resistor_color.c b/exercises/practice/resistor-color/test/test_resistor_color.c similarity index 100% rename from exercises/resistor-color/test/test_resistor_color.c rename to exercises/practice/resistor-color/test/test_resistor_color.c diff --git a/exercises/resistor-color/test/vendor/unity.c b/exercises/practice/resistor-color/test/vendor/unity.c similarity index 100% rename from exercises/resistor-color/test/vendor/unity.c rename to exercises/practice/resistor-color/test/vendor/unity.c diff --git a/exercises/resistor-color/test/vendor/unity.h b/exercises/practice/resistor-color/test/vendor/unity.h similarity index 100% rename from exercises/resistor-color/test/vendor/unity.h rename to exercises/practice/resistor-color/test/vendor/unity.h diff --git a/exercises/resistor-color/test/vendor/unity_internals.h b/exercises/practice/resistor-color/test/vendor/unity_internals.h similarity index 100% rename from exercises/resistor-color/test/vendor/unity_internals.h rename to exercises/practice/resistor-color/test/vendor/unity_internals.h diff --git a/exercises/rna-transcription/.meta/tests.toml b/exercises/practice/rna-transcription/.meta/tests.toml similarity index 100% rename from exercises/rna-transcription/.meta/tests.toml rename to exercises/practice/rna-transcription/.meta/tests.toml diff --git a/exercises/rna-transcription/README.md b/exercises/practice/rna-transcription/README.md similarity index 100% rename from exercises/rna-transcription/README.md rename to exercises/practice/rna-transcription/README.md diff --git a/exercises/rna-transcription/makefile b/exercises/practice/rna-transcription/makefile similarity index 100% rename from exercises/rna-transcription/makefile rename to exercises/practice/rna-transcription/makefile diff --git a/exercises/rna-transcription/src/example.c b/exercises/practice/rna-transcription/src/example.c similarity index 100% rename from exercises/rna-transcription/src/example.c rename to exercises/practice/rna-transcription/src/example.c diff --git a/exercises/rna-transcription/src/example.h b/exercises/practice/rna-transcription/src/example.h similarity index 100% rename from exercises/rna-transcription/src/example.h rename to exercises/practice/rna-transcription/src/example.h diff --git a/exercises/rna-transcription/src/rna_transcription.c b/exercises/practice/rna-transcription/src/rna_transcription.c similarity index 100% rename from exercises/rna-transcription/src/rna_transcription.c rename to exercises/practice/rna-transcription/src/rna_transcription.c diff --git a/exercises/rna-transcription/src/rna_transcription.h b/exercises/practice/rna-transcription/src/rna_transcription.h similarity index 100% rename from exercises/rna-transcription/src/rna_transcription.h rename to exercises/practice/rna-transcription/src/rna_transcription.h diff --git a/exercises/rna-transcription/test/test_rna_transcription.c b/exercises/practice/rna-transcription/test/test_rna_transcription.c similarity index 100% rename from exercises/rna-transcription/test/test_rna_transcription.c rename to exercises/practice/rna-transcription/test/test_rna_transcription.c diff --git a/exercises/rna-transcription/test/vendor/unity.c b/exercises/practice/rna-transcription/test/vendor/unity.c similarity index 100% rename from exercises/rna-transcription/test/vendor/unity.c rename to exercises/practice/rna-transcription/test/vendor/unity.c diff --git a/exercises/rna-transcription/test/vendor/unity.h b/exercises/practice/rna-transcription/test/vendor/unity.h similarity index 100% rename from exercises/rna-transcription/test/vendor/unity.h rename to exercises/practice/rna-transcription/test/vendor/unity.h diff --git a/exercises/rna-transcription/test/vendor/unity_internals.h b/exercises/practice/rna-transcription/test/vendor/unity_internals.h similarity index 100% rename from exercises/rna-transcription/test/vendor/unity_internals.h rename to exercises/practice/rna-transcription/test/vendor/unity_internals.h diff --git a/exercises/robot-simulator/.meta/tests.toml b/exercises/practice/robot-simulator/.meta/tests.toml similarity index 100% rename from exercises/robot-simulator/.meta/tests.toml rename to exercises/practice/robot-simulator/.meta/tests.toml diff --git a/exercises/robot-simulator/README.md b/exercises/practice/robot-simulator/README.md similarity index 100% rename from exercises/robot-simulator/README.md rename to exercises/practice/robot-simulator/README.md diff --git a/exercises/robot-simulator/makefile b/exercises/practice/robot-simulator/makefile similarity index 100% rename from exercises/robot-simulator/makefile rename to exercises/practice/robot-simulator/makefile diff --git a/exercises/robot-simulator/src/example.c b/exercises/practice/robot-simulator/src/example.c similarity index 100% rename from exercises/robot-simulator/src/example.c rename to exercises/practice/robot-simulator/src/example.c diff --git a/exercises/robot-simulator/src/robot_simulator.c b/exercises/practice/robot-simulator/src/robot_simulator.c similarity index 100% rename from exercises/robot-simulator/src/robot_simulator.c rename to exercises/practice/robot-simulator/src/robot_simulator.c diff --git a/exercises/robot-simulator/src/robot_simulator.h b/exercises/practice/robot-simulator/src/robot_simulator.h similarity index 100% rename from exercises/robot-simulator/src/robot_simulator.h rename to exercises/practice/robot-simulator/src/robot_simulator.h diff --git a/exercises/robot-simulator/test/test_robot_simulator.c b/exercises/practice/robot-simulator/test/test_robot_simulator.c similarity index 100% rename from exercises/robot-simulator/test/test_robot_simulator.c rename to exercises/practice/robot-simulator/test/test_robot_simulator.c diff --git a/exercises/robot-simulator/test/vendor/unity.c b/exercises/practice/robot-simulator/test/vendor/unity.c similarity index 100% rename from exercises/robot-simulator/test/vendor/unity.c rename to exercises/practice/robot-simulator/test/vendor/unity.c diff --git a/exercises/robot-simulator/test/vendor/unity.h b/exercises/practice/robot-simulator/test/vendor/unity.h similarity index 100% rename from exercises/robot-simulator/test/vendor/unity.h rename to exercises/practice/robot-simulator/test/vendor/unity.h diff --git a/exercises/robot-simulator/test/vendor/unity_internals.h b/exercises/practice/robot-simulator/test/vendor/unity_internals.h similarity index 100% rename from exercises/robot-simulator/test/vendor/unity_internals.h rename to exercises/practice/robot-simulator/test/vendor/unity_internals.h diff --git a/exercises/roman-numerals/.meta/tests.toml b/exercises/practice/roman-numerals/.meta/tests.toml similarity index 100% rename from exercises/roman-numerals/.meta/tests.toml rename to exercises/practice/roman-numerals/.meta/tests.toml diff --git a/exercises/roman-numerals/README.md b/exercises/practice/roman-numerals/README.md similarity index 100% rename from exercises/roman-numerals/README.md rename to exercises/practice/roman-numerals/README.md diff --git a/exercises/roman-numerals/makefile b/exercises/practice/roman-numerals/makefile similarity index 100% rename from exercises/roman-numerals/makefile rename to exercises/practice/roman-numerals/makefile diff --git a/exercises/roman-numerals/src/example.c b/exercises/practice/roman-numerals/src/example.c similarity index 100% rename from exercises/roman-numerals/src/example.c rename to exercises/practice/roman-numerals/src/example.c diff --git a/exercises/roman-numerals/src/example.h b/exercises/practice/roman-numerals/src/example.h similarity index 100% rename from exercises/roman-numerals/src/example.h rename to exercises/practice/roman-numerals/src/example.h diff --git a/exercises/roman-numerals/src/roman_numerals.c b/exercises/practice/roman-numerals/src/roman_numerals.c similarity index 100% rename from exercises/roman-numerals/src/roman_numerals.c rename to exercises/practice/roman-numerals/src/roman_numerals.c diff --git a/exercises/roman-numerals/src/roman_numerals.h b/exercises/practice/roman-numerals/src/roman_numerals.h similarity index 100% rename from exercises/roman-numerals/src/roman_numerals.h rename to exercises/practice/roman-numerals/src/roman_numerals.h diff --git a/exercises/roman-numerals/test/test_roman_numerals.c b/exercises/practice/roman-numerals/test/test_roman_numerals.c similarity index 100% rename from exercises/roman-numerals/test/test_roman_numerals.c rename to exercises/practice/roman-numerals/test/test_roman_numerals.c diff --git a/exercises/roman-numerals/test/vendor/unity.c b/exercises/practice/roman-numerals/test/vendor/unity.c similarity index 100% rename from exercises/roman-numerals/test/vendor/unity.c rename to exercises/practice/roman-numerals/test/vendor/unity.c diff --git a/exercises/roman-numerals/test/vendor/unity.h b/exercises/practice/roman-numerals/test/vendor/unity.h similarity index 100% rename from exercises/roman-numerals/test/vendor/unity.h rename to exercises/practice/roman-numerals/test/vendor/unity.h diff --git a/exercises/roman-numerals/test/vendor/unity_internals.h b/exercises/practice/roman-numerals/test/vendor/unity_internals.h similarity index 100% rename from exercises/roman-numerals/test/vendor/unity_internals.h rename to exercises/practice/roman-numerals/test/vendor/unity_internals.h diff --git a/exercises/run-length-encoding/.meta/tests.toml b/exercises/practice/run-length-encoding/.meta/tests.toml similarity index 100% rename from exercises/run-length-encoding/.meta/tests.toml rename to exercises/practice/run-length-encoding/.meta/tests.toml diff --git a/exercises/run-length-encoding/README.md b/exercises/practice/run-length-encoding/README.md similarity index 100% rename from exercises/run-length-encoding/README.md rename to exercises/practice/run-length-encoding/README.md diff --git a/exercises/run-length-encoding/makefile b/exercises/practice/run-length-encoding/makefile similarity index 100% rename from exercises/run-length-encoding/makefile rename to exercises/practice/run-length-encoding/makefile diff --git a/exercises/run-length-encoding/src/example.c b/exercises/practice/run-length-encoding/src/example.c similarity index 100% rename from exercises/run-length-encoding/src/example.c rename to exercises/practice/run-length-encoding/src/example.c diff --git a/exercises/run-length-encoding/src/example.h b/exercises/practice/run-length-encoding/src/example.h similarity index 100% rename from exercises/run-length-encoding/src/example.h rename to exercises/practice/run-length-encoding/src/example.h diff --git a/exercises/run-length-encoding/src/run_length_encoding.c b/exercises/practice/run-length-encoding/src/run_length_encoding.c similarity index 100% rename from exercises/run-length-encoding/src/run_length_encoding.c rename to exercises/practice/run-length-encoding/src/run_length_encoding.c diff --git a/exercises/run-length-encoding/src/run_length_encoding.h b/exercises/practice/run-length-encoding/src/run_length_encoding.h similarity index 100% rename from exercises/run-length-encoding/src/run_length_encoding.h rename to exercises/practice/run-length-encoding/src/run_length_encoding.h diff --git a/exercises/run-length-encoding/test/test_run_length_encoding.c b/exercises/practice/run-length-encoding/test/test_run_length_encoding.c similarity index 100% rename from exercises/run-length-encoding/test/test_run_length_encoding.c rename to exercises/practice/run-length-encoding/test/test_run_length_encoding.c diff --git a/exercises/run-length-encoding/test/vendor/unity.c b/exercises/practice/run-length-encoding/test/vendor/unity.c similarity index 100% rename from exercises/run-length-encoding/test/vendor/unity.c rename to exercises/practice/run-length-encoding/test/vendor/unity.c diff --git a/exercises/run-length-encoding/test/vendor/unity.h b/exercises/practice/run-length-encoding/test/vendor/unity.h similarity index 100% rename from exercises/run-length-encoding/test/vendor/unity.h rename to exercises/practice/run-length-encoding/test/vendor/unity.h diff --git a/exercises/run-length-encoding/test/vendor/unity_internals.h b/exercises/practice/run-length-encoding/test/vendor/unity_internals.h similarity index 100% rename from exercises/run-length-encoding/test/vendor/unity_internals.h rename to exercises/practice/run-length-encoding/test/vendor/unity_internals.h diff --git a/exercises/saddle-points/.meta/tests.toml b/exercises/practice/saddle-points/.meta/tests.toml similarity index 100% rename from exercises/saddle-points/.meta/tests.toml rename to exercises/practice/saddle-points/.meta/tests.toml diff --git a/exercises/saddle-points/README.md b/exercises/practice/saddle-points/README.md similarity index 100% rename from exercises/saddle-points/README.md rename to exercises/practice/saddle-points/README.md diff --git a/exercises/saddle-points/makefile b/exercises/practice/saddle-points/makefile similarity index 100% rename from exercises/saddle-points/makefile rename to exercises/practice/saddle-points/makefile diff --git a/exercises/saddle-points/src/example.c b/exercises/practice/saddle-points/src/example.c similarity index 100% rename from exercises/saddle-points/src/example.c rename to exercises/practice/saddle-points/src/example.c diff --git a/exercises/saddle-points/src/example.h b/exercises/practice/saddle-points/src/example.h similarity index 100% rename from exercises/saddle-points/src/example.h rename to exercises/practice/saddle-points/src/example.h diff --git a/exercises/saddle-points/src/saddle_points.c b/exercises/practice/saddle-points/src/saddle_points.c similarity index 100% rename from exercises/saddle-points/src/saddle_points.c rename to exercises/practice/saddle-points/src/saddle_points.c diff --git a/exercises/saddle-points/src/saddle_points.h b/exercises/practice/saddle-points/src/saddle_points.h similarity index 100% rename from exercises/saddle-points/src/saddle_points.h rename to exercises/practice/saddle-points/src/saddle_points.h diff --git a/exercises/saddle-points/test/test_saddle_points.c b/exercises/practice/saddle-points/test/test_saddle_points.c similarity index 100% rename from exercises/saddle-points/test/test_saddle_points.c rename to exercises/practice/saddle-points/test/test_saddle_points.c diff --git a/exercises/saddle-points/test/vendor/unity.c b/exercises/practice/saddle-points/test/vendor/unity.c similarity index 100% rename from exercises/saddle-points/test/vendor/unity.c rename to exercises/practice/saddle-points/test/vendor/unity.c diff --git a/exercises/saddle-points/test/vendor/unity.h b/exercises/practice/saddle-points/test/vendor/unity.h similarity index 100% rename from exercises/saddle-points/test/vendor/unity.h rename to exercises/practice/saddle-points/test/vendor/unity.h diff --git a/exercises/saddle-points/test/vendor/unity_internals.h b/exercises/practice/saddle-points/test/vendor/unity_internals.h similarity index 100% rename from exercises/saddle-points/test/vendor/unity_internals.h rename to exercises/practice/saddle-points/test/vendor/unity_internals.h diff --git a/exercises/say/.meta/tests.toml b/exercises/practice/say/.meta/tests.toml similarity index 100% rename from exercises/say/.meta/tests.toml rename to exercises/practice/say/.meta/tests.toml diff --git a/exercises/say/README.md b/exercises/practice/say/README.md similarity index 100% rename from exercises/say/README.md rename to exercises/practice/say/README.md diff --git a/exercises/say/makefile b/exercises/practice/say/makefile similarity index 100% rename from exercises/say/makefile rename to exercises/practice/say/makefile diff --git a/exercises/say/src/example.c b/exercises/practice/say/src/example.c similarity index 100% rename from exercises/say/src/example.c rename to exercises/practice/say/src/example.c diff --git a/exercises/say/src/example.h b/exercises/practice/say/src/example.h similarity index 100% rename from exercises/say/src/example.h rename to exercises/practice/say/src/example.h diff --git a/exercises/say/src/say.c b/exercises/practice/say/src/say.c similarity index 100% rename from exercises/say/src/say.c rename to exercises/practice/say/src/say.c diff --git a/exercises/say/src/say.h b/exercises/practice/say/src/say.h similarity index 100% rename from exercises/say/src/say.h rename to exercises/practice/say/src/say.h diff --git a/exercises/say/test/test_say.c b/exercises/practice/say/test/test_say.c similarity index 100% rename from exercises/say/test/test_say.c rename to exercises/practice/say/test/test_say.c diff --git a/exercises/say/test/vendor/unity.c b/exercises/practice/say/test/vendor/unity.c similarity index 100% rename from exercises/say/test/vendor/unity.c rename to exercises/practice/say/test/vendor/unity.c diff --git a/exercises/say/test/vendor/unity.h b/exercises/practice/say/test/vendor/unity.h similarity index 100% rename from exercises/say/test/vendor/unity.h rename to exercises/practice/say/test/vendor/unity.h diff --git a/exercises/say/test/vendor/unity_internals.h b/exercises/practice/say/test/vendor/unity_internals.h similarity index 100% rename from exercises/say/test/vendor/unity_internals.h rename to exercises/practice/say/test/vendor/unity_internals.h diff --git a/exercises/scrabble-score/.meta/tests.toml b/exercises/practice/scrabble-score/.meta/tests.toml similarity index 100% rename from exercises/scrabble-score/.meta/tests.toml rename to exercises/practice/scrabble-score/.meta/tests.toml diff --git a/exercises/scrabble-score/README.md b/exercises/practice/scrabble-score/README.md similarity index 100% rename from exercises/scrabble-score/README.md rename to exercises/practice/scrabble-score/README.md diff --git a/exercises/scrabble-score/makefile b/exercises/practice/scrabble-score/makefile similarity index 100% rename from exercises/scrabble-score/makefile rename to exercises/practice/scrabble-score/makefile diff --git a/exercises/scrabble-score/src/example.c b/exercises/practice/scrabble-score/src/example.c similarity index 100% rename from exercises/scrabble-score/src/example.c rename to exercises/practice/scrabble-score/src/example.c diff --git a/exercises/scrabble-score/src/example.h b/exercises/practice/scrabble-score/src/example.h similarity index 100% rename from exercises/scrabble-score/src/example.h rename to exercises/practice/scrabble-score/src/example.h diff --git a/exercises/scrabble-score/src/scrabble_score.c b/exercises/practice/scrabble-score/src/scrabble_score.c similarity index 100% rename from exercises/scrabble-score/src/scrabble_score.c rename to exercises/practice/scrabble-score/src/scrabble_score.c diff --git a/exercises/scrabble-score/src/scrabble_score.h b/exercises/practice/scrabble-score/src/scrabble_score.h similarity index 100% rename from exercises/scrabble-score/src/scrabble_score.h rename to exercises/practice/scrabble-score/src/scrabble_score.h diff --git a/exercises/scrabble-score/test/test_scrabble_score.c b/exercises/practice/scrabble-score/test/test_scrabble_score.c similarity index 100% rename from exercises/scrabble-score/test/test_scrabble_score.c rename to exercises/practice/scrabble-score/test/test_scrabble_score.c diff --git a/exercises/scrabble-score/test/vendor/unity.c b/exercises/practice/scrabble-score/test/vendor/unity.c similarity index 100% rename from exercises/scrabble-score/test/vendor/unity.c rename to exercises/practice/scrabble-score/test/vendor/unity.c diff --git a/exercises/scrabble-score/test/vendor/unity.h b/exercises/practice/scrabble-score/test/vendor/unity.h similarity index 100% rename from exercises/scrabble-score/test/vendor/unity.h rename to exercises/practice/scrabble-score/test/vendor/unity.h diff --git a/exercises/scrabble-score/test/vendor/unity_internals.h b/exercises/practice/scrabble-score/test/vendor/unity_internals.h similarity index 100% rename from exercises/scrabble-score/test/vendor/unity_internals.h rename to exercises/practice/scrabble-score/test/vendor/unity_internals.h diff --git a/exercises/secret-handshake/.meta/tests.toml b/exercises/practice/secret-handshake/.meta/tests.toml similarity index 100% rename from exercises/secret-handshake/.meta/tests.toml rename to exercises/practice/secret-handshake/.meta/tests.toml diff --git a/exercises/secret-handshake/README.md b/exercises/practice/secret-handshake/README.md similarity index 100% rename from exercises/secret-handshake/README.md rename to exercises/practice/secret-handshake/README.md diff --git a/exercises/secret-handshake/makefile b/exercises/practice/secret-handshake/makefile similarity index 100% rename from exercises/secret-handshake/makefile rename to exercises/practice/secret-handshake/makefile diff --git a/exercises/secret-handshake/src/example.c b/exercises/practice/secret-handshake/src/example.c similarity index 100% rename from exercises/secret-handshake/src/example.c rename to exercises/practice/secret-handshake/src/example.c diff --git a/exercises/secret-handshake/src/example.h b/exercises/practice/secret-handshake/src/example.h similarity index 100% rename from exercises/secret-handshake/src/example.h rename to exercises/practice/secret-handshake/src/example.h diff --git a/exercises/secret-handshake/src/secret_handshake.c b/exercises/practice/secret-handshake/src/secret_handshake.c similarity index 100% rename from exercises/secret-handshake/src/secret_handshake.c rename to exercises/practice/secret-handshake/src/secret_handshake.c diff --git a/exercises/secret-handshake/src/secret_handshake.h b/exercises/practice/secret-handshake/src/secret_handshake.h similarity index 100% rename from exercises/secret-handshake/src/secret_handshake.h rename to exercises/practice/secret-handshake/src/secret_handshake.h diff --git a/exercises/secret-handshake/test/test_secret_handshake.c b/exercises/practice/secret-handshake/test/test_secret_handshake.c similarity index 100% rename from exercises/secret-handshake/test/test_secret_handshake.c rename to exercises/practice/secret-handshake/test/test_secret_handshake.c diff --git a/exercises/secret-handshake/test/vendor/unity.c b/exercises/practice/secret-handshake/test/vendor/unity.c similarity index 100% rename from exercises/secret-handshake/test/vendor/unity.c rename to exercises/practice/secret-handshake/test/vendor/unity.c diff --git a/exercises/secret-handshake/test/vendor/unity.h b/exercises/practice/secret-handshake/test/vendor/unity.h similarity index 100% rename from exercises/secret-handshake/test/vendor/unity.h rename to exercises/practice/secret-handshake/test/vendor/unity.h diff --git a/exercises/secret-handshake/test/vendor/unity_internals.h b/exercises/practice/secret-handshake/test/vendor/unity_internals.h similarity index 100% rename from exercises/secret-handshake/test/vendor/unity_internals.h rename to exercises/practice/secret-handshake/test/vendor/unity_internals.h diff --git a/exercises/series/.meta/tests.toml b/exercises/practice/series/.meta/tests.toml similarity index 100% rename from exercises/series/.meta/tests.toml rename to exercises/practice/series/.meta/tests.toml diff --git a/exercises/series/README.md b/exercises/practice/series/README.md similarity index 100% rename from exercises/series/README.md rename to exercises/practice/series/README.md diff --git a/exercises/series/makefile b/exercises/practice/series/makefile similarity index 100% rename from exercises/series/makefile rename to exercises/practice/series/makefile diff --git a/exercises/series/src/example.c b/exercises/practice/series/src/example.c similarity index 100% rename from exercises/series/src/example.c rename to exercises/practice/series/src/example.c diff --git a/exercises/series/src/series.c b/exercises/practice/series/src/series.c similarity index 100% rename from exercises/series/src/series.c rename to exercises/practice/series/src/series.c diff --git a/exercises/series/src/series.h b/exercises/practice/series/src/series.h similarity index 100% rename from exercises/series/src/series.h rename to exercises/practice/series/src/series.h diff --git a/exercises/series/test/test_series.c b/exercises/practice/series/test/test_series.c similarity index 100% rename from exercises/series/test/test_series.c rename to exercises/practice/series/test/test_series.c diff --git a/exercises/series/test/vendor/unity.c b/exercises/practice/series/test/vendor/unity.c similarity index 100% rename from exercises/series/test/vendor/unity.c rename to exercises/practice/series/test/vendor/unity.c diff --git a/exercises/series/test/vendor/unity.h b/exercises/practice/series/test/vendor/unity.h similarity index 100% rename from exercises/series/test/vendor/unity.h rename to exercises/practice/series/test/vendor/unity.h diff --git a/exercises/series/test/vendor/unity_internals.h b/exercises/practice/series/test/vendor/unity_internals.h similarity index 100% rename from exercises/series/test/vendor/unity_internals.h rename to exercises/practice/series/test/vendor/unity_internals.h diff --git a/exercises/sieve/.meta/tests.toml b/exercises/practice/sieve/.meta/tests.toml similarity index 100% rename from exercises/sieve/.meta/tests.toml rename to exercises/practice/sieve/.meta/tests.toml diff --git a/exercises/sieve/README.md b/exercises/practice/sieve/README.md similarity index 100% rename from exercises/sieve/README.md rename to exercises/practice/sieve/README.md diff --git a/exercises/sieve/makefile b/exercises/practice/sieve/makefile similarity index 100% rename from exercises/sieve/makefile rename to exercises/practice/sieve/makefile diff --git a/exercises/sieve/src/example.c b/exercises/practice/sieve/src/example.c similarity index 100% rename from exercises/sieve/src/example.c rename to exercises/practice/sieve/src/example.c diff --git a/exercises/sieve/src/sieve.c b/exercises/practice/sieve/src/sieve.c similarity index 100% rename from exercises/sieve/src/sieve.c rename to exercises/practice/sieve/src/sieve.c diff --git a/exercises/sieve/src/sieve.h b/exercises/practice/sieve/src/sieve.h similarity index 100% rename from exercises/sieve/src/sieve.h rename to exercises/practice/sieve/src/sieve.h diff --git a/exercises/sieve/test/test_sieve.c b/exercises/practice/sieve/test/test_sieve.c similarity index 100% rename from exercises/sieve/test/test_sieve.c rename to exercises/practice/sieve/test/test_sieve.c diff --git a/exercises/sieve/test/vendor/unity.c b/exercises/practice/sieve/test/vendor/unity.c similarity index 100% rename from exercises/sieve/test/vendor/unity.c rename to exercises/practice/sieve/test/vendor/unity.c diff --git a/exercises/sieve/test/vendor/unity.h b/exercises/practice/sieve/test/vendor/unity.h similarity index 100% rename from exercises/sieve/test/vendor/unity.h rename to exercises/practice/sieve/test/vendor/unity.h diff --git a/exercises/sieve/test/vendor/unity_internals.h b/exercises/practice/sieve/test/vendor/unity_internals.h similarity index 100% rename from exercises/sieve/test/vendor/unity_internals.h rename to exercises/practice/sieve/test/vendor/unity_internals.h diff --git a/exercises/space-age/.meta/tests.toml b/exercises/practice/space-age/.meta/tests.toml similarity index 100% rename from exercises/space-age/.meta/tests.toml rename to exercises/practice/space-age/.meta/tests.toml diff --git a/exercises/space-age/README.md b/exercises/practice/space-age/README.md similarity index 100% rename from exercises/space-age/README.md rename to exercises/practice/space-age/README.md diff --git a/exercises/space-age/makefile b/exercises/practice/space-age/makefile similarity index 100% rename from exercises/space-age/makefile rename to exercises/practice/space-age/makefile diff --git a/exercises/space-age/src/example.c b/exercises/practice/space-age/src/example.c similarity index 100% rename from exercises/space-age/src/example.c rename to exercises/practice/space-age/src/example.c diff --git a/exercises/space-age/src/example.h b/exercises/practice/space-age/src/example.h similarity index 100% rename from exercises/space-age/src/example.h rename to exercises/practice/space-age/src/example.h diff --git a/exercises/space-age/src/space_age.c b/exercises/practice/space-age/src/space_age.c similarity index 100% rename from exercises/space-age/src/space_age.c rename to exercises/practice/space-age/src/space_age.c diff --git a/exercises/space-age/src/space_age.h b/exercises/practice/space-age/src/space_age.h similarity index 100% rename from exercises/space-age/src/space_age.h rename to exercises/practice/space-age/src/space_age.h diff --git a/exercises/space-age/test/test_space_age.c b/exercises/practice/space-age/test/test_space_age.c similarity index 100% rename from exercises/space-age/test/test_space_age.c rename to exercises/practice/space-age/test/test_space_age.c diff --git a/exercises/space-age/test/vendor/unity.c b/exercises/practice/space-age/test/vendor/unity.c similarity index 100% rename from exercises/space-age/test/vendor/unity.c rename to exercises/practice/space-age/test/vendor/unity.c diff --git a/exercises/space-age/test/vendor/unity.h b/exercises/practice/space-age/test/vendor/unity.h similarity index 100% rename from exercises/space-age/test/vendor/unity.h rename to exercises/practice/space-age/test/vendor/unity.h diff --git a/exercises/space-age/test/vendor/unity_internals.h b/exercises/practice/space-age/test/vendor/unity_internals.h similarity index 100% rename from exercises/space-age/test/vendor/unity_internals.h rename to exercises/practice/space-age/test/vendor/unity_internals.h diff --git a/exercises/square-root/.meta/description.md b/exercises/practice/square-root/.meta/description.md similarity index 100% rename from exercises/square-root/.meta/description.md rename to exercises/practice/square-root/.meta/description.md diff --git a/exercises/square-root/README.md b/exercises/practice/square-root/README.md similarity index 100% rename from exercises/square-root/README.md rename to exercises/practice/square-root/README.md diff --git a/exercises/square-root/makefile b/exercises/practice/square-root/makefile similarity index 100% rename from exercises/square-root/makefile rename to exercises/practice/square-root/makefile diff --git a/exercises/square-root/src/example.c b/exercises/practice/square-root/src/example.c similarity index 100% rename from exercises/square-root/src/example.c rename to exercises/practice/square-root/src/example.c diff --git a/exercises/square-root/src/example.h b/exercises/practice/square-root/src/example.h similarity index 100% rename from exercises/square-root/src/example.h rename to exercises/practice/square-root/src/example.h diff --git a/exercises/square-root/src/square_root.c b/exercises/practice/square-root/src/square_root.c similarity index 100% rename from exercises/square-root/src/square_root.c rename to exercises/practice/square-root/src/square_root.c diff --git a/exercises/square-root/src/square_root.h b/exercises/practice/square-root/src/square_root.h similarity index 100% rename from exercises/square-root/src/square_root.h rename to exercises/practice/square-root/src/square_root.h diff --git a/exercises/square-root/test/test_square_root.c b/exercises/practice/square-root/test/test_square_root.c similarity index 100% rename from exercises/square-root/test/test_square_root.c rename to exercises/practice/square-root/test/test_square_root.c diff --git a/exercises/square-root/test/vendor/unity.c b/exercises/practice/square-root/test/vendor/unity.c similarity index 100% rename from exercises/square-root/test/vendor/unity.c rename to exercises/practice/square-root/test/vendor/unity.c diff --git a/exercises/square-root/test/vendor/unity.h b/exercises/practice/square-root/test/vendor/unity.h similarity index 100% rename from exercises/square-root/test/vendor/unity.h rename to exercises/practice/square-root/test/vendor/unity.h diff --git a/exercises/square-root/test/vendor/unity_internals.h b/exercises/practice/square-root/test/vendor/unity_internals.h similarity index 100% rename from exercises/square-root/test/vendor/unity_internals.h rename to exercises/practice/square-root/test/vendor/unity_internals.h diff --git a/exercises/sublist/.meta/tests.toml b/exercises/practice/sublist/.meta/tests.toml similarity index 100% rename from exercises/sublist/.meta/tests.toml rename to exercises/practice/sublist/.meta/tests.toml diff --git a/exercises/sublist/README.md b/exercises/practice/sublist/README.md similarity index 100% rename from exercises/sublist/README.md rename to exercises/practice/sublist/README.md diff --git a/exercises/sublist/makefile b/exercises/practice/sublist/makefile similarity index 100% rename from exercises/sublist/makefile rename to exercises/practice/sublist/makefile diff --git a/exercises/sublist/src/example.c b/exercises/practice/sublist/src/example.c similarity index 100% rename from exercises/sublist/src/example.c rename to exercises/practice/sublist/src/example.c diff --git a/exercises/sublist/src/sublist.c b/exercises/practice/sublist/src/sublist.c similarity index 100% rename from exercises/sublist/src/sublist.c rename to exercises/practice/sublist/src/sublist.c diff --git a/exercises/sublist/src/sublist.h b/exercises/practice/sublist/src/sublist.h similarity index 100% rename from exercises/sublist/src/sublist.h rename to exercises/practice/sublist/src/sublist.h diff --git a/exercises/sublist/test/test_sublist.c b/exercises/practice/sublist/test/test_sublist.c similarity index 100% rename from exercises/sublist/test/test_sublist.c rename to exercises/practice/sublist/test/test_sublist.c diff --git a/exercises/sublist/test/vendor/unity.c b/exercises/practice/sublist/test/vendor/unity.c similarity index 100% rename from exercises/sublist/test/vendor/unity.c rename to exercises/practice/sublist/test/vendor/unity.c diff --git a/exercises/sublist/test/vendor/unity.h b/exercises/practice/sublist/test/vendor/unity.h similarity index 100% rename from exercises/sublist/test/vendor/unity.h rename to exercises/practice/sublist/test/vendor/unity.h diff --git a/exercises/sublist/test/vendor/unity_internals.h b/exercises/practice/sublist/test/vendor/unity_internals.h similarity index 100% rename from exercises/sublist/test/vendor/unity_internals.h rename to exercises/practice/sublist/test/vendor/unity_internals.h diff --git a/exercises/sum-of-multiples/.meta/tests.toml b/exercises/practice/sum-of-multiples/.meta/tests.toml similarity index 100% rename from exercises/sum-of-multiples/.meta/tests.toml rename to exercises/practice/sum-of-multiples/.meta/tests.toml diff --git a/exercises/sum-of-multiples/README.md b/exercises/practice/sum-of-multiples/README.md similarity index 100% rename from exercises/sum-of-multiples/README.md rename to exercises/practice/sum-of-multiples/README.md diff --git a/exercises/sum-of-multiples/makefile b/exercises/practice/sum-of-multiples/makefile similarity index 100% rename from exercises/sum-of-multiples/makefile rename to exercises/practice/sum-of-multiples/makefile diff --git a/exercises/sum-of-multiples/src/example.c b/exercises/practice/sum-of-multiples/src/example.c similarity index 100% rename from exercises/sum-of-multiples/src/example.c rename to exercises/practice/sum-of-multiples/src/example.c diff --git a/exercises/sum-of-multiples/src/example.h b/exercises/practice/sum-of-multiples/src/example.h similarity index 100% rename from exercises/sum-of-multiples/src/example.h rename to exercises/practice/sum-of-multiples/src/example.h diff --git a/exercises/sum-of-multiples/src/sum_of_multiples.c b/exercises/practice/sum-of-multiples/src/sum_of_multiples.c similarity index 100% rename from exercises/sum-of-multiples/src/sum_of_multiples.c rename to exercises/practice/sum-of-multiples/src/sum_of_multiples.c diff --git a/exercises/sum-of-multiples/src/sum_of_multiples.h b/exercises/practice/sum-of-multiples/src/sum_of_multiples.h similarity index 100% rename from exercises/sum-of-multiples/src/sum_of_multiples.h rename to exercises/practice/sum-of-multiples/src/sum_of_multiples.h diff --git a/exercises/sum-of-multiples/test/test_sum_of_multiples.c b/exercises/practice/sum-of-multiples/test/test_sum_of_multiples.c similarity index 100% rename from exercises/sum-of-multiples/test/test_sum_of_multiples.c rename to exercises/practice/sum-of-multiples/test/test_sum_of_multiples.c diff --git a/exercises/sum-of-multiples/test/vendor/unity.c b/exercises/practice/sum-of-multiples/test/vendor/unity.c similarity index 100% rename from exercises/sum-of-multiples/test/vendor/unity.c rename to exercises/practice/sum-of-multiples/test/vendor/unity.c diff --git a/exercises/sum-of-multiples/test/vendor/unity.h b/exercises/practice/sum-of-multiples/test/vendor/unity.h similarity index 100% rename from exercises/sum-of-multiples/test/vendor/unity.h rename to exercises/practice/sum-of-multiples/test/vendor/unity.h diff --git a/exercises/sum-of-multiples/test/vendor/unity_internals.h b/exercises/practice/sum-of-multiples/test/vendor/unity_internals.h similarity index 100% rename from exercises/sum-of-multiples/test/vendor/unity_internals.h rename to exercises/practice/sum-of-multiples/test/vendor/unity_internals.h diff --git a/exercises/triangle/.meta/tests.toml b/exercises/practice/triangle/.meta/tests.toml similarity index 100% rename from exercises/triangle/.meta/tests.toml rename to exercises/practice/triangle/.meta/tests.toml diff --git a/exercises/triangle/README.md b/exercises/practice/triangle/README.md similarity index 100% rename from exercises/triangle/README.md rename to exercises/practice/triangle/README.md diff --git a/exercises/triangle/makefile b/exercises/practice/triangle/makefile similarity index 100% rename from exercises/triangle/makefile rename to exercises/practice/triangle/makefile diff --git a/exercises/triangle/src/example.c b/exercises/practice/triangle/src/example.c similarity index 100% rename from exercises/triangle/src/example.c rename to exercises/practice/triangle/src/example.c diff --git a/exercises/triangle/src/example.h b/exercises/practice/triangle/src/example.h similarity index 100% rename from exercises/triangle/src/example.h rename to exercises/practice/triangle/src/example.h diff --git a/exercises/triangle/src/triangle.c b/exercises/practice/triangle/src/triangle.c similarity index 100% rename from exercises/triangle/src/triangle.c rename to exercises/practice/triangle/src/triangle.c diff --git a/exercises/triangle/src/triangle.h b/exercises/practice/triangle/src/triangle.h similarity index 100% rename from exercises/triangle/src/triangle.h rename to exercises/practice/triangle/src/triangle.h diff --git a/exercises/triangle/test/test_triangle.c b/exercises/practice/triangle/test/test_triangle.c similarity index 100% rename from exercises/triangle/test/test_triangle.c rename to exercises/practice/triangle/test/test_triangle.c diff --git a/exercises/triangle/test/vendor/unity.c b/exercises/practice/triangle/test/vendor/unity.c similarity index 100% rename from exercises/triangle/test/vendor/unity.c rename to exercises/practice/triangle/test/vendor/unity.c diff --git a/exercises/triangle/test/vendor/unity.h b/exercises/practice/triangle/test/vendor/unity.h similarity index 100% rename from exercises/triangle/test/vendor/unity.h rename to exercises/practice/triangle/test/vendor/unity.h diff --git a/exercises/triangle/test/vendor/unity_internals.h b/exercises/practice/triangle/test/vendor/unity_internals.h similarity index 100% rename from exercises/triangle/test/vendor/unity_internals.h rename to exercises/practice/triangle/test/vendor/unity_internals.h diff --git a/exercises/two-bucket/.meta/tests.toml b/exercises/practice/two-bucket/.meta/tests.toml similarity index 100% rename from exercises/two-bucket/.meta/tests.toml rename to exercises/practice/two-bucket/.meta/tests.toml diff --git a/exercises/two-bucket/README.md b/exercises/practice/two-bucket/README.md similarity index 100% rename from exercises/two-bucket/README.md rename to exercises/practice/two-bucket/README.md diff --git a/exercises/two-bucket/makefile b/exercises/practice/two-bucket/makefile similarity index 100% rename from exercises/two-bucket/makefile rename to exercises/practice/two-bucket/makefile diff --git a/exercises/two-bucket/src/example.c b/exercises/practice/two-bucket/src/example.c similarity index 100% rename from exercises/two-bucket/src/example.c rename to exercises/practice/two-bucket/src/example.c diff --git a/exercises/two-bucket/src/example.h b/exercises/practice/two-bucket/src/example.h similarity index 100% rename from exercises/two-bucket/src/example.h rename to exercises/practice/two-bucket/src/example.h diff --git a/exercises/two-bucket/src/two_bucket.c b/exercises/practice/two-bucket/src/two_bucket.c similarity index 100% rename from exercises/two-bucket/src/two_bucket.c rename to exercises/practice/two-bucket/src/two_bucket.c diff --git a/exercises/two-bucket/src/two_bucket.h b/exercises/practice/two-bucket/src/two_bucket.h similarity index 100% rename from exercises/two-bucket/src/two_bucket.h rename to exercises/practice/two-bucket/src/two_bucket.h diff --git a/exercises/two-bucket/test/test_two_bucket.c b/exercises/practice/two-bucket/test/test_two_bucket.c similarity index 100% rename from exercises/two-bucket/test/test_two_bucket.c rename to exercises/practice/two-bucket/test/test_two_bucket.c diff --git a/exercises/two-bucket/test/vendor/unity.c b/exercises/practice/two-bucket/test/vendor/unity.c similarity index 100% rename from exercises/two-bucket/test/vendor/unity.c rename to exercises/practice/two-bucket/test/vendor/unity.c diff --git a/exercises/two-bucket/test/vendor/unity.h b/exercises/practice/two-bucket/test/vendor/unity.h similarity index 100% rename from exercises/two-bucket/test/vendor/unity.h rename to exercises/practice/two-bucket/test/vendor/unity.h diff --git a/exercises/two-bucket/test/vendor/unity_internals.h b/exercises/practice/two-bucket/test/vendor/unity_internals.h similarity index 100% rename from exercises/two-bucket/test/vendor/unity_internals.h rename to exercises/practice/two-bucket/test/vendor/unity_internals.h diff --git a/exercises/two-fer/.meta/tests.toml b/exercises/practice/two-fer/.meta/tests.toml similarity index 100% rename from exercises/two-fer/.meta/tests.toml rename to exercises/practice/two-fer/.meta/tests.toml diff --git a/exercises/two-fer/README.md b/exercises/practice/two-fer/README.md similarity index 100% rename from exercises/two-fer/README.md rename to exercises/practice/two-fer/README.md diff --git a/exercises/two-fer/makefile b/exercises/practice/two-fer/makefile similarity index 100% rename from exercises/two-fer/makefile rename to exercises/practice/two-fer/makefile diff --git a/exercises/two-fer/src/example.c b/exercises/practice/two-fer/src/example.c similarity index 100% rename from exercises/two-fer/src/example.c rename to exercises/practice/two-fer/src/example.c diff --git a/exercises/two-fer/src/example.h b/exercises/practice/two-fer/src/example.h similarity index 100% rename from exercises/two-fer/src/example.h rename to exercises/practice/two-fer/src/example.h diff --git a/exercises/two-fer/src/two_fer.c b/exercises/practice/two-fer/src/two_fer.c similarity index 100% rename from exercises/two-fer/src/two_fer.c rename to exercises/practice/two-fer/src/two_fer.c diff --git a/exercises/two-fer/src/two_fer.h b/exercises/practice/two-fer/src/two_fer.h similarity index 100% rename from exercises/two-fer/src/two_fer.h rename to exercises/practice/two-fer/src/two_fer.h diff --git a/exercises/two-fer/test/test_two_fer.c b/exercises/practice/two-fer/test/test_two_fer.c similarity index 100% rename from exercises/two-fer/test/test_two_fer.c rename to exercises/practice/two-fer/test/test_two_fer.c diff --git a/exercises/two-fer/test/vendor/unity.c b/exercises/practice/two-fer/test/vendor/unity.c similarity index 100% rename from exercises/two-fer/test/vendor/unity.c rename to exercises/practice/two-fer/test/vendor/unity.c diff --git a/exercises/two-fer/test/vendor/unity.h b/exercises/practice/two-fer/test/vendor/unity.h similarity index 100% rename from exercises/two-fer/test/vendor/unity.h rename to exercises/practice/two-fer/test/vendor/unity.h diff --git a/exercises/two-fer/test/vendor/unity_internals.h b/exercises/practice/two-fer/test/vendor/unity_internals.h similarity index 100% rename from exercises/two-fer/test/vendor/unity_internals.h rename to exercises/practice/two-fer/test/vendor/unity_internals.h diff --git a/exercises/word-count/.meta/hints.md b/exercises/practice/word-count/.meta/hints.md similarity index 100% rename from exercises/word-count/.meta/hints.md rename to exercises/practice/word-count/.meta/hints.md diff --git a/exercises/word-count/.meta/tests.toml b/exercises/practice/word-count/.meta/tests.toml similarity index 100% rename from exercises/word-count/.meta/tests.toml rename to exercises/practice/word-count/.meta/tests.toml diff --git a/exercises/word-count/README.md b/exercises/practice/word-count/README.md similarity index 100% rename from exercises/word-count/README.md rename to exercises/practice/word-count/README.md diff --git a/exercises/word-count/makefile b/exercises/practice/word-count/makefile similarity index 100% rename from exercises/word-count/makefile rename to exercises/practice/word-count/makefile diff --git a/exercises/word-count/src/example.c b/exercises/practice/word-count/src/example.c similarity index 100% rename from exercises/word-count/src/example.c rename to exercises/practice/word-count/src/example.c diff --git a/exercises/word-count/src/word_count.c b/exercises/practice/word-count/src/word_count.c similarity index 100% rename from exercises/word-count/src/word_count.c rename to exercises/practice/word-count/src/word_count.c diff --git a/exercises/word-count/src/word_count.h b/exercises/practice/word-count/src/word_count.h similarity index 100% rename from exercises/word-count/src/word_count.h rename to exercises/practice/word-count/src/word_count.h diff --git a/exercises/word-count/test/test_word_count.c b/exercises/practice/word-count/test/test_word_count.c similarity index 100% rename from exercises/word-count/test/test_word_count.c rename to exercises/practice/word-count/test/test_word_count.c diff --git a/exercises/word-count/test/vendor/unity.c b/exercises/practice/word-count/test/vendor/unity.c similarity index 100% rename from exercises/word-count/test/vendor/unity.c rename to exercises/practice/word-count/test/vendor/unity.c diff --git a/exercises/word-count/test/vendor/unity.h b/exercises/practice/word-count/test/vendor/unity.h similarity index 100% rename from exercises/word-count/test/vendor/unity.h rename to exercises/practice/word-count/test/vendor/unity.h diff --git a/exercises/word-count/test/vendor/unity_internals.h b/exercises/practice/word-count/test/vendor/unity_internals.h similarity index 100% rename from exercises/word-count/test/vendor/unity_internals.h rename to exercises/practice/word-count/test/vendor/unity_internals.h diff --git a/exercises/wordy/.meta/tests.toml b/exercises/practice/wordy/.meta/tests.toml similarity index 100% rename from exercises/wordy/.meta/tests.toml rename to exercises/practice/wordy/.meta/tests.toml diff --git a/exercises/wordy/README.md b/exercises/practice/wordy/README.md similarity index 100% rename from exercises/wordy/README.md rename to exercises/practice/wordy/README.md diff --git a/exercises/wordy/makefile b/exercises/practice/wordy/makefile similarity index 100% rename from exercises/wordy/makefile rename to exercises/practice/wordy/makefile diff --git a/exercises/wordy/src/example.c b/exercises/practice/wordy/src/example.c similarity index 100% rename from exercises/wordy/src/example.c rename to exercises/practice/wordy/src/example.c diff --git a/exercises/wordy/src/example.h b/exercises/practice/wordy/src/example.h similarity index 100% rename from exercises/wordy/src/example.h rename to exercises/practice/wordy/src/example.h diff --git a/exercises/wordy/src/wordy.c b/exercises/practice/wordy/src/wordy.c similarity index 100% rename from exercises/wordy/src/wordy.c rename to exercises/practice/wordy/src/wordy.c diff --git a/exercises/wordy/src/wordy.h b/exercises/practice/wordy/src/wordy.h similarity index 100% rename from exercises/wordy/src/wordy.h rename to exercises/practice/wordy/src/wordy.h diff --git a/exercises/wordy/test/test_wordy.c b/exercises/practice/wordy/test/test_wordy.c similarity index 100% rename from exercises/wordy/test/test_wordy.c rename to exercises/practice/wordy/test/test_wordy.c diff --git a/exercises/wordy/test/vendor/unity.c b/exercises/practice/wordy/test/vendor/unity.c similarity index 100% rename from exercises/wordy/test/vendor/unity.c rename to exercises/practice/wordy/test/vendor/unity.c diff --git a/exercises/wordy/test/vendor/unity.h b/exercises/practice/wordy/test/vendor/unity.h similarity index 100% rename from exercises/wordy/test/vendor/unity.h rename to exercises/practice/wordy/test/vendor/unity.h diff --git a/exercises/wordy/test/vendor/unity_internals.h b/exercises/practice/wordy/test/vendor/unity_internals.h similarity index 100% rename from exercises/wordy/test/vendor/unity_internals.h rename to exercises/practice/wordy/test/vendor/unity_internals.h diff --git a/reference/exercise-concepts/binary-search.md b/reference/exercise-concepts/binary-search.md new file mode 100644 index 000000000..fc65081e0 --- /dev/null +++ b/reference/exercise-concepts/binary-search.md @@ -0,0 +1,17 @@ +# Concepts of binary-search + +[Example Implementation](https://github.com/exercism/c/blob/master/exercises/binary-search/src/example.c) + +- [Arithmetic](https://github.com/exercism/v3/blob/master/reference/concepts/arithmetic.md): Used to calculate the limits between which to search the value +- [Comparisons](https://github.com/exercism/v3/blob/master/reference/concepts/comparisons.md): Comparisons are used in if and while loop conditions +- [Function definitions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Definitions): Used as the main entry point for the exercise +- [Function parameters](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Parameters): The definition of the function under test uses the parameters `value`, `arr` and `length` +- [Header files](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Header-Files): Used to access the standard library for `size_t`, an unsigned integral type +- [Integer](https://github.com/exercism/v3/blob/master/reference/types/integer.md): Integers are used throughout +- [Operators](https://github.com/exercism/v3/blob/master/reference/concepts/operators.md): Operators are used throughout for the arithmetic +- [The if statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-if-Statement): If statements are used to decide in which part of the array to search for the index to return +- [The return statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-return-Statement): The index of the searched value is returned if the value is found, `NULL` otherwise +- [The while statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-while-Statement): Loop to find the searched value +- [Variables](https://github.com/exercism/v3/blob/master/reference/concepts/variables.md): Used to create the limits of the search interval +- [Pointers](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Pointers): The parameter `arr` to the function under test is an int passed by pointer +- [Nullability](https://github.com/exercism/v3/blob/265953042ed67f5404f498656c2c23bdce708af5/reference/types/null.md): `NULL` is returned if the searched value was not found diff --git a/reference/exercise-concepts/difference-of-squares.md b/reference/exercise-concepts/difference-of-squares.md new file mode 100644 index 000000000..defc14186 --- /dev/null +++ b/reference/exercise-concepts/difference-of-squares.md @@ -0,0 +1,22 @@ +# Concepts of difference-of-squares + +[Example Implementation](https://github.com/exercism/c/blob/master/exercises/difference-of-squares/src/example.c) + +- [Arithmetic](https://github.com/exercism/v3/blob/master/reference/concepts/arithmetic.md): Several simple calculations are used +- [Calling functions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Calling-Functions): The `difference_of_squares()` function can call other required functions to prevent code duplication +- [Comparisons](https://github.com/exercism/v3/blob/master/reference/concepts/comparisons.md): Used to decide on the calculations required +- [Function definitions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Definitions): Used as the main entry point for the exercise +- [Function parameters](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Parameters): The definition of the functions under test uses parameters +- [Header files](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Header-Files): Header files are included +- [Integer types](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Integer-Types): Integers are used throughout +- [Operators](https://github.com/exercism/v3/blob/master/reference/concepts/operators.md): Used to calculate the sums, squares and difference +- [Scope](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Scope): Summing variables are used outside of loop scopes to allow further use of the value +- [Signedness](https://github.com/exercism/v3/blob/master/reference/concepts/signedness.md): Parameters and return values of the functions under test are unsigned +- [The for statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-for-Statement): A for loop is used to calculate the square of a sum +- Underflow: Some implementations could result in underflow + - [Arithmetic underflow](https://en.wikipedia.org/wiki/Arithmetic_underflow) + - [Impacts of underflow](https://www.gnu.org/software/libc/manual/html_node/Math-Error-Reporting.html) +- Overflow: Some implementations could result in overflow + - [Integer underflow](https://en.wikipedia.org/wiki/Integer_overflow) + - [Impacts of underflow](https://www.gnu.org/software/libc/manual/html_node/Math-Error-Reporting.html) +- [Variables](https://github.com/exercism/v3/blob/master/reference/concepts/variables.md): variables are used for summing values diff --git a/reference/exercise-concepts/hamming.md b/reference/exercise-concepts/hamming.md new file mode 100644 index 000000000..35e1dc78f --- /dev/null +++ b/reference/exercise-concepts/hamming.md @@ -0,0 +1,16 @@ +# Concepts of hamming + +[Example Implementation](https://github.com/exercism/c/blob/master/exercises/hamming/src/example.c) + +- [Array](https://github.com/exercism/v3/blob/master/reference/types/array.md): The string arguments are iterated over as arrays +- [Comparisons](https://github.com/exercism/v3/blob/master/reference/concepts/comparisons.md): String lengths and character values are compared +- [Header files](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Header-Files): Header files are included +- [Operators](https://github.com/exercism/v3/blob/master/reference/concepts/operators.md): Used to decide on and implement changes to the output value +- [Pointers](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Pointers): The parameters to the function under test are strings (passed by pointer) +- [Storage Class Specifiers](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Storage-Class-Specifiers): The parameters to the function under test are `const` +- [String](https://github.com/exercism/v3/blob/master/reference/types/string.md): The parameters to the function under test are strings (passed by pointer) +- [Strings library](https://en.cppreference.com/w/c/string): The function `strlen()` from the strings library is used +- [The for statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-for-Statement): A for statement is used to iterate across the strings as arrays +- [The if Statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-if-Statement): If statements are used to decide on the change required for the output value +- [The increment operator](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Incrementing-and-Decrementing): Used to implement changes to the output value +- [The return statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-return-Statement): The calculated value is returned diff --git a/reference/exercise-concepts/isogram.md b/reference/exercise-concepts/isogram.md new file mode 100644 index 000000000..addc9c477 --- /dev/null +++ b/reference/exercise-concepts/isogram.md @@ -0,0 +1,23 @@ +# Concepts of isogram + +[Example Implementation](https://github.com/exercism/c/blob/master/exercises/isogram/src/example.c) + +- [Array](https://github.com/exercism/v3/blob/master/reference/types/array.md): The `phrase` string is iterated over using array semantics +- [ASCII](https://github.com/exercism/v3/blob/master/reference/concepts/ascii.md): ASCII arithmetic is used +- [Bitwise manipulation](https://github.com/exercism/v3/blob/master/reference/concepts/bitwise_manipulation.md): A bit mask is constructed and applied +- [Boolean](https://github.com/exercism/v3/blob/master/reference/types/boolean.md): The returned value is of type `bool` +- [Boolean logic](https://github.com/exercism/v3/blob/master/reference/concepts/boolean_logic.md): A bit mask is applied +- [Calling functions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Calling-Functions): Standard library functions are called +- [Case Conversion](https://www.gnu.org/software/libc/manual/html_node/Case-Conversion.html): Characters are normalised to upper case +- [Character classification](https://www.gnu.org/software/libc/manual/html_node/Classification-of-Characters.html): Branching condition tests if a character is alphanumeric +- [Comparisons](https://github.com/exercism/v3/blob/master/reference/concepts/comparisons.md): Tests for `NULL` and `'\0'` are used to understand the string argument +- [Fixed width integer Types](https://en.wikipedia.org/wiki/C_data_types#Fixed-width_integer_types): Fixed width integers are used throughout +- [Function definitions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Definitions): A function is defined to implement the exercise +- [Function Parameters](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Parameters): The definition of the function under test uses parameters +- [Header Files](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Header-Files): Used to access the standard library +- [Loops](https://github.com/exercism/v3/blob/master/reference/concepts/loops.md): A for loop is used to iterate across the string's characters +- [NULL pointer constant](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Null-Pointer-Constant): Pointer argument is NULL checked to ensure validity +- [Operators](https://github.com/exercism/v3/blob/master/reference/concepts/operators.md): Used to decide on and implement changes to the output value +- [Unsigned number representation](https://github.com/exercism/v3/blob/master/reference/types/unsigned.md): Unsigned integers are used to alow correct bit manipulation +- [String](https://github.com/exercism/v3/blob/master/reference/types/string.md): A string parameter is part of the function under test's definition +- [The if Statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-if-Statement): Used to determine the value to return diff --git a/reference/exercise-concepts/resistor-color.md b/reference/exercise-concepts/resistor-color.md new file mode 100644 index 000000000..6865ab852 --- /dev/null +++ b/reference/exercise-concepts/resistor-color.md @@ -0,0 +1,17 @@ +# Concepts of resistor-color + +[Example Implementation](https://github.com/exercism/c/blob/master/exercises/resistor-color/src/example.c) + +- [Array](https://github.com/exercism/v3/blob/master/reference/types/array.md): The `colors()` function returns an array (by pointer) +- [Enumerations](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Enumerations): Each band color is specified by an enum value +- [Fixed width integer Types](https://en.wikipedia.org/wiki/C_data_types#Fixed-width_integer_types): Fixed width integers are used throughout +- [Function definitions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Definitions): Functions are defined to fulfil the requirements +- [Function parameters](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Parameters): The definition of the function under test uses parameters +- [Header files](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Header-Files): Used to access the standard library +- [Pointers](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Pointers): The `colors()` function returns an array by pointer +- [Renaming types](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Renaming-Types): The enum for band colors is named using `typefdef` +- [Storage class specifiers](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Storage-Class-Specifiers): A `static` array is defined +- [The return statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-return-Statement): The implemented functions return a value +- [Type casting (type conversion, type coercion)](https://github.com/exercism/v3/blob/master/reference/concepts/type_casting.md): A band color enum value is converted to an integer to present its numerical value. +- [Typedef statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-typedef-Statement): The enum for band colors is named using `typefdef` +- [Void type](https://en.wikipedia.org/wiki/Void_type): The `void` type is used in a function definition diff --git a/reference/exercise-concepts/square-root.md b/reference/exercise-concepts/square-root.md new file mode 100644 index 000000000..c469547dc --- /dev/null +++ b/reference/exercise-concepts/square-root.md @@ -0,0 +1,18 @@ +# Concepts of square-root + +[Example Implementation](https://github.com/exercism/c/blob/master/exercises/square-root/src/example.c) + +- [Arithmetic](https://github.com/exercism/v3/blob/master/reference/concepts/arithmetic.md): Used to calculate the root +- [Bitwise manipulation](https://github.com/exercism/v3/blob/master/reference/concepts/bitwise_manipulation.md): Bit-shifting is used several times for calculation of the output value +- [Comparisons](https://github.com/exercism/v3/blob/master/reference/concepts/comparisons.md): Comparisons are used in while loop conditions +- [Fixed width integer types](https://en.wikipedia.org/wiki/C_data_types#Fixed-width_integer_types): Used throughout for specific bit positioning +- [Function definitions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Definitions): Used as the main entry point for the exercise +- [Function parameters](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Parameters): The definition of the function under test uses a parameter `radicand` +- [Header files](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Header-Files): Used to access the standard library for fixed width integers +- [Integer](https://github.com/exercism/v3/blob/master/reference/types/integer.md): Integers are used throughout +- [Operators](https://github.com/exercism/v3/blob/master/reference/concepts/operators.md): Operators are used throughout for the arithmetic +- [The if statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-if-Statement): Decide if the bit mask approximation is in range +- [The return statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-return-Statement): The calculated value is returned from the function +- [The while statement](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#The-while-Statement): Loop to create bit mask approximation +- [Unsigned number representation](https://github.com/exercism/v3/blob/master/reference/types/unsigned.md): Required to correctly bit shift input and output values +- [Variables](https://github.com/exercism/v3/blob/master/reference/concepts/variables.md): Used to create the bit mask diff --git a/reference/exercise-concepts/two-fer.md b/reference/exercise-concepts/two-fer.md new file mode 100644 index 000000000..76013a9d0 --- /dev/null +++ b/reference/exercise-concepts/two-fer.md @@ -0,0 +1,16 @@ +# Concepts of two-fer + +[Example Implementation](https://github.com/exercism/c/blob/master/exercises/two-fer/src/example.c) + +- [Header Files](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Header-Files): used to access the standard library +- [Function Definitions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Definitions): used as the main entry point for the exercise +- [Function Parameters](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Function-Parameters): the definition of the function under test uses parameters +- Void Type: void is used as a return value +- [Integer Types](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Integer-Types): buffer and name are integer types +- [Pointers](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Pointers): buffer and name are pointers +- [Type Qualifiers](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Type-Qualifiers): name is const +- [Calling Functions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Calling-Functions): the sprintf function is called +- [String Formatting](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Other-Output-Conversions): string formatting is used in the call to sprintf +- [Constants](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#String-Constants): "One for %s, one for me." is a string constant +- [NULL](https://www.gnu.org/software/libc/manual/html_mono/libc.html#Null-Pointer-Constant): NULL is used for an optional argument +- [Conditional Expressions](https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Conditional-Expressions): name ? name : "you" is a conditional expression diff --git a/reference/implementing-a-concept-exercise.md b/reference/implementing-a-concept-exercise.md new file mode 100644 index 000000000..d3e53982a --- /dev/null +++ b/reference/implementing-a-concept-exercise.md @@ -0,0 +1,83 @@ +# How to Implement a C Concept Exercise + +This document describes how to implement a concept exercise for the C track. + +**Please please please read the docs before starting.** Posting PRs without reading these docs will be a lot more frustrating for you during the review cycle, and exhaust Exercism's maintainers' time. So, before diving into the implementation, please read the following documents: + +- [The features of v3][docs-features-of-v3]. +- [Rationale for v3][docs-rationale-for-v3]. +- [What are concept exercise and how they are structured?][docs-concept-exercises] + +Please also watch the following video: + +- [The Anatomy of a Concept Exercise][anatomy-of-a-concept-exercise]. + +As this document is generic, the following placeholders are used: + +- ``: the slug of the exercise in kebab-case (e.g. `calculator-conundrum`). +- ``: the name of the exercise in snake_case (e.g. `calculator_conundrum`). +- ``: the slug of one of the exercise's concepts in kebab-case (e.g. `anonymous-methods`). + +Before implementing the exercise, please make sure you have a good understanding of what the exercise should be teaching (and what not). This information can be found in the exercise's GitHub issue. + +To implement a concept exercise, the following files must be added: + +
+languages
+└── c
+    ├── concepts
+    |   └── <CONCEPT_SLUG>
+    |       ├── about.md
+    |       └── links.json
+    └── exercises
+        └── concept
+            └── <SLUG>
+                ├── .docs
+                │   ├── instructions.md
+                │   ├── introduction.md
+                │   ├── hints.md
+                │   └── source.md (required if there are third-party sources)
+                ├── .meta
+                │   ├── config.json
+                │   ├── design.md
+                │   └── exemplar.c
+                ├── makefile
+                ├── <NAME>.c
+                ├── <NAME>.h
+                ├── test_<NAME>.c
+                └── test-framework
+
+ +## Step 1: Add code files + +The code files are track-specific and should be designed to help the student learn the exercise's concepts. The following files must be added (not necessarily in this order): + +- `makefile`: the makefile for the stub files and tests +- `{.c|.h}`: the stub source and header implementation files, which are the starting point for students to work on the exercise. +- `test_.c`: the unit test source file. +- `test-framework`: this directory contains the source files of unit test framework, [Unity][unity] +- `.meta/exemplar{.c|.h}`: an exemplar implementation that passes all the unit tests. + +## Step 2: Add documentation files + +How to create the files common to all tracks is described in the [how to implement a concept exercise document][how-to-implement-a-concept-exercise]. + +## Step 3: Update list of implemented exercises + +- Add the exercise to the [list of implemented exercises][implemented-exercises]. + +## Inspiration + +When implementing an exercise, it can be very useful to look at already implemented C exercises. You can also check the exercise's [general concepts documents][reference] to see if other languages have already implemented an exercise for that concept. + +## Help + +If you have any questions regarding implementing the exercise, please post them as comments in the exercise's GitHub issue. + +[docs-concept-exercises]: https://github.com/exercism/v3/blob/main/docs/concept-exercises.md +[docs-rationale-for-v3]: https://github.com/exercism/v3/blob/main/docs/rationale-for-v3.md +[docs-features-of-v3]: https://github.com/exercism/v3/blob/main/docs/features-of-v3.md +[anatomy-of-a-concept-exercise]: https://www.youtube.com/watch?v=gkbBqd7hPrA +[unity]: http://www.throwtheswitch.org/unity +[how-to-implement-a-concept-exercise]: https://github.com/exercism/v3/blob/main/docs/maintainers/generic-how-to-implement-a-concept-exercise.md +[reference]: https://github.com/exercism/v3/blob/main/reference