Skip to content

Instantly share code, notes, and snippets.

@veryeli
Last active December 19, 2015 21:49
Show Gist options
  • Save veryeli/6023361 to your computer and use it in GitHub Desktop.
Save veryeli/6023361 to your computer and use it in GitHub Desktop.
Covering relationships from topictree
# To run:
# install graphviz commands
# Download topictree from http://www.khanacademy.org/api/v1/topictree
# open ipython or something and run the following script. Save the output
# as, for instance, covers.gv
# run:
# dot covers.gv -T ps > out.ps
# open out.ps
# Make it look better by playing with it and then let me know what you did!
import json
f = json.load(open('Downloads/topictree.json', 'r'))
def print_coverers(top):
if 'covers' in top and len(top['covers']) > 0:
for child in top['covers']:
print '"' + top['node_slug'][2:] + '"->"' + child + '";'
if not 'children' in top or len(top['children']) < 1:
return
for child in top['children']:
print_coverers(child)
print """digraph G {
size="5";"""
print_coverers(f)
print '}'
2-digit addition [u'addition_1']
2 and 3-digit subtraction [u'subtraction_1']
Addition with carrying [u'addition_2']
4-digit addition with carrying [u'addition_3', u'representing_numbers']
Subtraction with borrowing [u'subtraction_2']
4-digit subtraction with borrowing [u'subtraction_3']
Basic multiplication [u'addition_1']
Multiplying 1-digit numbers [u'addition_2', u'multiplication_0.5']
1-digit division [u'division_0.5']
Multiplying 3 digits by 1 digit [u'multiplication_1']
Multiplication with carrying [u'multiplication_1.5']
Multiplying 3 digits by 2 digits [u'multiplication_2']
Multi-digit multiplication [u'multiplication_3']
Division without remainders [u'division_1.5']
Multi-digit division without remainders [u'division_1']
Division with remainders [u'division_2']
Multiplication and division word problems 2 [u'multiplication_1', u'division_1']
Multi-digit division [u'division_3']
Divisibility [u'prime_factorization', u'divisibility_0.5', u'divisibility_intuition']
Decimals on the number line 2 [u'decimals_on_the_number_line_1']
Adding decimals 2 [u'adding_decimals']
Adding decimals [u'addition_4']
Subtracting decimals [u'subtraction_4']
Multiplying decimals [u'multiplication_4']
Dividing decimals 1 [u'dividing_decimals_0.5']
Dividing decimals [u'division_4', u'dividing_decimals_1', u'dividing_decimals_2']
Discount tax and tip word problems [u'converting_percents_to_decimals']
Equivalent fractions 2 [u'equivalent_fractions']
Comparing fractions 2 [u'comparing_fractions_1']
Adding fractions [u'adding_fractions_with_common_denominators', u'least_common_multiple']
Subtracting fractions [u'subtracting_fractions_with_common_denominators', u'least_common_multiple']
Adding and subtracting fractions [u'least_common_multiple', u'adding_fractions', u'subtracting_fractions']
Dividing fractions [u'dividing_fractions_0.5']
Fractions on the number line 2 [u'fractions_on_the_number_line_1']
Comparing improper fractions and mixed numbers [u'comparing_fractions_2']
Ordering improper fractions and mixed numbers [u'comparing_improper_fractions_and_mixed_numbers']
Fractions on the number line 3 [u'fractions_on_the_number_line_2', u'fractions_on_the_number_line_1']
Multiplying mixed numbers 1 [u'multiplying_fractions_0.5']
Converting decimals to fractions 2 [u'converting_decimals_to_fractions_1']
Ordering numbers [u'equivalent_fractions']
Proportions 2 [u'proportions_1']
Positive and zero exponents [u'multiplying_and_dividing_negative_numbers']
Negative exponents [u'exponents_1']
Fractional exponents [u'exponents_2']
Exponent rules [u'exponents_2']
Radical equations [u'linear_equations_3']
Simplifying logarithms [u'multiplication_1']
Simplifying logarithms 2 [u'logarithms_1']
Reading pictographs 2 [u'reading_pictographs_1']
Reading bar charts 2 [u'reading_bar_charts_1']
Evaluating expressions in one variable [u'addition_1', u'multiplication_1']
Writing expressions 2 [u'writing_expressions_1']
One-step equations with multiplication [u'division_1']
2-step equations [u'linear_equations_1']
Equations with variables on both sides [u'linear_equations_2']
Percentage word problems 1 [u'linear_equations_1']
Absolute value equations [u'absolute_value', u'linear_equations_3']
Multi-step equations [u'linear_equations_3']
Expressions with unknown variables 2 [u'expressions_with_unknown_variables']
Multi-step linear inequalities [u'linear_equations_3']
Finding the equation of a line [u'solving_for_the_y-intercept', u'line_graph_intuition']
Midpoint formula [u'adding_decimals']
Graphing systems of inequalities [u'graphing_inequalities', u'graphing_inequalities_2']
Graphing and solving systems of inequalities [u'graphing_systems_of_inequalities']
Evaluating expressions with function notation [u'functions_1']
New operator definitions 2 [u'new_definitions_1']
Factoring polynomials 2 [u'solving_for_the_y-intercept', u'line_graph_intuition']
Factoring difference of squares 2 [u'factoring_difference_of_squares_1']
Radical equations [u'linear_equations_3']
Multiplying expressions 1 [u'multiplying_expressions_0.5']
Midpoint formula [u'adding_decimals']
Simplifying logarithms [u'multiplication_1']
Simplifying logarithms 2 [u'logarithms_1']
Complementary and supplementary angles [u'complementary_angles', u'supplementary_angles']
Vertical angles 2 [u'vertical_angles']
Parallel lines 1 [u'corresponding_angles', u'same_side_exterior_angles', u'same_side_interior_angles', u'alternate_interior_angles', u'vertical_angles', u'alternate_exterior_angles']
Parallel lines 2 [u'parallel_lines_1', u'corresponding_angles_2', u'alternate_exterior_angles_2', u'alternate_interior_angles_2', u'same_side_exterior_angles_2', u'same_side_interior_angles_2']
Angles 2 [u'angles_1']
Solid geometry [u'geometry_1']
Special right triangles [u'pythagorean_theorem_1']
Finding the equation of a line [u'solving_for_the_y-intercept', u'line_graph_intuition']
Midpoint formula [u'adding_decimals']
Evaluating expressions with function notation [u'functions_1']
Factoring polynomials 2 [u'solving_for_the_y-intercept', u'line_graph_intuition']
Factoring difference of squares 2 [u'factoring_difference_of_squares_1']
Trigonometry 1.5 [u'trigonometry_0.5']
Trigonometry 2 [u'trigonometry_1']
Special right triangles [u'pythagorean_theorem_1']
Radians and degrees [u'degrees_to_radians', u'radians_to_degrees']
Graphing systems of inequalities [u'graphing_inequalities', u'graphing_inequalities_2']
Graphing and solving systems of inequalities [u'graphing_systems_of_inequalities']
Average word problems [u'linear_equations_1', u'addition_1', u'multiplication_1']
Standard deviation [u'variance']
import json
f = json.load(open('Downloads/topictree.json', 'r'))
def print_exs(top):
if 'node_slug' in top and 'e/' in top['node_slug'] :
print top['node_slug'][2:]
if 'children' in top:
for child in top['children']:
print_exs(child)
print_exs(f)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment