It is nowadays considered a fundamental skill for students and citizens the capacity of undertaking a problem-solving process in various disciplines (including STEM, i.e. science, technology, engineering and mathematics) using distinctive techniques that are typical of computer science. These abilities are usually called Computational Thinking and at the roots of them stands the knowledge of coding. With the goal of encouraging Computational Thinking in young students, we discuss tools and techniques to support the teaching and the learning of coding in school curricula. It is well known that this problem is complex due to the fact that it requires abstraction capabilities and complex cognitive skills such as procedural and conditional reasoning, planning, and analogical reasoning. In this paper, we present ACME (“Code Animation by Evolved Metaphors”) that stands at the foundation of the Diogene-CT code visualization environment and methodology. We discuss visual metaphors for both procedural and object-oriented programming. Based on them, we introduce a playground architecture to support teaching and learning of the principles of coding. To the best of our knowledge, this is the first scalable code visualization tool using consistent metaphors in the field of Computing Education Research (CER)