Recognizing computational thinking patterns | Synapse