Engaging students with theory through ACM collegiate programming contest | Synapse