Walled gardens for growing students
How can we create environments for students to learn programming skills that allow them to thrive without overwhelming them?
Creating learning environments for teaching students programming and cyber security skills is hard. Do we give them professional software engineering environments? They'll learn something "real" but they will likely only understand a fraction of the context. Do we use a small, safe educational environment? They'll understand all of the concepts, but they may be hard to translate into practical, open-ended projects and they'll never learn to thrive.
How can we select or craft environments that give us the best of both worlds?
I am currently studying Complex Systems to learn how disastrous societies emerge from well meaning people. I am looking deeply at the Federal Elections Commission data to understand how political contributions spread throughout networks of people and political committees. In general, I hope to figure out how to turn large scale public agreement for change into systemic improvements.
During the work day I teach students and teachers how to understand the data, algorithms and the digital systems in the world around them. Including creating virtual environments for students to explore hacking in an ethically and technically safe way and designing curricula for students to learn the fundamentals of the web, APIs and team based software projects.