apply computational thinking concepts and practices when planning and designing computational artifacts