From dab35c81abe765b31f8c1e3535bf104688edb779 Mon Sep 17 00:00:00 2001 From: BethanyG Date: Fri, 20 May 2022 17:03:43 -0700 Subject: [PATCH 1/3] Track re-level and re-configure. --- config.json | 1994 ++++++++++++++++++++++++--------------------------- 1 file changed, 921 insertions(+), 1073 deletions(-) diff --git a/config.json b/config.json index c150267c38..92e916e67c 100644 --- a/config.json +++ b/config.json @@ -180,15 +180,8 @@ "slug": "plane-tickets", "name": "Plane Tickets", "uuid": "3ba3fc89-3e1b-48a5-aff0-5aeaba8c8810", - "concepts": [ - "generators" - ], - "prerequisites": [ - "conditionals", - "dicts", - "lists", - "loops" - ], + "concepts": ["generators"], + "prerequisites": ["conditionals", "dicts", "lists", "loops"], "status": "wip" }, { @@ -196,7 +189,8 @@ "name": "Ellen's Alien Game", "uuid": "3550ec07-f6c6-48bd-b2b4-086e75faf9e7", "concepts": ["classes"], - "prerequisites": ["basics", + "prerequisites": [ + "basics", "bools", "comparisons", "loops", @@ -219,6 +213,30 @@ "prerequisites": [], "difficulty": 1 }, + { + "slug": "reverse-string", + "name": "Reverse String", + "uuid": "d39f86fe-db56-461c-8a93-d87058af8366", + "practices": [], + "prerequisites": [ + "basics", + "bools", + "conditionals", + "lists", + "list-methods", + "loops", + "strings" + ], + "difficulty": 1 + }, + { + "slug": "resistor-color", + "name": "Resistor Color", + "uuid": "d17bee9c-e803-4745-85ea-864f255fb04e", + "practices": ["lists"], + "prerequisites": ["strings", "lists"], + "difficulty": 1 + }, { "slug": "two-fer", "name": "Two Fer", @@ -228,49 +246,50 @@ "difficulty": 1 }, { - "slug": "raindrops", - "name": "Raindrops", - "uuid": "82d82e32-cb30-4119-8862-d019563dd1e3", - "practices": ["strings", "string-methods", "loops"], - "prerequisites": [ - "basics", - "loops", - "strings", - "string-methods", - "numbers", - "conditionals", - "bools" - ], - "difficulty": 2 - }, - { - "slug": "high-scores", - "name": "High Scores", - "uuid": "574d6323-5ff5-4019-9ebe-0067daafba13", - "practices": ["lists"], - "prerequisites": ["basics", "lists", "list-methods"], + "slug": "leap", + "name": "Leap", + "uuid": "b6acda85-5f62-4d9c-bb4f-42b7a360355a", + "practices": ["bools"], + "prerequisites": ["basics", "bools", "numbers"], "difficulty": 1 }, { - "slug": "matrix", - "name": "Matrix", - "uuid": "b564927a-f08f-4287-9e8d-9bd5daa7081f", - "practices": [ - "classes", - "functional-tools", - "list-comprehensions", - "string-methods-splitting" - ], + "slug": "resistor-color-duo", + "name": "Resistor Color Duo", + "uuid": "089f06a6-0759-479c-8c00-d699525a1e22", + "practices": ["list-methods"], "prerequisites": [ "basics", + "bools", "lists", "list-methods", - "loops", - "numbers", - "strings", - "string-methods" + "numbers" ], - "difficulty": 2 + "difficulty": 1 + }, + { + "slug": "pangram", + "name": "Pangram", + "uuid": "bebf7ae6-1c35-48bc-926b-e053a975eb10", + "practices": ["conditionals"], + "prerequisites": ["basics", "bools", "conditionals"], + "difficulty": 1 + }, + { + "slug": "isogram", + "name": "Isogram", + "uuid": "d1a98c79-d3cc-4035-baab-0e334d2b6a57", + "practices": ["strings"], + "prerequisites": ["strings"], + "difficulty": 1 + }, + { + "slug": "grains", + "name": "Grains", + "uuid": "a24e6d34-9952-44f4-a0cd-02c7fedb4875", + "practices": ["numbers"], + "prerequisites": ["basics", "numbers"], + "difficulty": 1 }, { "slug": "hamming", @@ -288,296 +307,395 @@ "conditionals", "numbers" ], - "difficulty": 2 + "difficulty": 1 }, { - "slug": "isogram", - "name": "Isogram", - "uuid": "d1a98c79-d3cc-4035-baab-0e334d2b6a57", - "practices": ["sets", "strings", "string-methods"], - "prerequisites": ["strings", "string-methods", "sets"], - "difficulty": 3 + "slug": "bob", + "name": "Bob", + "uuid": "009a80e2-7901-4d3b-9af2-cdcbcc0b49ae", + "practices": ["conditionals"], + "prerequisites": ["basics", "conditionals"], + "difficulty": 1 }, { - "slug": "twelve-days", - "name": "Twelve Days", - "uuid": "d41238ce-359c-4a9a-81ea-ca5d2c4bb50d", - "practices": ["generators"], + "slug": "rna-transcription", + "name": "Rna Transcription", + "uuid": "ca7c5ef1-5135-4fb4-8e68-669ef0f2a51a", + "practices": ["string-methods"], "prerequisites": [ "basics", + "bools", "conditionals", - "lists", - "list-methods", "loops", "strings", "string-methods" ], - "difficulty": 5 + "difficulty": 1 }, { - "slug": "word-count", - "name": "Word Count", - "uuid": "04316811-0bc3-4377-8ff5-5a300ba41d61", - "practices": [ - "collections", - "string-methods", - "regular-expressions", - "generator-expressions" + "slug": "armstrong-numbers", + "name": "Armstrong Numbers", + "uuid": "d9ceb246-b518-42b9-9fa3-112e25c7ecd8", + "practices": ["numbers"], + "prerequisites": ["basics", "numbers"], + "difficulty": 1 + }, + { + "slug": "etl", + "name": "Etl", + "uuid": "a3b24ef2-303a-494e-8804-e52a67ef406b", + "practices": ["dicts"], + "prerequisites": ["dicts"], + "difficulty": 1 + }, + { + "slug": "raindrops", + "name": "Raindrops", + "uuid": "82d82e32-cb30-4119-8862-d019563dd1e3", + "practices": ["strings"], + "prerequisites": [ + "basics", + "strings", + "numbers", + "conditionals", + "bools" ], + "difficulty": 1 + }, + { + "slug": "sum-of-multiples", + "name": "Sum Of Multiples", + "uuid": "6e0caa0a-6a1a-4f03-bf0f-e07711f4b069", + "practices": ["sets"], "prerequisites": [ "basics", + "conditionals", + "lists", "loops", - "strings", - "string-methods", - "dicts" + "numbers", + "sets" ], - "difficulty": 3 + "difficulty": 1 }, { - "slug": "scrabble-score", - "name": "Scrabble Score", - "uuid": "d081446b-f26b-41a2-ab7f-dd7f6736ecfe", - "practices": ["dicts", "dict-methods"], + "slug": "anagram", + "name": "Anagram", + "uuid": "43eaf8bd-0b4d-4ea9-850a-773f013325ef", + "practices": ["list-comprehensions"], "prerequisites": [ "basics", + "bools", + "conditionals", "lists", + "list-methods", "loops", - "dicts", "strings", "string-methods" ], - "difficulty": 3 + "difficulty": 1 }, { - "slug": "acronym", - "name": "Acronym", - "uuid": "038c7f7f-02f6-496f-9e16-9372621cc4cd", - "practices": [ - "list-comprehensions", - "generator-expressions", - "regular-expressions", - "strings", - "string-methods-splitting" - ], - "prerequisites": ["basics", "loops", "strings", "string-methods"], - "difficulty": 3 + "slug": "difference-of-squares", + "name": "Difference Of Squares", + "uuid": "913b6099-d75a-4c27-8243-476081752c31", + "practices": ["numbers"], + "prerequisites": ["basics", "numbers"], + "difficulty": 1 }, { - "slug": "kindergarten-garden", - "name": "Kindergarten Garden", - "uuid": "42a2916c-ef03-44ac-b6d8-7eda375352c2", - "practices": [ - "classes", - "dicts", - "other-comprehensions", - "string-methods-splitting" - ], + "slug": "flatten-array", + "name": "Flatten Array", + "uuid": "07481204-fe88-4aa2-995e-d40d1ae15070", + "practices": ["lists"], "prerequisites": [ "basics", - "dicts", - "loops", + "conditionals", "strings", - "string-methods" + "lists", + "loops" ], - "difficulty": 3 + "difficulty": 1 }, { - "slug": "grade-school", - "name": "Grade School", - "uuid": "aadde1a8-ed7a-4242-bfc0-6dddfd382cf3", - "practices": ["collections", "dict-methods"], - "prerequisites": ["basics", "dicts", "lists", "list-methods"], - "difficulty": 3 + "slug": "perfect-numbers", + "name": "Perfect Numbers", + "uuid": "c23ae7a3-3095-4608-8720-ee9ce8938f26", + "practices": ["comparisons"], + "prerequisites": ["basics", "bools", "conditionals", "numbers"], + "difficulty": 1 }, { - "slug": "luhn", - "name": "Luhn", - "uuid": "34dde040-672e-472f-bf2e-b87b6f9933c0", - "practices": ["bools", "classes", "sequences", "numbers"], + "slug": "gigasecond", + "name": "Gigasecond", + "uuid": "22606e91-57f3-44cf-ab2d-94f6ee6402e8", + "practices": [], + "prerequisites": [], + "difficulty": 1 + }, + { + "slug": "isbn-verifier", + "name": "Isbn Verifier", + "uuid": "7961c852-c87a-44b0-b152-efea3ac8555c", + "practices": ["strings"], + "prerequisites": ["basics", "bools", "conditionals", "strings"], + "difficulty": 1 + }, + { + "slug": "space-age", + "name": "Space Age", + "uuid": "f8303c4d-bbbb-495b-b61b-0f617f7c9a13", + "practices": ["dicts"], "prerequisites": [ "basics", "bools", - "conditionals", + "dicts", "lists", "list-methods", "loops", - "strings", - "string-methods", "numbers" ], - "difficulty": 4 + "difficulty": 1 }, { - "slug": "clock", - "name": "Clock", - "uuid": "459fda78-851e-4bb0-a416-953528f46bd7", - "practices": [ - "class-composition", - "rich-comparisons", - "string-formatting" - ], - "prerequisites": ["basics", "numbers", "strings", "classes"], - "difficulty": 4 - }, - { - "slug": "markdown", - "name": "Markdown", - "uuid": "88610b9a-6d3e-4924-a092-6d2f907ed4e2", - "practices": ["regular-expressions", "functions"], - "prerequisites": [], - "difficulty": 4 + "slug": "collatz-conjecture", + "name": "Collatz Conjecture", + "uuid": "33f689ee-1d9c-4908-a71c-f84bff3510df", + "practices": ["numbers"], + "prerequisites": ["basics", "numbers"], + "difficulty": 1 }, { - "slug": "tournament", - "name": "Tournament", - "uuid": "49377a3f-38ba-4d61-b94c-a54cfc9034d0", - "practices": [ - "anonymous-functions", - "collections", - "dicts", - "dict-methods", - "generators", - "generator-expressions", - "other-comprehensions", - "string-formatting", - "string-methods-splitting", - "tuples" - ], + "slug": "secret-handshake", + "name": "Secret Handshake", + "uuid": "0d5b2a0e-31ff-4c8c-a155-0406f7dca3ae", + "practices": ["list-methods"], "prerequisites": [ "basics", - "strings", - "string-methods", - "dicts", + "bools", + "conditionals", "lists", "list-methods", - "loops", - "tuples" + "numbers", + "strings", + "string-methods" ], - "difficulty": 5 + "difficulty": 1 }, { - "slug": "book-store", - "name": "Book Store", - "uuid": "4899b2ef-675f-4d14-b68a-1a457de91276", - "practices": [ - "collections", - "conditionals", - "functools", - "generator-expressions", - "other-comprehensions", - "sets" - ], + "slug": "wordy", + "name": "Wordy", + "uuid": "af50bb9a-e400-49ce-966f-016c31720be1", + "practices": ["string-methods"], "prerequisites": [ "basics", - "conditionals", - "dicts", "lists", - "list-methods", "loops", - "tuples", - "sets", + "strings", + "string-methods", "numbers" ], - "difficulty": 5 + "difficulty": 1 }, { - "slug": "pangram", - "name": "Pangram", - "uuid": "bebf7ae6-1c35-48bc-926b-e053a975eb10", - "practices": ["sets"], + "slug": "triangle", + "name": "Triangle", + "uuid": "f0bc144f-3226-4e53-93ee-e60316b29e31", + "practices": ["bools"], + "prerequisites": ["basics", "bools", "numbers"], + "difficulty": 1 + }, + { + "slug": "house", + "name": "House", + "uuid": "7c2e93ae-d265-4481-b583-a496608c6031", + "practices": ["loops"], "prerequisites": [ "basics", - "bools", - "conditionals", + "lists", + "list-methods", "loops", "strings", - "string-methods", - "sets" + "string-methods" ], "difficulty": 1 }, { - "slug": "robot-name", - "name": "Robot Name", - "uuid": "bf30b17f-6b71-4bb5-815a-88f8181b89ae", - "practices": [], + "slug": "rotational-cipher", + "name": "Rotational Cipher", + "uuid": "4c408aab-80b9-475d-9c06-b01cd0fcd08f", + "practices": ["strings"], + "prerequisites": ["basics", "conditionals", "numbers", "strings"], + "difficulty": 1 + }, + { + "slug": "binary-search", + "name": "Binary Search", + "uuid": "a8288e93-93c5-4e0f-896c-2a376f6f6e5e", + "practices": ["loops"], "prerequisites": [ "basics", "bools", "conditionals", "lists", + "list-methods", "loops", - "sets", "strings", "string-methods" ], + "difficulty": 1 + }, + { + "slug": "list-ops", + "name": "List Ops", + "uuid": "818c6472-b734-4ff4-8016-ce540141faec", + "practices": ["list-methods"], + "prerequisites": ["conditionals", "lists", "list-methods", "loops"], + "difficulty": 1 + }, + { + "slug": "acronym", + "name": "Acronym", + "uuid": "038c7f7f-02f6-496f-9e16-9372621cc4cd", + "practices": ["string-methods"], + "prerequisites": ["basics", "loops", "strings", "string-methods"], + "difficulty": 2 + }, + { + "slug": "darts", + "name": "Darts", + "uuid": "cb581e2c-66ab-4221-9884-44bacb7c4ebe", + "practices": ["comparisons"], + "prerequisites": ["basics", "numbers", "comparisons", "conditionals"], + "difficulty": 2 + }, + { + "slug": "pig-latin", + "name": "Pig Latin", + "uuid": "a5bc16da-8d55-4840-9523-686aebbaaa7e", + "practices": ["conditionals"], + "prerequisites": ["basics", "bools", "conditionals"], "difficulty": 2 }, { "slug": "protein-translation", "name": "Protein Translation", "uuid": "c89243f3-703e-4fe0-8e43-f200eedf2825", - "practices": ["dicts", "dict-methods", "loops"], + "practices": ["loops"], "prerequisites": [ "basics", "conditionals", - "dicts", "lists", "loops", "strings", "string-methods" ], - "difficulty": 3 + "difficulty": 2 }, { - "slug": "armstrong-numbers", - "name": "Armstrong Numbers", - "uuid": "d9ceb246-b518-42b9-9fa3-112e25c7ecd8", - "practices": ["generator-expressions"], + "slug": "scrabble-score", + "name": "Scrabble Score", + "uuid": "d081446b-f26b-41a2-ab7f-dd7f6736ecfe", + "practices": ["dicts"], "prerequisites": [ "basics", "lists", "loops", - "numbers", + "dicts", "strings", "string-methods" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "perfect-numbers", - "name": "Perfect Numbers", - "uuid": "c23ae7a3-3095-4608-8720-ee9ce8938f26", + "slug": "atbash-cipher", + "name": "Atbash Cipher", + "uuid": "02b91a90-244d-479e-a039-0e1d328c0be9", + "practices": ["string-methods"], + "prerequisites": [ + "basics", + "conditionals", + "loops", + "lists", + "list-methods", + "strings", + "string-methods" + ], + "difficulty": 2 + }, + { + "slug": "word-count", + "name": "Word Count", + "uuid": "04316811-0bc3-4377-8ff5-5a300ba41d61", + "practices": ["dicts"], + "prerequisites": [ + "basics", + "loops", + "strings", + "string-methods", + "dicts" + ], + "difficulty": 2 + }, + { + "slug": "yacht", + "name": "Yacht", + "uuid": "22f937e5-52a7-4956-9dde-61c985251a6b", + "practices": ["bools"], + "prerequisites": ["basics", "bools", "numbers"], + "difficulty": 2 + }, + { + "slug": "robot-name", + "name": "Robot Name", + "uuid": "bf30b17f-6b71-4bb5-815a-88f8181b89ae", + "practices": [], + "prerequisites": [ + "basics", + "bools", + "conditionals", + "classes", + "lists", + "loops", + "sets", + "strings", + "string-methods" + ], + "difficulty": 2 + }, + { + "slug": "nth-prime", + "name": "Nth Prime", + "uuid": "a20924d2-fe6d-4714-879f-3239feb9d2f2", "practices": [], "prerequisites": [ "basics", "bools", "conditionals", + "comparisons", "lists", + "list-methods", "loops", "numbers", "strings" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "phone-number", - "name": "Phone Number", - "uuid": "f384c6f8-987d-41a2-b504-e50506585526", - "practices": [ - "raising-and-handling-errors", - "strings", - "string-formatting" - ], + "slug": "twelve-days", + "name": "Twelve Days", + "uuid": "d41238ce-359c-4a9a-81ea-ca5d2c4bb50d", + "practices": ["tuples"], "prerequisites": [ "basics", + "conditionals", "lists", + "list-methods", "loops", - "numbers", "strings", - "string-methods" + "string-methods", + "tuples" ], - "difficulty": 1 + "difficulty": 2 }, { "slug": "series", @@ -592,69 +710,49 @@ "numbers", "strings" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "anagram", - "name": "Anagram", - "uuid": "43eaf8bd-0b4d-4ea9-850a-773f013325ef", - "practices": ["list-methods", "list-comprehensions"], + "slug": "phone-number", + "name": "Phone Number", + "uuid": "f384c6f8-987d-41a2-b504-e50506585526", + "practices": ["raising-and-handling-errors", "string-formatting"], "prerequisites": [ "basics", - "bools", - "conditionals", + "classes", "lists", "loops", + "numbers", "strings", "string-methods" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "collatz-conjecture", - "name": "Collatz Conjecture", - "uuid": "33f689ee-1d9c-4908-a71c-f84bff3510df", - "practices": ["numbers"], - "prerequisites": ["basics", "conditionals", "loops", "numbers"], - "difficulty": 1 - }, - { - "slug": "difference-of-squares", - "name": "Difference Of Squares", - "uuid": "913b6099-d75a-4c27-8243-476081752c31", - "practices": [], - "prerequisites": ["basics", "conditionals", "loops", "numbers"], - "difficulty": 1 - }, - { - "slug": "isbn-verifier", - "name": "Isbn Verifier", - "uuid": "7961c852-c87a-44b0-b152-efea3ac8555c", - "practices": [], + "slug": "say", + "name": "Say", + "uuid": "2f86ce8e-47c7-4858-89fc-e7729feb0f2f", + "practices": ["lists"], "prerequisites": [ "basics", - "bools", "conditionals", + "dicts", "lists", - "loops", "numbers", "strings", "string-methods" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "palindrome-products", - "name": "Palindrome Products", - "uuid": "fa795dcc-d390-4e98-880c-6e8e638485e3", - "practices": ["functions", "function-arguments", "numbers"], + "slug": "queen-attack", + "name": "Queen Attack", + "uuid": "b280c252-5320-4e53-8294-1385d564eb02", + "practices": [], "prerequisites": [ - "basics", "bools", "conditionals", - "lists", - "list-methods", - "loops", + "classes", "numbers", "strings", "string-methods" @@ -662,121 +760,135 @@ "difficulty": 2 }, { - "slug": "saddle-points", - "name": "Saddle Points", - "uuid": "71c96c5f-f3b6-4358-a9c6-fc625e2edda2", - "practices": [ - "comparisons", - "iteration", - "lists", - "list-comprehensions" - ], + "slug": "run-length-encoding", + "name": "Run Length Encoding", + "uuid": "505e7bdb-e18d-45fd-9849-0bf33492efd9", + "practices": ["iteration", "regular-expressions"], "prerequisites": [ "basics", + "bools", "conditionals", "lists", "list-methods", "loops", - "sets" + "numbers", + "strings", + "string-methods" ], - "difficulty": 3 + "difficulty": 2 }, { - "slug": "triangle", - "name": "Triangle", - "uuid": "f0bc144f-3226-4e53-93ee-e60316b29e31", - "practices": ["basics", "bools", "comparisons"], + "slug": "luhn", + "name": "Luhn", + "uuid": "34dde040-672e-472f-bf2e-b87b6f9933c0", + "practices": ["classes"], "prerequisites": [ "basics", "bools", "conditionals", + "classes", + "lists", + "list-methods", "loops", + "strings", + "string-methods", "numbers" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "grains", - "name": "Grains", - "uuid": "a24e6d34-9952-44f4-a0cd-02c7fedb4875", - "practices": ["basics", "numbers"], - "prerequisites": ["basics", "numbers"], - "difficulty": 1 + "slug": "sublist", + "name": "Sublist", + "uuid": "cc5eb848-09bc-458c-8fb6-3a17687cb4eb", + "practices": ["comparisons"], + "prerequisites": ["basics", "bools", "conditionals", "comparisons"], + "difficulty": 2 }, { - "slug": "prime-factors", - "name": "Prime Factors", - "uuid": "41dd9178-76b4-4f78-b71a-b5ff8d12645b", - "practices": ["numbers"], + "slug": "diamond", + "name": "Diamond", + "uuid": "a7bc6837-59e4-46a1-89a2-a5aa44f5e66e", + "practices": ["lists"], "prerequisites": [ "basics", + "bools", "conditionals", + "dicts", "lists", - "list-methods", "loops", - "numbers" + "strings", + "string-methods" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "allergies", - "name": "Allergies", - "uuid": "83627e35-4689-4d9b-a81b-284c2c084466", - "practices": ["class-customization", "dict-methods"], + "slug": "transpose", + "name": "Transpose", + "uuid": "dc6e61a2-e9b9-4406-ba5c-188252afbba1", + "practices": ["list-methods"], "prerequisites": [ "basics", + "bools", "conditionals", - "dicts", + "lists", + "list-methods", "loops", - "numbers" + "numbers", + "strings", + "string-methods" ], - "difficulty": 3 + "difficulty": 2 }, { - "slug": "bob", - "name": "Bob", - "uuid": "009a80e2-7901-4d3b-9af2-cdcbcc0b49ae", - "practices": ["conditionals"], + "slug": "prime-factors", + "name": "Prime Factors", + "uuid": "41dd9178-76b4-4f78-b71a-b5ff8d12645b", + "practices": [], "prerequisites": [ "basics", "conditionals", - "strings", - "string-methods" + "lists", + "list-methods", + "loops", + "numbers" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "matching-brackets", - "name": "Matching Brackets", - "uuid": "45229a7c-6703-4240-8287-16645881a043", - "practices": [], + "slug": "dnd-character", + "name": "D&D Character", + "uuid": "58625685-b5cf-4e8a-b3aa-bff54da0689d", + "practices": ["classes"], "prerequisites": [ "basics", "bools", "conditionals", + "classes", + "dicts", "lists", "list-methods", "loops", - "strings", - "string-methods" + "numbers" ], - "difficulty": 1 + "difficulty": 2 }, { - "slug": "pythagorean-triplet", - "name": "Pythagorean Triplet", - "uuid": "7b53865e-a981-46e0-8e47-6f8e1f3854b3", - "practices": ["itertools", "tuples"], + "slug": "roman-numerals", + "name": "Roman Numerals", + "uuid": "bffe2007-717a-44ee-b628-b9c86a5001e8", + "practices": ["tuples"], "prerequisites": [ "basics", - "bools", "conditionals", + "tuples", "lists", "list-methods", "loops", - "numbers" + "numbers", + "strings", + "string-methods" ], - "difficulty": 1 + "difficulty": 2 }, { "slug": "simple-cipher", @@ -786,6 +898,7 @@ "prerequisites": [ "basics", "conditionals", + "classes", "lists", "list-methods", "loops", @@ -796,88 +909,90 @@ "difficulty": 3 }, { - "slug": "sum-of-multiples", - "name": "Sum Of Multiples", - "uuid": "6e0caa0a-6a1a-4f03-bf0f-e07711f4b069", - "practices": ["list-comprehensions", "other-comprehensions", "sets"], + "slug": "matrix", + "name": "Matrix", + "uuid": "b564927a-f08f-4287-9e8d-9bd5daa7081f", + "practices": ["classes"], "prerequisites": [ "basics", - "conditionals", + "classes", "lists", + "list-methods", "loops", "numbers", - "sets" + "strings", + "string-methods" ], - "difficulty": 1 + "difficulty": 3 }, { - "slug": "complex-numbers", - "name": "Complex Numbers", - "uuid": "7f4d5743-7ab8-42ca-b393-767f7e9a4e97", - "practices": [ - "classes", - "class-customization", - "class-inheritance", - "rich-comparisons", - "tuples" - ], + "slug": "allergies", + "name": "Allergies", + "uuid": "83627e35-4689-4d9b-a81b-284c2c084466", + "practices": [], "prerequisites": [ "basics", - "bools", "conditionals", - "numbers", - "strings" + "classes", + "dicts", + "loops", + "numbers" ], - "difficulty": 4 + "difficulty": 3 }, { - "slug": "meetup", - "name": "Meetup", - "uuid": "a5aff23f-7829-403f-843a-d3312dca31e8", - "practices": [ - "class-composition", - "dict-methods", - "raising-and-handling-errors", - "user-defined-errors" - ], + "slug": "high-scores", + "name": "High Scores", + "uuid": "574d6323-5ff5-4019-9ebe-0067daafba13", + "practices": ["classes"], + "prerequisites": ["basics", "lists", "list-methods", "classes"], + "difficulty": 3 + }, + { + "slug": "crypto-square", + "name": "Crypto Square", + "uuid": "e8685468-8006-480f-87c6-6295700def38", + "practices": ["list-comprehensions"], "prerequisites": [ - "basics", - "bools", "conditionals", - "dicts", "lists", "list-methods", "loops", + "numbers", "strings", "string-methods" ], - "difficulty": 4 + "difficulty": 3 }, { - "slug": "sieve", - "name": "Sieve", - "uuid": "ad0192e6-7742-4922-a53e-791e25eb9ba3", - "practices": ["sets"], + "slug": "beer-song", + "name": "Beer Song", + "uuid": "b7984882-65df-4993-a878-7872c776592a", + "practices": ["generators"], "prerequisites": [ "basics", "conditionals", + "dicts", "lists", "list-methods", "loops", "numbers", - "sets" + "strings", + "string-methods", + "tuples" ], - "difficulty": 2 + "difficulty": 3 }, { - "slug": "tree-building", - "name": "Tree Building", - "uuid": "da23e14f-1d87-4722-b887-347554d31afc", - "practices": ["none", "raising-and-handling-errors"], + "slug": "poker", + "name": "Poker", + "uuid": "dcc0ee26-e384-4bd4-8c4b-613fa0bb8188", + "practices": ["functions", "higher-order-functions"], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "lists", "list-methods", "loops", @@ -886,32 +1001,25 @@ "difficulty": 3 }, { - "slug": "go-counting", - "name": "Go Counting", - "uuid": "8a9a437d-c967-4ea3-8ecb-6a9ad4380c03", - "practices": ["functions", "function-arguments", "tuples"], + "slug": "kindergarten-garden", + "name": "Kindergarten Garden", + "uuid": "42a2916c-ef03-44ac-b6d8-7eda375352c2", + "practices": ["classes"], "prerequisites": [ "basics", - "bools", - "conditionals", - "lists", - "list-methods", + "classes", + "dicts", "loops", - "sets", - "tuples" + "strings", + "string-methods" ], - "difficulty": 4 + "difficulty": 3 }, { - "slug": "react", - "name": "React", - "uuid": "4c0d0d6b-347e-40ae-9b51-08555fe76cb9", - "practices": [ - "class-customization", - "class-inheritance", - "decorators", - "descriptors" - ], + "slug": "saddle-points", + "name": "Saddle Points", + "uuid": "71c96c5f-f3b6-4358-a9c6-fc625e2edda2", + "practices": ["loops"], "prerequisites": [ "basics", "conditionals", @@ -920,105 +1028,150 @@ "loops", "sets" ], - "difficulty": 6 + "difficulty": 3 }, { - "slug": "beer-song", - "name": "Beer Song", - "uuid": "b7984882-65df-4993-a878-7872c776592a", - "practices": [], + "slug": "robot-simulator", + "name": "Robot Simulator", + "uuid": "ca474c47-57bb-4995-bf9a-b6937479de29", + "practices": ["class-customization", "decorators", "dict-methods"], "prerequisites": [ "basics", "conditionals", + "classes", "dicts", "lists", + "loops", + "numbers", + "tuples" + ], + "difficulty": 3 + }, + { + "slug": "rectangles", + "name": "Rectangles", + "uuid": "4bebdd8d-a032-4993-85c5-7cc74fc89312", + "practices": ["iteration", "itertools", "sequences"], + "prerequisites": [ + "basics", + "bools", + "conditionals", + "classes", + "lists", "list-methods", "loops", "numbers", "strings", "string-methods", + "sets", "tuples" ], - "difficulty": 1 + "difficulty": 3 }, { - "slug": "secret-handshake", - "name": "Secret Handshake", - "uuid": "0d5b2a0e-31ff-4c8c-a155-0406f7dca3ae", - "practices": ["bitflags", "bitwise-operators"], + "slug": "sieve", + "name": "Sieve", + "uuid": "ad0192e6-7742-4922-a53e-791e25eb9ba3", + "practices": ["sets"], "prerequisites": [ "basics", - "bools", "conditionals", "lists", + "list-methods", "loops", "numbers", - "strings" + "sets" ], - "difficulty": 2 + "difficulty": 3 }, { - "slug": "largest-series-product", - "name": "Largest Series Product", - "uuid": "21624a3e-6e43-4c0e-94b0-dee5cdaaf2aa", + "slug": "grade-school", + "name": "Grade School", + "uuid": "aadde1a8-ed7a-4242-bfc0-6dddfd382cf3", + "practices": ["collections", "dict-methods"], + "prerequisites": [ + "basics", + "dicts", + "lists", + "list-methods", + "classes" + ], + "difficulty": 3 + }, + { + "slug": "circular-buffer", + "name": "Circular Buffer", + "uuid": "77ee3b0e-a4e9-4257-bcfc-ff2c8f1477ab", "practices": [ - "functions", - "higher-order-functions", - "functional-tools", - "anonymous-functions" + "class-inheritance", + "function-arguments", + "unpacking-and-multiple-assignment", + "user-defined-errors" ], "prerequisites": [ "basics", + "bools", "conditionals", + "classes", + "dicts", "lists", "list-methods", "loops", - "numbers" + "numbers", + "strings" ], - "difficulty": 4 + "difficulty": 3 }, { - "slug": "connect", - "name": "Connect", - "uuid": "5a038ad4-65c7-4c99-9916-faebb4f39b79", - "practices": ["conditionals", "tuples"], + "slug": "clock", + "name": "Clock", + "uuid": "459fda78-851e-4bb0-a416-953528f46bd7", + "practices": [ + "class-composition", + "rich-comparisons", + "string-formatting" + ], + "prerequisites": ["basics", "numbers", "strings", "classes"], + "difficulty": 3 + }, + { + "slug": "simple-linked-list", + "name": "Simple Linked List", + "uuid": "4c6edc8a-7bc0-4386-a653-d1091fe49301", + "practices": ["none", "operator-overloading", "rich-comparisons"], "prerequisites": [ "basics", "bools", "conditionals", - "dicts", - "lists", - "list-methods", + "classes", "loops", "numbers", - "sets", - "strings", - "string-methods", - "tuples" + "strings" ], "difficulty": 3 }, { - "slug": "minesweeper", - "name": "Minesweeper", - "uuid": "7e768b54-4591-4a30-9ddb-66ca13400ca3", - "practices": ["lists"], + "slug": "tree-building", + "name": "Tree Building", + "uuid": "da23e14f-1d87-4722-b887-347554d31afc", + "practices": ["none", "raising-and-handling-errors"], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "lists", "list-methods", "loops", "numbers" ], - "difficulty": 2 + "difficulty": 3 }, { "slug": "ocr-numbers", "name": "Ocr Numbers", "uuid": "98ca48ed-5818-442c-bce1-308c8b3b3b77", - "practices": [], + "practices": ["loops"], "prerequisites": [ "basics", "bools", @@ -1028,32 +1181,43 @@ "loops", "numbers", "strings", - "string-methods", - "tuples" + "string-methods" ], "difficulty": 3 }, { - "slug": "poker", - "name": "Poker", - "uuid": "dcc0ee26-e384-4bd4-8c4b-613fa0bb8188", - "practices": ["functions", "higher-order-functions"], + "slug": "diffie-hellman", + "name": "Diffie Hellman", + "uuid": "92e2d5f8-7d8a-4e81-a55c-52fa6be80c74", + "practices": ["numbers"], + "prerequisites": ["basics", "bools", "numbers"], + "difficulty": 3 + }, + { + "slug": "connect", + "name": "Connect", + "uuid": "5a038ad4-65c7-4c99-9916-faebb4f39b79", + "practices": [], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "lists", - "list-methods", "loops", - "numbers" + "numbers", + "sets", + "strings", + "string-methods", + "tuples" ], "difficulty": 3 }, { - "slug": "rectangles", - "name": "Rectangles", - "uuid": "4bebdd8d-a032-4993-85c5-7cc74fc89312", - "practices": ["conditionals", "iteration", "itertools", "sequences"], + "slug": "pythagorean-triplet", + "name": "Pythagorean Triplet", + "uuid": "7b53865e-a981-46e0-8e47-6f8e1f3854b3", + "practices": ["sets"], "prerequisites": [ "basics", "bools", @@ -1062,54 +1226,56 @@ "list-methods", "loops", "numbers", - "strings", - "string-methods", - "sets", - "tuples" + "sets" ], "difficulty": 3 }, { - "slug": "say", - "name": "Say", - "uuid": "2f86ce8e-47c7-4858-89fc-e7729feb0f2f", - "practices": ["loops", "lists", "string-methods-splitting"], + "slug": "grep", + "name": "Grep", + "uuid": "ecc97fc6-2e72-4325-9b67-b56c83b13a91", + "practices": ["with"], "prerequisites": [ "basics", + "bools", "conditionals", - "loops", - "dicts", "lists", - "numbers", + "loops", "strings", "string-methods" ], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "wordy", - "name": "Wordy", - "uuid": "af50bb9a-e400-49ce-966f-016c31720be1", - "practices": ["strings", "string-methods", "string-methods-splitting"], + "slug": "minesweeper", + "name": "Minesweeper", + "uuid": "7e768b54-4591-4a30-9ddb-66ca13400ca3", + "practices": ["lists"], "prerequisites": [ "basics", - "dicts", + "bools", + "conditionals", + "lists", "loops", - "strings", - "string-methods", "numbers" ], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "scale-generator", - "name": "Scale Generator", - "uuid": "8cd58325-61fc-46fd-85f9-425b4c41f3de", - "practices": ["generators", "list-methods"], + "slug": "meetup", + "name": "Meetup", + "uuid": "a5aff23f-7829-403f-843a-d3312dca31e8", + "practices": [ + "class-composition", + "dict-methods", + "raising-and-handling-errors", + "user-defined-errors" + ], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "dicts", "lists", "list-methods", @@ -1120,100 +1286,86 @@ "difficulty": 4 }, { - "slug": "atbash-cipher", - "name": "Atbash Cipher", - "uuid": "02b91a90-244d-479e-a039-0e1d328c0be9", - "practices": [], + "slug": "rail-fence-cipher", + "name": "Rail Fence Cipher", + "uuid": "6434cc19-1ea3-43dd-9580-72267ec76b80", + "practices": ["list-methods"], "prerequisites": [ "basics", "conditionals", - "loops", "lists", "list-methods", + "loops", + "numbers", "strings", "string-methods" ], - "difficulty": 1 - }, - { - "slug": "etl", - "name": "Etl", - "uuid": "a3b24ef2-303a-494e-8804-e52a67ef406b", - "practices": ["dicts", "dict-methods", "other-comprehensions"], - "prerequisites": ["dicts"], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "flatten-array", - "name": "Flatten Array", - "uuid": "07481204-fe88-4aa2-995e-d40d1ae15070", - "practices": ["list-comprehensions", "loops", "none"], + "slug": "tournament", + "name": "Tournament", + "uuid": "49377a3f-38ba-4d61-b94c-a54cfc9034d0", + "practices": ["tuples"], "prerequisites": [ "basics", - "conditionals", "strings", + "string-methods", + "dicts", "lists", "list-methods", - "loops" + "loops", + "tuples" ], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "sublist", - "name": "Sublist", - "uuid": "cc5eb848-09bc-458c-8fb6-3a17687cb4eb", - "practices": ["basics"], + "slug": "matching-brackets", + "name": "Matching Brackets", + "uuid": "45229a7c-6703-4240-8287-16645881a043", + "practices": ["conditionals"], "prerequisites": [ "basics", "bools", "conditionals", - "strings", - "string-methods", "lists", - "loops" + "loops", + "strings" ], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "binary-search-tree", - "name": "Binary Search Tree", - "uuid": "df7cd9b9-283a-4466-accf-98c4a7609450", - "practices": ["classes", "class-composition", "iteration"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "lists", - "list-methods", - "loops", - "strings", - "string-methods" - ], - "difficulty": 5 + "slug": "markdown", + "name": "Markdown", + "uuid": "88610b9a-6d3e-4924-a092-6d2f907ed4e2", + "practices": ["regular-expressions", "functions"], + "prerequisites": ["lists", "string-methods"], + "difficulty": 4 }, { - "slug": "affine-cipher", - "name": "Affine Cipher", - "uuid": "02bf6783-fc74-47e9-854f-44d22eb1b6f8", - "practices": ["numbers", "sequences"], + "slug": "food-chain", + "name": "Food Chain", + "uuid": "f229746e-5ea9-4774-b3e0-9b9c2ebf9558", + "practices": ["tuples"], "prerequisites": [ "basics", "bools", "conditionals", + "dicts", "lists", "list-methods", "loops", - "numbers", "strings", - "string-methods" + "string-methods", + "tuples" ], - "difficulty": 5 + "difficulty": 4 }, { - "slug": "binary-search", - "name": "Binary Search", - "uuid": "a8288e93-93c5-4e0f-896c-2a376f6f6e5e", - "practices": ["comparisons"], + "slug": "palindrome-products", + "name": "Palindrome Products", + "uuid": "fa795dcc-d390-4e98-880c-6e8e638485e3", + "practices": ["functions", "function-arguments", "numbers"], "prerequisites": [ "basics", "bools", @@ -1221,33 +1373,39 @@ "lists", "list-methods", "loops", + "numbers", "strings", "string-methods" ], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "rotational-cipher", - "name": "Rotational Cipher", - "uuid": "4c408aab-80b9-475d-9c06-b01cd0fcd08f", - "practices": ["comparisons", "other-comprehensions", "strings"], + "slug": "linked-list", + "name": "Linked List", + "uuid": "ca7a8b16-e5d5-4211-84f0-2f8e35b4a665", + "practices": [ + "classes", + "function-arguments", + "iterators", + "none", + "operator-overloading", + "rich-comparisons" + ], "prerequisites": [ "basics", + "bools", "conditionals", - "dicts", "lists", "loops", - "numbers", - "strings", - "string-methods" + "numbers" ], - "difficulty": 2 + "difficulty": 4 }, { "slug": "variable-length-quantity", "name": "Variable Length Quantity", "uuid": "aa4332bd-fc38-47a4-8bff-e1b660798418", - "practices": ["bytes", "bitflags", "bitwise-operators", "list-methods"], + "practices": ["list-methods"], "prerequisites": [ "basics", "bools", @@ -1259,167 +1417,142 @@ "strings", "string-methods" ], - "difficulty": 3 + "difficulty": 4 }, { - "slug": "two-bucket", - "name": "Two Bucket", - "uuid": "6f530d0c-d13e-4270-b120-e42c16691a66", - "practices": ["bools", "iteration"], + "slug": "all-your-base", + "name": "All Your Base", + "uuid": "a2ff75f9-8b2c-4c4b-975d-913711def9ab", + "practices": ["comparisons"], "prerequisites": [ "basics", "bools", "conditionals", - "dicts", - "lists", - "list-methods", - "loops", - "numbers", - "strings", - "string-methods" + "comparisons", + "numbers" ], - "difficulty": 5 + "difficulty": 4 }, { - "slug": "crypto-square", - "name": "Crypto Square", - "uuid": "e8685468-8006-480f-87c6-6295700def38", - "practices": ["itertools"], + "slug": "largest-series-product", + "name": "Largest Series Product", + "uuid": "21624a3e-6e43-4c0e-94b0-dee5cdaaf2aa", + "practices": [ + "functions", + "higher-order-functions", + "functional-tools", + "anonymous-functions" + ], "prerequisites": [ + "basics", "conditionals", "lists", "list-methods", "loops", - "numbers", - "strings", - "string-methods" + "numbers" ], - "difficulty": 2 + "difficulty": 4 }, { - "slug": "house", - "name": "House", - "uuid": "7c2e93ae-d265-4481-b583-a496608c6031", - "practices": [], + "slug": "spiral-matrix", + "name": "Spiral Matrix", + "uuid": "b0c7cf95-6470-4c1a-8eaa-6775310926a2", + "practices": ["lists"], "prerequisites": [ "basics", + "conditionals", + "classes", + "dicts", "lists", - "list-methods", "loops", + "numbers", "strings", "string-methods" ], - "difficulty": 1 - }, - { - "slug": "list-ops", - "name": "List Ops", - "uuid": "818c6472-b734-4ff4-8016-ce540141faec", - "practices": [], - "prerequisites": ["conditionals", "lists", "list-methods", "loops"], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "queen-attack", - "name": "Queen Attack", - "uuid": "b280c252-5320-4e53-8294-1385d564eb02", - "practices": [], + "slug": "change", + "name": "Change", + "uuid": "889df88a-767d-490f-92c4-552d8ec9de34", + "practices": ["loops"], "prerequisites": [ + "basics", "bools", "conditionals", - "numbers", - "strings", - "string-methods" + "lists", + "list-methods", + "loops", + "numbers" ], - "difficulty": 1 + "difficulty": 4 }, { - "slug": "robot-simulator", - "name": "Robot Simulator", - "uuid": "ca474c47-57bb-4995-bf9a-b6937479de29", + "slug": "complex-numbers", + "name": "Complex Numbers", + "uuid": "7f4d5743-7ab8-42ca-b393-767f7e9a4e97", "practices": [ - "classes", "class-customization", - "comparisons", - "decorators", - "dict-methods", - "loops", - "tuples" + "class-inheritance", + "rich-comparisons" ], "prerequisites": [ "basics", + "bools", "conditionals", - "dicts", - "lists", - "loops", + "classes", "numbers", - "tuples" + "strings" ], - "difficulty": 2 + "difficulty": 4 }, { - "slug": "roman-numerals", - "name": "Roman Numerals", - "uuid": "bffe2007-717a-44ee-b628-b9c86a5001e8", - "practices": [], + "slug": "ledger", + "name": "Ledger", + "uuid": "c2e9d08d-1a58-4d9a-a797-cea265973bd4", + "practices": ["operator-overloading", "string-formatting"], "prerequisites": [ - "basics", + "bools", "conditionals", + "classes", + "dicts", "lists", "list-methods", "loops", - "numbers", "strings", "string-methods" ], - "difficulty": 2 + "difficulty": 4 }, { - "slug": "simple-linked-list", - "name": "Simple Linked List", - "uuid": "4c6edc8a-7bc0-4386-a653-d1091fe49301", - "practices": ["none", "operator-overloading", "rich-comparisons"], + "slug": "go-counting", + "name": "Go Counting", + "uuid": "8a9a437d-c967-4ea3-8ecb-6a9ad4380c03", + "practices": [], "prerequisites": [ "basics", "bools", "conditionals", - "loops", - "numbers", - "strings" - ], - "difficulty": 3 - }, - { - "slug": "linked-list", - "name": "Linked List", - "uuid": "ca7a8b16-e5d5-4211-84f0-2f8e35b4a665", - "practices": [ "classes", - "function-arguments", - "iterators", - "none", - "operator-overloading", - "rich-comparisons" - ], - "prerequisites": [ - "basics", - "bools", - "conditionals", "lists", + "list-methods", "loops", - "numbers" + "sets", + "tuples" ], "difficulty": 4 }, { - "slug": "all-your-base", - "name": "All Your Base", - "uuid": "a2ff75f9-8b2c-4c4b-975d-913711def9ab", - "practices": ["comparisons"], + "slug": "hangman", + "name": "Hangman", + "uuid": "adad6be5-855d-4d61-b14a-22e468ba5b44", + "practices": [], "prerequisites": [ "basics", "bools", "conditionals", + "classes", + "dicts", "lists", "list-methods", "loops", @@ -1430,32 +1563,28 @@ "difficulty": 4 }, { - "slug": "change", - "name": "Change", - "uuid": "889df88a-767d-490f-92c4-552d8ec9de34", - "practices": ["conditionals", "loops", "raising-and-handling-errors"], + "slug": "scale-generator", + "name": "Scale Generator", + "uuid": "8cd58325-61fc-46fd-85f9-425b4c41f3de", + "practices": ["generators"], "prerequisites": [ "basics", "bools", "conditionals", + "dicts", "lists", "list-methods", "loops", - "numbers" + "strings", + "string-methods" ], "difficulty": 4 }, { - "slug": "dot-dsl", - "name": "Dot Dsl", - "uuid": "a9c2fbda-a1e4-42dd-842f-4de5bb361b91", - "practices": [ - "class-composition", - "class-inheritance", - "lists", - "operator-overloading", - "raising-and-handling-errors" - ], + "slug": "knapsack", + "name": "Knapsack", + "uuid": "b0301d0b-d97a-4043-bd82-ba1edf8c1b16", + "practices": ["itertools", "list-comprehensions"], "prerequisites": [ "basics", "bools", @@ -1464,39 +1593,32 @@ "lists", "list-methods", "loops", - "numbers", - "strings", - "string-methods" + "strings" ], "difficulty": 5 }, { - "slug": "knapsack", - "name": "Knapsack", - "uuid": "b0301d0b-d97a-4043-bd82-ba1edf8c1b16", - "practices": ["functions", "itertools", "list-comprehensions"], + "slug": "rational-numbers", + "name": "Rational Numbers", + "uuid": "1d21cd68-10ac-427d-be6d-77152bceacc4", + "practices": ["operator-overloading", "rich-comparisons"], "prerequisites": [ "basics", "bools", "conditionals", - "dicts", + "classes", "lists", - "list-methods", "loops", + "numbers", "strings" ], "difficulty": 5 }, { - "slug": "circular-buffer", - "name": "Circular Buffer", - "uuid": "77ee3b0e-a4e9-4257-bcfc-ff2c8f1477ab", - "practices": [ - "class-inheritance", - "function-arguments", - "unpacking-and-multiple-assignment", - "user-defined-errors" - ], + "slug": "forth", + "name": "Forth", + "uuid": "14e1dfe3-a45c-40c1-bf61-2e4f0cca5579", + "practices": ["dicts"], "prerequisites": [ "basics", "bools", @@ -1506,142 +1628,148 @@ "list-methods", "loops", "numbers", - "strings" + "strings", + "tuples" ], - "difficulty": 3 + "difficulty": 5 }, { - "slug": "run-length-encoding", - "name": "Run Length Encoding", - "uuid": "505e7bdb-e18d-45fd-9849-0bf33492efd9", - "practices": ["iteration", "regular-expressions"], + "slug": "custom-set", + "name": "Custom Set", + "uuid": "23a567b5-c184-4e65-9216-df7caba00d75", + "practices": [ + "class-inheritance", + "operator-overloading", + "rich-comparisons" + ], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "lists", "list-methods", "loops", "numbers", + "sets", "strings", "string-methods" ], - "difficulty": 2 + "difficulty": 5 }, { - "slug": "transpose", - "name": "Transpose", - "uuid": "dc6e61a2-e9b9-4406-ba5c-188252afbba1", - "practices": ["list-comprehensions", "sequences"], + "slug": "bowling", + "name": "Bowling", + "uuid": "ca970fee-71b4-41e1-a5c3-b23bf574eb33", + "practices": [], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "lists", "list-methods", "loops", "numbers", "strings", - "string-methods" + "tuples" ], - "difficulty": 2 + "difficulty": 5 }, { - "slug": "grep", - "name": "Grep", - "uuid": "ecc97fc6-2e72-4325-9b67-b56c83b13a91", + "slug": "dot-dsl", + "name": "Dot Dsl", + "uuid": "a9c2fbda-a1e4-42dd-842f-4de5bb361b91", "practices": [ - "functions", - "function-arguments", - "strings", - "string-formatting", - "unpacking-and-multiple-assignment", - "with-statement" + "class-composition", + "class-inheritance", + "operator-overloading", + "raising-and-handling-errors" ], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "dicts", "lists", "list-methods", "loops", - "strings" + "numbers", + "strings", + "string-methods" ], - "difficulty": 4 + "difficulty": 5 }, { - "slug": "bowling", - "name": "Bowling", - "uuid": "ca970fee-71b4-41e1-a5c3-b23bf574eb33", - "practices": ["bools", "tuples"], + "slug": "zebra-puzzle", + "name": "Zebra Puzzle", + "uuid": "7e1d90d5-dbc9-47e0-8e26-c3ff83b73c2b", + "practices": ["itertools"], "prerequisites": [ "basics", "bools", "conditionals", + "dicts", "lists", "list-methods", "loops", - "numbers", "strings", - "tuples" + "string-methods" ], "difficulty": 5 }, { - "slug": "forth", - "name": "Forth", - "uuid": "14e1dfe3-a45c-40c1-bf61-2e4f0cca5579", - "practices": ["conditionals", "lists", "user-defined-errors"], + "slug": "binary-search-tree", + "name": "Binary Search Tree", + "uuid": "df7cd9b9-283a-4466-accf-98c4a7609450", + "practices": ["classes"], "prerequisites": [ "basics", "bools", "conditionals", - "dicts", + "classes", "lists", "list-methods", "loops", - "numbers", "strings", - "tuples" + "string-methods" ], "difficulty": 5 }, { - "slug": "ledger", - "name": "Ledger", - "uuid": "c2e9d08d-1a58-4d9a-a797-cea265973bd4", - "practices": ["classes", "operator-overloading", "string-formatting"], + "slug": "affine-cipher", + "name": "Affine Cipher", + "uuid": "02bf6783-fc74-47e9-854f-44d22eb1b6f8", + "practices": ["sequences"], "prerequisites": [ + "basics", "bools", "conditionals", - "dicts", "lists", "list-methods", "loops", + "numbers", "strings", "string-methods" ], - "difficulty": 5 + "difficulty": 6 }, { "slug": "word-search", "name": "Word Search", "uuid": "dc2917d5-aaa9-43d9-b9f4-a32919fdbe18", "practices": [ - "dataclasses-and-namedtuples", "iteration", - "loops", "operator-overloading", "rich-comparisons", - "strings", - "string-methods", "string-formatting" ], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "dicts", "lists", "list-methods", @@ -1653,34 +1781,26 @@ "difficulty": 6 }, { - "slug": "satellite", - "name": "Satellite", - "uuid": "18467e72-e3b0-403c-896a-ce337f96e6f7", - "practices": [ - "comparisons", - "dicts", - "other-comprehensions", - "loops" - ], + "slug": "bank-account", + "name": "Bank Account", + "uuid": "83a3ff95-c043-401c-bc2c-547d52344b02", + "practices": ["enums", "raising-and-handling-errors"], "prerequisites": [ "basics", "bools", "conditionals", - "dicts", - "lists", - "list-methods", + "classes", "loops", "numbers", - "strings", - "string-methods" + "classes" ], - "difficulty": 7 + "difficulty": 6 }, { - "slug": "zipper", - "name": "Zipper", - "uuid": "569210ea-71c1-4fd2-941e-6bf0d953019e", - "practices": ["class-customization", "none"], + "slug": "alphametics", + "name": "Alphametics", + "uuid": "66466141-485c-470d-b73b-0a3d5a957c3d", + "practices": ["itertools"], "prerequisites": [ "basics", "bools", @@ -1690,54 +1810,61 @@ "list-methods", "loops", "numbers", - "strings" + "sets", + "strings", + "string-methods", + "tuples" ], "difficulty": 6 }, { - "slug": "pov", - "name": "Pov", - "uuid": "d98b1080-36d4-4357-b12a-685d204856bf", - "practices": ["rich-comparisons"], + "slug": "react", + "name": "React", + "uuid": "4c0d0d6b-347e-40ae-9b51-08555fe76cb9", + "practices": [ + "class-customization", + "class-inheritance", + "decorators", + "descriptors" + ], "prerequisites": [ "basics", - "bools", "conditionals", - "dicts", + "classes", "lists", "list-methods", "loops", - "numbers", - "strings", - "string-methods" + "sets" ], - "difficulty": 9 + "difficulty": 6 }, { - "slug": "diamond", - "name": "Diamond", - "uuid": "a7bc6837-59e4-46a1-89a2-a5aa44f5e66e", - "practices": ["list-methods"], + "slug": "zipper", + "name": "Zipper", + "uuid": "569210ea-71c1-4fd2-941e-6bf0d953019e", + "practices": ["class-customization", "none"], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "dicts", "lists", "list-methods", "loops", - "strings", - "string-methods" + "numbers", + "strings" ], - "difficulty": 1 + "difficulty": 6 }, { - "slug": "spiral-matrix", - "name": "Spiral Matrix", - "uuid": "b0c7cf95-6470-4c1a-8eaa-6775310926a2", - "practices": ["lists", "list-methods", "string-methods"], + "slug": "two-bucket", + "name": "Two Bucket", + "uuid": "6f530d0c-d13e-4270-b120-e42c16691a66", + "practices": ["iteration"], "prerequisites": [ "basics", + "bools", "conditionals", "dicts", "lists", @@ -1747,48 +1874,37 @@ "strings", "string-methods" ], - "difficulty": 2 + "difficulty": 6 }, { - "slug": "food-chain", - "name": "Food Chain", - "uuid": "f229746e-5ea9-4774-b3e0-9b9c2ebf9558", + "slug": "book-store", + "name": "Book Store", + "uuid": "4899b2ef-675f-4d14-b68a-1a457de91276", "practices": [ - "conditionals", - "list-methods", - "sequences", - "string-formatting" + "collections", + "functools", + "generator-expressions", + "other-comprehensions", + "sets" ], "prerequisites": [ "basics", - "bools", "conditionals", "dicts", "lists", "list-methods", "loops", - "strings", - "string-methods", - "tuples" + "tuples", + "sets", + "numbers" ], - "difficulty": 4 + "difficulty": 7 }, { "slug": "dominoes", "name": "Dominoes", "uuid": "54995590-65eb-4178-a527-0d7b1526a843", - "practices": [ - "conditionals", - "comparisons", - "functools", - "iteration", - "itertools", - "list-methods", - "other-comprehensions", - "none", - "sets", - "tuples" - ], + "practices": ["tuples"], "prerequisites": [ "basics", "bools", @@ -1798,7 +1914,6 @@ "list-methods", "loops", "numbers", - "sets", "strings", "string-methods", "tuples" @@ -1806,21 +1921,15 @@ "difficulty": 7 }, { - "slug": "rest-api", - "name": "Rest Api", - "uuid": "2abe6eed-c7e4-4ad7-91e3-778bc5176726", - "practices": [ - "bools", - "classes", - "class-composition", - "dicts", - "none", - "raising-and-handling-errors" - ], + "slug": "satellite", + "name": "Satellite", + "uuid": "18467e72-e3b0-403c-896a-ce337f96e6f7", + "practices": ["other-comprehensions"], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "dicts", "lists", "list-methods", @@ -1829,100 +1938,31 @@ "strings", "string-methods" ], - "difficulty": 8 + "difficulty": 7 }, { - "slug": "nth-prime", - "name": "Nth Prime", - "uuid": "a20924d2-fe6d-4714-879f-3239feb9d2f2", - "practices": [], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "lists", - "list-methods", - "loops", - "numbers", - "strings", - "string-methods" - ], - "difficulty": 1 - }, - { - "slug": "pig-latin", - "name": "Pig Latin", - "uuid": "a5bc16da-8d55-4840-9523-686aebbaaa7e", - "practices": ["conditionals", "sequences"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "lists", - "list-methods", - "loops", - "strings", - "string-methods" - ], - "difficulty": 1 - }, - { - "slug": "rail-fence-cipher", - "name": "Rail Fence Cipher", - "uuid": "6434cc19-1ea3-43dd-9580-72267ec76b80", - "practices": ["iteration", "list-methods"], - "prerequisites": [ - "basics", - "conditionals", - "lists", - "list-methods", - "loops", - "numbers", - "strings", - "string-methods" - ], - "difficulty": 3 - }, - { - "slug": "zebra-puzzle", - "name": "Zebra Puzzle", - "uuid": "7e1d90d5-dbc9-47e0-8e26-c3ff83b73c2b", - "practices": ["conditionals", "itertools"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "dicts", - "lists", - "list-methods", - "loops", - "strings", - "string-methods" - ], - "difficulty": 5 - }, - { - "slug": "custom-set", - "name": "Custom Set", - "uuid": "23a567b5-c184-4e65-9216-df7caba00d75", + "slug": "sgf-parsing", + "name": "Sgf Parsing", + "uuid": "0d6325d1-c0a3-456e-9a92-cea0559e82ed", "practices": [ - "class-inheritance", "operator-overloading", + "regular-expressions", "rich-comparisons" ], "prerequisites": [ "basics", "bools", "conditionals", + "classes", + "dicts", "lists", "list-methods", "loops", "numbers", - "sets", "strings", "string-methods" ], - "difficulty": 5 + "difficulty": 7 }, { "slug": "paasio", @@ -1943,6 +1983,7 @@ "basics", "bools", "conditionals", + "classes", "dicts", "lists", "list-methods", @@ -1953,39 +1994,48 @@ "difficulty": 7 }, { - "slug": "alphametics", - "name": "Alphametics", - "uuid": "66466141-485c-470d-b73b-0a3d5a957c3d", - "practices": ["itertools", "tuples"], + "slug": "rest-api", + "name": "Rest Api", + "uuid": "2abe6eed-c7e4-4ad7-91e3-778bc5176726", + "practices": [ + "class-composition", + "none", + "raising-and-handling-errors" + ], "prerequisites": [ "basics", "bools", "conditionals", + "classes", "dicts", "lists", "list-methods", "loops", "numbers", - "sets", "strings", - "string-methods", - "tuples" + "string-methods" ], - "difficulty": 6 + "difficulty": 8 }, { - "slug": "diffie-hellman", - "name": "Diffie Hellman", - "uuid": "92e2d5f8-7d8a-4e81-a55c-52fa6be80c74", - "practices": [], + "slug": "pov", + "name": "Pov", + "uuid": "d98b1080-36d4-4357-b12a-685d204856bf", + "practices": ["rich-comparisons"], "prerequisites": [ "basics", "bools", "conditionals", + "classes", + "dicts", + "lists", + "list-methods", "loops", - "numbers" + "numbers", + "strings", + "string-methods" ], - "difficulty": 3 + "difficulty": 9 }, { "slug": "accumulate", @@ -1996,6 +2046,24 @@ "difficulty": 2, "status": "deprecated" }, + { + "slug": "proverb", + "name": "Proverb", + "uuid": "9fd94229-f974-45bb-97ea-8bfe484f6eb3", + "practices": [], + "prerequisites": [], + "difficulty": 2, + "status": "deprecated" + }, + { + "slug": "nucleotide-count", + "name": "Nucleotide Count", + "uuid": "105f25ec-7ce2-4797-893e-05e3792ebd91", + "practices": [], + "prerequisites": [], + "difficulty": 2, + "status": "deprecated" + }, { "slug": "binary", "name": "Binary", @@ -2023,15 +2091,6 @@ "difficulty": 3, "status": "deprecated" }, - { - "slug": "nucleotide-count", - "name": "Nucleotide Count", - "uuid": "105f25ec-7ce2-4797-893e-05e3792ebd91", - "practices": [], - "prerequisites": [], - "difficulty": 2, - "status": "deprecated" - }, { "slug": "octal", "name": "Octal", @@ -2068,15 +2127,6 @@ "difficulty": 3, "status": "deprecated" }, - { - "slug": "proverb", - "name": "Proverb", - "uuid": "9fd94229-f974-45bb-97ea-8bfe484f6eb3", - "practices": [], - "prerequisites": [], - "difficulty": 2, - "status": "deprecated" - }, { "slug": "strain", "name": "Strain", @@ -2094,208 +2144,6 @@ "prerequisites": [], "difficulty": 4, "status": "deprecated" - }, - { - "slug": "dnd-character", - "name": "D&D Character", - "uuid": "58625685-b5cf-4e8a-b3aa-bff54da0689d", - "practices": [], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "dicts", - "lists", - "list-methods", - "loops", - "numbers" - ], - "difficulty": 3 - }, - { - "slug": "gigasecond", - "name": "Gigasecond", - "uuid": "22606e91-57f3-44cf-ab2d-94f6ee6402e8", - "practices": [], - "prerequisites": [], - "difficulty": 1 - }, - { - "slug": "leap", - "name": "Leap", - "uuid": "b6acda85-5f62-4d9c-bb4f-42b7a360355a", - "practices": ["bools"], - "prerequisites": ["basics", "bools", "conditionals", "numbers"], - "difficulty": 1 - }, - { - "slug": "resistor-color", - "name": "Resistor Color", - "uuid": "d17bee9c-e803-4745-85ea-864f255fb04e", - "practices": ["lists", "list-methods"], - "prerequisites": ["lists"], - "difficulty": 1 - }, - { - "slug": "resistor-color-duo", - "name": "Resistor Color Duo", - "uuid": "089f06a6-0759-479c-8c00-d699525a1e22", - "practices": [], - "prerequisites": [ - "basics", - "bools", - "lists", - "list-methods", - "numbers" - ], - "difficulty": 1 - }, - { - "slug": "reverse-string", - "name": "Reverse String", - "uuid": "d39f86fe-db56-461c-8a93-d87058af8366", - "practices": [], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "lists", - "list-methods", - "loops", - "strings" - ], - "difficulty": 1 - }, - { - "slug": "rna-transcription", - "name": "Rna Transcription", - "uuid": "ca7c5ef1-5135-4fb4-8e68-669ef0f2a51a", - "practices": ["string-methods", "string-formatting"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "loops", - "strings", - "string-methods" - ], - "difficulty": 1 - }, - { - "slug": "space-age", - "name": "Space Age", - "uuid": "f8303c4d-bbbb-495b-b61b-0f617f7c9a13", - "practices": ["dicts"], - "prerequisites": [ - "basics", - "bools", - "dicts", - "lists", - "list-methods", - "loops", - "numbers" - ], - "difficulty": 2 - }, - { - "slug": "yacht", - "name": "Yacht", - "uuid": "22f937e5-52a7-4956-9dde-61c985251a6b", - "practices": ["basics", "bools"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "dicts", - "lists", - "list-methods", - "loops", - "numbers", - "strings", - "string-methods" - ], - "difficulty": 1 - }, - { - "slug": "darts", - "name": "Darts", - "uuid": "cb581e2c-66ab-4221-9884-44bacb7c4ebe", - "practices": ["numbers"], - "prerequisites": ["basics", "bools", "conditionals", "numbers"], - "difficulty": 2 - }, - { - "slug": "bank-account", - "name": "Bank Account", - "uuid": "83a3ff95-c043-401c-bc2c-547d52344b02", - "practices": ["enums", "raising-and-handling-errors"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "loops", - "numbers" - ], - "difficulty": 8 - }, - { - "slug": "hangman", - "name": "Hangman", - "uuid": "adad6be5-855d-4d61-b14a-22e468ba5b44", - "practices": ["string-methods"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "dicts", - "lists", - "list-methods", - "loops", - "numbers", - "strings", - "string-methods" - ], - "difficulty": 5 - }, - { - "slug": "rational-numbers", - "name": "Rational Numbers", - "uuid": "1d21cd68-10ac-427d-be6d-77152bceacc4", - "practices": ["operator-overloading", "rich-comparisons"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "lists", - "loops", - "numbers", - "strings" - ], - "difficulty": 5 - }, - { - "slug": "sgf-parsing", - "name": "Sgf Parsing", - "uuid": "0d6325d1-c0a3-456e-9a92-cea0559e82ed", - "practices": [ - "bools", - "operator-overloading", - "regular-expressions", - "rich-comparisons" - ], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "dicts", - "lists", - "list-methods", - "loops", - "numbers", - "strings", - "string-methods" - ], - "difficulty": 7 } ], "foregone": ["lens-person"] From c2af93e19992b754d25bab641d825d2078f9d4b9 Mon Sep 17 00:00:00 2001 From: BethanyG Date: Fri, 20 May 2022 17:54:08 -0700 Subject: [PATCH 2/3] Fixed configlet linting errors and warnings. --- config.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/config.json b/config.json index 92e916e67c..8a42ebd662 100644 --- a/config.json +++ b/config.json @@ -1234,7 +1234,7 @@ "slug": "grep", "name": "Grep", "uuid": "ecc97fc6-2e72-4325-9b67-b56c83b13a91", - "practices": ["with"], + "practices": [], "prerequisites": [ "basics", "bools", @@ -1384,7 +1384,6 @@ "name": "Linked List", "uuid": "ca7a8b16-e5d5-4211-84f0-2f8e35b4a665", "practices": [ - "classes", "function-arguments", "iterators", "none", @@ -1395,6 +1394,7 @@ "basics", "bools", "conditionals", + "classes", "lists", "loops", "numbers" @@ -1790,9 +1790,7 @@ "bools", "conditionals", "classes", - "loops", - "numbers", - "classes" + "loops" ], "difficulty": 6 }, From 6fff6b022a0f41b0dba973e343b22fad3ae21fcf Mon Sep 17 00:00:00 2001 From: BethanyG Date: Sat, 21 May 2022 15:24:13 -0700 Subject: [PATCH 3/3] Applied suggestions and re-ordering from code review. --- config.json | 64 ++++++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 35 deletions(-) diff --git a/config.json b/config.json index 8a42ebd662..79c4b30a4d 100644 --- a/config.json +++ b/config.json @@ -271,8 +271,8 @@ "slug": "pangram", "name": "Pangram", "uuid": "bebf7ae6-1c35-48bc-926b-e053a975eb10", - "practices": ["conditionals"], - "prerequisites": ["basics", "bools", "conditionals"], + "practices": ["strings"], + "prerequisites": ["basics", "bools", "conditionals", "strings"], "difficulty": 1 }, { @@ -348,18 +348,20 @@ "prerequisites": ["dicts"], "difficulty": 1 }, + { + "slug": "darts", + "name": "Darts", + "uuid": "cb581e2c-66ab-4221-9884-44bacb7c4ebe", + "practices": ["comparisons"], + "prerequisites": ["basics", "numbers", "comparisons", "conditionals"], + "difficulty": 1 + }, { "slug": "raindrops", "name": "Raindrops", "uuid": "82d82e32-cb30-4119-8862-d019563dd1e3", - "practices": ["strings"], - "prerequisites": [ - "basics", - "strings", - "numbers", - "conditionals", - "bools" - ], + "practices": ["conditionals"], + "prerequisites": ["basics", "numbers", "conditionals", "bools"], "difficulty": 1 }, { @@ -556,18 +558,10 @@ "slug": "acronym", "name": "Acronym", "uuid": "038c7f7f-02f6-496f-9e16-9372621cc4cd", - "practices": ["string-methods"], + "practices": ["regular-expressions"], "prerequisites": ["basics", "loops", "strings", "string-methods"], "difficulty": 2 }, - { - "slug": "darts", - "name": "Darts", - "uuid": "cb581e2c-66ab-4221-9884-44bacb7c4ebe", - "practices": ["comparisons"], - "prerequisites": ["basics", "numbers", "comparisons", "conditionals"], - "difficulty": 2 - }, { "slug": "pig-latin", "name": "Pig Latin", @@ -595,7 +589,7 @@ "slug": "scrabble-score", "name": "Scrabble Score", "uuid": "d081446b-f26b-41a2-ab7f-dd7f6736ecfe", - "practices": ["dicts"], + "practices": ["regular-expressions"], "prerequisites": [ "basics", "lists", @@ -728,6 +722,21 @@ ], "difficulty": 2 }, + { + "slug": "matching-brackets", + "name": "Matching Brackets", + "uuid": "45229a7c-6703-4240-8287-16645881a043", + "practices": ["conditionals"], + "prerequisites": [ + "basics", + "bools", + "conditionals", + "lists", + "loops", + "strings" + ], + "difficulty": 2 + }, { "slug": "say", "name": "Say", @@ -1319,21 +1328,6 @@ ], "difficulty": 4 }, - { - "slug": "matching-brackets", - "name": "Matching Brackets", - "uuid": "45229a7c-6703-4240-8287-16645881a043", - "practices": ["conditionals"], - "prerequisites": [ - "basics", - "bools", - "conditionals", - "lists", - "loops", - "strings" - ], - "difficulty": 4 - }, { "slug": "markdown", "name": "Markdown",