Much has been written about the benefits of using reverse engineering, or “backward design” to help students become more familiar—and proficient—with learning to code.
Many refer to the work of Wiggins and McTighe, with one report by Kantorski, et al identifying this as: “a well-established curriculum design methodology. We believe that the benefits of backward design can be harnessed beyond traditional curriculum design and applied to the design of apps for educational purposes.” The report adds that “McTighe and Wiggins (2012) suggest that when someone truly understands information, they can, in brief: (1) explain concepts, principles and processes, (2) interpret information in various ways, (3) apply knowledge to new and complex contexts, (4) demonstrate perspective, (5) display empathy, and (6) display self-knowledge.”
Another report from Magna Publications also references McTighe and Wiggins, concluding: “The use of backward design provides for more relevant and meaningful learning experiences; ensures that the required course outcomes are met; and prepares learners to perform successfully on their final assessment. One starts with the end—the desired results (goals or standards)—and then derives the curriculum from the evidence of learning (performances) called for by the standard and the teaching needed to equip students to perform.”
A Harvard Business Review article entitled “You Can Learn Anything Through Reverse Engineering” further noted:
“To reverse engineer is to look beyond what is evident on the surface and find a hidden structure — one that reveals both how an object or idea was designed and, more importantly, how it can be recreated,” adding: “Reverse engineering can facilitate skill acquisition in any field, and is especially useful for knowledge workers whose success depends on their ability to learn quickly and adapt to rapidly evolving fields.”
Several case studies provide extensive evidence of the benefits of employing this strategy. These include:
“Effect of Reverse Engineering Pedagogy on Primary School Students’ Computational Thinking Skills in STEM Learning Activities”
published by mdpi.com Journal of Intelligence
“Reverse Engineering as a Learning Tool in Design Process”
published by the American Society for Engineering Education
“Ninth-grade students’ perceptions on the design-thinking mindset in the context of reverse engineering” published by Springer.com
- Start with simple examples:
- Use the MAD-learn Platform’s HJC Builder layout fields:
- Analyze the code:
- Experiment with the code:
Now that you have analyzed the code sets, try experimenting with them. Make small changes to each set, and see how they affect the page. For example, you might try changing the font size or color of some text or adding a new element to the screen. By experimenting with the code, you can gain a better understanding of how the different pieces fit together, and how changes to one part of the code can affect the rest of the screen.
- Build your own customized screen:
Finally, once you feel comfortable with the basics of these code languages, try building your own screen from scratch. Start with a simple design, and gradually add more complex features as you gain experience. By building your own screens, you’ll gain a deeper understanding of how these technologies work together, and you’ll be able to apply your knowledge to create more complex and sophisticated websites.