Great ideas in computer science: a gentle introduction | Synapse