Automated assessment and experiences of teaching programming | Synapse