A project I made to help make "hacking" accessible to teenagers during a teach sciences program at UCSF.
Idea was to step away from any of the formal aspects of coding and talking about the basic skill of hacking -- how to make sense of something already made, and make modifications even when you don't yet understand context. In this case, an existing game is implemented and the code presented to the students -- they were asked to simply read the screen and "guess" where making edits in the code might have impacts on the behavior of the game.
You'd be surprised how quickly young people are to pick up on small contextual cues and "hack" in spite of any fear of not knowing if it would work. I believe hacking is an important skill, the basic skill of exploration. Formalized knowledge can't exist in vacuum, there are no shortcuts. In nature, the ultimate algorithm is
diversify, and filter.