Code Animation Platform
STEM Education focuses on building the skills to solve real-life problems using a mixture of technology, science and logic, and the best way to teach how to integrate technology and logic is to teach to Code.
Diogene-CT is a code visualization environment developed by Svelto!, thanks to a long experience with innovative methods for teaching programming conducted at introductory programming courses at the University level, that stands a new paradigm called ACME (“Code Animation by Evolved Metaphors”). ACME is a consistent visual metaphors for both procedural and object-oriented programming to teach computer programming in secondary schools and university first-year courses.
The innovative approach of Diogene-CT can be summarized in the following points:
Specifically, Diogene-CT has three different tools that makes the difference: the Mechanical Arm Metaphor for Procedural Programming, The Robot-Community Metaphor for Object-Oriented Programming and the gamification.
The aim is to teach the basic concepts of any programming language, like variables, assignments, control structures and so on. More specifically, we develop a metaphor for the execution of code instructions based on the use of mechanical arms.
The main elements of the metaphor are as follows:
Each instruction causes a set of actions by the mechanical arm on the scenes, guided by the lollipop. Students can see all of the intermediate states of the program animation, and this removes the "black box" effect associated with the traditional execution of code by the machine, and makes it more transparent to students.
Diogene-CT designs a metaphor of object-oriented applications as communities of cooperating robot, each robot being a component (class of objects); the typical concepts of object-oriented programming (reference, message, method, package, binding etc.) will be explained in terms of this metaphor (e.g.: a reference to an object is a remote control for the object; a message between objects is a message exchanged between robots etc.).
The Robot-Community Metaphor is strictly tied to the object-oriented computer programming concepts. It uses similar real-world elements to easily explain the typical concepts of object-oriented programming. It also benefits from the mechanical arm metaphor interaction so that the learner can automatically zoom-in procedural programming details and zoom-out to the highest object-oriented interaction level.
The last important feature of our metaphor-based approach is that it naturally lends itself to gamification. Gamification is the technique of teaching problem-solving using games, and is already proven to be effective in computer programming. In the Diogene-CT approach, the goal of a game is to write a computer program that solves a problem, e.g., a math problem or a simple simulation of a scientific phenomenon. The game consists of designing the target state of the scene, i.e., the one in which all results have been computed, and asking students to physically enact the actual animation -- either procedural or object-oriented. Students can work in group. Each of them is responsible of performing the actions of an element of the scene -- say, the mechanical arm or the lollipop, or the calculator, or to conduct the actions of a component robot.