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,11 +1,14 @@
1
1
  {
2
2
  "language": "Python",
3
- "blurb": "Python is a clear and powerful object-oriented programming language with an elegant and easy-to-read syntax. It is ideal for prototyping and ad-hoc tasks, but also sees wide use in scientific computing, web development, and automation.",
4
3
  "active": true,
4
+ "blurb": "Python is a clear and powerful object-oriented programming language with an elegant and easy-to-read syntax. It is ideal for prototyping and ad-hoc tasks, but also sees wide use in scientific computing, web development, and automation.",
5
+ "foregone": [
6
+ "lens-person"
7
+ ],
5
8
  "exercises": [
6
9
  {
7
- "uuid": "f458c48a-4a05-4809-9168-8edd55179349",
8
10
  "slug": "hello-world",
11
+ "uuid": "f458c48a-4a05-4809-9168-8edd55179349",
9
12
  "core": true,
10
13
  "unlocked_by": null,
11
14
  "difficulty": 1,
@@ -16,20 +19,20 @@
16
19
  ]
17
20
  },
18
21
  {
19
- "uuid": "b6acda85-5f62-4d9c-bb4f-42b7a360355a",
20
22
  "slug": "leap",
23
+ "uuid": "b6acda85-5f62-4d9c-bb4f-42b7a360355a",
21
24
  "core": true,
22
25
  "unlocked_by": null,
23
26
  "difficulty": 1,
24
27
  "topics": [
25
- "conditionals",
26
28
  "booleans",
29
+ "conditionals",
27
30
  "logic"
28
31
  ]
29
32
  },
30
33
  {
31
- "uuid": "d39f86fe-db56-461c-8a93-d87058af8366",
32
34
  "slug": "reverse-string",
35
+ "uuid": "d39f86fe-db56-461c-8a93-d87058af8366",
33
36
  "core": false,
34
37
  "unlocked_by": null,
35
38
  "difficulty": 1,
@@ -38,96 +41,96 @@
38
41
  ]
39
42
  },
40
43
  {
41
- "uuid": "d1a98c79-d3cc-4035-baab-0e334d2b6a57",
42
44
  "slug": "isogram",
45
+ "uuid": "d1a98c79-d3cc-4035-baab-0e334d2b6a57",
43
46
  "core": false,
44
47
  "unlocked_by": "two-fer",
45
48
  "difficulty": 1,
46
49
  "topics": [
50
+ "algorithms",
47
51
  "conditionals",
48
52
  "loops",
49
- "strings",
50
- "algorithms"
53
+ "strings"
51
54
  ]
52
55
  },
53
56
  {
54
- "uuid": "bebf7ae6-1c35-48bc-926b-e053a975eb10",
55
57
  "slug": "pangram",
58
+ "uuid": "bebf7ae6-1c35-48bc-926b-e053a975eb10",
56
59
  "core": false,
57
60
  "unlocked_by": "hello-world",
58
61
  "difficulty": 1,
59
62
  "topics": [
60
- "loops",
61
- "conditionals",
62
- "strings",
63
63
  "algorithms",
64
+ "conditionals",
64
65
  "filtering",
65
- "logic"
66
+ "logic",
67
+ "loops",
68
+ "strings"
66
69
  ]
67
70
  },
68
71
  {
69
- "uuid": "ca7c5ef1-5135-4fb4-8e68-669ef0f2a51a",
70
72
  "slug": "rna-transcription",
73
+ "uuid": "ca7c5ef1-5135-4fb4-8e68-669ef0f2a51a",
71
74
  "core": false,
72
75
  "unlocked_by": null,
73
76
  "difficulty": 1,
74
77
  "topics": [
75
78
  "conditionals",
79
+ "logic",
76
80
  "loops",
77
81
  "maps",
78
82
  "strings",
79
- "logic",
80
83
  "transforming"
81
84
  ]
82
85
  },
83
86
  {
84
- "uuid": "7961c852-c87a-44b0-b152-efea3ac8555c",
85
87
  "slug": "isbn-verifier",
88
+ "uuid": "7961c852-c87a-44b0-b152-efea3ac8555c",
86
89
  "core": false,
87
90
  "unlocked_by": "bob",
88
91
  "difficulty": 1,
89
92
  "topics": [
90
- "type_conversion",
91
93
  "conditionals",
92
- "strings",
93
94
  "integers",
94
- "parsing"
95
+ "parsing",
96
+ "strings",
97
+ "type_conversion"
95
98
  ]
96
99
  },
97
100
  {
98
- "uuid": "8648fa0c-d85f-471b-a3ae-0f8c05222c89",
99
101
  "slug": "hamming",
102
+ "uuid": "8648fa0c-d85f-471b-a3ae-0f8c05222c89",
100
103
  "core": false,
101
104
  "unlocked_by": "hello-world",
102
105
  "difficulty": 1,
103
106
  "topics": [
107
+ "algorithms",
104
108
  "conditionals",
109
+ "filtering",
110
+ "logic",
105
111
  "loops",
106
112
  "sequences",
107
113
  "sets",
108
- "strings",
109
- "algorithms",
110
- "filtering",
111
- "logic"
114
+ "strings"
112
115
  ]
113
116
  },
114
117
  {
115
- "uuid": "04316811-0bc3-4377-8ff5-5a300ba41d61",
116
118
  "slug": "word-count",
119
+ "uuid": "04316811-0bc3-4377-8ff5-5a300ba41d61",
117
120
  "core": false,
118
121
  "unlocked_by": "bob",
119
122
  "difficulty": 3,
120
123
  "topics": [
121
- "strings",
122
124
  "algorithms",
123
125
  "logic",
124
126
  "pattern_recognition",
127
+ "strings",
125
128
  "text_formatting"
126
129
  ]
127
130
  },
128
131
  {
129
- "uuid": "22606e91-57f3-44cf-ab2d-94f6ee6402e8",
130
132
  "slug": "gigasecond",
133
+ "uuid": "22606e91-57f3-44cf-ab2d-94f6ee6402e8",
131
134
  "core": false,
132
135
  "unlocked_by": null,
133
136
  "difficulty": 1,
@@ -137,20 +140,20 @@
137
140
  ]
138
141
  },
139
142
  {
140
- "uuid": "009a80e2-7901-4d3b-9af2-cdcbcc0b49ae",
141
143
  "slug": "bob",
144
+ "uuid": "009a80e2-7901-4d3b-9af2-cdcbcc0b49ae",
142
145
  "core": true,
143
146
  "unlocked_by": null,
144
147
  "difficulty": 1,
145
148
  "topics": [
146
- "strings",
149
+ "conditionals",
147
150
  "equality",
148
- "conditionals"
151
+ "strings"
149
152
  ]
150
153
  },
151
154
  {
152
- "uuid": "22f937e5-52a7-4956-9dde-61c985251a6b",
153
155
  "slug": "yacht",
156
+ "uuid": "22f937e5-52a7-4956-9dde-61c985251a6b",
154
157
  "core": false,
155
158
  "unlocked_by": null,
156
159
  "difficulty": 1,
@@ -164,58 +167,58 @@
164
167
  ]
165
168
  },
166
169
  {
167
- "uuid": "505e7bdb-e18d-45fd-9849-0bf33492efd9",
168
170
  "slug": "run-length-encoding",
171
+ "uuid": "505e7bdb-e18d-45fd-9849-0bf33492efd9",
169
172
  "core": false,
170
173
  "unlocked_by": "markdown",
171
174
  "difficulty": 1,
172
175
  "topics": [
173
- "strings",
174
176
  "algorithms",
177
+ "strings",
175
178
  "text_formatting"
176
179
  ]
177
180
  },
178
181
  {
179
- "uuid": "a5aff23f-7829-403f-843a-d3312dca31e8",
180
182
  "slug": "meetup",
183
+ "uuid": "a5aff23f-7829-403f-843a-d3312dca31e8",
181
184
  "core": false,
182
185
  "unlocked_by": "list-ops",
183
186
  "difficulty": 1,
184
187
  "topics": [
185
- "strings",
186
188
  "conditionals",
187
189
  "dates",
188
190
  "parsing",
189
- "pattern_recognition"
191
+ "pattern_recognition",
192
+ "strings"
190
193
  ]
191
194
  },
192
195
  {
193
- "uuid": "e9b0defc-dac5-11e7-9296-cec278b6b50a",
194
196
  "slug": "armstrong-numbers",
197
+ "uuid": "e9b0defc-dac5-11e7-9296-cec278b6b50a",
195
198
  "core": false,
196
199
  "unlocked_by": "sum-of-multiples",
197
200
  "difficulty": 1,
198
201
  "topics": [
199
- "mathematics",
200
202
  "algorithms",
201
- "loops"
203
+ "loops",
204
+ "mathematics"
202
205
  ]
203
206
  },
204
207
  {
205
- "uuid": "4c408aab-80b9-475d-9c06-b01cd0fcd08f",
206
208
  "slug": "rotational-cipher",
209
+ "uuid": "4c408aab-80b9-475d-9c06-b01cd0fcd08f",
207
210
  "core": false,
208
211
  "unlocked_by": "bob",
209
212
  "difficulty": 1,
210
213
  "topics": [
211
- "strings",
212
214
  "logic",
213
- "loops"
215
+ "loops",
216
+ "strings"
214
217
  ]
215
218
  },
216
219
  {
217
- "uuid": "913b6099-d75a-4c27-8243-476081752c31",
218
220
  "slug": "difference-of-squares",
221
+ "uuid": "913b6099-d75a-4c27-8243-476081752c31",
219
222
  "core": false,
220
223
  "unlocked_by": "leap",
221
224
  "difficulty": 1,
@@ -224,47 +227,47 @@
224
227
  ]
225
228
  },
226
229
  {
227
- "uuid": "43eaf8bd-0b4d-4ea9-850a-773f013325ef",
228
230
  "slug": "anagram",
231
+ "uuid": "43eaf8bd-0b4d-4ea9-850a-773f013325ef",
229
232
  "core": false,
230
233
  "unlocked_by": "bob",
231
234
  "difficulty": 1,
232
235
  "topics": [
233
- "strings",
234
- "parsing",
236
+ "algorithms",
235
237
  "logic",
236
- "algorithms"
238
+ "parsing",
239
+ "strings"
237
240
  ]
238
241
  },
239
242
  {
240
- "uuid": "83627e35-4689-4d9b-a81b-284c2c084466",
241
243
  "slug": "allergies",
244
+ "uuid": "83627e35-4689-4d9b-a81b-284c2c084466",
242
245
  "core": true,
243
246
  "unlocked_by": null,
244
247
  "difficulty": 1,
245
248
  "topics": [
246
- "classes",
247
- "mathematics",
248
249
  "bitwise_operations",
249
- "enumerations"
250
+ "classes",
251
+ "enumerations",
252
+ "mathematics"
250
253
  ]
251
254
  },
252
255
  {
253
- "uuid": "aa4c2e85-b8f8-4309-9708-d8ff805054c2",
254
256
  "slug": "series",
257
+ "uuid": "aa4c2e85-b8f8-4309-9708-d8ff805054c2",
255
258
  "core": false,
256
259
  "unlocked_by": "sum-of-multiples",
257
260
  "difficulty": 1,
258
261
  "topics": [
259
262
  "algorithms",
260
263
  "arrays",
261
- "loops",
262
- "conditionals"
264
+ "conditionals",
265
+ "loops"
263
266
  ]
264
267
  },
265
268
  {
266
- "uuid": "ca474c47-57bb-4995-bf9a-b6937479de29",
267
269
  "slug": "robot-simulator",
270
+ "uuid": "ca474c47-57bb-4995-bf9a-b6937479de29",
268
271
  "core": false,
269
272
  "unlocked_by": "clock",
270
273
  "difficulty": 1,
@@ -273,13 +276,13 @@
273
276
  "classes",
274
277
  "conditionals",
275
278
  "loops",
276
- "variables",
277
- "tuples"
279
+ "tuples",
280
+ "variables"
278
281
  ]
279
282
  },
280
283
  {
281
- "uuid": "ad0192e6-7742-4922-a53e-791e25eb9ba3",
282
284
  "slug": "sieve",
285
+ "uuid": "ad0192e6-7742-4922-a53e-791e25eb9ba3",
283
286
  "core": false,
284
287
  "unlocked_by": "binary-search",
285
288
  "difficulty": 1,
@@ -292,8 +295,8 @@
292
295
  ]
293
296
  },
294
297
  {
295
- "uuid": "02b91a90-244d-479e-a039-0e1d328c0be9",
296
298
  "slug": "atbash-cipher",
299
+ "uuid": "02b91a90-244d-479e-a039-0e1d328c0be9",
297
300
  "core": false,
298
301
  "unlocked_by": "grade-school",
299
302
  "difficulty": 1,
@@ -305,8 +308,8 @@
305
308
  ]
306
309
  },
307
310
  {
308
- "uuid": "6e0caa0a-6a1a-4f03-bf0f-e07711f4b069",
309
311
  "slug": "sum-of-multiples",
312
+ "uuid": "6e0caa0a-6a1a-4f03-bf0f-e07711f4b069",
310
313
  "core": true,
311
314
  "unlocked_by": null,
312
315
  "difficulty": 1,
@@ -316,44 +319,44 @@
316
319
  ]
317
320
  },
318
321
  {
319
- "uuid": "038c7f7f-02f6-496f-9e16-9372621cc4cd",
320
322
  "slug": "acronym",
323
+ "uuid": "038c7f7f-02f6-496f-9e16-9372621cc4cd",
321
324
  "core": false,
322
325
  "unlocked_by": "two-fer",
323
326
  "difficulty": 1,
324
327
  "topics": [
325
- "strings",
326
- "regular_expressions"
328
+ "regular_expressions",
329
+ "strings"
327
330
  ]
328
331
  },
329
332
  {
330
- "uuid": "2f86ce8e-47c7-4858-89fc-e7729feb0f2f",
331
333
  "slug": "say",
334
+ "uuid": "2f86ce8e-47c7-4858-89fc-e7729feb0f2f",
332
335
  "core": false,
333
336
  "unlocked_by": "kindergarten-garden",
334
337
  "difficulty": 1,
335
338
  "topics": [
336
339
  "loops",
337
340
  "parsing",
338
- "transforming",
339
- "text_formatting"
341
+ "text_formatting",
342
+ "transforming"
340
343
  ]
341
344
  },
342
345
  {
343
- "uuid": "21624a3e-6e43-4c0e-94b0-dee5cdaaf2aa",
344
346
  "slug": "largest-series-product",
347
+ "uuid": "21624a3e-6e43-4c0e-94b0-dee5cdaaf2aa",
345
348
  "core": false,
346
349
  "unlocked_by": "leap",
347
350
  "difficulty": 1,
348
351
  "topics": [
349
- "loops",
352
+ "conditionals",
350
353
  "logic",
351
- "conditionals"
354
+ "loops"
352
355
  ]
353
356
  },
354
357
  {
355
- "uuid": "42a2916c-ef03-44ac-b6d8-7eda375352c2",
356
358
  "slug": "kindergarten-garden",
359
+ "uuid": "42a2916c-ef03-44ac-b6d8-7eda375352c2",
357
360
  "core": true,
358
361
  "unlocked_by": null,
359
362
  "difficulty": 1,
@@ -365,64 +368,64 @@
365
368
  ]
366
369
  },
367
370
  {
368
- "uuid": "aadde1a8-ed7a-4242-bfc0-6dddfd382cf3",
369
371
  "slug": "grade-school",
372
+ "uuid": "aadde1a8-ed7a-4242-bfc0-6dddfd382cf3",
370
373
  "core": true,
371
374
  "unlocked_by": null,
372
375
  "difficulty": 1,
373
376
  "topics": [
374
377
  "conditionals",
375
- "strings",
378
+ "filtering",
376
379
  "integers",
377
380
  "lists",
378
- "filtering",
379
- "sorting"
381
+ "sorting",
382
+ "strings"
380
383
  ]
381
384
  },
382
385
  {
383
- "uuid": "07481204-fe88-4aa2-995e-d40d1ae15070",
384
386
  "slug": "flatten-array",
387
+ "uuid": "07481204-fe88-4aa2-995e-d40d1ae15070",
385
388
  "core": false,
386
389
  "unlocked_by": "grade-school",
387
390
  "difficulty": 1,
388
391
  "topics": [
389
- "recursion",
390
- "lists",
391
392
  "algorithms",
393
+ "lists",
394
+ "recursion",
392
395
  "transforming"
393
396
  ]
394
397
  },
395
398
  {
396
- "uuid": "bffe2007-717a-44ee-b628-b9c86a5001e8",
397
399
  "slug": "roman-numerals",
400
+ "uuid": "bffe2007-717a-44ee-b628-b9c86a5001e8",
398
401
  "core": false,
399
402
  "unlocked_by": "list-ops",
400
403
  "difficulty": 1,
401
404
  "topics": [
402
405
  "conditionals",
403
- "loops",
404
406
  "integers",
405
- "strings",
406
407
  "logic",
407
- "mathematics"
408
+ "loops",
409
+ "mathematics",
410
+ "strings"
408
411
  ]
409
412
  },
410
413
  {
411
- "uuid": "f8303c4d-bbbb-495b-b61b-0f617f7c9a13",
412
414
  "slug": "space-age",
415
+ "uuid": "f8303c4d-bbbb-495b-b61b-0f617f7c9a13",
413
416
  "core": false,
414
417
  "unlocked_by": null,
415
418
  "difficulty": 1,
416
419
  "topics": [
417
- "mathematics",
420
+ "conditionals",
418
421
  "floating_point_numbers",
419
422
  "integers",
420
- "conditionals"
423
+ "mathematics"
421
424
  ]
422
425
  },
423
426
  {
424
- "uuid": "a24e6d34-9952-44f4-a0cd-02c7fedb4875",
425
427
  "slug": "grains",
428
+ "uuid": "a24e6d34-9952-44f4-a0cd-02c7fedb4875",
426
429
  "core": false,
427
430
  "unlocked_by": "leap",
428
431
  "difficulty": 1,
@@ -434,23 +437,23 @@
434
437
  ]
435
438
  },
436
439
  {
437
- "uuid": "34dde040-672e-472f-bf2e-b87b6f9933c0",
438
440
  "slug": "luhn",
441
+ "uuid": "34dde040-672e-472f-bf2e-b87b6f9933c0",
439
442
  "core": false,
440
443
  "unlocked_by": "markdown",
441
444
  "difficulty": 1,
442
445
  "topics": [
443
- "mathematics",
444
446
  "algorithms",
445
- "loops",
446
447
  "conditionals",
448
+ "loops",
449
+ "mathematics",
447
450
  "pattern_matching",
448
451
  "security"
449
452
  ]
450
453
  },
451
454
  {
452
- "uuid": "a3b24ef2-303a-494e-8804-e52a67ef406b",
453
455
  "slug": "etl",
456
+ "uuid": "a3b24ef2-303a-494e-8804-e52a67ef406b",
454
457
  "core": false,
455
458
  "unlocked_by": "grade-school",
456
459
  "difficulty": 1,
@@ -461,35 +464,35 @@
461
464
  ]
462
465
  },
463
466
  {
464
- "uuid": "41dd9178-76b4-4f78-b71a-b5ff8d12645b",
465
467
  "slug": "prime-factors",
468
+ "uuid": "41dd9178-76b4-4f78-b71a-b5ff8d12645b",
466
469
  "core": false,
467
470
  "unlocked_by": "leap",
468
471
  "difficulty": 1,
469
472
  "topics": [
470
- "mathematics",
471
473
  "algorithms",
474
+ "logic",
472
475
  "loops",
473
- "logic"
476
+ "mathematics"
474
477
  ]
475
478
  },
476
479
  {
477
- "uuid": "a5bc16da-8d55-4840-9523-686aebbaaa7e",
478
480
  "slug": "pig-latin",
481
+ "uuid": "a5bc16da-8d55-4840-9523-686aebbaaa7e",
479
482
  "core": false,
480
483
  "unlocked_by": "book-store",
481
484
  "difficulty": 1,
482
485
  "topics": [
483
- "strings",
484
486
  "conditionals",
485
487
  "loops",
486
488
  "regular_expressions",
489
+ "strings",
487
490
  "text_formatting"
488
491
  ]
489
492
  },
490
493
  {
491
- "uuid": "09b2f396-00d7-4d89-ac47-5c444e00dd99",
492
494
  "slug": "simple-cipher",
495
+ "uuid": "09b2f396-00d7-4d89-ac47-5c444e00dd99",
493
496
  "core": false,
494
497
  "unlocked_by": "list-ops",
495
498
  "difficulty": 1,
@@ -500,21 +503,21 @@
500
503
  ]
501
504
  },
502
505
  {
503
- "uuid": "d081446b-f26b-41a2-ab7f-dd7f6736ecfe",
504
506
  "slug": "scrabble-score",
507
+ "uuid": "d081446b-f26b-41a2-ab7f-dd7f6736ecfe",
505
508
  "core": false,
506
509
  "unlocked_by": "sum-of-multiples",
507
510
  "difficulty": 1,
508
511
  "topics": [
509
- "loops",
510
- "strings",
511
512
  "games",
512
- "maps"
513
+ "loops",
514
+ "maps",
515
+ "strings"
513
516
  ]
514
517
  },
515
518
  {
516
- "uuid": "e8685468-8006-480f-87c6-6295700def38",
517
519
  "slug": "crypto-square",
520
+ "uuid": "e8685468-8006-480f-87c6-6295700def38",
518
521
  "core": false,
519
522
  "unlocked_by": "allergies",
520
523
  "difficulty": 1,
@@ -525,109 +528,109 @@
525
528
  ]
526
529
  },
527
530
  {
528
- "uuid": "cc5eb848-09bc-458c-8fb6-3a17687cb4eb",
529
531
  "slug": "sublist",
532
+ "uuid": "cc5eb848-09bc-458c-8fb6-3a17687cb4eb",
530
533
  "core": false,
531
534
  "unlocked_by": "grade-school",
532
535
  "difficulty": 1,
533
536
  "topics": [
534
537
  "lists",
535
- "searching",
536
- "loops"
538
+ "loops",
539
+ "searching"
537
540
  ]
538
541
  },
539
542
  {
540
- "uuid": "7b53865e-a981-46e0-8e47-6f8e1f3854b3",
541
543
  "slug": "pythagorean-triplet",
544
+ "uuid": "7b53865e-a981-46e0-8e47-6f8e1f3854b3",
542
545
  "core": false,
543
546
  "unlocked_by": "leap",
544
547
  "difficulty": 1,
545
548
  "topics": [
549
+ "algorithms",
546
550
  "conditionals",
547
- "equality",
548
- "loops",
549
- "variables",
550
- "lists",
551
551
  "enumerations",
552
- "sets",
553
- "tuples",
554
- "algorithms",
552
+ "equality",
555
553
  "filtering",
554
+ "lists",
556
555
  "logic",
556
+ "loops",
557
557
  "mathematics",
558
- "searching"
558
+ "searching",
559
+ "sets",
560
+ "tuples",
561
+ "variables"
559
562
  ]
560
563
  },
561
564
  {
562
- "uuid": "77ee3b0e-a4e9-4257-bcfc-ff2c8f1477ab",
563
565
  "slug": "circular-buffer",
566
+ "uuid": "77ee3b0e-a4e9-4257-bcfc-ff2c8f1477ab",
564
567
  "core": false,
565
568
  "unlocked_by": "markdown",
566
569
  "difficulty": 1,
567
570
  "topics": [
568
571
  "algorithms",
569
- "conditionals",
570
572
  "classes",
573
+ "conditionals",
571
574
  "exception_handling",
572
575
  "queues"
573
576
  ]
574
577
  },
575
578
  {
576
- "uuid": "bf30b17f-6b71-4bb5-815a-88f8181b89ae",
577
579
  "slug": "robot-name",
580
+ "uuid": "bf30b17f-6b71-4bb5-815a-88f8181b89ae",
578
581
  "core": false,
579
582
  "unlocked_by": "hello-world",
580
583
  "difficulty": 1,
581
584
  "topics": [
585
+ "pattern_matching",
586
+ "randomness",
582
587
  "regular_expressions",
583
588
  "strings",
584
- "randomness",
585
- "text_formatting",
586
- "pattern_matching"
589
+ "text_formatting"
587
590
  ]
588
591
  },
589
592
  {
590
- "uuid": "b564927a-f08f-4287-9e8d-9bd5daa7081f",
591
593
  "slug": "matrix",
594
+ "uuid": "b564927a-f08f-4287-9e8d-9bd5daa7081f",
592
595
  "core": false,
593
596
  "unlocked_by": "kindergarten-garden",
594
597
  "difficulty": 1,
595
598
  "topics": [
596
- "loops",
597
- "type_conversion",
598
599
  "integers",
599
- "matrices"
600
+ "loops",
601
+ "matrices",
602
+ "type_conversion"
600
603
  ]
601
604
  },
602
605
  {
603
- "uuid": "6434cc19-1ea3-43dd-9580-72267ec76b80",
604
606
  "slug": "rail-fence-cipher",
607
+ "uuid": "6434cc19-1ea3-43dd-9580-72267ec76b80",
605
608
  "core": false,
606
609
  "unlocked_by": "book-store",
607
610
  "difficulty": 1,
608
611
  "topics": [
609
612
  "algorithms",
610
613
  "cryptography",
611
- "text_formatting",
612
- "lists"
614
+ "lists",
615
+ "text_formatting"
613
616
  ]
614
617
  },
615
618
  {
616
- "uuid": "a20924d2-fe6d-4714-879f-3239feb9d2f2",
617
619
  "slug": "nth-prime",
620
+ "uuid": "a20924d2-fe6d-4714-879f-3239feb9d2f2",
618
621
  "core": false,
619
622
  "unlocked_by": "book-store",
620
623
  "difficulty": 1,
621
624
  "topics": [
622
625
  "algorithms",
623
- "mathematics",
626
+ "lists",
624
627
  "loops",
625
- "lists"
628
+ "mathematics"
626
629
  ]
627
630
  },
628
631
  {
629
- "uuid": "71c96c5f-f3b6-4358-a9c6-fc625e2edda2",
630
632
  "slug": "saddle-points",
633
+ "uuid": "71c96c5f-f3b6-4358-a9c6-fc625e2edda2",
631
634
  "core": true,
632
635
  "unlocked_by": null,
633
636
  "difficulty": 1,
@@ -642,144 +645,144 @@
642
645
  ]
643
646
  },
644
647
  {
645
- "uuid": "b7984882-65df-4993-a878-7872c776592a",
646
648
  "slug": "beer-song",
649
+ "uuid": "b7984882-65df-4993-a878-7872c776592a",
647
650
  "core": false,
648
651
  "unlocked_by": "bob",
649
652
  "difficulty": 1,
650
653
  "topics": [
651
- "loops",
652
654
  "conditionals",
655
+ "loops",
653
656
  "strings"
654
657
  ]
655
658
  },
656
659
  {
657
- "uuid": "c23ae7a3-3095-4608-8720-ee9ce8938f26",
658
660
  "slug": "perfect-numbers",
661
+ "uuid": "c23ae7a3-3095-4608-8720-ee9ce8938f26",
659
662
  "core": false,
660
663
  "unlocked_by": "leap",
661
664
  "difficulty": 1,
662
665
  "topics": [
663
666
  "algorithms",
667
+ "logic",
664
668
  "loops",
665
- "mathematics",
666
- "logic"
669
+ "mathematics"
667
670
  ]
668
671
  },
669
672
  {
670
- "uuid": "0d5b2a0e-31ff-4c8c-a155-0406f7dca3ae",
671
673
  "slug": "secret-handshake",
674
+ "uuid": "0d5b2a0e-31ff-4c8c-a155-0406f7dca3ae",
672
675
  "core": false,
673
676
  "unlocked_by": "sum-of-multiples",
674
677
  "difficulty": 1,
675
678
  "topics": [
679
+ "bitwise_operations",
676
680
  "conditionals",
677
- "loops",
678
- "lists",
679
681
  "integers",
680
- "bitwise_operations",
682
+ "lists",
681
683
  "logic",
684
+ "loops",
682
685
  "mathematics",
683
686
  "transforming"
684
687
  ]
685
688
  },
686
689
  {
687
- "uuid": "d41238ce-359c-4a9a-81ea-ca5d2c4bb50d",
688
690
  "slug": "twelve-days",
691
+ "uuid": "d41238ce-359c-4a9a-81ea-ca5d2c4bb50d",
689
692
  "core": false,
690
693
  "unlocked_by": "bob",
691
694
  "difficulty": 1,
692
695
  "topics": [
693
- "strings",
694
696
  "lists",
697
+ "strings",
695
698
  "text_formatting"
696
699
  ]
697
700
  },
698
701
  {
699
- "uuid": "fa795dcc-d390-4e98-880c-6e8e638485e3",
700
702
  "slug": "palindrome-products",
703
+ "uuid": "fa795dcc-d390-4e98-880c-6e8e638485e3",
701
704
  "core": false,
702
705
  "unlocked_by": "saddle-points",
703
706
  "difficulty": 1,
704
707
  "topics": [
705
- "mathematics",
706
- "loops"
708
+ "loops",
709
+ "mathematics"
707
710
  ]
708
711
  },
709
712
  {
710
- "uuid": "45229a7c-6703-4240-8287-16645881a043",
711
713
  "slug": "bracket-push",
714
+ "uuid": "45229a7c-6703-4240-8287-16645881a043",
712
715
  "core": false,
713
716
  "unlocked_by": "bob",
714
717
  "difficulty": 1,
715
718
  "topics": [
719
+ "parsing",
716
720
  "recursion",
717
- "strings",
718
721
  "stacks",
719
- "parsing"
722
+ "strings"
720
723
  ]
721
724
  },
722
725
  {
723
- "uuid": "7e768b54-4591-4a30-9ddb-66ca13400ca3",
724
726
  "slug": "minesweeper",
727
+ "uuid": "7e768b54-4591-4a30-9ddb-66ca13400ca3",
725
728
  "core": false,
726
729
  "unlocked_by": "kindergarten-garden",
727
730
  "difficulty": 1,
728
731
  "topics": [
732
+ "games",
729
733
  "lists",
730
- "parsing",
731
- "transforming",
732
734
  "loops",
733
- "games"
735
+ "parsing",
736
+ "transforming"
734
737
  ]
735
738
  },
736
739
  {
737
- "uuid": "b280c252-5320-4e53-8294-1385d564eb02",
738
740
  "slug": "queen-attack",
741
+ "uuid": "b280c252-5320-4e53-8294-1385d564eb02",
739
742
  "core": false,
740
743
  "unlocked_by": "clock",
741
744
  "difficulty": 1,
742
745
  "topics": [
743
- "exception_handling",
744
746
  "arrays",
745
- "matrices",
747
+ "exception_handling",
746
748
  "games",
747
749
  "logic",
748
- "mathematics"
750
+ "mathematics",
751
+ "matrices"
749
752
  ]
750
753
  },
751
754
  {
752
- "uuid": "af50bb9a-e400-49ce-966f-016c31720be1",
753
755
  "slug": "wordy",
756
+ "uuid": "af50bb9a-e400-49ce-966f-016c31720be1",
754
757
  "core": false,
755
758
  "unlocked_by": "kindergarten-garden",
756
759
  "difficulty": 1,
757
760
  "topics": [
758
761
  "logic",
762
+ "mathematics",
759
763
  "parsing",
760
764
  "pattern_matching",
761
- "mathematics",
762
765
  "regular_expressions",
763
766
  "transforming",
764
767
  "type_conversion"
765
768
  ]
766
769
  },
767
770
  {
768
- "uuid": "f384c6f8-987d-41a2-b504-e50506585526",
769
771
  "slug": "phone-number",
772
+ "uuid": "f384c6f8-987d-41a2-b504-e50506585526",
770
773
  "core": false,
771
774
  "unlocked_by": "sum-of-multiples",
772
775
  "difficulty": 1,
773
776
  "topics": [
774
- "pattern_matching",
775
777
  "conditionals",
776
- "strings",
777
- "regular_expressions"
778
+ "pattern_matching",
779
+ "regular_expressions",
780
+ "strings"
778
781
  ]
779
782
  },
780
783
  {
781
- "uuid": "98ca48ed-5818-442c-bce1-308c8b3b3b77",
782
784
  "slug": "ocr-numbers",
785
+ "uuid": "98ca48ed-5818-442c-bce1-308c8b3b3b77",
783
786
  "core": false,
784
787
  "unlocked_by": "kindergarten-garden",
785
788
  "difficulty": 1,
@@ -790,91 +793,91 @@
790
793
  ]
791
794
  },
792
795
  {
793
- "uuid": "7c2e93ae-d265-4481-b583-a496608c6031",
794
796
  "slug": "house",
797
+ "uuid": "7c2e93ae-d265-4481-b583-a496608c6031",
795
798
  "core": false,
796
799
  "unlocked_by": "allergies",
797
800
  "difficulty": 1,
798
801
  "topics": [
802
+ "pattern_recognition",
799
803
  "recursion",
800
804
  "strings",
801
- "pattern_recognition",
802
805
  "text_formatting"
803
806
  ]
804
807
  },
805
808
  {
806
- "uuid": "f0bc144f-3226-4e53-93ee-e60316b29e31",
807
809
  "slug": "triangle",
810
+ "uuid": "f0bc144f-3226-4e53-93ee-e60316b29e31",
808
811
  "core": false,
809
812
  "unlocked_by": "leap",
810
813
  "difficulty": 1,
811
814
  "topics": [
812
- "conditionals",
813
- "pattern_matching",
814
815
  "classes",
816
+ "conditionals",
815
817
  "mathematics",
816
- "object_oriented_programming"
818
+ "object_oriented_programming",
819
+ "pattern_matching"
817
820
  ]
818
821
  },
819
822
  {
820
- "uuid": "a9c2fbda-a1e4-42dd-842f-4de5bb361b91",
821
823
  "slug": "dot-dsl",
824
+ "uuid": "a9c2fbda-a1e4-42dd-842f-4de5bb361b91",
822
825
  "core": false,
823
826
  "unlocked_by": "clock",
824
827
  "difficulty": 5,
825
828
  "topics": [
826
- "equality",
827
829
  "classes",
828
- "lists",
829
830
  "domain_specific_languages",
831
+ "equality",
830
832
  "graphs",
833
+ "lists",
831
834
  "object_oriented_programming",
832
835
  "test_driven_development",
833
836
  "transforming"
834
837
  ]
835
838
  },
836
839
  {
837
- "uuid": "dc6e61a2-e9b9-4406-ba5c-188252afbba1",
838
840
  "slug": "transpose",
841
+ "uuid": "dc6e61a2-e9b9-4406-ba5c-188252afbba1",
839
842
  "core": false,
840
843
  "unlocked_by": "markdown",
841
844
  "difficulty": 1,
842
845
  "topics": [
843
- "strings",
844
846
  "algorithms",
847
+ "strings",
845
848
  "transforming"
846
849
  ]
847
850
  },
848
851
  {
849
- "uuid": "aeaed0e4-0973-4035-8bc5-07480849048f",
850
852
  "slug": "tree-building",
853
+ "uuid": "aeaed0e4-0973-4035-8bc5-07480849048f",
851
854
  "core": false,
852
855
  "unlocked_by": "allergies",
853
856
  "difficulty": 3,
854
857
  "topics": [
858
+ "maps",
859
+ "records",
855
860
  "refactoring",
856
861
  "sorting",
857
- "trees",
858
- "records",
859
- "maps"
862
+ "trees"
860
863
  ]
861
864
  },
862
865
  {
863
- "uuid": "dcc0ee26-e384-4bd4-8c4b-613fa0bb8188",
864
866
  "slug": "poker",
867
+ "uuid": "dcc0ee26-e384-4bd4-8c4b-613fa0bb8188",
865
868
  "core": false,
866
869
  "unlocked_by": "kindergarten-garden",
867
870
  "difficulty": 1,
868
871
  "topics": [
869
- "lists",
870
872
  "conditionals",
873
+ "lists",
871
874
  "loops",
872
875
  "parsing"
873
876
  ]
874
877
  },
875
878
  {
876
- "uuid": "7e1d90d5-dbc9-47e0-8e26-c3ff83b73c2b",
877
879
  "slug": "zebra-puzzle",
880
+ "uuid": "7e1d90d5-dbc9-47e0-8e26-c3ff83b73c2b",
878
881
  "core": false,
879
882
  "unlocked_by": "book-store",
880
883
  "difficulty": 1,
@@ -883,8 +886,8 @@
883
886
  ]
884
887
  },
885
888
  {
886
- "uuid": "4bebdd8d-a032-4993-85c5-7cc74fc89312",
887
889
  "slug": "rectangles",
890
+ "uuid": "4bebdd8d-a032-4993-85c5-7cc74fc89312",
888
891
  "core": false,
889
892
  "unlocked_by": "kindergarten-garden",
890
893
  "difficulty": 1,
@@ -895,100 +898,100 @@
895
898
  ]
896
899
  },
897
900
  {
898
- "uuid": "a8288e93-93c5-4e0f-896c-2a376f6f6e5e",
899
901
  "slug": "binary-search",
902
+ "uuid": "a8288e93-93c5-4e0f-896c-2a376f6f6e5e",
900
903
  "core": true,
901
904
  "unlocked_by": null,
902
905
  "difficulty": 1,
903
906
  "topics": [
904
907
  "algorithms",
905
- "searching",
906
- "lists",
907
908
  "conditionals",
908
- "loops"
909
+ "lists",
910
+ "loops",
911
+ "searching"
909
912
  ]
910
913
  },
911
914
  {
912
- "uuid": "818c6472-b734-4ff4-8016-ce540141faec",
913
915
  "slug": "list-ops",
916
+ "uuid": "818c6472-b734-4ff4-8016-ce540141faec",
914
917
  "core": true,
915
918
  "unlocked_by": null,
916
919
  "difficulty": 1,
917
920
  "topics": [
918
- "variables",
921
+ "callbacks",
922
+ "conditionals",
923
+ "filtering",
924
+ "functional_programming",
919
925
  "lists",
920
926
  "loops",
921
- "filtering",
922
927
  "searching",
923
- "conditionals",
924
- "callbacks",
925
- "functional_programming"
928
+ "variables"
926
929
  ]
927
930
  },
928
931
  {
929
- "uuid": "4899b2ef-675f-4d14-b68a-1a457de91276",
930
932
  "slug": "book-store",
933
+ "uuid": "4899b2ef-675f-4d14-b68a-1a457de91276",
931
934
  "core": true,
932
935
  "unlocked_by": null,
933
936
  "difficulty": 1,
934
937
  "topics": [
935
- "loops",
936
938
  "lists",
939
+ "loops",
937
940
  "recursion"
938
941
  ]
939
942
  },
940
943
  {
941
- "uuid": "4c6edc8a-7bc0-4386-a653-d1091fe49301",
942
944
  "slug": "simple-linked-list",
945
+ "uuid": "4c6edc8a-7bc0-4386-a653-d1091fe49301",
943
946
  "core": false,
944
947
  "unlocked_by": "clock",
945
948
  "difficulty": 1,
946
949
  "topics": [
947
- "lists",
948
950
  "algorithms",
949
- "conditionals"
951
+ "conditionals",
952
+ "lists"
950
953
  ]
951
954
  },
952
955
  {
953
- "uuid": "ca7a8b16-e5d5-4211-84f0-2f8e35b4a665",
954
956
  "slug": "linked-list",
957
+ "uuid": "ca7a8b16-e5d5-4211-84f0-2f8e35b4a665",
955
958
  "core": false,
956
959
  "unlocked_by": "clock",
957
960
  "difficulty": 3,
958
961
  "topics": [
959
- "lists",
960
962
  "algorithms",
961
- "conditionals"
963
+ "conditionals",
964
+ "lists"
962
965
  ]
963
966
  },
964
967
  {
965
- "uuid": "1d21cd68-10ac-427d-be6d-77152bceacc4",
966
968
  "slug": "rational-numbers",
969
+ "uuid": "1d21cd68-10ac-427d-be6d-77152bceacc4",
967
970
  "core": false,
968
971
  "unlocked_by": null,
969
972
  "difficulty": 5,
970
973
  "topics": [
971
- "equality",
972
974
  "classes",
975
+ "equality",
973
976
  "floating_point_numbers",
974
977
  "mathematics"
975
978
  ]
976
979
  },
977
980
  {
978
- "uuid": "a7bc6837-59e4-46a1-89a2-a5aa44f5e66e",
979
981
  "slug": "diamond",
982
+ "uuid": "a7bc6837-59e4-46a1-89a2-a5aa44f5e66e",
980
983
  "core": false,
981
984
  "unlocked_by": "saddle-points",
982
985
  "difficulty": 1,
983
986
  "topics": [
984
- "strings",
985
987
  "lists",
986
- "loops"
988
+ "loops",
989
+ "strings"
987
990
  ]
988
991
  },
989
992
  {
990
- "uuid": "aa4332bd-fc38-47a4-8bff-e1b660798418",
991
993
  "slug": "variable-length-quantity",
994
+ "uuid": "aa4332bd-fc38-47a4-8bff-e1b660798418",
992
995
  "core": false,
993
996
  "unlocked_by": "allergies",
994
997
  "difficulty": 1,
@@ -999,8 +1002,8 @@
999
1002
  ]
1000
1003
  },
1001
1004
  {
1002
- "uuid": "a2ff75f9-8b2c-4c4b-975d-913711def9ab",
1003
1005
  "slug": "all-your-base",
1006
+ "uuid": "a2ff75f9-8b2c-4c4b-975d-913711def9ab",
1004
1007
  "core": false,
1005
1008
  "unlocked_by": "list-ops",
1006
1009
  "difficulty": 4,
@@ -1010,34 +1013,34 @@
1010
1013
  ]
1011
1014
  },
1012
1015
  {
1013
- "uuid": "459fda78-851e-4bb0-a416-953528f46bd7",
1014
1016
  "slug": "clock",
1017
+ "uuid": "459fda78-851e-4bb0-a416-953528f46bd7",
1015
1018
  "core": true,
1016
1019
  "unlocked_by": null,
1017
1020
  "difficulty": 2,
1018
1021
  "topics": [
1019
1022
  "classes",
1020
- "time",
1021
- "mathematics",
1022
1023
  "logic",
1023
- "text_formatting"
1024
+ "mathematics",
1025
+ "text_formatting",
1026
+ "time"
1024
1027
  ]
1025
1028
  },
1026
1029
  {
1027
- "uuid": "ecc97fc6-2e72-4325-9b67-b56c83b13a91",
1028
1030
  "slug": "grep",
1031
+ "uuid": "ecc97fc6-2e72-4325-9b67-b56c83b13a91",
1029
1032
  "core": false,
1030
1033
  "unlocked_by": "markdown",
1031
1034
  "difficulty": 4,
1032
1035
  "topics": [
1033
1036
  "files",
1034
- "text_formatting",
1035
- "searching"
1037
+ "searching",
1038
+ "text_formatting"
1036
1039
  ]
1037
1040
  },
1038
1041
  {
1039
- "uuid": "ca970fee-71b4-41e1-a5c3-b23bf574eb33",
1040
1042
  "slug": "bowling",
1043
+ "uuid": "ca970fee-71b4-41e1-a5c3-b23bf574eb33",
1041
1044
  "core": false,
1042
1045
  "unlocked_by": "markdown",
1043
1046
  "difficulty": 5,
@@ -1048,78 +1051,78 @@
1048
1051
  ]
1049
1052
  },
1050
1053
  {
1051
- "uuid": "dc2917d5-aaa9-43d9-b9f4-a32919fdbe18",
1052
1054
  "slug": "word-search",
1055
+ "uuid": "dc2917d5-aaa9-43d9-b9f4-a32919fdbe18",
1053
1056
  "core": false,
1054
1057
  "unlocked_by": "markdown",
1055
1058
  "difficulty": 6,
1056
1059
  "topics": [
1057
- "strings",
1058
- "searching"
1060
+ "searching",
1061
+ "strings"
1059
1062
  ]
1060
1063
  },
1061
1064
  {
1062
- "uuid": "66466141-485c-470d-b73b-0a3d5a957c3d",
1063
1065
  "slug": "alphametics",
1066
+ "uuid": "66466141-485c-470d-b73b-0a3d5a957c3d",
1064
1067
  "core": false,
1065
1068
  "unlocked_by": "book-store",
1066
1069
  "difficulty": 6,
1067
1070
  "topics": [
1068
- "mathematics",
1071
+ "conditionals",
1069
1072
  "logic",
1070
- "conditionals"
1073
+ "mathematics"
1071
1074
  ]
1072
1075
  },
1073
1076
  {
1074
- "uuid": "49377a3f-38ba-4d61-b94c-a54cfc9034d0",
1075
1077
  "slug": "tournament",
1078
+ "uuid": "49377a3f-38ba-4d61-b94c-a54cfc9034d0",
1076
1079
  "core": false,
1077
1080
  "unlocked_by": "kindergarten-garden",
1078
1081
  "difficulty": 1,
1079
1082
  "topics": [
1083
+ "conditionals",
1080
1084
  "loops",
1081
1085
  "maps",
1082
- "parsing",
1083
- "conditionals"
1086
+ "parsing"
1084
1087
  ]
1085
1088
  },
1086
1089
  {
1087
- "uuid": "8cd58325-61fc-46fd-85f9-425b4c41f3de",
1088
1090
  "slug": "scale-generator",
1091
+ "uuid": "8cd58325-61fc-46fd-85f9-425b4c41f3de",
1089
1092
  "core": false,
1090
1093
  "unlocked_by": "kindergarten-garden",
1091
1094
  "difficulty": 3,
1092
1095
  "topics": [
1093
- "strings",
1094
- "pattern_matching"
1096
+ "pattern_matching",
1097
+ "strings"
1095
1098
  ]
1096
1099
  },
1097
1100
  {
1098
- "uuid": "c89243f3-703e-4fe0-8e43-f200eedf2825",
1099
1101
  "slug": "protein-translation",
1102
+ "uuid": "c89243f3-703e-4fe0-8e43-f200eedf2825",
1100
1103
  "core": false,
1101
1104
  "unlocked_by": "two-fer",
1102
1105
  "difficulty": 3,
1103
1106
  "topics": [
1104
- "strings",
1105
- "pattern_matching"
1107
+ "pattern_matching",
1108
+ "strings"
1106
1109
  ]
1107
1110
  },
1108
1111
  {
1109
- "uuid": "889df88a-767d-490f-92c4-552d8ec9de34",
1110
1112
  "slug": "change",
1113
+ "uuid": "889df88a-767d-490f-92c4-552d8ec9de34",
1111
1114
  "core": false,
1112
1115
  "unlocked_by": "binary-search",
1113
1116
  "difficulty": 4,
1114
1117
  "topics": [
1115
- "loops",
1118
+ "algorithms",
1116
1119
  "arrays",
1117
- "algorithms"
1120
+ "loops"
1118
1121
  ]
1119
1122
  },
1120
1123
  {
1121
- "uuid": "4177de10-f767-4306-b45d-5e9c08ef4753",
1122
1124
  "slug": "two-fer",
1125
+ "uuid": "4177de10-f767-4306-b45d-5e9c08ef4753",
1123
1126
  "core": true,
1124
1127
  "unlocked_by": null,
1125
1128
  "difficulty": 1,
@@ -1130,8 +1133,8 @@
1130
1133
  ]
1131
1134
  },
1132
1135
  {
1133
- "uuid": "f5503274-ac23-11e7-abc4-cec278b6b50a",
1134
1136
  "slug": "connect",
1137
+ "uuid": "f5503274-ac23-11e7-abc4-cec278b6b50a",
1135
1138
  "core": false,
1136
1139
  "unlocked_by": "kindergarten-garden",
1137
1140
  "difficulty": 1,
@@ -1141,8 +1144,8 @@
1141
1144
  ]
1142
1145
  },
1143
1146
  {
1144
- "uuid": "33f689ee-1d9c-4908-a71c-f84bff3510df",
1145
1147
  "slug": "collatz-conjecture",
1148
+ "uuid": "33f689ee-1d9c-4908-a71c-f84bff3510df",
1146
1149
  "core": false,
1147
1150
  "unlocked_by": "sum-of-multiples",
1148
1151
  "difficulty": 1,
@@ -1152,33 +1155,33 @@
1152
1155
  ]
1153
1156
  },
1154
1157
  {
1155
- "uuid": "d4ddeb18-ac22-11e7-abc4-cec278b6b50a",
1156
1158
  "slug": "go-counting",
1159
+ "uuid": "d4ddeb18-ac22-11e7-abc4-cec278b6b50a",
1157
1160
  "core": false,
1158
1161
  "unlocked_by": "saddle-points",
1159
1162
  "difficulty": 4,
1160
1163
  "topics": [
1161
- "parsing",
1162
- "tuples",
1163
1164
  "classes",
1164
- "control-flow"
1165
+ "control_flow",
1166
+ "parsing",
1167
+ "tuples"
1165
1168
  ]
1166
1169
  },
1167
1170
  {
1168
- "uuid": "7f4d5743-7ab8-42ca-b393-767f7e9a4e97",
1169
1171
  "slug": "complex-numbers",
1172
+ "uuid": "7f4d5743-7ab8-42ca-b393-767f7e9a4e97",
1170
1173
  "core": false,
1171
1174
  "unlocked_by": "leap",
1172
1175
  "difficulty": 6,
1173
1176
  "topics": [
1174
- "tuples",
1177
+ "equality",
1175
1178
  "mathematics",
1176
- "equality"
1179
+ "tuples"
1177
1180
  ]
1178
1181
  },
1179
1182
  {
1180
- "uuid": "92e2d5f8-7d8a-4e81-a55c-52fa6be80c74",
1181
1183
  "slug": "diffie-hellman",
1184
+ "uuid": "92e2d5f8-7d8a-4e81-a55c-52fa6be80c74",
1182
1185
  "core": false,
1183
1186
  "unlocked_by": "book-store",
1184
1187
  "difficulty": 7,
@@ -1187,21 +1190,21 @@
1187
1190
  ]
1188
1191
  },
1189
1192
  {
1190
- "uuid": "6f530d0c-d13e-4270-b120-e42c16691a66",
1191
1193
  "slug": "two-bucket",
1194
+ "uuid": "6f530d0c-d13e-4270-b120-e42c16691a66",
1192
1195
  "core": false,
1193
1196
  "unlocked_by": "saddle-points",
1194
1197
  "difficulty": 5,
1195
1198
  "topics": [
1196
1199
  "algorithms",
1197
- "loops",
1198
1200
  "conditionals",
1199
- "control-flow"
1201
+ "control_flow",
1202
+ "loops"
1200
1203
  ]
1201
1204
  },
1202
1205
  {
1203
- "uuid": "88610b9a-6d3e-4924-a092-6d2f907ed4e2",
1204
1206
  "slug": "markdown",
1207
+ "uuid": "88610b9a-6d3e-4924-a092-6d2f907ed4e2",
1205
1208
  "core": true,
1206
1209
  "unlocked_by": null,
1207
1210
  "difficulty": 3,
@@ -1211,8 +1214,8 @@
1211
1214
  ]
1212
1215
  },
1213
1216
  {
1214
- "uuid": "14e1dfe3-a45c-40c1-bf61-2e4f0cca5579",
1215
1217
  "slug": "forth",
1218
+ "uuid": "14e1dfe3-a45c-40c1-bf61-2e4f0cca5579",
1216
1219
  "core": false,
1217
1220
  "unlocked_by": "markdown",
1218
1221
  "difficulty": 5,
@@ -1222,20 +1225,20 @@
1222
1225
  ]
1223
1226
  },
1224
1227
  {
1225
- "uuid": "f229746e-5ea9-4774-b3e0-9b9c2ebf9558",
1226
1228
  "slug": "food-chain",
1229
+ "uuid": "f229746e-5ea9-4774-b3e0-9b9c2ebf9558",
1227
1230
  "core": false,
1228
1231
  "unlocked_by": "allergies",
1229
1232
  "difficulty": 4,
1230
1233
  "topics": [
1231
1234
  "algorithms",
1232
- "loops",
1233
- "conditionals"
1235
+ "conditionals",
1236
+ "loops"
1234
1237
  ]
1235
1238
  },
1236
1239
  {
1237
- "uuid": "569210ea-71c1-4fd2-941e-6bf0d953019e",
1238
1240
  "slug": "zipper",
1241
+ "uuid": "569210ea-71c1-4fd2-941e-6bf0d953019e",
1239
1242
  "core": false,
1240
1243
  "unlocked_by": "markdown",
1241
1244
  "difficulty": 8,
@@ -1246,8 +1249,8 @@
1246
1249
  ]
1247
1250
  },
1248
1251
  {
1249
- "uuid": "0dac0feb-e1c8-497e-9a1b-e96e0523eea6",
1250
1252
  "slug": "error-handling",
1253
+ "uuid": "0dac0feb-e1c8-497e-9a1b-e96e0523eea6",
1251
1254
  "core": false,
1252
1255
  "unlocked_by": "bob",
1253
1256
  "difficulty": 3,
@@ -1256,19 +1259,19 @@
1256
1259
  ]
1257
1260
  },
1258
1261
  {
1259
- "uuid": "54995590-65eb-4178-a527-0d7b1526a843",
1260
1262
  "slug": "dominoes",
1263
+ "uuid": "54995590-65eb-4178-a527-0d7b1526a843",
1261
1264
  "core": false,
1262
1265
  "unlocked_by": "binary-search",
1263
1266
  "difficulty": 7,
1264
1267
  "topics": [
1265
- "tuples",
1266
- "lists"
1268
+ "lists",
1269
+ "tuples"
1267
1270
  ]
1268
1271
  },
1269
1272
  {
1270
- "uuid": "d98b1080-36d4-4357-b12a-685d204856bf",
1271
1273
  "slug": "pov",
1274
+ "uuid": "d98b1080-36d4-4357-b12a-685d204856bf",
1272
1275
  "core": false,
1273
1276
  "unlocked_by": "markdown",
1274
1277
  "difficulty": 9,
@@ -1280,34 +1283,34 @@
1280
1283
  ]
1281
1284
  },
1282
1285
  {
1283
- "uuid": "4c0d0d6b-347e-40ae-9b51-08555fe76cb9",
1284
1286
  "slug": "react",
1287
+ "uuid": "4c0d0d6b-347e-40ae-9b51-08555fe76cb9",
1285
1288
  "core": false,
1286
1289
  "unlocked_by": "saddle-points",
1287
1290
  "difficulty": 8,
1288
1291
  "topics": [
1292
+ "callbacks",
1289
1293
  "events",
1290
- "reactive_programming",
1291
- "callbacks"
1294
+ "reactive_programming"
1292
1295
  ]
1293
1296
  },
1294
1297
  {
1295
- "uuid": "df7cd9b9-283a-4466-accf-98c4a7609450",
1296
1298
  "slug": "binary-search-tree",
1299
+ "uuid": "df7cd9b9-283a-4466-accf-98c4a7609450",
1297
1300
  "core": false,
1298
1301
  "unlocked_by": "grade-school",
1299
1302
  "difficulty": 4,
1300
1303
  "topics": [
1301
- "recursion",
1302
1304
  "classes",
1303
- "trees",
1305
+ "object_oriented_programming",
1306
+ "recursion",
1304
1307
  "searching",
1305
- "object_oriented_programming"
1308
+ "trees"
1306
1309
  ]
1307
1310
  },
1308
1311
  {
1309
- "uuid": "bb07c236-062c-2980-483a-a221e4724445dcd6f32",
1310
1312
  "slug": "custom-set",
1313
+ "uuid": "bb07c236-062c-2980-483a-a221e4724445dcd6f32",
1311
1314
  "core": false,
1312
1315
  "unlocked_by": "book-store",
1313
1316
  "difficulty": 5,
@@ -1316,20 +1319,20 @@
1316
1319
  ]
1317
1320
  },
1318
1321
  {
1319
- "uuid": "b0c7cf95-6470-4c1a-8eaa-6775310926a2",
1320
1322
  "slug": "spiral-matrix",
1323
+ "uuid": "b0c7cf95-6470-4c1a-8eaa-6775310926a2",
1321
1324
  "core": false,
1322
1325
  "unlocked_by": "saddle-points",
1323
1326
  "difficulty": 2,
1324
1327
  "topics": [
1325
1328
  "algorithms",
1326
- "control-flow",
1329
+ "control_flow",
1327
1330
  "lists"
1328
1331
  ]
1329
1332
  },
1330
1333
  {
1331
- "uuid": "0d6325d1-c0a3-456e-9a92-cea0559e82ed",
1332
1334
  "slug": "sgf-parsing",
1335
+ "uuid": "0d6325d1-c0a3-456e-9a92-cea0559e82ed",
1333
1336
  "core": false,
1334
1337
  "unlocked_by": null,
1335
1338
  "difficulty": 7,
@@ -1339,8 +1342,8 @@
1339
1342
  ]
1340
1343
  },
1341
1344
  {
1342
- "uuid": "83a3ff95-c043-401c-bc2c-547d52344b02",
1343
1345
  "slug": "bank-account",
1346
+ "uuid": "83a3ff95-c043-401c-bc2c-547d52344b02",
1344
1347
  "core": false,
1345
1348
  "unlocked_by": null,
1346
1349
  "difficulty": 4,
@@ -1351,67 +1354,112 @@
1351
1354
  ]
1352
1355
  },
1353
1356
  {
1354
- "uuid": "e7351e8e-d3ff-4621-b818-cd55cf05bffd",
1355
1357
  "slug": "accumulate",
1358
+ "uuid": "e7351e8e-d3ff-4621-b818-cd55cf05bffd",
1359
+ "core": false,
1360
+ "unlocked_by": null,
1361
+ "difficulty": 0,
1362
+ "topics": null,
1356
1363
  "deprecated": true
1357
1364
  },
1358
1365
  {
1359
- "uuid": "105f25ec-7ce2-4797-893e-05e3792ebd91",
1360
1366
  "slug": "nucleotide-count",
1367
+ "uuid": "105f25ec-7ce2-4797-893e-05e3792ebd91",
1368
+ "core": false,
1369
+ "unlocked_by": null,
1370
+ "difficulty": 0,
1371
+ "topics": null,
1361
1372
  "deprecated": true
1362
1373
  },
1363
1374
  {
1364
- "uuid": "4094d27f-4d03-4308-9fd7-9f3de312afec",
1365
1375
  "slug": "octal",
1376
+ "uuid": "4094d27f-4d03-4308-9fd7-9f3de312afec",
1377
+ "core": false,
1378
+ "unlocked_by": null,
1379
+ "difficulty": 0,
1380
+ "topics": null,
1366
1381
  "deprecated": true
1367
1382
  },
1368
1383
  {
1369
- "uuid": "e1e1c7d7-c1d9-4027-b90d-fad573182419",
1370
1384
  "slug": "pascals-triangle",
1385
+ "uuid": "e1e1c7d7-c1d9-4027-b90d-fad573182419",
1386
+ "core": false,
1387
+ "unlocked_by": null,
1388
+ "difficulty": 0,
1389
+ "topics": null,
1371
1390
  "deprecated": true
1372
1391
  },
1373
1392
  {
1374
- "uuid": "d85ec4f2-c201-4eff-9f3a-831a0cc38e8d",
1375
1393
  "slug": "point-mutations",
1394
+ "uuid": "d85ec4f2-c201-4eff-9f3a-831a0cc38e8d",
1395
+ "core": false,
1396
+ "unlocked_by": null,
1397
+ "difficulty": 0,
1398
+ "topics": null,
1376
1399
  "deprecated": true
1377
1400
  },
1378
1401
  {
1379
- "uuid": "9fd94229-f974-45bb-97ea-8bfe484f6eb3",
1380
1402
  "slug": "proverb",
1403
+ "uuid": "9fd94229-f974-45bb-97ea-8bfe484f6eb3",
1404
+ "core": false,
1405
+ "unlocked_by": null,
1406
+ "difficulty": 0,
1407
+ "topics": null,
1381
1408
  "deprecated": true
1382
1409
  },
1383
1410
  {
1384
- "uuid": "82d82e32-cb30-4119-8862-d019563dd1e3",
1385
1411
  "slug": "raindrops",
1412
+ "uuid": "82d82e32-cb30-4119-8862-d019563dd1e3",
1413
+ "core": false,
1414
+ "unlocked_by": null,
1415
+ "difficulty": 0,
1416
+ "topics": null,
1386
1417
  "deprecated": true
1387
1418
  },
1388
1419
  {
1389
- "uuid": "b50b29a1-782d-4277-a4d4-23f635fbdaa6",
1390
1420
  "slug": "strain",
1421
+ "uuid": "b50b29a1-782d-4277-a4d4-23f635fbdaa6",
1422
+ "core": false,
1423
+ "unlocked_by": null,
1424
+ "difficulty": 0,
1425
+ "topics": null,
1391
1426
  "deprecated": true
1392
1427
  },
1393
1428
  {
1394
- "uuid": "061a6543-d51d-4619-891b-16f92c6435ca",
1395
1429
  "slug": "trinary",
1430
+ "uuid": "061a6543-d51d-4619-891b-16f92c6435ca",
1431
+ "core": false,
1432
+ "unlocked_by": null,
1433
+ "difficulty": 0,
1434
+ "topics": null,
1396
1435
  "deprecated": true
1397
1436
  },
1398
1437
  {
1399
- "uuid": "49127efa-1124-4f27-bee4-99992e3433de",
1400
1438
  "slug": "binary",
1439
+ "uuid": "49127efa-1124-4f27-bee4-99992e3433de",
1440
+ "core": false,
1441
+ "unlocked_by": null,
1442
+ "difficulty": 0,
1443
+ "topics": null,
1401
1444
  "deprecated": true
1402
1445
  },
1403
1446
  {
1404
- "uuid": "6b7f7b1f-c388-4f4c-b924-84535cc5e1a0",
1405
1447
  "slug": "hexadecimal",
1448
+ "uuid": "6b7f7b1f-c388-4f4c-b924-84535cc5e1a0",
1449
+ "core": false,
1450
+ "unlocked_by": null,
1451
+ "difficulty": 0,
1452
+ "topics": null,
1406
1453
  "deprecated": true
1407
1454
  },
1408
1455
  {
1409
- "uuid": "da03fca4-4606-48d8-9137-6e40396f7759",
1410
1456
  "slug": "parallel-letter-frequency",
1457
+ "uuid": "da03fca4-4606-48d8-9137-6e40396f7759",
1458
+ "core": false,
1459
+ "unlocked_by": null,
1460
+ "difficulty": 0,
1461
+ "topics": null,
1411
1462
  "deprecated": true
1412
1463
  }
1413
- ],
1414
- "foregone": [
1415
- "lens-person"
1416
1464
  ]
1417
1465
  }