A few weeks ago, I participated in a very interesting Programming Language Seminar at the Electrical Engineering and Computer Science School about Computer Aided Education and I wanted to report about it.
As you probably know, I was a Secondary School Teacher and a Lecturer at the University and my wife is a Secondary School Teacher as well. We both have always been interested in how to improve the education process and that is why I wanted to attend the Seminar.
The seminar was about how logical reasoning and search techniques (inspired from the programming languages community) can be used to automate two key tasks in Education, namely problem generation and feedback generation. The speaker illustrated the approach using recent research results that have been applied to various STEM (Science, Technology, Engineering and Mathematics) subject domains including mathematics, programming, logic, and automata theory. The results make advance the state-of-the-art in intelligent tutoring, and can play a significant role in enabling personalized and interactive education in both standard classrooms and MOOCs.
The speaker was Sumit Gulwani, who obtained his PhD in Computer Science from UC-Berkeley in 2005 , for which he was awarded the ACM SIGPLAN Outstanding Doctoral Dissertation Award, a principal researcher at Microsoft Research, and an adjunct faculty in the Computer Science Department at IIT Kanpur. He has expertise in formal methods and automated program analysis and synthesis techniques. As part of his vision to empower masses, he has recently focused on cross-disciplinary areas of automating end-user programming (for systems like spreadsheets, smartphones, and robots), and building intelligent tutoring systems (for various subject domains including programming, math, logic, and automata). Sumit’s programming-by-example work led to the famous Flash Fill feature of Microsoft Excel 2013 that is used by hundreds of millions of people around the world.
In his presentation , “Example-based Learning in Computer Aided Education”, Sumit explained that human learning and communication is often structured around examples, possibly a student trying to understand or master a certain concept through examples or a teacher trying to understand a student’s misconceptions or provide feedback through example behaviours. Example-Based Reasoning is also used in Computer-Aided Programming (CAP) to analyze programs, including to find bugs through test-input-generation techniques and prove correctness through inductive reasoning or random examples and synthesize programs through input/output examples or demonstrations such example-based reasoning techniques developed in the programming languages community can also help automate certain repetitive and structured tasks in education, including problem generation, solution generation, and feedback generation.
The approach is very promising; Example-Based Reasoning Techniques developed in the area of CAP community can help automate several tasks in Education and therefore CAP research can fuel research in Computer-Aided Education (CAE) and vice versa.
In Computer Aided Education (CAE) a number of importnt tasks can be carried out: Problem Generation, Solution Generation and Feedback Generation and they can be applied to Procedural Content (Mathematical or Algorithmic Procedures) or Conceptual Content (Proofs or Constructions).
The motivations for Problem Generation is clear: on one side the need to generate problems “similar to other problems” (while avoiding copyright issues and avoid cheating in “unsynchronized instructions” (ex. MOOCs) and on the other the generation of problems of a “specific difficulty level or usage” (allowing progression and personalized learning paths).
This facilitate the life of teachers; in fact sometimes the generation of a variant of a test with the above mentioned constrains may take as much as the generation of a new one !!!.
He explained the techniques using examples to make students learn arithmetic procedures of increasing degree of difficulty ,using “Traces”, a set of building blocks for procedural learning created by examining the specific set of decisions that the learner needs to make when solving a practice problem with a target procedure.
In this way the representation of the problem and progress is formalized and templates with placeholders are used for the generation.
The above mentioned techniques can also be applied to non-mathematical problems such as “sentence completion with multiple choice answers” ( like the ones that are used in the SAT exam in the States) or natural deduction problems.
Solution Generation is also very important; it is interesting to generate sample solutions to new problems, to generate customized solutions or complete unfinished ones or inform solution characteristics during problem generation. The application to conceptual content in the area of geometric problems using ruler and compass was particularly interesting.
Finally he spoke about feedback generation. Motivation is clear; on one side, it makes teachers more effective since it saves time and provides immediate insight on where the students are struggling; on the other side it can enable a rich interactive experience for students since it allows the generation of hints or may point to simpler problems depending on the kind of mistake to allow them to gain better understanding and facilitate progress and self-confidence.
For procedural content, he explained the use of Programming By Example (PBE) techniques to learn about “buggy procedures in the student mind” and in conceptual content using “inputs for which the solution is not correct” to show the effects.
Very interesting seminar on a very interesting subject indeed !!!
More to follow soon…
I start having some very interesting contacts with whom exchange information and experiences!!
Stay tuned …..