The Programmer's Apprentice: a research overview | Synapse