About the series: Python for kids
In our endeavour to make learning fun and free of memorization, we have been using Python to allow children to experiment, conceptualize, form their own opinion and discover facts. This way, children engage with the learning process with more intensity and the they show higher retention rate vis a vis conventional learning. Our results have shown that the children learning with us, ranging from grade 3 to graduate students, have a recall value better than conventional learning, making the learning many times faster.
Our schools focus on rewarding the students who score better and in turn reward the teachers and schools whose students score better. This leads to a system that makes sure that students score higher and higher marks, leading to rote learning and conceptually weaker students.
We have created program and content to stimulate and challenge their problem-solving abilities. This makes them think and try different things before they get it right. Our focus is on making them work harder to get things right, not to worry about failing many times before they succeed and trying to a few solve complex problems rather than practising too many easy and pattern-based problems.
The focus shifts from being always ‘right’ to getting it right after several failed attempts.
The apps and websites are restrictive in nature and do not allow students to experiment in same way as the direct programming interfaces like Jupyter notebooks provide. That is why we have launched our services with direct programming interface.
Though these programs are created to help students do self-learning, it is best suited to be used as instructor-assisted learning. We believe that it is to naive to think self-learning can be stimulating enough to motivate students try challenging problems and keep motivation alive even after several failed attemts on a regular basis.
Our software can be used for self-learning but the full potential is realized when used with an instructor. Ask the author for more details or put comments.
Exponentiation is a mathematical operation, written as bn, involving two numbers, the base b and the exponent or power n, and pronounced as "b raised to the power of n". When n is a positive integer, exponentiation corresponds to repeated multiplication of the base: that is, bn is the product of multiplying n bases.
Isn't the above definition complex and difficult to understand? And of course it is. So we we also promote intutive learning.
- If we have to calculate 5 times 5, we write 5 * 5.
- If we have to calculate 5 times 5 times 5, we write 5 5 5.
- If we have to calculate 5 times 5 times 5 ... and repeat this process 100 times, we write 5 5 5 * ... 100 times.
- But there is a better way to do this: 5100
Our Packages
We use our own python packages, but we emphasize that children write code without using our packages as well. The objective of our packages is to focus on conceptual learning rather than programming. It also allows us to bridge that gap between something is required and not available out of box.
We have created a package for exponents or power. Let us import it.
from xv.math.basicmaths import PowerManager
from IPython.display import HTML
ke = PowerManager()
ke.getRandomProblem(problem_type = 3)
ke.printAnswer()
ke.printSolution()
As you see, the questions are randomized and are created by our AI/ML models which analyze difficulty levels, the skill status of students and learning objectives to make it the learning as relevant, fast and conceptual as possible.
The problems are not repeated, allowing students or group of students to repeat problems without getting used to patterns. During the tests, all students get differnt questions that relate to same skill levels, making it fair and conceptual test, rather than a test of practice and memorization.
If we run the same problem type again, we get the following question:
ke.getRandomProblem(problem_type = 3)
ke.printAnswer()
ke.printSolution()
Let us run for more problem types. You will note that all problems are provided with full solutions. We keep the details to adequate levels so that students discover the concept, rather than read and learn.
ke = PowerManager()
for i in range(len(ke._problemTemplates)):
display(HTML(f"<h2>Question {i}</h2>"))
ke.getRandomProblem(problem_type = i)
display(ke.printProblem())
display(HTML(f"<h6>Answer:</h6>"))
display(ke.printAnswer())
display(HTML(f"<h6>Solution:</h6>"))
display(ke.printSolution())
print(f"""{'-'*50}
""")
pass
We have been running several classes and sessions and the above problems are covered generally in two one our sessions with students who are learning the exponents for the first time.
We repeat the concept after a few weeks without any revision in-between. The retention rate is 80-90% which is pretty high.
Out AI/ML models create network of concepts, we call them Knowledge Elements(KE). Networked KEs are used to use already learned concepts in problem solving of related concepts or higher level concepts. This way, they keep on using the concepts already learned without practicing or slowing down the learning process.