Assessing computational thinking