Program synthesis as a tool for teaching programming | ACM SIGCSE Bulletin | DeepDyve