├── docs ├── favicon.png ├── asset-manifest.json ├── manifest.json └── index.html ├── public ├── favicon.png └── manifest.json ├── src ├── assets │ ├── saxmono.ttf │ ├── freeCodeCamp.png │ └── freeCodeCamp-alternative.png ├── .sass-cache │ └── 6e9157b86ff7c133e63b829481b48e2a01568a00 │ │ └── index.scssc ├── helpers │ └── initTests.js ├── challenges │ ├── 45-cryptography │ │ ├── rsa-cryptosystem.json │ │ ├── finite-fields.json │ │ ├── rabin-cryptosystem.json │ │ ├── genetic-algorithms.json │ │ ├── introduction-to-public-key-cryptography.json │ │ ├── public-key-cryptography-and-discrete-logarithms.json │ │ ├── rsa-cryptosystem-and-factoring-integers.json │ │ ├── discrete-logarithm-algorithms-in-practice.json │ │ ├── more-number-theory.json │ │ ├── message-authentication-codes-mac.json │ │ ├── key-distribution-patterns.json │ │ ├── unconditionally-secure-macs.json │ │ ├── semantic-security-of-rsa.json │ │ ├── future-of-pki.json │ │ ├── other-attacks-on-rsa.json │ │ ├── security-of-elgamal-systems.json │ │ ├── trust-models.json │ │ ├── copyright-protection.json │ │ ├── primality-testing.json │ │ ├── factoring-algorithms.json │ │ ├── session-key-distribution-schemes.json │ │ ├── key-distribution.json │ │ ├── public-key-infrastructure.json │ │ ├── algorithms-for-the-discrete-logarithm-problem.json │ │ ├── cryptanalysis.json │ │ └── elliptic-curves.json │ ├── 43-abstract-algebra │ │ ├── preliminaries.json │ │ ├── integers.json │ │ ├── isomorphisms.json │ │ ├── homomorphisms.json │ │ ├── finite-fields.json │ │ ├── matrix-group-and-symmetry.json │ │ ├── permutation-groups.json │ │ ├── structure-of-groups.json │ │ ├── the-sylow-theorems.json │ │ ├── integral-domains.json │ │ ├── intro-to-cryptography.json │ │ ├── normal-subgroups-and-factor-groups.json │ │ ├── fields.json │ │ ├── galois-theory.json │ │ ├── polynomials.json │ │ ├── groups.json │ │ ├── group-actions.json │ │ ├── cyclic-groups.json │ │ ├── cosets-and-lagrange-theorem.json │ │ ├── lattices-and-boolean-algebras.json │ │ ├── rings.json │ │ └── algebraic-coding-theory.json │ ├── 33-geometry │ │ ├── introduction-to-transformation.json │ │ ├── lines.json │ │ ├── rotations.json │ │ ├── pyramids.json │ │ ├── symmetry.json │ │ ├── cones.json │ │ ├── triangle-similarity.json │ │ ├── reflections.json │ │ ├── spheres.json │ │ ├── basic-polygons.json │ │ ├── triangle-area-and-perimeter.json │ │ ├── area-of-a-circle.json │ │ ├── composition-of-transformations.json │ │ ├── polygon-angle-measures.json │ │ ├── lines-in-the-coordinate-plane.json │ │ ├── cross-sections-and-basic-solids-of-revolution.json │ │ ├── shapes.json │ │ ├── dilation.json │ │ ├── translations.json │ │ ├── line-segments.json │ │ ├── special-triangles.json │ │ ├── cylinders.json │ │ ├── tangent-lines-and-theorems.json │ │ ├── circles-and-angles.json │ │ ├── arcs-and-chords.json │ │ ├── introduction-to-solid-figures.json │ │ ├── logic-statements.json │ │ ├── angle-pairs.json │ │ ├── classifying-triangles.json │ │ └── geometry-of-circles.json │ ├── 42-combinatorics │ │ ├── games-with-graphs.json │ │ ├── inclusion-exclusion.json │ │ ├── elements-of-graph-theory.json │ │ ├── polya-enumeration-formula.json │ │ ├── covering-circuits-and-graph-coloring.json │ │ ├── trees-and-searching.json │ │ ├── generating-functions.json │ │ ├── network-algorithms.json │ │ └── general-enumeration.json │ ├── 30-arithmetic │ │ ├── round-decimals.json │ │ ├── converting-percentages.json │ │ ├── compare-decimals.json │ │ ├── powers-of-ten.json │ │ ├── multiplying-and-dividing-decimals.json │ │ ├── adding-and-subtracting-decimals.json │ │ ├── ratios.json │ │ ├── basic-decimals.json │ │ └── long-division.json │ ├── 39-linear-algebra │ │ ├── determinants.json │ │ ├── eigenvalues.json │ │ ├── representations.json │ │ └── linear-transformations.json │ ├── 40-differential-equations │ │ ├── series-solutions.json │ │ └── introduction-to-differential-equations.json │ ├── 47-probability │ │ ├── law-of-large-numbers.json │ │ ├── distributions-and-densities.json │ │ ├── sums-of-random-variables.json │ │ ├── continuous-probability-densities.json │ │ ├── discrete-probability-distributions.json │ │ ├── combinatorics.json │ │ ├── random-walks.json │ │ ├── generating-functions.json │ │ ├── central-limit-theorem.json │ │ ├── conditional-probability.json │ │ ├── expected-value-and-variance.json │ │ └── markov-chains.json │ ├── 32-linear-equations │ │ ├── polynomial-factoring.json │ │ ├── direct-variations.json │ │ ├── proportion-and-scale.json │ │ ├── introduction-to-polynomials.json │ │ ├── adding-and-subtracting-rational-expressions.json │ │ ├── percentages.json │ │ ├── graphing-slope.json │ │ ├── proportions.json │ │ ├── polynomial-special-products.json │ │ ├── linear-systems.json │ │ ├── linear-equations-in-the-real-world.json │ │ ├── parallel-and-perpendicular-lines.json │ │ ├── polynomial-multiplication.json │ │ ├── exponents-and-irrational-numbers.json │ │ ├── the-forms-of-a-linear-equation.json │ │ ├── graphing-polynomials.json │ │ ├── introduction-to-rational-expressions.json │ │ ├── linear-exponential-and-quadratic-models.json │ │ ├── multiplying-and-dividing-rational-expressions.json │ │ ├── properties-of-exponents-in-variable-expressions.json │ │ ├── polynomial-division.json │ │ └── radical-expressions.json │ ├── 44-number-theory │ │ ├── deterministic-primality-testing.json │ │ ├── basic-properties-of-integers.json │ │ ├── subexponential-time-discrete-logarithms-and-factoring.json │ │ ├── finding-generators-and-discrete-logarithms-in-zpstar.json │ │ ├── finite-fields.json │ │ ├── probabilistic-primary-testing.json │ │ ├── matrices.json │ │ ├── rings.json │ │ ├── distribution-of-primes.json │ │ └── computing-with-large-integers.json │ ├── 31-algebra │ │ ├── real-number-variables-and-expressions.json │ │ ├── simplifying-expressions.json │ │ └── integers.json │ ├── 37-single-variable-calculus │ │ ├── parametric-equations.json │ │ ├── polar-coordinates.json │ │ ├── applications-of-integration.json │ │ ├── further-applications-of-integration.json │ │ ├── integrals.json │ │ ├── functions-and-models.json │ │ └── differential-equations.json │ ├── 41-proofs │ │ ├── disproof.json │ │ ├── contrapositive-proof.json │ │ ├── mathematical-induction.json │ │ ├── proof-by-contradiction.json │ │ ├── proofs-involving-sets.json │ │ ├── cardinality-of-sets.json │ │ ├── proving-non-conditional-statements.json │ │ ├── direct-proof.json │ │ ├── counting.json │ │ └── relations.json │ ├── 46-statistics │ │ ├── probability.json │ │ ├── continuous-random-variables.json │ │ ├── the-normal-distribution.json │ │ ├── chi-square-distribution.json │ │ ├── the-central-limit-theorem.json │ │ ├── data.json │ │ ├── discrete-distributions.json │ │ └── descriptive-statistics.json │ ├── 34-trigonometry │ │ └── sum-to-product-and-triple-angle-formulas.json │ ├── 38-multivariable-calculus │ │ ├── vector-functions.json │ │ └── second-order-differential-equations.json │ └── 36-precalculus │ │ ├── trigonometric-functions-of-real-numbers.json │ │ ├── sequences-and-series.json │ │ └── trigonometric-functions-of-angles.json ├── actions │ └── index.js ├── index.js ├── components │ ├── Preview.js │ ├── ChallengeControl.js │ └── Tests.js └── reducers │ └── initState.js ├── .editorconfig ├── .gitignore ├── toJSONString.js ├── README.md ├── package.json └── mergeChallenges.js /docs/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freeCodeCamp/math-for-programmers-prototype/HEAD/docs/favicon.png -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freeCodeCamp/math-for-programmers-prototype/HEAD/public/favicon.png -------------------------------------------------------------------------------- /src/assets/saxmono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freeCodeCamp/math-for-programmers-prototype/HEAD/src/assets/saxmono.ttf -------------------------------------------------------------------------------- /src/assets/freeCodeCamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freeCodeCamp/math-for-programmers-prototype/HEAD/src/assets/freeCodeCamp.png -------------------------------------------------------------------------------- /src/assets/freeCodeCamp-alternative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freeCodeCamp/math-for-programmers-prototype/HEAD/src/assets/freeCodeCamp-alternative.png -------------------------------------------------------------------------------- /src/.sass-cache/6e9157b86ff7c133e63b829481b48e2a01568a00/index.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freeCodeCamp/math-for-programmers-prototype/HEAD/src/.sass-cache/6e9157b86ff7c133e63b829481b48e2a01568a00/index.scssc -------------------------------------------------------------------------------- /docs/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "main.css": "static/css/main.06f693c3.css", 3 | "main.css.map": "static/css/main.06f693c3.css.map", 4 | "main.js": "static/js/main.667cee71.js", 5 | "main.js.map": "static/js/main.667cee71.js.map" 6 | } -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [package.json] 11 | indent_style = space 12 | indent_size = 2 13 | 14 | [*.md] 15 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /src/helpers/initTests.js: -------------------------------------------------------------------------------- 1 | export default function(testStr) { 2 | return { 3 | test: testStr 4 | ? testStr.replace(/^assert\(/g, '').replace(/, 'message.*/, '') 5 | : '', 6 | message: testStr 7 | ? testStr.split(/, 'message: /)[1].replace(/'.*$/, '') 8 | : '', 9 | status: 'init' 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /docs/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | } 10 | ], 11 | "start_url": "./index.html", 12 | "display": "standalone", 13 | "theme_color": "#000000", 14 | "background_color": "#ffffff" 15 | } 16 | -------------------------------------------------------------------------------- /src/challenges/45-cryptography/rsa-cryptosystem.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "RSA cryptosystem", 3 | "order": 11, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b676", 7 | "title": "Implementing RSA", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/finite-fields.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Finite fields", 3 | "order": 20, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b685", 7 | "title": "Introduction to Finite Fields", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/preliminaries.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Preliminaries", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b621", 7 | "title": "Sets and equivalence relations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/rabin-cryptosystem.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Rabin cryptosystem", 3 | "order": 15, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b680", 7 | "title": "Security of Rabin cryptosystem", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/introduction-to-transformation.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Introduction to Transformation Types", 3 | "order": 32, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b725", 7 | "title": "Identify Transformation Types", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/genetic-algorithms.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Genetic algorithms", 3 | "order": 19, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b684", 7 | "title": "Lower bounds on the complexity of genetic algorithms", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # Configuration files 4 | .vscode 5 | 6 | # Sass cache 7 | /src/.sass-cache/ 8 | 9 | # dependencies 10 | /node_modules 11 | 12 | # testing 13 | /coverage 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | .env.local 21 | .env.development.local 22 | .env.test.local 23 | .env.production.local 24 | 25 | npm-debug.log* 26 | yarn-debug.log* 27 | yarn-error.log* -------------------------------------------------------------------------------- /src/challenges/45-cryptography/introduction-to-public-key-cryptography.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Introduction to public-key cryptography", 3 | "order": 10, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b674", 7 | "title": "Introduction to public-key cryptography", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/public-key-cryptography-and-discrete-logarithms.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Public-key Cryptography and Discrete Logarithms", 3 | "order": 17, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b682", 7 | "title": "ElGamal cryptosystem", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/rsa-cryptosystem-and-factoring-integers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "RSA Cryptosystem and Factoring Integers", 3 | "order": 9, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b673", 7 | "title": "RSA Cryptosystem and Factoring Integers", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/discrete-logarithm-algorithms-in-practice.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Discrete logarithm algorithms in practice", 3 | "order": 22, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b687", 7 | "title": "Discrete logarithm algorithms in practice", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /toJSONString.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | 3 | /* Command line Utility to convert 4 | * Regular expressions to valid JSON strings. 5 | * 6 | * INSTRUCTIONS: 7 | * 1. Add your code to the str variable 8 | * as a ES6 template string. 9 | * 2. Save the file. 10 | * 3. Run in the command line with: 11 | * node toJSONString.js 12 | */ 13 | 14 | const str = `function tmp(str){ 15 | console.log('Try'); 16 | }`; 17 | 18 | // Print the answer to the stdout 19 | console.log(JSON.stringify(str)); 20 | 21 | -------------------------------------------------------------------------------- /src/actions/index.js: -------------------------------------------------------------------------------- 1 | export const UPDATE_CODE = 'UPDATE_CODE'; 2 | export const RUN_TESTS = 'RUN_TESTS'; 3 | export const SET_CHALLENGE = 'SET_CHALLENGE'; 4 | export const RESET_CURRENT_CHALLENGE_TESTS = 'RESET_CURRENT_CHALLENGE_TESTS'; 5 | 6 | export const updateCode = code => ({ 7 | type: UPDATE_CODE, 8 | code 9 | }); 10 | 11 | export const runTests = () => ({ 12 | type: RUN_TESTS 13 | }); 14 | 15 | export const setChallenge = (subject, topicIndex, challengeIndex) => ({ 16 | type: SET_CHALLENGE, 17 | subject, 18 | topicIndex, 19 | challengeIndex 20 | }); 21 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import { createStore } from 'redux'; 4 | import { Provider } from 'react-redux'; 5 | import reducer from './reducers'; 6 | import './index.css'; 7 | import App from './containers/App'; 8 | import registerServiceWorker from './registerServiceWorker'; 9 | 10 | const store = createStore( 11 | reducer, 12 | window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() 13 | ); 14 | 15 | ReactDOM.render( 16 | 17 | 18 | , 19 | document.getElementById('root') 20 | ); 21 | registerServiceWorker(); 22 | -------------------------------------------------------------------------------- /src/challenges/33-geometry/lines.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Lines", 3 | "order": 9, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b500", 7 | "title": "Line Types", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a299", 20 | "title": "Parallel and Skew Lines", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/rotations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Rotations", 3 | "order": 35, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b524", 7 | "title": "Defining Rotation", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a433", 20 | "title": "Rotation Rules", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/integers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Integers", 3 | "order": 2, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b622", 7 | "title": "Mathematical induction", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a991", 20 | "title": "Division algorithm", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/pyramids.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Pyramids", 3 | "order": 41, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b530", 7 | "title": "Surface Area and Volume of Pyramids", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a455", 20 | "title": "Volume of Pyramids", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/isomorphisms.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Isomorphisms", 3 | "order": 8, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b629", 7 | "title": "Definition and examples", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b011", 20 | "title": "Direct products", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/components/Preview.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import * as MathJax from 'react-mathjax-updated'; 4 | 5 | const Preview = ({ code }) => { 6 | const mathDelims = /(^\$\$\n|\$\$$)/g; 7 | return ( 8 |
9 |

Preview:

10 | 11 | 12 | {code 13 | ? code.replace(mathDelims, '') 14 | : ''} 15 | 16 | 17 |
18 | ); 19 | }; 20 | 21 | Preview.propTypes = { 22 | code: PropTypes.string.isRequired 23 | }; 24 | 25 | export default Preview; 26 | -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/homomorphisms.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Homomorphisms", 3 | "order": 9, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b631", 7 | "title": "Group homomorphisms", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b015", 20 | "title": "The isomorphism theorem", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/42-combinatorics/games-with-graphs.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Games with graphs", 3 | "order": 10, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b620", 7 | "title": "Progressively finite games", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a988", 20 | "title": "Nim-type games", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/finite-fields.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Finite Fields", 3 | "order": 19, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b640", 7 | "title": "Structure of a Finite Field", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b041", 20 | "title": "Polynomial Codes", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/matrix-group-and-symmetry.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Matrix group and symmetry", 3 | "order": 10, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b632", 7 | "title": "Matrix groups", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b017", 20 | "title": "Symmetry", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | Math LaTeX
-------------------------------------------------------------------------------- /src/challenges/30-arithmetic/round-decimals.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Round Decimals", 3 | "order": 17, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b427", 7 | "title": "Round Decimal Numbers", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836407", 20 | "title": "Round Decimals with Place Value", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/permutation-groups.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Permutation groups", 3 | "order": 5, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b625", 7 | "title": "Definitions and notation", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a999", 20 | "title": "Dihedral groups", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/structure-of-groups.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Structure of groups", 3 | "order": 11, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b633", 7 | "title": "Finite Abelian groups", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b019", 20 | "title": "Solvable groups", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/more-number-theory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "More number theory", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b675", 7 | "title": "Euclidean algorithm", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b208", 20 | "title": "Chinese remainder theorem", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/30-arithmetic/converting-percentages.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Converting Percentages", 3 | "order": 23, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b433", 7 | "title": "Percents as Decimals", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836436", 20 | "title": "Percents as Fractions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/39-linear-algebra/determinants.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Determinants", 3 | "order": 5, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b584", 7 | "title": "Determinant of a matrix", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a807", 20 | "title": "Properties of determinants of matrices", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/the-sylow-theorems.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "The Sylow Theorems", 3 | "order": 13, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b635", 7 | "title": "The Sylow Theorem", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b024", 20 | "title": "Examples and applications", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/components/ChallengeControl.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | const ChallengeControl = ({ runTests }) => { 5 | return ( 6 |
7 | 8 | 17 |
18 | ); 19 | }; 20 | 21 | ChallengeControl.propTypes = { 22 | runTests: PropTypes.func 23 | }; 24 | 25 | export default ChallengeControl; 26 | -------------------------------------------------------------------------------- /src/challenges/40-differential-equations/series-solutions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Series Solutions", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b593", 7 | "title": "constructing a series solutions ", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a860", 20 | "title": "Euler equations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/integral-domains.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Integral domains", 3 | "order": 16, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b638", 7 | "title": "Fields of fractions", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b033", 20 | "title": "Factorization in integral domains", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/law-of-large-numbers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Law of large numbers", 3 | "order": 19, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b720", 7 | "title": "Discrete random variables", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b387", 20 | "title": "Continuous random variables", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/polynomial-factoring.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Polynomial Factoring", 3 | "order": 20, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b463", 7 | "title": "Factoring Polynomials", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a022", 20 | "title": "Monomial Factors of Polynomials", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/intro-to-cryptography.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Intro To Cryptography", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b627", 7 | "title": "Private Key Cryptography", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b005", 20 | "title": "Public key cryptography", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/distributions-and-densities.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Distributions and densities", 3 | "order": 16, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b717", 7 | "title": "Important distributions", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b380", 20 | "title": "Important densities", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/44-number-theory/deterministic-primality-testing.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Deterministic primality testing", 3 | "order": 23, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b664", 7 | "title": "Basic idea", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b159", 20 | "title": "Algorithm and its analysis", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/31-algebra/real-number-variables-and-expressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Real Number Variables and Expressions", 3 | "order": 26, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b436", 7 | "title": "The Real Numbers", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836449", 20 | "title": "Order Real Numbers", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/40-differential-equations/introduction-to-differential-equations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Introduction to Differential Equations", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b588", 7 | "title": "Definitions", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a820", 20 | "title": "Direction Fields", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/sums-of-random-variables.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sums of random variables", 3 | "order": 18, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b719", 7 | "title": "Sums of discrete random variables", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b385", 20 | "title": "Sums of continuous random variables", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/37-single-variable-calculus/parametric-equations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Parametric Equations", 3 | "order": 10, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b572", 7 | "title": "Curves defined by parametric equations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a727", 20 | "title": "Calculus with parametric curves", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/37-single-variable-calculus/polar-coordinates.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Polar Coordinates", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b573", 7 | "title": "Areas and lengths in polar coordinates", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a729", 20 | "title": "Conic sections in polar coordinates", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/message-authentication-codes-mac.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Message authentication codes(MAC)", 3 | "order": 7, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b671", 7 | "title": "Nested MACs and HMAC", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b204", 20 | "title": "CBC-MAC and authenticated encryption", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/key-distribution-patterns.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Key distribution patterns", 3 | "order": 28, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b693", 7 | "title": "Fiat-Naor key distribution patterns", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b276", 20 | "title": "Mitchell-Piper key distribution patterns", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/unconditionally-secure-macs.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Unconditionally secure MACs", 3 | "order": 8, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b672", 7 | "title": "Strongly universal hash families", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b206", 20 | "title": "Optimality of deception probabilities", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/semantic-security-of-rsa.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Semantic security of RSA", 3 | "order": 16, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b681", 7 | "title": "Partial information concerning plaintext bits", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b223", 20 | "title": "Optimal asymmetric encryption padding", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/continuous-probability-densities.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Continuous probability densities", 3 | "order": 13, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b714", 7 | "title": "Simulation of continuous probabilities", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b372", 20 | "title": "Continuous density functions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/discrete-probability-distributions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Discrete Probability Distributions", 3 | "order": 12, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b713", 7 | "title": "Simulation of discrete probabilities", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b370", 20 | "title": "Discrete probability distributions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/normal-subgroups-and-factor-groups.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Normal subgroups and factor groups", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b630", 7 | "title": "Factor groups and normal subgroups", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b013", 20 | "title": "The simplicity of the alternating group", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /src/reducers/initState.js: -------------------------------------------------------------------------------- 1 | import initTests from '../helpers/initTests'; 2 | import data from '../data.json'; 3 | 4 | // Sort Challenges 5 | for (let key in data) { 6 | if (data.hasOwnProperty(key)) { 7 | data[key].sort((a, b) => a.order - b.order); 8 | } 9 | } 10 | 11 | const subject = sessionStorage.getItem('subject'); 12 | const topicIndex = 13 | sessionStorage.getItem('topicIndex') || 0; 14 | const challengeIndex = 15 | sessionStorage.getItem('challengeIndex') || 0; 16 | 17 | const subjects = data[subject || Object.keys(data)[0]]; 18 | const topic = subjects[topicIndex]; 19 | const challenge = topic.challenges[challengeIndex]; 20 | 21 | const initState = { 22 | code: '$$\n' + challenge.challengeSeed.join('\n') + '\n$$', 23 | challenge, 24 | tests: challenge.tests.map(initTests), 25 | data 26 | }; 27 | 28 | export default initState; 29 | -------------------------------------------------------------------------------- /src/challenges/33-geometry/symmetry.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Symmetry", 3 | "order": 33, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b522", 7 | "title": "Lines of Symmetry", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a426", 20 | "title": "Reflection Symmetry", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a427", 33 | "title": "Rotation Symmetry", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/combinatorics.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Combinatorics", 3 | "order": 14, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b715", 7 | "title": "Permutations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b374", 20 | "title": "Combinations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b375", 33 | "title": "Card Shuffling", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/cones.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cones", 3 | "order": 43, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b532", 7 | "title": "Surface Area and Volume of Cones", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a461", 20 | "title": "Surface Area of Cones", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a462", 33 | "title": "Volume of Cones", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/triangle-similarity.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Triangle Similarity", 3 | "order": 29, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b519", 7 | "title": "AA Similarity", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a413", 20 | "title": "SSS Similarity", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a414", 33 | "title": "SAS Similarity", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/fields.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fields", 3 | "order": 18, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b639", 7 | "title": "Extension Fields", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b038", 20 | "title": "Splitting Fields", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b039", 33 | "title": "Geometric Constructions", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/reflections.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Reflections", 3 | "order": 36, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b525", 7 | "title": "Defining Reflection", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a435", 20 | "title": "Rules for Reflections", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a436", 33 | "title": "Reflecting Figures", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/41-proofs/disproof.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Disproof", 3 | "order": 9, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b606", 7 | "title": "Counterexamples", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a929", 20 | "title": "Disproving existence statements", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a930", 33 | "title": "Disproof by contradiction", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/spheres.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Spheres", 3 | "order": 44, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b533", 7 | "title": "Surface Area and Volume of Spheres", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a464", 20 | "title": "Surface Area of Spheres", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a465", 33 | "title": "Volume of Spheres", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/galois-theory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Galois Theory", 3 | "order": 20, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b642", 7 | "title": "Field Automorphisms", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b043", 20 | "title": "The Fundamental Theorem", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b044", 33 | "title": "Applications", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/polynomials.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Polynomials", 3 | "order": 15, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b637", 7 | "title": "Polynomial rings", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b030", 20 | "title": "Division algorithm", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b031", 33 | "title": "Irreducible polynomials", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/random-walks.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Random Walks", 3 | "order": 23, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b724", 7 | "title": "Random walks in Euclidean space", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b400", 20 | "title": "Gambler's Ruin", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b401", 33 | "title": "Arc Sine laws", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/groups.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Groups", 3 | "order": 3, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b623", 7 | "title": "Integer equivalence classes and symmetries", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a993", 20 | "title": "Definitions and examples", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a994", 33 | "title": "Subgroups", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/41-proofs/contrapositive-proof.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Contrapositive Proof", 3 | "order": 5, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b602", 7 | "title": "Contrapositive proof", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a915", 20 | "title": "Congruence of integers", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a916", 33 | "title": "Mathematical writing", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/group-actions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Group actions", 3 | "order": 12, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b634", 7 | "title": "Groups acting on sets", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b021", 20 | "title": "The class equation", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b022", 33 | "title": "Burnside's Counting Theorem", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/generating-functions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Generating functions", 3 | "order": 21, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b722", 7 | "title": "Discrete distributions", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b392", 20 | "title": "Branching Process", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b393", 33 | "title": "Continuous Densities", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/basic-polygons.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Basic Polygons", 3 | "order": 5, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b497", 7 | "title": "Classify Polygons", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a277", 20 | "title": "Vertices and Sides", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a278", 33 | "title": "Polygon Classification in the Coordinate Plane", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/probability.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Probability", 3 | "order": 3, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b704", 7 | "title": "Independent or Mutually Exclusive", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b331", 20 | "title": "Addition and Multiplication Rules", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b332", 33 | "title": "Contingency Tables", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/cyclic-groups.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cyclic groups", 3 | "order": 4, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b624", 7 | "title": "Cyclic subgroups", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a996", 20 | "title": "Multiplicative group of complex numbers", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a997", 33 | "title": "Method of repeated squares", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/future-of-pki.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Future of PKI", 3 | "order": 33, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b698", 7 | "title": "Alternatives", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b300", 20 | "title": "Identity-based Cryptography", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b301", 33 | "title": "The Cocks identity-based encryption scheme", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/41-proofs/mathematical-induction.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mathematical Induction", 3 | "order": 10, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b607", 7 | "title": "Proof by strong induction", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a932", 20 | "title": "Proof by smallest counterexample", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a933", 33 | "title": "Fibonacci Numbers", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/cosets-and-lagrange-theorem.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cosets and Lagrange's Theorem", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b626", 7 | "title": "Cosets", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b002", 20 | "title": "Lagrange's theorem", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b003", 33 | "title": "Fermat's and Euler's Theorems", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/continuous-random-variables.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Continuous Random Variables", 3 | "order": 5, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b706", 7 | "title": "Continuous Probability", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b338", 20 | "title": "Uniform Probability", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b339", 33 | "title": "Exponential Probability", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/central-limit-theorem.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Central limit theorem", 3 | "order": 20, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b721", 7 | "title": "Bernoulli trials", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b389", 20 | "title": "Discrete independent trials", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b390", 33 | "title": "Continuous independent trials", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/lattices-and-boolean-algebras.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Lattices and boolean algebras", 3 | "order": 17, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b641", 7 | "title": "Lattices", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b035", 20 | "title": "Boolean algebras", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b036", 33 | "title": "Algebra of electrical circuits", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/other-attacks-on-rsa.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Other attacks on RSA", 3 | "order": 14, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b679", 7 | "title": "Computing φ(n)", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b219", 20 | "title": "The decryption exponent", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b220", 33 | "title": "Wiener's low decryption exponent attack", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/the-normal-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "The Normal Distribution", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b707", 7 | "title": "Normal Probability Distribution", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b341", 20 | "title": "Standard Normal Probability", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b342", 33 | "title": "Normal Probability", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/conditional-probability.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Conditional Probability", 3 | "order": 15, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b716", 7 | "title": "Discrete conditional probability", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b377", 20 | "title": "Continuous conditional probability", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b378", 33 | "title": "Paradoxes", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/triangle-area-and-perimeter.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Triangle Area and Perimeter", 3 | "order": 13, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b504", 7 | "title": "Area and Perimeter of Triangles", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a316", 20 | "title": "Triangle Area", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a317", 33 | "title": "Unknown Dimensions of Triangles", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/39-linear-algebra/eigenvalues.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Eigenvalues", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b585", 7 | "title": "Eigenvalues and eigenvectors", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a809", 20 | "title": "Properties of eigenvalues and eigenvectors", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a810", 33 | "title": "Similarity and diagonalization", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/area-of-a-circle.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Area of a Circle", 3 | "order": 24, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b514", 7 | "title": "Circle Area", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a391", 20 | "title": "Areas of Combined Figures Involving Semicircles", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a392", 33 | "title": "Radius or Diameter of a Circle Given Area", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/chi-square-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Chi-Square Distribution", 3 | "order": 10, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b711", 7 | "title": "Chi-Square Probability", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b361", 20 | "title": "Chi-Square Goodness-of-Fit Test", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b362", 33 | "title": "Chi-Square Test of Independence", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/direct-variations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Direct Variations", 3 | "order": 31, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b476", 7 | "title": "Direct Variation", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a065", 20 | "title": "Applications Using Direct Variation", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a066", 33 | "title": "Graphs of Linear Models of Direct Variation", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/proportion-and-scale.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Proportion and Scale", 3 | "order": 30, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b475", 7 | "title": "Proportions and Scale", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a062", 20 | "title": "Dimensional Analysis", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a063", 33 | "title": "Applications of Scale and Indirect Measurement", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/composition-of-transformations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Composition of Transformations", 3 | "order": 37, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b526", 7 | "title": "Composite Transformations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a438", 20 | "title": "Notation for Composite Transformations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a439", 33 | "title": "Tessellations", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/42-combinatorics/inclusion-exclusion.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Inclusion-Exclusion", 3 | "order": 8, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b618", 7 | "title": "Counting with Venn Diagrams", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a981", 20 | "title": "Inclusion-Exclusion Formula", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a982", 33 | "title": "Restricted positions and rook polynomials", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/the-central-limit-theorem.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "The Central Limit Theorem", 3 | "order": 7, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b708", 7 | "title": "Central Limit Theorem ", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b344", 20 | "title": "Central Limit Theorem for Averages", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b345", 33 | "title": "Central Limit Theorem for Sums", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/47-probability/expected-value-and-variance.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Expected Value and Variance", 3 | "order": 17, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b718", 7 | "title": "Expected value", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b382", 20 | "title": "Variance of discrete random variables", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b383", 33 | "title": "Continuous random variables", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/polygon-angle-measures.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Polygon Angle Measures", 3 | "order": 22, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b512", 7 | "title": "Determine Missing Angle Measures", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a383", 20 | "title": "Interior Angles in Convex Polygons", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a384", 33 | "title": "Exterior Angles in Convex Polygons", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/41-proofs/proof-by-contradiction.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Proof by Contradiction", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b603", 7 | "title": "Proving statements with contradiction", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a918", 20 | "title": "Proving conditional statements by contradiction", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a919", 33 | "title": "Combining techniques", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/30-arithmetic/compare-decimals.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Compare Decimals", 3 | "order": 16, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b426", 7 | "title": "Compare and Order Decimals", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836403", 20 | "title": "Compare and Compose Decimals and Fractions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836404", 33 | "title": "Compare, Order and Identify Decimal Inequalities", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/security-of-elgamal-systems.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Security of ElGamal systems", 3 | "order": 23, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b688", 7 | "title": "Bit security of discrete logarithms", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b237", 20 | "title": "Semantic security of ElGamal systems", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b238", 33 | "title": "Diffie-Hellman problems", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/lines-in-the-coordinate-plane.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Lines in the Coordinate Plane", 3 | "order": 11, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b502", 7 | "title": "Parallel Lines in the Coordinate Plane", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a308", 20 | "title": "Perpendicular Lines in the Coordinate Plane", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a309", 33 | "title": "Line Construction", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/44-number-theory/basic-properties-of-integers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Basic properties of integers", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b643", 7 | "title": "Divisibility and primality", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b046", 20 | "title": "Ideals and greatest common divisors", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b047", 33 | "title": "Consequences of unique factorization", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/introduction-to-polynomials.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Introduction to Polynomials", 3 | "order": 18, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b461", 7 | "title": "Monomials, Binomials, and Trinomials", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a015", 20 | "title": "Polynomials in Standard Form", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a016", 33 | "title": "Addition and Subtraction of Polynomials", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/cross-sections-and-basic-solids-of-revolution.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cross Sections and Basic Solids of Revolution", 3 | "order": 39, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b528", 7 | "title": "Composite Solids", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a446", 20 | "title": "Area and Volume of Similar Solids", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a447", 33 | "title": "Surface Area and Volume Applications", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/44-number-theory/subexponential-time-discrete-logarithms-and-factoring.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Subexponential-time discrete logarithms and factoring", 3 | "order": 16, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b658", 7 | "title": "Smooth numbers", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b125", 20 | "title": "Algorithm for discrete logarithms", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b126", 33 | "title": "Algorithm for factoring integers", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/34-trigonometry/sum-to-product-and-triple-angle-formulas.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sum to Product and Triple Angle Formulas", 3 | "order": 13, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b547", 7 | "title": "Sum to Product Formulas for Sine and Cosine", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a560", 20 | "title": "Product to Sum Formulas for Sine and Cosine", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a561", 33 | "title": "Triple-Angle Formulas and Linear Combinations", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/44-number-theory/finding-generators-and-discrete-logarithms-in-zpstar.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Finding generators and discrete logarithms in Zp Star", 3 | "order": 11, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b654", 7 | "title": "Finding a generator for Zp Star", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b106", 20 | "title": "Computing discrete logarithms in Zp Star", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b107", 33 | "title": "The Diffie-Hellman key establishment protocol", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/adding-and-subtracting-rational-expressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Add and Subtract Rational Expressions", 3 | "order": 27, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b472", 7 | "title": "Addition and Subtraction of Rational Expressions", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a051", 20 | "title": "Adding and Subtracting Rational Expressions where One Denominator is the LCD", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a052", 33 | "title": "Applications of Adding and Subtracting Rational Expressions", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | } 44 | ] 45 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Data", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b702", 7 | "title": "Qualitative", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b323", 20 | "title": "Quantitative", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b324", 33 | "title": "Sampling", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b325", 46 | "title": "Frequency Tables", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/shapes.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Shapes", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b491", 7 | "title": "2D Shapes", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a258", 20 | "title": "Identify Shapes", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a259", 33 | "title": "Identify Less Common Shapes", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a260", 46 | "title": "Composite Shapes", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/42-combinatorics/elements-of-graph-theory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Elements of Graph Theory", 3 | "order": 1, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b611", 7 | "title": "Graph Models", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a950", 20 | "title": "Isomorphism", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a951", 33 | "title": "Edge Counting", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a952", 46 | "title": "Planar graphcs", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/rings.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Rings", 3 | "order": 14, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b636", 7 | "title": "Rings", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b026", 20 | "title": "Integral domains and fields", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b027", 33 | "title": "Ring homomorphisms and ideals", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b028", 46 | "title": "Maximal and prime ideals", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/trust-models.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Trust models", 3 | "order": 32, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b697", 7 | "title": "Strict hierarchy model", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b296", 20 | "title": "Networked PKIs", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b297", 33 | "title": "Web Browser model", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b298", 46 | "title": "Pretty good privacy", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/percentages.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Percentages", 3 | "order": 28, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b473", 7 | "title": "Percentage Problems", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a054", 20 | "title": "Simple Interest", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a055", 33 | "title": "The Percent Equation", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a056", 46 | "title": "Proportions and Percents", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/dilation.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dilation", 3 | "order": 31, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b521", 7 | "title": "Dilation of a Shape", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a421", 20 | "title": "Dilation in the Coordinate Plane", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a422", 33 | "title": "Mapping Dilations", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a423", 46 | "title": "Self-Similarity and Fractals", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/41-proofs/proofs-involving-sets.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Proofs Involving Sets", 3 | "order": 8, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b605", 7 | "title": "How to prove a∈A", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a925", 20 | "title": "How to prove A⊆B", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a926", 33 | "title": "How to prove A=B", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a927", 46 | "title": "Examples: Perfect Numbers", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/discrete-distributions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Discrete Distributions", 3 | "order": 4, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b705", 7 | "title": "Discrete Probability", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b334", 20 | "title": "Expected Value", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b335", 33 | "title": "Binomial Probability", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b336", 46 | "title": "Poisson Probability", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/graphing-slope.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Graphing Slope", 3 | "order": 11, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b453", 7 | "title": "Slope", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836556", 20 | "title": "Rates of Change", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836557", 33 | "title": "Slope of a Line Using Two Points", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836558", 46 | "title": "Graph Using Slope-Intercept Form", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/39-linear-algebra/representations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Representations", 3 | "order": 8, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b587", 7 | "title": "Vector representations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a816", 20 | "title": "Matrix representations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a817", 33 | "title": "Change of basis", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a818", 46 | "title": "Orthonormal Diagonalization", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/translations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Translations", 3 | "order": 34, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b523", 7 | "title": "Geometric Translation", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a429", 20 | "title": "Sliding Figures", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a430", 33 | "title": "Translation Notation", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a431", 46 | "title": "Translation Applications in Circle Similarity", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/line-segments.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Line Segments", 3 | "order": 2, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b492", 7 | "title": "Definition of Line Segment", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a262", 20 | "title": "Midpoints and Segment Bisectors", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a263", 33 | "title": "Midpoint Formula", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a264", 46 | "title": "Points that Partition Line Segments", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/42-combinatorics/polya-enumeration-formula.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Polya's Enumeration Formula", 3 | "order": 9, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b619", 7 | "title": "Equivalence and symmetry groups", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a984", 20 | "title": "Burnside's theorems", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a985", 33 | "title": "Cycle index", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a986", 46 | "title": "Polya's formula", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/copyright-protection.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Copyright protection", 3 | "order": 36, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b701", 7 | "title": "Fingerprinting", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b319", 20 | "title": "Identifiable parent property", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b320", 33 | "title": "2-IPP Codes", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b321", 46 | "title": "Tracing illegally redistributed keys", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/42-combinatorics/covering-circuits-and-graph-coloring.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Covering circuits and graph coloring", 3 | "order": 2, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b612", 7 | "title": "Euler cycles", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a954", 20 | "title": "Hamilton circuits", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a955", 33 | "title": "Graph coloring", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a956", 46 | "title": "Coloring theorems", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/primality-testing.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Primality testing", 3 | "order": 12, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b677", 7 | "title": "Legendre and Jacobi symbols", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b211", 20 | "title": "Solovay-Strassen algorithm", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b212", 33 | "title": "Miller-Rabin algorithm", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b213", 46 | "title": "Square roots modulo n", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/46-statistics/descriptive-statistics.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Descriptive Statistics", 3 | "order": 2, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b703", 7 | "title": "Data Graphs", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b327", 20 | "title": "Quartiles and Percentiles", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b328", 33 | "title": "Mean, Median, and Mode", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b329", 46 | "title": "Variance and Standard Deviation", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/special-triangles.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Special Triangles", 3 | "order": 18, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b508", 7 | "title": "Special Right Triangles and Ratios", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a354", 20 | "title": "45-45-90 Right Triangles", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a355", 33 | "title": "30-60-90 Right Triangles", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a356", 46 | "title": "Quadrilaterals and Polygons", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/cylinders.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cylinders", 3 | "order": 42, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b531", 7 | "title": "Surface Area and Volume of Cylinders", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a457", 20 | "title": "Surface Area of Cylinders", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a458", 33 | "title": "Volume of Cylinders", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a459", 46 | "title": "Heights of Cylinders Given Surface Area or Volume", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/tangent-lines-and-theorems.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Tangent Lines and Theorems", 3 | "order": 27, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b517", 7 | "title": "Tangent Lines", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a403", 20 | "title": "Intersecting Secants Theorem", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a404", 33 | "title": "Tangent Secant Theorem", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a405", 46 | "title": "Circles in the Coordinate Plane", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/44-number-theory/finite-fields.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Finite fields", 3 | "order": 20, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b662", 7 | "title": "Preliminaries", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b149", 20 | "title": "Existence of finite fields", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b150", 33 | "title": "Subfield structure and uniqueness of finite fields", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b151", 46 | "title": "Conjugates, norms and traces", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/33-geometry/circles-and-angles.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Circles and Angles", 3 | "order": 26, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b516", 7 | "title": "Inscribed Angles in Circles", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a399", 20 | "title": "Inscribed Quadrilaterals in Circles", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a400", 33 | "title": "Angles On and Inside a Circle", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a401", 46 | "title": "Angles Outside a Circle", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/37-single-variable-calculus/applications-of-integration.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Applications of Integration", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b568", 7 | "title": "Areas between curves", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a707", 20 | "title": "Volumes", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a708", 33 | "title": "Volumes by cylindrical shells", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a709", 46 | "title": "Average value of a function", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/41-proofs/cardinality-of-sets.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cardinality of sets", 3 | "order": 13, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b610", 7 | "title": "Sets with equal cardinalities", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a946", 20 | "title": "Countable and uncountable sets", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a947", 33 | "title": "Comparing cardinalities", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a948", 46 | "title": "The Cantor-Bernstein-Schroeder Theorem", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/42-combinatorics/trees-and-searching.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Trees and searching", 3 | "order": 3, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b613", 7 | "title": "Properties of trees", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a958", 20 | "title": "Search trees and spanning trees", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a959", 33 | "title": "Traveling salesperson problem", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a960", 46 | "title": "Tree analysis of sorting algorithms", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/43-abstract-algebra/algebraic-coding-theory.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Algebraic Coding theory", 3 | "order": 7, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b628", 7 | "title": "Error-detecting and correcting codes", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b007", 20 | "title": "Linear codes", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b008", 33 | "title": "Parity-check and generator matrices", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b009", 46 | "title": "Efficient decoding", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/factoring-algorithms.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Factoring algorithms", 3 | "order": 13, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b678", 7 | "title": "Pollard p minus 1 algorithm", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b215", 20 | "title": "Pollard Rho algorithm", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b216", 33 | "title": "Dixon's Random squares algorithm", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b217", 46 | "title": "Factoring algorithms in practice", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/30-arithmetic/powers-of-ten.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Powers of Ten and Scientific Notation", 3 | "order": 20, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b430", 7 | "title": "Multiply Decimals by Powers of Ten", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836417", 20 | "title": "Multiplication and Powers of Ten", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836418", 33 | "title": "Division and Powers of Ten", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836419", 46 | "title": "Scientific Notation", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/proportions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Proportions", 3 | "order": 29, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b474", 7 | "title": "Proportions using LCD", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a058", 20 | "title": "Proportions using Cross-Multiplication", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a059", 33 | "title": "Rational Equations and Proportions", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a060", 46 | "title": "Applications of Ratios and Proportions", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/42-combinatorics/generating-functions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Generating Functions", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b616", 7 | "title": "Generating function models", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a972", 20 | "title": "Calculating coefficients of generating functions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a973", 33 | "title": "Partitions", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a974", 46 | "title": "Exponential generating functions", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/38-multivariable-calculus/vector-functions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Vector Functions", 3 | "order": 2, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b576", 7 | "title": "Vectors functions and space curves", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a748", 20 | "title": "Derivatives and integrals of vector functions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a749", 33 | "title": "Arc length and curvature", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a750", 46 | "title": "Velocity and acceleration", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/39-linear-algebra/linear-transformations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Linear Transformations", 3 | "order": 7, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b586", 7 | "title": "Linear transformations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a812", 20 | "title": "Injective linear transformations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a813", 33 | "title": "Surjective linear transformations", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a814", 46 | "title": "Invertible linear transformations", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/36-precalculus/trigonometric-functions-of-real-numbers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Trigonometric Functions of Real Numbers", 3 | "order": 5, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b556", 7 | "title": "Unit Circle", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a632", 20 | "title": "Trigonometric Functions of Real Numbers", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a633", 33 | "title": "Trigonometric Graphs", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a634", 46 | "title": "Modeling Harmonic Motion", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/session-key-distribution-schemes.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Session key distribution schemes", 3 | "order": 29, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b694", 7 | "title": "The Needham-Schroeder(NS) Scheme", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b278", 20 | "title": "The Denning-Sacco Attack on the NS scheme", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b279", 33 | "title": "Kerberos", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b280", 46 | "title": "The Bellare-Rogaway scheme", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/30-arithmetic/multiplying-and-dividing-decimals.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Multiply and Divide Decimals", 3 | "order": 19, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b429", 7 | "title": "Decimal Multiplication", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836413", 20 | "title": "Decimal Division", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836414", 33 | "title": "Multiply Decimals and Whole Numbers", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836415", 46 | "title": "Estimate Products and Quotients of Decimals", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/polynomial-special-products.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Polynomial Special Products", 3 | "order": 21, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b465", 7 | "title": "Special Products of Polynomials", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a024", 20 | "title": "Factor Difference of Squares", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a025", 33 | "title": "Factor Perfect Square Trinomials", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a026", 46 | "title": "Sum and Difference of Cubes", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/key-distribution.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Key distribution", 3 | "order": 27, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b692", 7 | "title": "Introduction to Key distribution", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b272", 20 | "title": "Diffie-Hellman Key Predistribution", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b273", 33 | "title": "Unconditionally secure key predistribution", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b274", 46 | "title": "The Blom Key Predistribution scheme", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/public-key-infrastructure.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Public-key infrastructure", 3 | "order": 31, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b696", 7 | "title": "Introduction to Public-key infrastructure", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b292", 20 | "title": "A practical protocol: Secure socket layer", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b293", 33 | "title": "Certificates", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b294", 46 | "title": "Certificate life-cycle management", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/linear-systems.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Linear Systems", 3 | "order": 15, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b458", 7 | "title": "Consistent and Inconsistent Linear Systems", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a587af21a188128bc4071a", 20 | "title": "Checking a Solution for a Linear System", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a587af21a188128bc4071c", 33 | "title": "Graphs of Linear Systems", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a587af21a188128bc4071d", 46 | "title": "Systems of Linear Equations in Two Variables", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/44-number-theory/probabilistic-primary-testing.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Probabilistic primary testing", 3 | "order": 10, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b653", 7 | "title": "Trial division", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b102", 20 | "title": "Miller-Rabin test", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b103", 33 | "title": "Generating random primes using Miller-Rabin test", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b104", 46 | "title": "Factoring and computing Euler's phi function", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/linear-equations-in-the-real-world.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Linear Equations in the Real World", 3 | "order": 5, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b447", 7 | "title": "Applications of Linear Equations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836510", 20 | "title": "Problem-Solving Models", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836511", 33 | "title": "Guess and Check, Work Backward", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836512", 46 | "title": "Applications Using Linear Models", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/parallel-and-perpendicular-lines.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Parallel and Perpendicular Lines", 3 | "order": 13, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b456", 7 | "title": "Equations of Parallel and Perpendicular Lines", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836564", 20 | "title": "Equations of Parallel Lines", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836565", 33 | "title": "Equations of Perpendicular Lines", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836566", 46 | "title": "Families of Lines", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/polynomial-multiplication.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Polynomial Multiplication", 3 | "order": 19, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b462", 7 | "title": "Multiply Polynomials by Monomials", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a018", 20 | "title": "Multiply Binomials by Binomials", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a019", 33 | "title": "Multiply Polynomials by Binomials", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a020", 46 | "title": "Multiply Polynomials by Polynomials", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/37-single-variable-calculus/further-applications-of-integration.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Further applications of Integration", 3 | "order": 8, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b570", 7 | "title": "Arc length", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a718", 20 | "title": "Area of a surface of revolution", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a719", 33 | "title": "Applications to physics,engineering, economics, or biology", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a720", 46 | "title": "Probability", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/41-proofs/proving-non-conditional-statements.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Proving non-conditional statements", 3 | "order": 7, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b604", 7 | "title": "If-and-only-If proof", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a921", 20 | "title": "Equivalent statements", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a922", 33 | "title": "Existence Proofs; Existence and Uniqueness Proofs", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a923", 46 | "title": "Constructive versus non-constructive proofs", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/45-cryptography/algorithms-for-the-discrete-logarithm-problem.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Algorithms for the discrete logarithm problem", 3 | "order": 18, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b683", 7 | "title": "Shank's algorithm", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983b226", 20 | "title": "Pollard Rho discrete logarithm algorithm", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983b227", 33 | "title": "Pohlig-Hellman algorithm", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983b228", 46 | "title": "Index Calculus method", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Math LaTeX Challenges 2 | 3 | A prototype for freeCodeCamp's LaTeX-based Math for Programmers Curriculum. 4 | 5 | ### Demo 6 | 7 | You can [try it live here](https://freecodecamp.github.io/math-for-programmers-prototype/). 8 | 9 | ### Installation 10 | 11 | - Make sure that you have a recent version of Node and npm. 12 | - Clone this repository. 13 | - Open a terminal at the project's root folder and run `npm i`. 14 | - Install Sass: 15 | - [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) for your OS. 16 | - Run `gem install sass`. 17 | - Verify Sass installation with `sass -v`. 18 | - Run `npm run start`. 19 | 20 | ### Linux Setup 21 | 22 | - Clone this repository 23 | - Install appropriate versions of node.js and npm: 24 | - Install [node.js](https://nodejs.org/en/download/package-manager/) for your Linux OS. 25 | - Follow the four steps in Option-2 at the [link](https://docs.npmjs.com/getting-started/fixing-npm-permissions) 26 | - Open a terminal and run `npm install npm@latest -g` 27 | - At the project's root folder, run `npm i` 28 | - Install Sass: 29 | - [Install Ruby](https://www.ruby-lang.org/en/documentation/installation/) for your Linux OS. 30 | - Run `sudo gem install sass` 31 | - Verify Sass installation with `sass -v`. 32 | - Run `npm run start` 33 | -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/exponents-and-irrational-numbers.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Exponents and Irrational Numbers", 3 | "order": 33, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b479", 7 | "title": "Negative and Zero Exponents", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a079", 20 | "title": "Fractional Exponents", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a080", 33 | "title": "Zero, Negative, and Fractional Exponents", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a081", 46 | "title": "Operations with Roots and Irrational Numbers", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/the-forms-of-a-linear-equation.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "The Forms of a Linear Equation", 3 | "order": 12, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b455", 7 | "title": "Standard Form of Linear Equations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836560", 20 | "title": "Slope-Intercept Form of Linear Equations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836561", 33 | "title": "Point-Slope Form of Linear Equations", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836562", 46 | "title": "Forms of Linear Equations", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/graphing-polynomials.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Graphing Polynomials", 3 | "order": 24, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b469", 7 | "title": "Identify Parts of Polynomial Graphs", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a039", 20 | "title": "Graphs of Polynomials Using Transformations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a040", 33 | "title": "Graphs of Polynomials Using Zeros", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a041", 46 | "title": "Graphing Calculator to Analyze Polynomial Functions", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/introduction-to-rational-expressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Introduction to Rational Expressions", 3 | "order": 25, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b470", 7 | "title": "Working with Rational Expressions", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a043", 20 | "title": "Simplifying Rational Expressions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a044", 33 | "title": "Excluded Values for Rational Expressions", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a045", 46 | "title": "Restricted Domain and Range", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/38-multivariable-calculus/second-order-differential-equations.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Second-Order Differential Equations", 3 | "order": 6, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b580", 7 | "title": "Second-Order Linear Equations", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a779", 20 | "title": "Nonhomogenous linear equations", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a780", 33 | "title": "Applications of second-order differential eqatuions", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a781", 46 | "title": "Series Solutions", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/linear-exponential-and-quadratic-models.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Linear, Exponential and Quadratic Models", 3 | "order": 42, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b488", 7 | "title": "Identifying Linear, Exponential, and Quadratic Models", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a239", 20 | "title": "Linear, Quadratic, and Cubic Models", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a240", 33 | "title": "Cubic Models", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a241", 46 | "title": "Applications of Function Models", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/30-arithmetic/adding-and-subtracting-decimals.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Add and Subtract Decimals", 3 | "order": 18, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b428", 7 | "title": "Add and Subtract Decimal Numbers", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836409", 20 | "title": "Mental Math to Add and Subtract Decimals", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836410", 33 | "title": "Add and Subtract Decimals with Front-End Estimation", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836411", 46 | "title": "Round Decimals to Estimate Sums and Differences", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/multiplying-and-dividing-rational-expressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Multiplying and Dividing Rational Expressions", 3 | "order": 26, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b471", 7 | "title": "Products and Quotients of Rational Expressions", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a047", 20 | "title": "Multiplication of Rational Expressions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a048", 33 | "title": "Division of Rational Expressions", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a049", 46 | "title": "Complex Fractions", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fcc-math-latex", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "chai": "^4.1.1", 7 | "prop-types": "^15.5.10", 8 | "react": "^15.6.1", 9 | "react-codemirror2": "^0.0.13", 10 | "react-dom": "^15.6.1", 11 | "react-mathjax-updated": "^0.1.3", 12 | "react-redux": "^5.0.6", 13 | "react-scripts": "1.0.11", 14 | "react-treebeard": "^2.0.3", 15 | "redux": "^3.7.2" 16 | }, 17 | "devDependencies": { 18 | "concurrently": "^3.5.0", 19 | "eslint-plugin-prefer-object-spread": "^1.2.1", 20 | "prettier": "^1.6.1" 21 | }, 22 | "scripts": { 23 | "start": "npm run merge-challenges && concurrently \"react-scripts start\" \"npm run scss-watch\"", 24 | "build": "react-scripts build && rm -rf docs && mv build docs", 25 | "test": "react-scripts test --env=jsdom", 26 | "eject": "react-scripts eject", 27 | "scss-watch": "cd src/ && scss --watch index.scss:index.css", 28 | "merge-challenges": "node mergeChallenges.js" 29 | }, 30 | "author": "David Acosta", 31 | "license": "BSD 3-Clause", 32 | "repository": { 33 | "type": "git", 34 | "url": "git+https://github.com/juandaco/fcc-math-latex.git" 35 | }, 36 | "bugs": { 37 | "url": "https://github.com/juandaco/fcc-math-latex/issues" 38 | }, 39 | "homepage": "." 40 | } 41 | -------------------------------------------------------------------------------- /src/challenges/31-algebra/simplifying-expressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Simplifying Expressions", 3 | "order": 31, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b441", 7 | "title": "Simplify Variable Expressions Involving Addition and Subtraction", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac59836477", 20 | "title": "Simplify Variable Expressions Involving Multiplication and Division", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac59836478", 33 | "title": "Simplify Variable Expressions Involving Multiple Operations", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac59836479", 46 | "title": "Simplify Algebraic Expressions", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /src/challenges/32-linear-equations/properties-of-exponents-in-variable-expressions.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Properties of Exponents in Variable Expressions", 3 | "order": 39, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b485", 7 | "title": "Exponential Properties Involving Products", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a219", 20 | "title": "Exponential Properties Involving Quotients", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a220", 33 | "title": "Exponential Terms Raised to an Exponent", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a221", 46 | "title": "Exponential Properties in Variable Expressions", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | } 57 | ] 58 | } -------------------------------------------------------------------------------- /mergeChallenges.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable import/unambiguous */ 2 | 3 | /* 4 | * CLI Node utility to generate a 5 | * merge of all challenge data. 6 | * */ 7 | 8 | const fs = require('fs'); 9 | const path = require('path'); 10 | const { promisify } = require('util'); 11 | const { format } = require('prettier'); 12 | 13 | const readDirAsync = promisify(fs.readdir); 14 | const readFileAsync = promisify(fs.readFile); 15 | const challengesPath = path.resolve('./src/challenges'); 16 | 17 | let topics = []; 18 | 19 | readDirAsync(challengesPath) 20 | .then(subjects => 21 | Promise.all( 22 | subjects.map(dir => { 23 | topics.push(dir); 24 | return readDirAsync(path.join(challengesPath, dir)); 25 | }) 26 | ) 27 | ) 28 | .then(fileNames => 29 | Promise.all( 30 | topics.map((topic, i) => 31 | Promise.all( 32 | fileNames[i].map(y => 33 | readFileAsync(path.join(challengesPath, topic, y), 'utf8') 34 | ) 35 | ) 36 | ) 37 | ) 38 | ) 39 | .then(challenges => { 40 | const dataObj = {}; 41 | topics.forEach((topic, i) => { 42 | dataObj[topic] = challenges[i].map(c => JSON.parse(c)); 43 | }); 44 | const dataPath = path.resolve(challengesPath, '../', 'data.json'); 45 | fs.writeFileSync( 46 | dataPath, 47 | format(JSON.stringify(dataObj), { parser: 'json' }) 48 | ); 49 | }) 50 | .catch(err => console.log(err)); 51 | -------------------------------------------------------------------------------- /src/challenges/41-proofs/direct-proof.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Direct Proof", 3 | "order": 4, 4 | "challenges": [ 5 | { 6 | "id": "59a5801209a6acac5983b601", 7 | "title": "Theorems", 8 | "description": [ 9 | "" 10 | ], 11 | "challengeSeed": [ 12 | "" 13 | ], 14 | "tests": [ 15 | "" 16 | ] 17 | }, 18 | { 19 | "id": "59a5801209a6acac5983a910", 20 | "title": "Definitions", 21 | "description": [ 22 | "" 23 | ], 24 | "challengeSeed": [ 25 | "" 26 | ], 27 | "tests": [ 28 | "" 29 | ] 30 | }, 31 | { 32 | "id": "59a5801209a6acac5983a911", 33 | "title": "Direct Proof", 34 | "description": [ 35 | "" 36 | ], 37 | "challengeSeed": [ 38 | "" 39 | ], 40 | "tests": [ 41 | "" 42 | ] 43 | }, 44 | { 45 | "id": "59a5801209a6acac5983a912", 46 | "title": "Using Cases", 47 | "description": [ 48 | "" 49 | ], 50 | "challengeSeed": [ 51 | "" 52 | ], 53 | "tests": [ 54 | "" 55 | ] 56 | }, 57 | { 58 | "id": "59a5801209a6acac5983a913", 59 | "title": "Treating similar cases", 60 | "description": [ 61 | "" 62 | ], 63 | "challengeSeed": [ 64 | "" 65 | ], 66 | "tests": [ 67 | "" 68 | ] 69 | } 70 | ] 71 | } -------------------------------------------------------------------------------- /src/components/Tests.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | const testStatus2Icon = status => { 5 | switch (status) { 6 | case 'failed': 7 | return 'times'; 8 | case 'passed': 9 | return 'check'; 10 | default: 11 | return 'cog'; 12 | } 13 | }; 14 | 15 | const testStatus2Color = status => { 16 | switch (status) { 17 | case 'failed': 18 | return 'red'; 19 | case 'passed': 20 | return 'green'; 21 | default: 22 | // Dark Grey 23 | return '#939393'; 24 | } 25 | }; 26 | 27 | const Tests = ({ tests }) => { 28 | const testsMsgs = tests.map((x, i) => { 29 | return ( 30 |
31 |