Paint, Glitter, and Chatbots: Programming Activities for Novices Designed with Intellectual Need and Replay Value
Friday, October 5th | 2:45 – 4:15 pm | Merritt Room
This presentation shares three extensible programming activities that motivate novices to learn foundational concepts through intellectual needs, rather than purely economic or social needs. The activities offer high replay value so that instructors can offer greater volume and diversity of practice without developing entirely new exercises. All three activities map to CS1 curriculum and are freely available as open educational resources (OER).
In summer 2018, the curriculum team at Mimir taught an online programming course in Python for complete novices. Even though our students likely have different needs from your students, we wanted to make our materials available as open educational resources (OER) so that any instructor can reuse, remix, and refine them for free.
Replay value means that instructors can reuse the context of an activity for different topics and formats. The goal is to offer greater volume and diversity of practice without devoting time creating entirely new exercises.
Developing great instructions, starter code, and assessments is time-consuming, so we hope to make the most out of carefully designed materials.
Learners sometimes describe programming exercises as tedious or pointless. Math education researchers Fuller, Rabin, and Harel proposed five categories of intellectual need to avoid aimless tasks2:
Learners program virtual robots to cover the game map in their color of paint. Learners can watch a replay of the game in their browser to see how their instructions played out. Great for loops and conditionals. Complete novices could also try simple PaintBot challenges that only require three methods: forward(), rotateLeft(), rotateRight()
.
Learners step through the source code of a program to determine what might cause it to "detonate" and fill their screen with colorful strings. Great for conditionals, functions, and recursion.
Learners create, test, and publish custom chatbots, requiring only basic programming concepts. Great for coursework on validating user input, conditionals, strings, software design, human computer interaction (HCI).
The source code and documentation for all three projects is publicly available on GitHub. Feel free to download, fork, or submit issues and requests.
Do you want free lesson plans and solutions for these activities? Schedule a chat with the instructional designers! They would love to hear more about your class and share about the pedagogy behind these three activities.