The case for case studies of programming problems | Synapse