trackler 2.2.1.159 → 2.2.1.160

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config/maintainers.json +16 -15
  4. data/tracks/bash/config.json +111 -103
  5. data/tracks/c/config/maintainers.json +14 -14
  6. data/tracks/c/config.json +263 -242
  7. data/tracks/ceylon/config/maintainers.json +8 -8
  8. data/tracks/ceylon/config.json +30 -32
  9. data/tracks/cfml/config/maintainers.json +6 -4
  10. data/tracks/cfml/config.json +145 -92
  11. data/tracks/common-lisp/config/maintainers.json +26 -26
  12. data/tracks/common-lisp/config.json +152 -149
  13. data/tracks/cpp/config/maintainers.json +11 -11
  14. data/tracks/cpp/config.json +162 -161
  15. data/tracks/dart/config/maintainers.json +21 -17
  16. data/tracks/dart/config.json +57 -57
  17. data/tracks/delphi/config.json +1 -0
  18. data/tracks/delphi/docs/ABOUT.md +9 -6
  19. data/tracks/ecmascript/config/maintainers.json +11 -11
  20. data/tracks/ecmascript/config.json +563 -544
  21. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  22. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  23. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  24. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  25. data/tracks/ecmascript/exercises/alphametics/package.json +1 -1
  26. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  27. data/tracks/ecmascript/exercises/armstrong-numbers/package.json +1 -1
  28. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  29. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  30. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  31. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  32. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  33. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  34. data/tracks/ecmascript/exercises/bowling/package.json +1 -1
  35. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  36. data/tracks/ecmascript/exercises/change/package.json +1 -1
  37. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  38. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  39. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +1 -1
  40. data/tracks/ecmascript/exercises/complex-numbers/package.json +1 -1
  41. data/tracks/ecmascript/exercises/connect/package.json +1 -1
  42. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  43. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  44. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  45. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  46. data/tracks/ecmascript/exercises/diffie-hellman/package.json +1 -1
  47. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  48. data/tracks/ecmascript/exercises/flatten-array/package.json +1 -1
  49. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  50. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  51. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  52. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  53. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  54. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  55. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  56. data/tracks/ecmascript/exercises/house/package.json +1 -1
  57. data/tracks/ecmascript/exercises/isbn-verifier/package.json +1 -1
  58. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  59. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  60. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  61. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  62. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  63. data/tracks/ecmascript/exercises/list-ops/package.json +1 -1
  64. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  65. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  66. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  67. data/tracks/ecmascript/exercises/minesweeper/package.json +1 -1
  68. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  69. data/tracks/ecmascript/exercises/nucleotide-count/package.json +1 -1
  70. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  71. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  72. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  73. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  74. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  75. data/tracks/ecmascript/exercises/perfect-numbers/package.json +1 -1
  76. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  77. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  78. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  79. data/tracks/ecmascript/exercises/protein-translation/package.json +1 -1
  80. data/tracks/ecmascript/exercises/proverb/package.json +1 -1
  81. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  82. data/tracks/ecmascript/exercises/queen-attack/example.js +2 -2
  83. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  84. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  85. data/tracks/ecmascript/exercises/react/package.json +1 -1
  86. data/tracks/ecmascript/exercises/rectangles/package.json +1 -1
  87. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  88. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  89. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  90. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  91. data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -1
  92. data/tracks/ecmascript/exercises/run-length-encoding/package.json +1 -1
  93. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  94. data/tracks/ecmascript/exercises/say/package.json +1 -1
  95. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  96. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  97. data/tracks/ecmascript/exercises/series/package.json +1 -1
  98. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  99. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  100. data/tracks/ecmascript/exercises/simple-linked-list/package.json +1 -1
  101. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  102. data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -1
  103. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  104. data/tracks/ecmascript/exercises/sublist/package.json +1 -1
  105. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  106. data/tracks/ecmascript/exercises/transpose/package.json +1 -1
  107. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  108. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  109. data/tracks/ecmascript/exercises/twelve-days/package.json +1 -1
  110. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  111. data/tracks/ecmascript/exercises/two-fer/package.json +1 -1
  112. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  113. data/tracks/ecmascript/exercises/word-search/package.json +1 -1
  114. data/tracks/ecmascript/exercises/wordy/example.js +16 -4
  115. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  116. data/tracks/ecmascript/package.json +1 -1
  117. data/tracks/elisp/config/maintainers.json +6 -6
  118. data/tracks/elisp/config.json +103 -103
  119. data/tracks/elisp/exercises/two-fer/two-fer.el +3 -3
  120. data/tracks/elm/config/maintainers.json +11 -11
  121. data/tracks/elm/config.json +171 -171
  122. data/tracks/erlang/README.md +31 -28
  123. data/tracks/erlang/config/maintainers.json +13 -7
  124. data/tracks/erlang/config.json +99 -190
  125. data/tracks/factor/config/maintainers.json +5 -5
  126. data/tracks/factor/config.json +17 -19
  127. data/tracks/fsharp/config/maintainers.json +16 -16
  128. data/tracks/fsharp/config.json +485 -469
  129. data/tracks/gnu-apl/config/maintainers.json +6 -5
  130. data/tracks/gnu-apl/config.json +46 -20
  131. data/tracks/go/config/maintainers.json +43 -32
  132. data/tracks/go/config.json +475 -457
  133. data/tracks/haskell/config/maintainers.json +26 -15
  134. data/tracks/haskell/config.json +22 -2
  135. data/tracks/idris/config/maintainers.json +6 -6
  136. data/tracks/idris/config.json +24 -35
  137. data/tracks/java/config/maintainers.json +39 -29
  138. data/tracks/java/config.json +458 -433
  139. data/tracks/javascript/config/maintainers.json +40 -40
  140. data/tracks/javascript/config.json +577 -551
  141. data/tracks/javascript/docs/LEARNING.md +1 -1
  142. data/tracks/javascript/exercises/pangram/pangram.spec.js +15 -10
  143. data/tracks/julia/REQUIRE +1 -0
  144. data/tracks/julia/config/maintainers.json +5 -5
  145. data/tracks/julia/config.json +106 -108
  146. data/tracks/kotlin/config/maintainers.json +15 -15
  147. data/tracks/kotlin/config.json +273 -257
  148. data/tracks/kotlin/exercises/accumulate/build.gradle +1 -1
  149. data/tracks/kotlin/exercises/acronym/build.gradle +1 -1
  150. data/tracks/kotlin/exercises/all-your-base/build.gradle +1 -1
  151. data/tracks/kotlin/exercises/allergies/.meta/version +1 -1
  152. data/tracks/kotlin/exercises/allergies/build.gradle +1 -1
  153. data/tracks/kotlin/exercises/anagram/build.gradle +1 -1
  154. data/tracks/kotlin/exercises/atbash-cipher/build.gradle +1 -1
  155. data/tracks/kotlin/exercises/bank-account/build.gradle +17 -17
  156. data/tracks/kotlin/exercises/beer-song/.meta/version +1 -1
  157. data/tracks/kotlin/exercises/beer-song/build.gradle +1 -1
  158. data/tracks/kotlin/exercises/binary/build.gradle +1 -1
  159. data/tracks/kotlin/exercises/binary-search/build.gradle +1 -2
  160. data/tracks/kotlin/exercises/bob/build.gradle +1 -1
  161. data/tracks/kotlin/exercises/bracket-push/build.gradle +1 -1
  162. data/tracks/kotlin/exercises/change/.meta/version +1 -1
  163. data/tracks/kotlin/exercises/change/build.gradle +1 -2
  164. data/tracks/kotlin/exercises/clock/build.gradle +1 -1
  165. data/tracks/kotlin/exercises/collatz-conjecture/build.gradle +1 -1
  166. data/tracks/kotlin/exercises/complex-numbers/build.gradle +1 -1
  167. data/tracks/kotlin/exercises/diamond/build.gradle +1 -1
  168. data/tracks/kotlin/exercises/difference-of-squares/build.gradle +1 -1
  169. data/tracks/kotlin/exercises/etl/build.gradle +1 -1
  170. data/tracks/kotlin/exercises/flatten-array/build.gradle +1 -1
  171. data/tracks/kotlin/exercises/forth/build.gradle +1 -1
  172. data/tracks/kotlin/exercises/gigasecond/build.gradle +1 -1
  173. data/tracks/kotlin/exercises/grade-school/build.gradle +1 -1
  174. data/tracks/kotlin/exercises/grains/build.gradle +1 -1
  175. data/tracks/kotlin/exercises/hamming/build.gradle +1 -1
  176. data/tracks/kotlin/exercises/hello-world/build.gradle +1 -1
  177. data/tracks/kotlin/exercises/hexadecimal/build.gradle +1 -1
  178. data/tracks/kotlin/exercises/isogram/build.gradle +1 -1
  179. data/tracks/kotlin/exercises/largest-series-product/build.gradle +1 -1
  180. data/tracks/kotlin/exercises/leap/.meta/version +1 -1
  181. data/tracks/kotlin/exercises/leap/build.gradle +1 -1
  182. data/tracks/kotlin/exercises/linked-list/build.gradle +1 -1
  183. data/tracks/kotlin/exercises/list-ops/build.gradle +1 -1
  184. data/tracks/kotlin/exercises/luhn/build.gradle +1 -1
  185. data/tracks/kotlin/exercises/meetup/.meta/version +1 -1
  186. data/tracks/kotlin/exercises/meetup/build.gradle +1 -1
  187. data/tracks/kotlin/exercises/minesweeper/build.gradle +1 -1
  188. data/tracks/kotlin/exercises/nth-prime/build.gradle +1 -1
  189. data/tracks/kotlin/exercises/nucleotide-count/build.gradle +1 -1
  190. data/tracks/kotlin/exercises/pangram/build.gradle +1 -1
  191. data/tracks/kotlin/exercises/pascals-triangle/.meta/version +1 -1
  192. data/tracks/kotlin/exercises/pascals-triangle/build.gradle +1 -1
  193. data/tracks/kotlin/exercises/perfect-numbers/build.gradle +1 -1
  194. data/tracks/kotlin/exercises/phone-number/build.gradle +1 -1
  195. data/tracks/kotlin/exercises/pig-latin/build.gradle +1 -1
  196. data/tracks/kotlin/exercises/prime-factors/build.gradle +1 -1
  197. data/tracks/kotlin/exercises/raindrops/build.gradle +1 -1
  198. data/tracks/kotlin/exercises/react/build.gradle +1 -1
  199. data/tracks/kotlin/exercises/rna-transcription/build.gradle +1 -1
  200. data/tracks/kotlin/exercises/robot-name/build.gradle +1 -1
  201. data/tracks/kotlin/exercises/robot-simulator/build.gradle +1 -1
  202. data/tracks/kotlin/exercises/roman-numerals/build.gradle +1 -1
  203. data/tracks/kotlin/exercises/rotational-cipher/.meta/version +1 -1
  204. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +1 -1
  205. data/tracks/kotlin/exercises/saddle-points/build.gradle +1 -1
  206. data/tracks/kotlin/exercises/say/.meta/version +1 -1
  207. data/tracks/kotlin/exercises/say/build.gradle +1 -1
  208. data/tracks/kotlin/exercises/scrabble-score/build.gradle +1 -1
  209. data/tracks/kotlin/exercises/secret-handshake/build.gradle +1 -1
  210. data/tracks/kotlin/exercises/series/build.gradle +1 -1
  211. data/tracks/kotlin/exercises/sieve/build.gradle +1 -1
  212. data/tracks/kotlin/exercises/simple-cipher/build.gradle +1 -1
  213. data/tracks/kotlin/exercises/space-age/build.gradle +1 -1
  214. data/tracks/kotlin/exercises/spiral-matrix/build.gradle +1 -1
  215. data/tracks/kotlin/exercises/strain/build.gradle +1 -1
  216. data/tracks/kotlin/exercises/sublist/.meta/version +1 -1
  217. data/tracks/kotlin/exercises/sublist/build.gradle +1 -1
  218. data/tracks/kotlin/exercises/sum-of-multiples/build.gradle +15 -16
  219. data/tracks/kotlin/exercises/triangle/build.gradle +15 -16
  220. data/tracks/kotlin/exercises/two-fer/build.gradle +1 -1
  221. data/tracks/kotlin/exercises/word-count/build.gradle +1 -1
  222. data/tracks/lfe/config/maintainers.json +6 -6
  223. data/tracks/lfe/config.json +128 -125
  224. data/tracks/lfe/docs/LEARNING.md +1 -1
  225. data/tracks/lua/config/maintainers.json +16 -16
  226. data/tracks/lua/config.json +331 -327
  227. data/tracks/mips/config/maintainers.json +5 -5
  228. data/tracks/mips/config.json +29 -59
  229. data/tracks/nim/config/maintainers.json +8 -8
  230. data/tracks/nim/config.json +185 -127
  231. data/tracks/nim/exercises/allergies/allergies_test.nim +7 -7
  232. data/tracks/nim/exercises/allergies/example.nim +2 -2
  233. data/tracks/nim/exercises/difference-of-squares/difference_of_squares_test.nim +4 -4
  234. data/tracks/nim/exercises/difference-of-squares/example.nim +3 -3
  235. data/tracks/nim/exercises/gigasecond/example.nim +1 -1
  236. data/tracks/nim/exercises/gigasecond/gigasecond_test.nim +5 -5
  237. data/tracks/nim/exercises/nucleotide-count/example.nim +1 -1
  238. data/tracks/nim/exercises/nucleotide-count/nucleotide_count_test.nim +6 -6
  239. data/tracks/nim/exercises/pangram/example.nim +1 -1
  240. data/tracks/nim/exercises/pangram/pangram_test.nim +11 -11
  241. data/tracks/nim/exercises/triangle/example.nim +4 -4
  242. data/tracks/nim/exercises/triangle/triangle_test.nim +14 -14
  243. data/tracks/nim/exercises/word-count/HINT.md +8 -0
  244. data/tracks/nim/exercises/word-count/example.nim +8 -15
  245. data/tracks/nim/exercises/word-count/word_count_test.nim +63 -55
  246. data/tracks/perl6/Dockerfile +1 -1
  247. data/tracks/perl6/config/maintainers.json +8 -8
  248. data/tracks/perl6/config.json +72 -127
  249. data/tracks/powershell/.gitignore +2 -1
  250. data/tracks/powershell/config/maintainers.json +8 -8
  251. data/tracks/powershell/config.json +54 -37
  252. data/tracks/powershell/exercises/reverse-string/.version +1 -0
  253. data/tracks/powershell/exercises/reverse-string/README.md +13 -0
  254. data/tracks/powershell/exercises/reverse-string/ReverseString.example.ps1 +21 -0
  255. data/tracks/powershell/exercises/reverse-string/ReverseString.ps1 +9 -0
  256. data/tracks/powershell/exercises/reverse-string/ReverseString.tests.ps1 +21 -0
  257. data/tracks/powershell/exercises/sum-of-multiples/.version +1 -0
  258. data/tracks/powershell/exercises/sum-of-multiples/README.md +15 -0
  259. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.example.ps1 +20 -0
  260. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.ps1 +9 -0
  261. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.tests.ps1 +29 -0
  262. data/tracks/python/config/maintainers.json +17 -17
  263. data/tracks/python/config.json +331 -283
  264. data/tracks/python/exercises/diffie-hellman/diffie_hellman_test.py +16 -47
  265. data/tracks/r/config/maintainers.json +16 -16
  266. data/tracks/r/config.json +128 -117
  267. data/tracks/racket/config/maintainers.json +16 -16
  268. data/tracks/racket/config.json +106 -102
  269. data/tracks/reasonml/config/maintainers.json +1 -1
  270. data/tracks/reasonml/config.json +37 -23
  271. data/tracks/reasonml/exercises/bob/README.md +29 -0
  272. data/tracks/reasonml/exercises/bob/__tests__/Bob_test.re +103 -0
  273. data/tracks/reasonml/exercises/bob/bsconfig.json +30 -0
  274. data/tracks/reasonml/exercises/bob/package-lock.json +5855 -0
  275. data/tracks/reasonml/exercises/bob/package.json +20 -0
  276. data/tracks/reasonml/exercises/bob/src/Example.re +41 -0
  277. data/tracks/reasonml/exercises/hello-world/src/{HelloWorld.re → Example.re} +0 -0
  278. data/tracks/reasonml/exercises/leap/src/{Leap.re → Example.re} +0 -0
  279. data/tracks/reasonml/exercises/rna-transcription/__tests__/RnaTranscription_test.re +24 -0
  280. data/tracks/reasonml/exercises/rna-transcription/bsconfig.json +30 -0
  281. data/tracks/reasonml/exercises/rna-transcription/package.json +20 -0
  282. data/tracks/reasonml/exercises/rna-transcription/src/Example.re +14 -0
  283. data/tracks/reasonml/exercises/space-age/src/{Space_age.re → Example.re} +0 -0
  284. data/tracks/scala/config/maintainers.json +22 -10
  285. data/tracks/scala/config.json +362 -350
  286. data/tracks/scala/docs/ABOUT.md +7 -2
  287. data/tracks/scheme/config/maintainers.json +11 -11
  288. data/tracks/scheme/config.json +72 -72
  289. data/tracks/typescript/config/maintainers.json +15 -15
  290. data/tracks/typescript/config.json +382 -362
  291. data/tracks/vimscript/config/maintainers.json +11 -11
  292. data/tracks/vimscript/config.json +41 -89
  293. metadata +27 -5
@@ -1,1177 +1,1197 @@
1
1
  {
2
2
  "language": "ECMAScript",
3
3
  "active": true,
4
+ "blurb": "",
4
5
  "test_pattern": ".*[.]spec[.]js$",
5
6
  "exercises": [
6
7
  {
7
- "uuid": "9ce0f408-6d7b-4466-a390-75aeaf9492f2",
8
8
  "slug": "hello-world",
9
+ "uuid": "9ce0f408-6d7b-4466-a390-75aeaf9492f2",
9
10
  "core": true,
11
+ "unlocked_by": null,
10
12
  "difficulty": 1,
11
13
  "topics": [
12
- "Control-flow (conditionals)",
13
- "Optional values",
14
- "Strings",
15
- "Text formatting"
14
+ "control_flow_conditionals",
15
+ "optional_values",
16
+ "strings",
17
+ "text_formatting"
16
18
  ]
17
19
  },
18
20
  {
19
- "uuid": "7c8294ee-5924-4bf8-a72f-31d0e2d7d9a0",
20
21
  "slug": "leap",
22
+ "uuid": "7c8294ee-5924-4bf8-a72f-31d0e2d7d9a0",
21
23
  "core": true,
24
+ "unlocked_by": null,
22
25
  "difficulty": 1,
23
26
  "topics": [
24
- "Booleans",
25
- "Integers",
26
- "Logic"
27
+ "booleans",
28
+ "integers",
29
+ "logic"
27
30
  ]
28
31
  },
29
32
  {
30
- "uuid": "342974d6-9083-4754-a6c5-ed1e19e40ec5",
31
33
  "slug": "rna-transcription",
34
+ "uuid": "342974d6-9083-4754-a6c5-ed1e19e40ec5",
32
35
  "core": true,
36
+ "unlocked_by": null,
33
37
  "difficulty": 1,
34
38
  "topics": [
35
- "Strings",
36
- "Transforming"
39
+ "strings",
40
+ "transforming"
37
41
  ]
38
42
  },
39
43
  {
40
- "uuid": "62d60b42-93bc-4de9-90d1-1ca18a847812",
41
44
  "slug": "simple-cipher",
45
+ "uuid": "62d60b42-93bc-4de9-90d1-1ca18a847812",
42
46
  "core": true,
47
+ "unlocked_by": null,
43
48
  "difficulty": 1,
44
49
  "topics": [
45
- "Control-flow (conditionals)",
46
- "Control-flow (loops)",
47
- "Algorithms",
48
- "Mathematics",
49
- "Strings",
50
- "Randomness",
51
- "Text formatting",
52
- "Transforming"
50
+ "algorithms",
51
+ "control_flow_conditionals",
52
+ "control_flow_loops",
53
+ "mathematics",
54
+ "randomness",
55
+ "strings",
56
+ "text_formatting",
57
+ "transforming"
53
58
  ]
54
59
  },
55
60
  {
56
- "uuid": "da5b2b34-a1a7-4970-81f9-4665d875398b",
57
61
  "slug": "pangram",
62
+ "uuid": "da5b2b34-a1a7-4970-81f9-4665d875398b",
58
63
  "core": true,
64
+ "unlocked_by": null,
59
65
  "difficulty": 2,
60
66
  "topics": [
61
- "Control-flow (conditionals)",
62
- "Control-flow (loops)",
63
- "Lists",
64
- "Strings",
65
- "Maps",
66
- "Algorithms",
67
- "Searching"
67
+ "algorithms",
68
+ "control_flow_conditionals",
69
+ "control_flow_loops",
70
+ "lists",
71
+ "maps",
72
+ "searching",
73
+ "strings"
68
74
  ]
69
75
  },
70
76
  {
71
- "uuid": "a5bf36f0-5d3c-41d4-8d54-e37e484e59cd",
72
77
  "slug": "bob",
78
+ "uuid": "a5bf36f0-5d3c-41d4-8d54-e37e484e59cd",
73
79
  "core": true,
80
+ "unlocked_by": null,
74
81
  "difficulty": 2,
75
82
  "topics": [
76
- "Control-flow (conditionals)",
77
- "Polymorfism",
78
- "Strings",
79
- "Unicode",
80
- "Pattern recognition",
81
- "Regular expressions"
83
+ "control_flow_conditionals",
84
+ "pattern_recognition",
85
+ "polymorfism",
86
+ "regular_expressions",
87
+ "strings",
88
+ "unicode"
82
89
  ]
83
90
  },
84
91
  {
85
- "uuid": "fd7b62d4-266b-4e84-a526-bf3d47901216",
86
92
  "slug": "gigasecond",
93
+ "uuid": "fd7b62d4-266b-4e84-a526-bf3d47901216",
87
94
  "core": true,
95
+ "unlocked_by": null,
88
96
  "difficulty": 2,
89
97
  "topics": [
90
- "Time"
98
+ "time"
91
99
  ]
92
100
  },
93
101
  {
94
- "uuid": "d9d757ed-ebe6-4d4a-aa73-f6834221cd54",
95
102
  "slug": "space-age",
103
+ "uuid": "d9d757ed-ebe6-4d4a-aa73-f6834221cd54",
96
104
  "core": true,
105
+ "unlocked_by": null,
97
106
  "difficulty": 3,
98
107
  "topics": [
99
- "Classes",
100
- "Floating-point numbers",
101
- "Mathematics"
108
+ "classes",
109
+ "floating_point_numbers",
110
+ "mathematics"
102
111
  ]
103
112
  },
104
113
  {
105
- "uuid": "0ba4d3b9-2519-49ac-bd93-f960aca6c11f",
106
114
  "slug": "binary",
115
+ "uuid": "0ba4d3b9-2519-49ac-bd93-f960aca6c11f",
107
116
  "core": true,
117
+ "unlocked_by": null,
108
118
  "difficulty": 4,
109
119
  "topics": [
110
- "Control-flow (conditionals)",
111
- "Control-flow (loops)",
112
- "Mathematics",
113
- "Integers",
114
- "Strings",
115
- "Regular expressions",
116
- "Exception handling"
120
+ "control_flow_conditionals",
121
+ "control_flow_loops",
122
+ "exception_handling",
123
+ "integers",
124
+ "mathematics",
125
+ "regular_expressions",
126
+ "strings"
117
127
  ]
118
128
  },
119
129
  {
120
- "uuid": "f43cdddf-eea8-4c4a-8359-c69e20ff9661",
121
130
  "slug": "prime-factors",
131
+ "uuid": "f43cdddf-eea8-4c4a-8359-c69e20ff9661",
122
132
  "core": true,
133
+ "unlocked_by": null,
123
134
  "difficulty": 4,
124
135
  "topics": [
125
- "Control-flow (conditionals)",
126
- "Control-flow (loops)",
127
- "Mathematics",
128
- "Algorithms",
129
- "Integers"
136
+ "algorithms",
137
+ "control_flow_conditionals",
138
+ "control_flow_loops",
139
+ "integers",
140
+ "mathematics"
130
141
  ]
131
142
  },
132
143
  {
133
- "uuid": "dd0b5e67-81f6-437e-8334-2ec0dfeb862a",
134
144
  "slug": "matrix",
145
+ "uuid": "dd0b5e67-81f6-437e-8334-2ec0dfeb862a",
135
146
  "core": true,
147
+ "unlocked_by": null,
136
148
  "difficulty": 4,
137
149
  "topics": [
138
- "Control-flow (conditionals)",
139
- "Control-flow (loops)",
140
- "Data structures",
141
- "Arrays",
142
- "Matrices",
143
- "Text formatting"
150
+ "arrays",
151
+ "control_flow_conditionals",
152
+ "control_flow_loops",
153
+ "data_structures",
154
+ "matrices",
155
+ "text_formatting"
144
156
  ]
145
157
  },
146
158
  {
147
- "uuid": "ec60a578-8889-46a1-b7b8-306dbd8551d5",
148
159
  "slug": "linked-list",
160
+ "uuid": "ec60a578-8889-46a1-b7b8-306dbd8551d5",
149
161
  "core": true,
162
+ "unlocked_by": null,
150
163
  "difficulty": 5,
151
164
  "topics": [
152
- "Control-flow (conditionals)",
153
- "Control-flow (loops)",
154
- "Algorithms",
155
- "Data structures",
156
- "Arrays",
157
- "Lists",
158
- "Optional values"
165
+ "algorithms",
166
+ "arrays",
167
+ "control_flow_conditionals",
168
+ "control_flow_loops",
169
+ "data_structures",
170
+ "lists",
171
+ "optional_values"
159
172
  ]
160
173
  },
161
174
  {
162
- "uuid": "99493160-4673-402f-acda-62db5378148d",
163
175
  "slug": "pascals-triangle",
176
+ "uuid": "99493160-4673-402f-acda-62db5378148d",
164
177
  "core": true,
178
+ "unlocked_by": null,
165
179
  "difficulty": 5,
166
180
  "topics": [
167
- "Control-flow (conditionals)",
168
- "Control-flow (loops)",
169
- "Mathematics",
170
- "Strings",
171
- "Text formatting"
181
+ "control_flow_conditionals",
182
+ "control_flow_loops",
183
+ "mathematics",
184
+ "strings",
185
+ "text_formatting"
172
186
  ]
173
187
  },
174
188
  {
175
- "uuid": "74bbc9e3-edc5-41e0-84d7-5b2d98dd8370",
176
189
  "slug": "secret-handshake",
190
+ "uuid": "74bbc9e3-edc5-41e0-84d7-5b2d98dd8370",
177
191
  "core": true,
192
+ "unlocked_by": null,
178
193
  "difficulty": 6,
179
194
  "topics": [
180
- "Control-flow (conditionals)",
181
- "Control-flow (loops)",
182
- "Algorithms",
183
- "Games",
184
- "Bitwise operations",
185
- "Arrays"
195
+ "algorithms",
196
+ "arrays",
197
+ "bitwise_operations",
198
+ "control_flow_conditionals",
199
+ "control_flow_loops",
200
+ "games"
186
201
  ]
187
202
  },
188
203
  {
189
- "uuid": "64637322-33bc-401f-8cec-1f9810a41f75",
190
204
  "slug": "grade-school",
205
+ "uuid": "64637322-33bc-401f-8cec-1f9810a41f75",
191
206
  "core": true,
207
+ "unlocked_by": null,
192
208
  "difficulty": 6,
193
209
  "topics": [
194
- "Arrays",
195
- "Maps",
196
- "Sorting"
210
+ "arrays",
211
+ "maps",
212
+ "sorting"
197
213
  ]
198
214
  },
199
215
  {
200
- "uuid": "03f4dfea-e6db-4754-b2c8-ca06c8b81ef1",
201
216
  "slug": "robot-name",
217
+ "uuid": "03f4dfea-e6db-4754-b2c8-ca06c8b81ef1",
202
218
  "core": true,
219
+ "unlocked_by": null,
203
220
  "difficulty": 6,
204
221
  "topics": [
205
- "Control-flow (conditionals)",
206
- "Exception handling",
207
- "Sets",
208
- "Randomness",
209
- "Regular expressions"
222
+ "control_flow_conditionals",
223
+ "exception_handling",
224
+ "randomness",
225
+ "regular_expressions",
226
+ "sets"
210
227
  ]
211
228
  },
212
229
  {
213
- "uuid": "9131bdb8-2e0f-4526-b113-8a77712e7216",
214
230
  "slug": "wordy",
231
+ "uuid": "9131bdb8-2e0f-4526-b113-8a77712e7216",
215
232
  "core": true,
233
+ "unlocked_by": null,
216
234
  "difficulty": 7,
217
235
  "topics": [
218
- "Control-flow (conditionals)",
219
- "Control-flow (loops)",
220
- "Regular expressions",
221
- "Exception handling",
222
- "Strings",
223
- "Pattern recognition",
224
- "Parsing"
236
+ "control_flow_conditionals",
237
+ "control_flow_loops",
238
+ "exception_handling",
239
+ "parsing",
240
+ "pattern_recognition",
241
+ "regular_expressions",
242
+ "strings"
225
243
  ]
226
244
  },
227
245
  {
228
- "uuid": "7d9db056-5398-41b6-af3b-9707f5eb0dbc",
229
246
  "slug": "list-ops",
247
+ "uuid": "7d9db056-5398-41b6-af3b-9707f5eb0dbc",
230
248
  "core": true,
249
+ "unlocked_by": null,
231
250
  "difficulty": 8,
232
251
  "topics": [
233
- "Control-flow (loops)",
234
- "Data structures",
235
- "Lists",
236
- "Recursion"
252
+ "control_flow_loops",
253
+ "data_structures",
254
+ "lists",
255
+ "recursion"
237
256
  ]
238
257
  },
239
258
  {
240
- "uuid": "7f49e997-4435-4f34-a020-bddc92c838ed",
241
259
  "slug": "two-fer",
260
+ "uuid": "7f49e997-4435-4f34-a020-bddc92c838ed",
242
261
  "core": false,
243
262
  "unlocked_by": "hello-world",
244
263
  "difficulty": 1,
245
264
  "topics": [
246
- "Booleans",
247
- "Strings",
248
- "Logic",
249
- "Optional values",
250
- "Text formatting"
265
+ "booleans",
266
+ "logic",
267
+ "optional_values",
268
+ "strings",
269
+ "text_formatting"
251
270
  ]
252
271
  },
253
272
  {
254
- "uuid": "d773c4ef-c09e-40e4-a7fe-01456cb4a12a",
255
273
  "slug": "hamming",
274
+ "uuid": "d773c4ef-c09e-40e4-a7fe-01456cb4a12a",
256
275
  "core": false,
257
276
  "unlocked_by": "rna-transcription",
258
277
  "difficulty": 2,
259
278
  "topics": [
260
- "Control-flow (loops)",
261
- "Control-flow (conditionals)",
262
- "Equality",
263
- "Strings"
279
+ "control_flow_conditionals",
280
+ "control_flow_loops",
281
+ "equality",
282
+ "strings"
264
283
  ]
265
284
  },
266
285
  {
267
- "uuid": "3df577af-2854-40ee-b211-9b608dbbad58",
268
286
  "slug": "isogram",
287
+ "uuid": "3df577af-2854-40ee-b211-9b608dbbad58",
269
288
  "core": false,
270
289
  "unlocked_by": "pangram",
271
290
  "difficulty": 2,
272
291
  "topics": [
273
- "Strings",
274
- "Filtering"
292
+ "filtering",
293
+ "strings"
275
294
  ]
276
295
  },
277
296
  {
278
- "uuid": "6573f168-d8fc-4ccf-a864-1a61f432fae1",
279
297
  "slug": "beer-song",
298
+ "uuid": "6573f168-d8fc-4ccf-a864-1a61f432fae1",
280
299
  "core": false,
281
300
  "unlocked_by": "bob",
282
301
  "difficulty": 5,
283
302
  "topics": [
284
- "Control-flow (conditionals)",
285
- "Control-flow (loops)",
286
- "Strings"
303
+ "control_flow_conditionals",
304
+ "control_flow_loops",
305
+ "strings"
287
306
  ]
288
307
  },
289
308
  {
290
- "uuid": "82775adb-eabe-4d44-91f5-4080b8834a4a",
291
309
  "slug": "phone-number",
310
+ "uuid": "82775adb-eabe-4d44-91f5-4080b8834a4a",
311
+ "core": false,
292
312
  "unlocked_by": "pangram",
293
313
  "difficulty": 3,
294
314
  "topics": [
295
- "Parsing",
296
- "Transforming"
315
+ "parsing",
316
+ "transforming"
297
317
  ]
298
318
  },
299
319
  {
300
- "uuid": "309fa4f1-e03a-4ab2-b371-cdf742501cf7",
301
320
  "slug": "anagram",
321
+ "uuid": "309fa4f1-e03a-4ab2-b371-cdf742501cf7",
302
322
  "core": false,
303
323
  "unlocked_by": "pangram",
304
324
  "difficulty": 1,
305
325
  "topics": [
306
- "Strings",
307
- "Filtering"
326
+ "filtering",
327
+ "strings"
308
328
  ]
309
329
  },
310
330
  {
311
- "uuid": "62672dc7-e827-4c2e-a282-d6df45b60bbd",
312
331
  "slug": "food-chain",
332
+ "uuid": "62672dc7-e827-4c2e-a282-d6df45b60bbd",
313
333
  "core": false,
314
334
  "unlocked_by": "bob",
315
335
  "difficulty": 4,
316
336
  "topics": [
317
- "Text formatting",
318
- "Algorithms"
337
+ "algorithms",
338
+ "text_formatting"
319
339
  ]
320
340
  },
321
341
  {
322
- "uuid": "db16804b-0f63-445d-8beb-99e0f7218d66",
323
342
  "slug": "etl",
343
+ "uuid": "db16804b-0f63-445d-8beb-99e0f7218d66",
324
344
  "core": false,
325
345
  "unlocked_by": "rna-transcription",
326
346
  "difficulty": 2,
327
347
  "topics": [
328
- "Control-flow (loops)",
329
- "Transforming",
330
- "Maps",
331
- "Integers"
348
+ "control_flow_loops",
349
+ "integers",
350
+ "maps",
351
+ "transforming"
332
352
  ]
333
353
  },
334
354
  {
335
- "uuid": "4be85b5e-6b13-11e7-907b-a6006ad3dba0",
336
355
  "slug": "sublist",
356
+ "uuid": "4be85b5e-6b13-11e7-907b-a6006ad3dba0",
337
357
  "core": false,
338
358
  "unlocked_by": "linked-list",
339
359
  "difficulty": 4,
340
360
  "topics": [
341
- "Lists",
342
- "Arrays"
361
+ "arrays",
362
+ "lists"
343
363
  ]
344
364
  },
345
365
  {
346
- "uuid": "0125f5a7-8883-4553-a6c1-45f19544af5e",
347
366
  "slug": "word-search",
367
+ "uuid": "0125f5a7-8883-4553-a6c1-45f19544af5e",
348
368
  "core": false,
349
369
  "unlocked_by": "linked-list",
350
370
  "difficulty": 8,
351
371
  "topics": [
352
- "Control-flow (conditionals)",
353
- "Control-flow (loops)",
354
- "Optional values",
355
- "Equality",
356
- "Text formatting",
357
- "Parsing",
358
- "Arrays"
372
+ "arrays",
373
+ "control_flow_conditionals",
374
+ "control_flow_loops",
375
+ "equality",
376
+ "optional_values",
377
+ "parsing",
378
+ "text_formatting"
359
379
  ]
360
380
  },
361
381
  {
362
- "uuid": "d003975a-9045-4f03-9ad9-c15db584dc13",
363
382
  "slug": "grains",
383
+ "uuid": "d003975a-9045-4f03-9ad9-c15db584dc13",
364
384
  "core": false,
365
385
  "unlocked_by": "space-age",
366
386
  "difficulty": 5,
367
387
  "topics": [
368
- "Control-flow (loops)",
369
- "Integers",
370
- "Mathematics"
388
+ "control_flow_loops",
389
+ "integers",
390
+ "mathematics"
371
391
  ]
372
392
  },
373
393
  {
374
- "uuid": "ed3ca73a-a0f0-46b8-8013-8b6d20758c8f",
375
394
  "slug": "triangle",
395
+ "uuid": "ed3ca73a-a0f0-46b8-8013-8b6d20758c8f",
376
396
  "core": false,
377
397
  "unlocked_by": "leap",
378
398
  "difficulty": 3,
379
399
  "topics": [
380
- "Control-flow (loops)",
381
- "Control-flow (conditionals)",
382
- "Exception handling",
383
- "Integers",
384
- "Mathematics"
400
+ "control_flow_conditionals",
401
+ "control_flow_loops",
402
+ "exception_handling",
403
+ "integers",
404
+ "mathematics"
385
405
  ]
386
406
  },
387
407
  {
388
- "uuid": "b8dacb3a-51d0-4da7-a6d2-aa29867e2b8c",
389
408
  "slug": "collatz-conjecture",
409
+ "uuid": "b8dacb3a-51d0-4da7-a6d2-aa29867e2b8c",
390
410
  "core": false,
391
411
  "unlocked_by": "leap",
392
412
  "difficulty": 3,
393
413
  "topics": [
394
- "Control-flow (conditionals)",
395
- "Control-flow (loops)",
396
- "Recursion",
397
- "Exception_handling",
398
- "Integers",
399
- "Mathematics"
414
+ "control_flow_conditionals",
415
+ "control_flow_loops",
416
+ "exception_handling",
417
+ "integers",
418
+ "mathematics",
419
+ "recursion"
400
420
  ]
401
421
  },
402
422
  {
403
- "uuid": "4e0e2c30-be33-49b6-b196-213888a93a0c",
404
423
  "slug": "clock",
424
+ "uuid": "4e0e2c30-be33-49b6-b196-213888a93a0c",
405
425
  "core": false,
406
426
  "unlocked_by": "gigasecond",
407
427
  "difficulty": 5,
408
428
  "topics": [
409
- "Dates",
410
- "Time",
411
- "Globalization"
429
+ "dates",
430
+ "globalization",
431
+ "time"
412
432
  ]
413
433
  },
414
434
  {
415
- "uuid": "c6691fd2-e10d-47df-acbf-3adeac5a2f89",
416
435
  "slug": "perfect-numbers",
436
+ "uuid": "c6691fd2-e10d-47df-acbf-3adeac5a2f89",
417
437
  "core": false,
418
438
  "unlocked_by": "space-age",
419
439
  "difficulty": 3,
420
440
  "topics": [
421
- "Control-flow (conditionals)",
422
- "Control-flow (loops)",
423
- "Arrays",
424
- "Integers",
425
- "Mathematics"
441
+ "arrays",
442
+ "control_flow_conditionals",
443
+ "control_flow_loops",
444
+ "integers",
445
+ "mathematics"
426
446
  ]
427
447
  },
428
448
  {
429
- "uuid": "0073ff9a-cd6a-43cf-b8bf-4d5d8117b81b",
430
449
  "slug": "word-count",
450
+ "uuid": "0073ff9a-cd6a-43cf-b8bf-4d5d8117b81b",
431
451
  "core": false,
432
452
  "unlocked_by": "pangram",
433
453
  "difficulty": 1,
434
454
  "topics": [
435
- "Control-flow (loops)",
436
- "Lists",
437
- "Strings",
438
- "Unicode",
439
- "Regular expressions"
455
+ "control_flow_loops",
456
+ "lists",
457
+ "regular_expressions",
458
+ "strings",
459
+ "unicode"
440
460
  ]
441
461
  },
442
462
  {
443
- "uuid": "6ac4ad5f-a64a-4646-91c5-169d53f289f9",
444
463
  "slug": "run-length-encoding",
464
+ "uuid": "6ac4ad5f-a64a-4646-91c5-169d53f289f9",
445
465
  "core": false,
446
466
  "unlocked_by": null,
447
467
  "difficulty": 2,
448
468
  "topics": [
449
- "Control-flow (conditionals)",
450
- "Exception handling",
451
- "Parsing",
452
- "Text formatting",
453
- "Regular expressions",
454
- "Pattern recognition",
455
- "Strings"
469
+ "control_flow_conditionals",
470
+ "exception_handling",
471
+ "parsing",
472
+ "pattern_recognition",
473
+ "regular_expressions",
474
+ "strings",
475
+ "text_formatting"
456
476
  ]
457
477
  },
458
478
  {
459
- "uuid": "440d78d1-9dea-466f-9bd4-935eed067409",
460
479
  "slug": "acronym",
480
+ "uuid": "440d78d1-9dea-466f-9bd4-935eed067409",
461
481
  "core": false,
462
482
  "unlocked_by": "pangram",
463
483
  "difficulty": 2,
464
484
  "topics": [
465
- "Strings",
466
- "Control-flow (loops)",
467
- "Regular expressions",
468
- "Transforming"
485
+ "control_flow_loops",
486
+ "regular_expressions",
487
+ "strings",
488
+ "transforming"
469
489
  ]
470
490
  },
471
491
  {
472
- "uuid": "11771d47-1109-4579-a62b-e0b8e9583485",
473
492
  "slug": "scrabble-score",
493
+ "uuid": "11771d47-1109-4579-a62b-e0b8e9583485",
474
494
  "core": false,
475
495
  "unlocked_by": "rna-transcription",
476
496
  "difficulty": 5,
477
497
  "topics": [
478
- "Control-flow (conditionals)",
479
- "Control-flow (loops)",
480
- "Maps",
481
- "Strings"
498
+ "control_flow_conditionals",
499
+ "control_flow_loops",
500
+ "maps",
501
+ "strings"
482
502
  ]
483
503
  },
484
504
  {
485
- "uuid": "2fc4f834-a51c-42b8-a4d9-5263229e7648",
486
505
  "slug": "roman-numerals",
506
+ "uuid": "2fc4f834-a51c-42b8-a4d9-5263229e7648",
487
507
  "core": false,
488
508
  "unlocked_by": null,
489
509
  "difficulty": 3,
490
510
  "topics": [
491
- "Control-flow (conditionals)",
492
- "Control-flow (loops)",
493
- "Mathematics",
494
- "Pattern recognition",
495
- "Transforming"
511
+ "control_flow_conditionals",
512
+ "control_flow_loops",
513
+ "mathematics",
514
+ "pattern_recognition",
515
+ "transforming"
496
516
  ]
497
517
  },
498
518
  {
499
- "uuid": "bf0b1f95-3425-4345-8a12-3a80d49b49c9",
500
519
  "slug": "circular-buffer",
520
+ "uuid": "bf0b1f95-3425-4345-8a12-3a80d49b49c9",
501
521
  "core": false,
502
522
  "unlocked_by": "linked-list",
503
523
  "difficulty": 8,
504
524
  "topics": [
505
- "Control-flow (conditionals)",
506
- "Control-flow (loops)",
507
- "Data structures",
508
- "Lists",
509
- "Arrays",
510
- "Exception handling"
525
+ "arrays",
526
+ "control_flow_conditionals",
527
+ "control_flow_loops",
528
+ "data_structures",
529
+ "exception_handling",
530
+ "lists"
511
531
  ]
512
532
  },
513
533
  {
514
- "uuid": "303c6969-9446-41aa-871a-11223a43e810",
515
534
  "slug": "react",
535
+ "uuid": "303c6969-9446-41aa-871a-11223a43e810",
516
536
  "core": false,
517
537
  "unlocked_by": null,
518
538
  "difficulty": 8,
519
539
  "topics": [
520
- "Algorithms",
521
- "Events",
522
- "Reactive programming"
540
+ "algorithms",
541
+ "events",
542
+ "reactive_programming"
523
543
  ]
524
544
  },
525
545
  {
526
- "uuid": "f77ac2d1-cf3a-497d-bf04-b484a5a9cb37",
527
546
  "slug": "raindrops",
547
+ "uuid": "f77ac2d1-cf3a-497d-bf04-b484a5a9cb37",
528
548
  "core": false,
529
549
  "unlocked_by": "rna-transcription",
530
550
  "difficulty": 2,
531
551
  "topics": [
532
- "Control-flow (conditionals)",
533
- "Strings",
534
- "Integers",
535
- "Transforming"
552
+ "control_flow_conditionals",
553
+ "integers",
554
+ "strings",
555
+ "transforming"
536
556
  ]
537
557
  },
538
558
  {
539
- "uuid": "9d33d21c-e695-427f-9f58-dd9498d61318",
540
559
  "slug": "allergies",
560
+ "uuid": "9d33d21c-e695-427f-9f58-dd9498d61318",
541
561
  "core": false,
542
562
  "unlocked_by": "rna-transcription",
543
563
  "difficulty": 6,
544
564
  "topics": [
545
- "Control-flow (conditionals)",
546
- "Control-flow (loops)",
547
- "Bitwise operations",
548
- "Arrays"
565
+ "arrays",
566
+ "bitwise_operations",
567
+ "control_flow_conditionals",
568
+ "control_flow_loops"
549
569
  ]
550
570
  },
551
571
  {
552
- "uuid": "8407f9d5-7a7e-40c8-aace-a6a8294ae5e9",
553
572
  "slug": "strain",
573
+ "uuid": "8407f9d5-7a7e-40c8-aace-a6a8294ae5e9",
554
574
  "core": false,
555
575
  "unlocked_by": "list-ops",
556
576
  "difficulty": 4,
557
577
  "topics": [
558
- "Control-flow (conditionals)",
559
- "Control-flow (loops)",
560
- "Algorithms",
561
- "Lists",
562
- "Arrays",
563
- "Callbacks",
564
- "Filtering"
578
+ "algorithms",
579
+ "arrays",
580
+ "callbacks",
581
+ "control_flow_conditionals",
582
+ "control_flow_loops",
583
+ "filtering",
584
+ "lists"
565
585
  ]
566
586
  },
567
587
  {
568
- "uuid": "a70e6027-eebe-43a1-84a6-763faa736169",
569
588
  "slug": "atbash-cipher",
589
+ "uuid": "a70e6027-eebe-43a1-84a6-763faa736169",
570
590
  "core": false,
571
591
  "unlocked_by": "simple-cipher",
572
592
  "difficulty": 7,
573
593
  "topics": [
574
- "Control-flow (conditionals)",
575
- "Control-flow (loops)",
576
- "Algorithms",
577
- "Arrays",
578
- "Regular expressions",
579
- "Text formatting"
594
+ "algorithms",
595
+ "arrays",
596
+ "control_flow_conditionals",
597
+ "control_flow_loops",
598
+ "regular_expressions",
599
+ "text_formatting"
580
600
  ]
581
601
  },
582
602
  {
583
- "uuid": "6ebe247c-3d11-48b7-8e6f-39f98359d233",
584
603
  "slug": "accumulate",
604
+ "uuid": "6ebe247c-3d11-48b7-8e6f-39f98359d233",
585
605
  "core": false,
586
606
  "unlocked_by": "list-ops",
587
607
  "difficulty": 5,
588
608
  "topics": [
589
- "Control-flow (loops)",
590
- "Algorithms",
591
- "Lists",
592
- "Callbacks"
609
+ "algorithms",
610
+ "callbacks",
611
+ "control_flow_loops",
612
+ "lists"
593
613
  ]
594
614
  },
595
615
  {
596
- "uuid": "4dc30879-a589-4dd3-b7b6-22261f9d1520",
597
616
  "slug": "crypto-square",
617
+ "uuid": "4dc30879-a589-4dd3-b7b6-22261f9d1520",
598
618
  "core": false,
599
619
  "unlocked_by": "simple-cipher",
600
620
  "difficulty": 9,
601
621
  "topics": [
602
- "Control-flow (conditionals)",
603
- "Control-flow (loops)",
604
- "Algorithms",
605
- "Arrays",
606
- "Sorting",
607
- "Text formatting",
608
- "Regular expressions",
609
- "Transforming"
622
+ "algorithms",
623
+ "arrays",
624
+ "control_flow_conditionals",
625
+ "control_flow_loops",
626
+ "regular_expressions",
627
+ "sorting",
628
+ "text_formatting",
629
+ "transforming"
610
630
  ]
611
631
  },
612
632
  {
613
- "uuid": "1acf1d2d-a25e-4576-94de-0470abc872d9",
614
633
  "slug": "trinary",
634
+ "uuid": "1acf1d2d-a25e-4576-94de-0470abc872d9",
615
635
  "core": false,
616
636
  "unlocked_by": "binary",
617
637
  "difficulty": 4,
618
638
  "topics": [
619
- "Control-flow (conditionals)",
620
- "Control-flow (loops)",
621
- "Mathematics",
622
- "Integers",
623
- "Strings",
624
- "Regular expressions"
639
+ "control_flow_conditionals",
640
+ "control_flow_loops",
641
+ "integers",
642
+ "mathematics",
643
+ "regular_expressions",
644
+ "strings"
625
645
  ]
626
646
  },
627
647
  {
628
- "uuid": "127287d1-ba44-4400-884a-6fe5f72e210f",
629
648
  "slug": "sieve",
649
+ "uuid": "127287d1-ba44-4400-884a-6fe5f72e210f",
630
650
  "core": false,
631
651
  "unlocked_by": "prime-factors",
632
652
  "difficulty": 5,
633
653
  "topics": [
634
- "Control-flow (conditionals)",
635
- "Control-flow (loops)",
636
- "Mathematics",
637
- "Integers",
638
- "Recursion"
654
+ "control_flow_conditionals",
655
+ "control_flow_loops",
656
+ "integers",
657
+ "mathematics",
658
+ "recursion"
639
659
  ]
640
660
  },
641
661
  {
642
- "uuid": "dec66f89-39d0-4857-9679-a035cf4259d7",
643
662
  "slug": "octal",
663
+ "uuid": "dec66f89-39d0-4857-9679-a035cf4259d7",
644
664
  "core": false,
645
665
  "unlocked_by": "binary",
646
666
  "difficulty": 4,
647
667
  "topics": [
648
- "Control-flow (conditionals)",
649
- "Control-flow (loops)",
650
- "Mathematics",
651
- "Integers",
652
- "Strings",
653
- "Regular expressions"
668
+ "control_flow_conditionals",
669
+ "control_flow_loops",
670
+ "integers",
671
+ "mathematics",
672
+ "regular_expressions",
673
+ "strings"
654
674
  ]
655
675
  },
656
676
  {
657
- "uuid": "28872cc9-f1ef-487f-9a79-6bf7983148bf",
658
677
  "slug": "luhn",
678
+ "uuid": "28872cc9-f1ef-487f-9a79-6bf7983148bf",
659
679
  "core": false,
660
680
  "unlocked_by": "space-age",
661
681
  "difficulty": 4,
662
682
  "topics": [
663
- "Control-flow (conditionals)",
664
- "Control-flow (loops)",
665
- "Mathematics",
666
- "Integers",
667
- "Strings"
683
+ "control_flow_conditionals",
684
+ "control_flow_loops",
685
+ "integers",
686
+ "mathematics",
687
+ "strings"
668
688
  ]
669
689
  },
670
690
  {
671
- "uuid": "16e25a38-7ce3-4ccd-b2f0-1550b837fe9b",
672
691
  "slug": "pig-latin",
692
+ "uuid": "16e25a38-7ce3-4ccd-b2f0-1550b837fe9b",
673
693
  "core": false,
674
694
  "unlocked_by": "bob",
675
695
  "difficulty": 4,
676
696
  "topics": [
677
- "Control-flow (conditionals)",
678
- "Control-flow (loops)",
679
- "Strings",
680
- "Games",
681
- "Regular expressions",
682
- "Transforming"
697
+ "control_flow_conditionals",
698
+ "control_flow_loops",
699
+ "games",
700
+ "regular_expressions",
701
+ "strings",
702
+ "transforming"
683
703
  ]
684
704
  },
685
705
  {
686
- "uuid": "394755a3-c743-4b85-b9b8-387907f4e32d",
687
706
  "slug": "pythagorean-triplet",
707
+ "uuid": "394755a3-c743-4b85-b9b8-387907f4e32d",
688
708
  "core": false,
689
709
  "unlocked_by": "space-age",
690
710
  "difficulty": 5,
691
711
  "topics": [
692
- "Control-flow (conditionals)",
693
- "Control-flow (loops)",
694
- "Algorithms",
695
- "Mathematics",
696
- "Integers"
712
+ "algorithms",
713
+ "control_flow_conditionals",
714
+ "control_flow_loops",
715
+ "integers",
716
+ "mathematics"
697
717
  ]
698
718
  },
699
719
  {
700
- "uuid": "5178ae53-5364-46c9-bee3-70e6e8a8c2e3",
701
720
  "slug": "series",
721
+ "uuid": "5178ae53-5364-46c9-bee3-70e6e8a8c2e3",
702
722
  "core": false,
703
723
  "unlocked_by": "pangram",
704
724
  "difficulty": 3,
705
725
  "topics": [
706
- "Control-flow (loops)",
707
- "Exception handling",
708
- "Strings",
709
- "Text formatting"
726
+ "control_flow_loops",
727
+ "exception_handling",
728
+ "strings",
729
+ "text_formatting"
710
730
  ]
711
731
  },
712
732
  {
713
- "uuid": "7dfa878c-83a6-48ef-9170-b6633d51d601",
714
733
  "slug": "difference-of-squares",
734
+ "uuid": "7dfa878c-83a6-48ef-9170-b6633d51d601",
715
735
  "core": false,
716
736
  "unlocked_by": "space-age",
717
737
  "difficulty": 3,
718
738
  "topics": [
719
- "Control-flow (loops)",
720
- "Algorithms",
721
- "Mathematics",
722
- "Integers"
739
+ "algorithms",
740
+ "control_flow_loops",
741
+ "integers",
742
+ "mathematics"
723
743
  ]
724
744
  },
725
745
  {
726
- "uuid": "5626f5b6-207b-458b-92b6-eff2cadb240a",
727
746
  "slug": "proverb",
747
+ "uuid": "5626f5b6-207b-458b-92b6-eff2cadb240a",
728
748
  "core": false,
729
749
  "unlocked_by": "bob",
730
750
  "difficulty": 4,
731
751
  "topics": [
732
- "Control-flow (conditionals)",
733
- "Control-flow (loops)",
734
- "Arrays",
735
- "Strings",
736
- "Text formatting",
737
- "Optional values"
752
+ "arrays",
753
+ "control_flow_conditionals",
754
+ "control_flow_loops",
755
+ "optional_values",
756
+ "strings",
757
+ "text_formatting"
738
758
  ]
739
759
  },
740
760
  {
741
- "uuid": "1a6c4a3b-d5db-4a5a-b123-66cf085defe6",
742
761
  "slug": "flatten-array",
762
+ "uuid": "1a6c4a3b-d5db-4a5a-b123-66cf085defe6",
743
763
  "core": false,
744
764
  "unlocked_by": "list-ops",
745
765
  "difficulty": 5,
746
766
  "topics": [
747
- "Arrays",
748
- "Recursion"
767
+ "arrays",
768
+ "recursion"
749
769
  ]
750
770
  },
751
771
  {
752
- "uuid": "8ed2c9fe-a13f-4313-abf9-125f351c85c9",
753
772
  "slug": "hexadecimal",
773
+ "uuid": "8ed2c9fe-a13f-4313-abf9-125f351c85c9",
754
774
  "core": false,
755
775
  "unlocked_by": "binary",
756
776
  "difficulty": 4,
757
777
  "topics": [
758
- "Control-flow (conditionals)",
759
- "Control-flow (loops)",
760
- "Mathematics",
761
- "Integers",
762
- "Strings",
763
- "Regular expressions"
778
+ "control_flow_conditionals",
779
+ "control_flow_loops",
780
+ "integers",
781
+ "mathematics",
782
+ "regular_expressions",
783
+ "strings"
764
784
  ]
765
785
  },
766
786
  {
767
- "uuid": "1f84305d-ea76-4fe2-9858-3b53576d683d",
768
787
  "slug": "largest-series-product",
788
+ "uuid": "1f84305d-ea76-4fe2-9858-3b53576d683d",
769
789
  "core": false,
770
790
  "unlocked_by": "pangram",
771
791
  "difficulty": 7,
772
792
  "topics": [
773
- "Control-flow (conditionals)",
774
- "Control-flow (loops)",
775
- "Mathematics",
776
- "Integers",
777
- "Strings",
778
- "Exception handling",
779
- "Regular expressions"
793
+ "control_flow_conditionals",
794
+ "control_flow_loops",
795
+ "exception_handling",
796
+ "integers",
797
+ "mathematics",
798
+ "regular_expressions",
799
+ "strings"
780
800
  ]
781
801
  },
782
802
  {
783
- "uuid": "13444eff-005a-405e-9737-7b64d99c1a61",
784
803
  "slug": "kindergarten-garden",
804
+ "uuid": "13444eff-005a-405e-9737-7b64d99c1a61",
785
805
  "core": false,
786
806
  "unlocked_by": "wordy",
787
807
  "difficulty": 7,
788
808
  "topics": [
789
- "Control-flow (conditionals)",
790
- "Control-flow (loops)",
791
- "Strings",
792
- "Arrays",
793
- "Text formatting"
809
+ "arrays",
810
+ "control_flow_conditionals",
811
+ "control_flow_loops",
812
+ "strings",
813
+ "text_formatting"
794
814
  ]
795
815
  },
796
816
  {
797
- "uuid": "a8b7187d-12eb-4efc-b966-87823654ccda",
798
817
  "slug": "house",
818
+ "uuid": "a8b7187d-12eb-4efc-b966-87823654ccda",
799
819
  "core": false,
800
820
  "unlocked_by": "bob",
801
821
  "difficulty": 4,
802
822
  "topics": [
803
- "Control-flow (conditionals)",
804
- "Control-flow (loops)",
805
- "Strings",
806
- "Arrays",
807
- "Recursion"
823
+ "arrays",
824
+ "control_flow_conditionals",
825
+ "control_flow_loops",
826
+ "recursion",
827
+ "strings"
808
828
  ]
809
829
  },
810
830
  {
811
- "uuid": "7c569e5d-bb00-44b8-8adc-34253790c19b",
812
831
  "slug": "binary-search",
832
+ "uuid": "7c569e5d-bb00-44b8-8adc-34253790c19b",
813
833
  "core": false,
814
834
  "unlocked_by": "linked-list",
815
835
  "difficulty": 7,
816
836
  "topics": [
817
- "Control-flow (conditionals)",
818
- "Control-flow (loops)",
819
- "Recursion",
820
- "Arrays",
821
- "Algorithms"
837
+ "algorithms",
838
+ "arrays",
839
+ "control_flow_conditionals",
840
+ "control_flow_loops",
841
+ "recursion"
822
842
  ]
823
843
  },
824
844
  {
825
- "uuid": "6c4b4e25-c115-4789-9058-d28ab6ca0d26",
826
845
  "slug": "binary-search-tree",
846
+ "uuid": "6c4b4e25-c115-4789-9058-d28ab6ca0d26",
827
847
  "core": false,
828
848
  "unlocked_by": "linked-list",
829
849
  "difficulty": 6,
830
850
  "topics": [
831
- "Control-flow (conditionals)",
832
- "Control-flow (loops)",
833
- "Recursion",
834
- "Algorithms"
851
+ "algorithms",
852
+ "control_flow_conditionals",
853
+ "control_flow_loops",
854
+ "recursion"
835
855
  ]
836
856
  },
837
857
  {
838
- "uuid": "5174bd15-eee2-4b53-b3ee-ca3a8c958a31",
839
858
  "slug": "robot-simulator",
859
+ "uuid": "5174bd15-eee2-4b53-b3ee-ca3a8c958a31",
840
860
  "core": false,
841
861
  "unlocked_by": "wordy",
842
862
  "difficulty": 5,
843
863
  "topics": [
844
- "Control-flow (conditionals)",
845
- "Control-flow (loops)",
846
- "Exception handling",
847
- "Strings",
848
- "Games",
849
- "Parsing"
864
+ "control_flow_conditionals",
865
+ "control_flow_loops",
866
+ "exception_handling",
867
+ "games",
868
+ "parsing",
869
+ "strings"
850
870
  ]
851
871
  },
852
872
  {
853
- "uuid": "7ce09989-f202-4c3c-8b7e-72cef18808c3",
854
873
  "slug": "nth-prime",
874
+ "uuid": "7ce09989-f202-4c3c-8b7e-72cef18808c3",
855
875
  "core": false,
856
876
  "unlocked_by": "prime-factors",
857
877
  "difficulty": 5,
858
878
  "topics": [
859
- "Control-flow (conditionals)",
860
- "Control-flow (loops)",
861
- "Exception handling",
862
- "Algorithms",
863
- "Mathematics",
864
- "Integers"
879
+ "algorithms",
880
+ "control_flow_conditionals",
881
+ "control_flow_loops",
882
+ "exception_handling",
883
+ "integers",
884
+ "mathematics"
865
885
  ]
866
886
  },
867
887
  {
868
- "uuid": "f6799d10-0210-4c73-ac08-d5cac1a00ff3",
869
888
  "slug": "palindrome-products",
889
+ "uuid": "f6799d10-0210-4c73-ac08-d5cac1a00ff3",
870
890
  "core": false,
871
891
  "unlocked_by": "prime-factors",
872
892
  "difficulty": 7,
873
893
  "topics": [
874
- "Control-flow (conditionals)",
875
- "Control-flow (loops)",
876
- "Exception handling",
877
- "Algorithms",
878
- "Mathematics",
879
- "Integers"
894
+ "algorithms",
895
+ "control_flow_conditionals",
896
+ "control_flow_loops",
897
+ "exception_handling",
898
+ "integers",
899
+ "mathematics"
880
900
  ]
881
901
  },
882
902
  {
883
- "uuid": "12989bb3-c593-4f68-bea4-e2c5b76bc3c0",
884
903
  "slug": "say",
904
+ "uuid": "12989bb3-c593-4f68-bea4-e2c5b76bc3c0",
885
905
  "core": false,
886
906
  "unlocked_by": "bob",
887
907
  "difficulty": 6,
888
908
  "topics": [
889
- "Control-flow (conditionals)",
890
- "Control-flow (loops)",
891
- "Mathematics",
892
- "Integers",
893
- "Exception handling",
894
- "Strings",
895
- "Text formatting"
909
+ "control_flow_conditionals",
910
+ "control_flow_loops",
911
+ "exception_handling",
912
+ "integers",
913
+ "mathematics",
914
+ "strings",
915
+ "text_formatting"
896
916
  ]
897
917
  },
898
918
  {
899
- "uuid": "75199d72-4cac-49ce-bffb-23fb659c57ae",
900
919
  "slug": "custom-set",
920
+ "uuid": "75199d72-4cac-49ce-bffb-23fb659c57ae",
901
921
  "core": false,
902
922
  "unlocked_by": "linked-list",
903
923
  "difficulty": 6,
904
924
  "topics": [
905
- "Control-flow (conditionals)",
906
- "Control-flow (loops)",
907
- "Data structures",
908
- "Arrays",
909
- "Lists",
910
- "Sets",
911
- "Equality",
912
- "Recursion"
925
+ "arrays",
926
+ "control_flow_conditionals",
927
+ "control_flow_loops",
928
+ "data_structures",
929
+ "equality",
930
+ "lists",
931
+ "recursion",
932
+ "sets"
913
933
  ]
914
934
  },
915
935
  {
916
- "uuid": "f7452f71-795b-40b6-847c-67ef4bb9db45",
917
936
  "slug": "sum-of-multiples",
937
+ "uuid": "f7452f71-795b-40b6-847c-67ef4bb9db45",
918
938
  "core": false,
919
939
  "unlocked_by": "prime-factors",
920
940
  "difficulty": 5,
921
941
  "topics": [
922
- "Control-flow (conditionals)",
923
- "Control-flow (loops)",
924
- "Lists",
925
- "Integers"
942
+ "control_flow_conditionals",
943
+ "control_flow_loops",
944
+ "integers",
945
+ "lists"
926
946
  ]
927
947
  },
928
948
  {
929
- "uuid": "007a4cd4-7324-4512-8905-ead0c78146f7",
930
949
  "slug": "queen-attack",
950
+ "uuid": "007a4cd4-7324-4512-8905-ead0c78146f7",
931
951
  "core": false,
932
952
  "unlocked_by": null,
933
953
  "difficulty": 8,
934
954
  "topics": [
935
- "Control-flow (conditionals)",
936
- "Control-flow (loops)",
937
- "Optional values",
938
- "Exception handling",
939
- "Equality",
940
- "Text formatting",
941
- "Parsing"
955
+ "control_flow_conditionals",
956
+ "control_flow_loops",
957
+ "equality",
958
+ "exception_handling",
959
+ "optional_values",
960
+ "parsing",
961
+ "text_formatting"
942
962
  ]
943
963
  },
944
964
  {
945
- "uuid": "a01aa48c-65c4-4b1f-b3d9-3ec7da2ef754",
946
965
  "slug": "saddle-points",
966
+ "uuid": "a01aa48c-65c4-4b1f-b3d9-3ec7da2ef754",
947
967
  "core": false,
948
968
  "unlocked_by": "matrix",
949
969
  "difficulty": 6,
950
970
  "topics": [
951
- "Control-flow (conditionals)",
952
- "Control-flow (loops)",
953
- "Optional values",
954
- "Exception handling",
955
- "Equality",
956
- "Parsing",
957
- "Integers",
958
- "Matrices",
959
- "Mathematics"
971
+ "control_flow_conditionals",
972
+ "control_flow_loops",
973
+ "equality",
974
+ "exception_handling",
975
+ "integers",
976
+ "mathematics",
977
+ "matrices",
978
+ "optional_values",
979
+ "parsing"
960
980
  ]
961
981
  },
962
982
  {
963
- "uuid": "24c197ee-d492-4083-8615-629cb4b836b2",
964
983
  "slug": "ocr-numbers",
984
+ "uuid": "24c197ee-d492-4083-8615-629cb4b836b2",
965
985
  "core": false,
966
986
  "unlocked_by": "matrix",
967
987
  "difficulty": 5,
968
988
  "topics": [
969
- "Control-flow (conditionals)",
970
- "Control-flow (loops)",
971
- "Exception handling",
972
- "Equality",
973
- "Parsing",
974
- "Integers",
975
- "Text formatting"
989
+ "control_flow_conditionals",
990
+ "control_flow_loops",
991
+ "equality",
992
+ "exception_handling",
993
+ "integers",
994
+ "parsing",
995
+ "text_formatting"
976
996
  ]
977
997
  },
978
998
  {
979
- "uuid": "98617798-b49d-4d43-9f65-7131ee73d626",
980
999
  "slug": "meetup",
1000
+ "uuid": "98617798-b49d-4d43-9f65-7131ee73d626",
981
1001
  "core": false,
982
1002
  "unlocked_by": "gigasecond",
983
1003
  "difficulty": 7,
984
1004
  "topics": [
985
- "Control-flow (conditionals)",
986
- "Control-flow (loops)",
987
- "Exception handling",
988
- "Equality",
989
- "Time",
990
- "Dates"
1005
+ "control_flow_conditionals",
1006
+ "control_flow_loops",
1007
+ "dates",
1008
+ "equality",
1009
+ "exception_handling",
1010
+ "time"
991
1011
  ]
992
1012
  },
993
1013
  {
994
- "uuid": "4d456646-3a9b-4393-9558-6b30e5c1039c",
995
1014
  "slug": "bracket-push",
1015
+ "uuid": "4d456646-3a9b-4393-9558-6b30e5c1039c",
996
1016
  "core": false,
997
1017
  "unlocked_by": "pangram",
998
1018
  "difficulty": 3,
999
1019
  "topics": [
1000
- "Control-flow (conditionals)",
1001
- "Control-flow (loops)",
1002
- "Strings",
1003
- "Parsing",
1004
- "Exception handling"
1020
+ "control_flow_conditionals",
1021
+ "control_flow_loops",
1022
+ "exception_handling",
1023
+ "parsing",
1024
+ "strings"
1005
1025
  ]
1006
1026
  },
1007
1027
  {
1008
- "uuid": "0bc6b478-40a8-47ab-889b-c403b922f7e5",
1009
1028
  "slug": "two-bucket",
1029
+ "uuid": "0bc6b478-40a8-47ab-889b-c403b922f7e5",
1010
1030
  "core": false,
1011
1031
  "unlocked_by": "grade-school",
1012
1032
  "difficulty": 6,
1013
1033
  "topics": [
1014
- "Control-flow (conditionals)",
1015
- "Control-flow (loops)",
1016
- "Arrays",
1017
- "Parsing",
1018
- "Algorithms",
1019
- "Games",
1020
- "Exception handling"
1034
+ "algorithms",
1035
+ "arrays",
1036
+ "control_flow_conditionals",
1037
+ "control_flow_loops",
1038
+ "exception_handling",
1039
+ "games",
1040
+ "parsing"
1021
1041
  ]
1022
1042
  },
1023
1043
  {
1044
+ "slug": "bowling",
1045
+ "uuid": "dbf26ef1-62ff-4cb1-8ac7-09b022df3b2f",
1024
1046
  "core": false,
1047
+ "unlocked_by": "grade-school",
1025
1048
  "difficulty": 8,
1026
- "slug": "bowling",
1027
1049
  "topics": [
1028
1050
  "arrays",
1029
- "control-flow-(conditionals)",
1030
- "control-flow-(loops)",
1031
- "exception-handling",
1051
+ "control_flow_conditionals",
1052
+ "control_flow_loops",
1053
+ "exception_handling",
1032
1054
  "games",
1033
1055
  "parsing",
1034
- "text-formatting"
1035
- ],
1036
- "unlocked_by": "grade-school",
1037
- "uuid": "dbf26ef1-62ff-4cb1-8ac7-09b022df3b2f"
1056
+ "text_formatting"
1057
+ ]
1038
1058
  },
1039
1059
  {
1040
- "uuid": "6a1eee0e-f8d4-446d-9c52-f31c3700af1b",
1041
1060
  "slug": "diamond",
1061
+ "uuid": "6a1eee0e-f8d4-446d-9c52-f31c3700af1b",
1042
1062
  "core": false,
1043
1063
  "unlocked_by": "pascals-triangle",
1044
1064
  "difficulty": 5,
1045
1065
  "topics": [
1046
- "Control-flow (conditionals)",
1047
- "Control-flow (loops)",
1048
- "Arrays",
1049
- "Parsing",
1050
- "Games",
1051
- "Exception handling",
1052
- "Text formatting"
1066
+ "arrays",
1067
+ "control_flow_conditionals",
1068
+ "control_flow_loops",
1069
+ "exception_handling",
1070
+ "games",
1071
+ "parsing",
1072
+ "text_formatting"
1053
1073
  ]
1054
1074
  },
1055
1075
  {
1056
- "uuid": "d2d3cd13-b06c-4c24-9964-fb1554f70dd4",
1057
1076
  "slug": "all-your-base",
1077
+ "uuid": "d2d3cd13-b06c-4c24-9964-fb1554f70dd4",
1058
1078
  "core": false,
1059
1079
  "unlocked_by": "binary",
1060
1080
  "difficulty": 5,
1061
1081
  "topics": [
1062
- "Control-flow (conditionals)",
1063
- "Control-flow (loops)",
1064
- "Exception handling",
1065
- "Parsing",
1066
- "Mathematics",
1067
- "Integers"
1082
+ "control_flow_conditionals",
1083
+ "control_flow_loops",
1084
+ "exception_handling",
1085
+ "integers",
1086
+ "mathematics",
1087
+ "parsing"
1068
1088
  ]
1069
1089
  },
1070
1090
  {
1071
- "uuid": "8bafe6c4-9154-4037-9070-7f57f91d495a",
1072
1091
  "slug": "minesweeper",
1092
+ "uuid": "8bafe6c4-9154-4037-9070-7f57f91d495a",
1073
1093
  "core": false,
1074
1094
  "unlocked_by": null,
1075
1095
  "difficulty": 7,
1076
1096
  "topics": [
1077
- "Games",
1078
- "Arrays",
1079
- "Algorithms"
1097
+ "algorithms",
1098
+ "arrays",
1099
+ "games"
1080
1100
  ]
1081
1101
  },
1082
1102
  {
1083
- "uuid": "a602bd33-69fc-4b67-a3d3-95198853095e",
1084
1103
  "slug": "alphametics",
1104
+ "uuid": "a602bd33-69fc-4b67-a3d3-95198853095e",
1085
1105
  "core": false,
1086
1106
  "unlocked_by": "grade-school",
1087
1107
  "difficulty": 7,
1088
1108
  "topics": [
1089
- "Games",
1090
- "Algorithms"
1109
+ "algorithms",
1110
+ "games"
1091
1111
  ]
1092
1112
  },
1093
1113
  {
1094
- "uuid": "a1591026-2f02-45f9-b189-24b2359eb43f",
1095
1114
  "slug": "simple-linked-list",
1115
+ "uuid": "a1591026-2f02-45f9-b189-24b2359eb43f",
1096
1116
  "core": false,
1097
1117
  "unlocked_by": "linked-list",
1098
1118
  "difficulty": 8,
1099
1119
  "topics": [
1100
- "Arrays",
1101
- "Data structures",
1102
- "Lists"
1120
+ "arrays",
1121
+ "data_structures",
1122
+ "lists"
1103
1123
  ]
1104
1124
  },
1105
1125
  {
1106
- "uuid": "2fa2c262-77ae-409b-bfd8-1d643faae772",
1107
1126
  "slug": "connect",
1127
+ "uuid": "2fa2c262-77ae-409b-bfd8-1d643faae772",
1108
1128
  "core": false,
1109
1129
  "unlocked_by": "grade-school",
1110
1130
  "difficulty": 7,
1111
1131
  "topics": [
1112
- "Control-flow (loops)",
1113
- "Control-flow (conditionals)",
1114
- "Games",
1115
- "Parsing",
1116
- "Arrays",
1117
- "Maps"
1132
+ "arrays",
1133
+ "control_flow_conditionals",
1134
+ "control_flow_loops",
1135
+ "games",
1136
+ "maps",
1137
+ "parsing"
1118
1138
  ]
1119
1139
  },
1120
1140
  {
1121
- "uuid": "127eccbd-3009-4a8f-95c1-7d8aeb608550",
1122
1141
  "slug": "diffie-hellman",
1142
+ "uuid": "127eccbd-3009-4a8f-95c1-7d8aeb608550",
1123
1143
  "core": false,
1124
1144
  "unlocked_by": "simple-cipher",
1125
1145
  "difficulty": 3,
1126
1146
  "topics": [
1127
- "Control-flow (conditionals)",
1128
- "Control-flow (loops)",
1129
- "Algorithms",
1130
- "Arrays",
1131
- "Exception handling"
1147
+ "algorithms",
1148
+ "arrays",
1149
+ "control_flow_conditionals",
1150
+ "control_flow_loops",
1151
+ "exception_handling"
1132
1152
  ]
1133
1153
  },
1134
1154
  {
1135
- "uuid" : "cfa5741c-9fe9-4cb5-a322-d77ba8145f4b",
1136
- "slug" : "change",
1137
- "core" : false,
1155
+ "slug": "change",
1156
+ "uuid": "cfa5741c-9fe9-4cb5-a322-d77ba8145f4b",
1157
+ "core": false,
1138
1158
  "unlocked_by": "prime-factors",
1139
- "difficulty" : 8,
1159
+ "difficulty": 8,
1140
1160
  "topics": [
1141
- "Algorithms",
1142
- "Mathematics",
1143
- "Performance",
1144
- "Searching"
1161
+ "algorithms",
1162
+ "mathematics",
1163
+ "performance",
1164
+ "searching"
1145
1165
  ]
1146
1166
  },
1147
1167
  {
1148
- "uuid": "64de1776-d5c6-43fe-9abf-7e3aa08ae342",
1149
1168
  "slug": "twelve-days",
1169
+ "uuid": "64de1776-d5c6-43fe-9abf-7e3aa08ae342",
1150
1170
  "core": false,
1151
1171
  "unlocked_by": "bob",
1152
1172
  "difficulty": 4,
1153
1173
  "topics": [
1154
- "Control-flow (conditionals)",
1155
- "Control-flow (loops)",
1156
- "Polymorfism",
1157
- "Strings",
1158
- "Pattern recognition",
1159
- "Regular expressions"
1174
+ "control_flow_conditionals",
1175
+ "control_flow_loops",
1176
+ "pattern_recognition",
1177
+ "polymorfism",
1178
+ "regular_expressions",
1179
+ "strings"
1160
1180
  ]
1161
1181
  },
1162
1182
  {
1163
- "uuid": "ea9a9a3e-ae6a-470d-8bb4-2afead507f24",
1164
1183
  "slug": "complex-numbers",
1184
+ "uuid": "ea9a9a3e-ae6a-470d-8bb4-2afead507f24",
1165
1185
  "core": false,
1166
1186
  "unlocked_by": "space-age",
1167
1187
  "difficulty": 4,
1168
1188
  "topics": [
1169
- "Mathematics"
1189
+ "mathematics"
1170
1190
  ]
1171
1191
  },
1172
1192
  {
1173
- "uuid": "b902c746-60d1-4645-a5bc-dafadec0ef32",
1174
1193
  "slug": "isbn-verifier",
1194
+ "uuid": "b902c746-60d1-4645-a5bc-dafadec0ef32",
1175
1195
  "core": false,
1176
1196
  "unlocked_by": "bob",
1177
1197
  "difficulty": 4,
@@ -1183,99 +1203,98 @@
1183
1203
  ]
1184
1204
  },
1185
1205
  {
1186
- "uuid": "9c140fb7-cc8b-411b-b613-a0e0081a9c3f",
1187
1206
  "slug": "transpose",
1207
+ "uuid": "9c140fb7-cc8b-411b-b613-a0e0081a9c3f",
1188
1208
  "core": false,
1189
1209
  "unlocked_by": "matrix",
1190
1210
  "difficulty": 1,
1191
1211
  "topics": [
1192
- "loops",
1193
1212
  "arrays",
1194
1213
  "lists",
1214
+ "loops",
1195
1215
  "matrices",
1196
1216
  "strings",
1197
1217
  "text_formatting"
1198
1218
  ]
1199
1219
  },
1200
1220
  {
1201
- "uuid": "775ae0ec-8db7-4568-a188-963931cf5ee1",
1202
1221
  "slug": "protein-translation",
1222
+ "uuid": "775ae0ec-8db7-4568-a188-963931cf5ee1",
1203
1223
  "core": false,
1204
1224
  "unlocked_by": null,
1205
1225
  "difficulty": 1,
1206
1226
  "topics": [
1207
- "control-flow-(conditionals)",
1208
- "control-flow-(loops)",
1209
- "strings",
1210
- "algorithms"
1227
+ "algorithms",
1228
+ "control_flow_conditionals",
1229
+ "control_flow_loops",
1230
+ "strings"
1211
1231
  ]
1212
1232
  },
1213
1233
  {
1214
- "uuid": "c1abafcc-0d44-4fb5-afae-bff3ce2e1b39",
1215
1234
  "slug": "spiral-matrix",
1235
+ "uuid": "c1abafcc-0d44-4fb5-afae-bff3ce2e1b39",
1216
1236
  "core": false,
1217
1237
  "unlocked_by": "matrix",
1218
1238
  "difficulty": 4,
1219
1239
  "topics": [
1220
- "Control-flow (conditionals)",
1221
- "Control-flow (loops)",
1222
- "Data structures",
1223
- "Arrays",
1224
- "Matrices"
1240
+ "arrays",
1241
+ "control_flow_conditionals",
1242
+ "control_flow_loops",
1243
+ "data_structures",
1244
+ "matrices"
1225
1245
  ]
1226
1246
  },
1227
1247
  {
1228
- "uuid": "f8c6786e-bf93-4f35-b649-03f4e39bb094",
1229
1248
  "slug": "rectangles",
1249
+ "uuid": "f8c6786e-bf93-4f35-b649-03f4e39bb094",
1230
1250
  "core": false,
1231
1251
  "unlocked_by": "matrix",
1232
1252
  "difficulty": 4,
1233
1253
  "topics": [
1234
- "Control-flow (conditionals)",
1235
- "Control-flow (loops)",
1236
- "Arrays",
1237
- "Matrices",
1238
- "Strings"
1254
+ "arrays",
1255
+ "control_flow_conditionals",
1256
+ "control_flow_loops",
1257
+ "matrices",
1258
+ "strings"
1239
1259
  ]
1240
1260
  },
1241
1261
  {
1242
- "uuid": "34625b04-844e-41e3-b02b-3443b6b0b7cb",
1243
1262
  "slug": "rotational-cipher",
1263
+ "uuid": "34625b04-844e-41e3-b02b-3443b6b0b7cb",
1244
1264
  "core": false,
1245
1265
  "unlocked_by": "simple-cipher",
1246
1266
  "difficulty": 2,
1247
1267
  "topics": [
1248
- "Control-flow (conditionals)",
1249
- "Strings",
1250
- "Text formatting",
1251
- "Transforming"
1268
+ "control_flow_conditionals",
1269
+ "strings",
1270
+ "text_formatting",
1271
+ "transforming"
1252
1272
  ]
1253
1273
  },
1254
1274
  {
1255
- "uuid": "be6f3ab3-1593-4c2d-8a35-5f39c1d5c91f",
1256
1275
  "slug": "nucleotide-count",
1276
+ "uuid": "be6f3ab3-1593-4c2d-8a35-5f39c1d5c91f",
1257
1277
  "core": false,
1258
1278
  "unlocked_by": "rna-transcription",
1259
1279
  "difficulty": 4,
1260
1280
  "topics": [
1261
- "Control-flow (conditionals)",
1262
- "Control-flow (loops)",
1263
- "Strings",
1264
- "Arrays",
1265
- "Text formatting"
1281
+ "arrays",
1282
+ "control_flow_conditionals",
1283
+ "control_flow_loops",
1284
+ "strings",
1285
+ "text_formatting"
1266
1286
  ]
1267
1287
  },
1268
1288
  {
1269
- "uuid": "b28c34f4-f7af-47db-95c6-f920e020bbba",
1270
1289
  "slug": "armstrong-numbers",
1290
+ "uuid": "b28c34f4-f7af-47db-95c6-f920e020bbba",
1271
1291
  "core": false,
1272
1292
  "unlocked_by": null,
1273
1293
  "difficulty": 2,
1274
1294
  "topics": [
1275
- "mathematics",
1276
- "algorithms"
1295
+ "algorithms",
1296
+ "mathematics"
1277
1297
  ]
1278
1298
  }
1279
- ],
1280
- "foregone": []
1299
+ ]
1281
1300
  }