Expert-novice knowledge of computer programming at different levels of abstraction | Synapse