Text this: Teaching computer programming: Practices, difficulties and opportunities