In the United States and around the world, there are increasing efforts to include computer science through primary and secondary education.
For example, code.org and the Computer Science Teachers Association promote computer science curricula from kindergarten on up.
Many challenges persist, including lack of educators with computational training or background, an already overfull school year, little consensus on what students should learn or the best ways to teach it.
Educational games have a potentially significant role to play in the increasing efforts to expand access to computer science education.
They can provide technical content, reducing the burden on educators.
Furthermore, game environments can provide an educational setting possessing many attributes known to support better learning outcomes, such as varied practice, immediate feedback, intrinsically motivating goals, and an engaging social context.
Existing games designed to teach computational ideas generally consist of either open-ended exploration with little direct guidance or a linear series of puzzles with lots of direct guidance, but little exploration.
Educational research indicates, however, that the most effective approach may be a hybrid of these two approaches.
Computational thinking has received a great deal of attention in the context of expanding access to computing education.
While no universally agreed upon definition exists, the use of certain problem-solving strategies or computational practices has emerged as a central theme.
These strategies include skills such as "being incremental and iterative" or "using abstraction and modularization."
How to directly teach such skills in an educational game is an open problem.
Here's the grand challenge: create an educational game to teach these computational practices that combines exploration and direct guidance in a way that is both engaging and effective.
I have made a start towards this goal with the game Dragon Architect.
In this comps project you will build upon this work and experimentally evaluate your efforts.
The Project
In this project you will explore the design space of an educational computational thinking game, using the existing Dragon Architect as a starting point, and design and implement a user experiment.
Specifically, the project will consist of the following phases:
Literature search and administrative setup.
You'll get started by reading, analyzing, and presenting to each other the preexisting literature on educational games and teaching computational thinking.
You will also need to do an Institutional Review Board (IRB) proposal to Carleton for permission to perform the user experiment portion of the project.
Deploy Dragon Architect.
The Dragon Architect project was last worked on in 2016, and is no longer hosted anywhere on the Internet.
Your first step software-wise will be to familiarize yourselves with the existing code and get Dragon Architect back online where people can actually play it.
Design space exploration.
You will extend the existing game by adding new pedagogical content, implementing new features, or otherwise exploring a new part of the design space for a computational thinking game.
This phase will necessarily include informal user testing to get feedback on your extensions.
User experiment.
You will design and conduct an experiment with real people to evaluate one or more specific aspects of your game.
Recommended Experience
All seniors are likely to have the background to succeed with this project.
Dragon Architect is an online browser-based game, so web programming experience (e.g., JavaScript/TypeScript, HTML) will be helpful, as will experience from Software Design (CS 257) and/or HCI (CS 344).
If you have had any statistics classes that introduced concepts about hypothesis testing (i.e. any course that might count towards the Statistics major, or a quantitative analysis course in one of the social sciences) that will be helpful for the analysis portion.
Since you may be designing new educational content for novice programmers, experience as a prefect or lab assistant for CS 111 will be relevant.
References/Inspiration
Existing systems for teaching computational ideas:
Bauer, A., Butler, E., & Popović, Z. (2017). Dragon architect: open design problems for guided learning in a creative computational thinking sandbox game. In Proceedings of the 12th International Conference on the Foundations of Digital Games (pp. 1-6). [pdf]
Kelleher, C., & Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys (CSUR), 37(2), 83-137. [link]
Brennan, K., & Resnick, M. (2012). New frameworks for studying and assessing the development of computational thinking. In Proceedings of the 2012 annual meeting of the American educational research association, Vancouver, Canada (Vol. 1, p. 25). [pdf]
Mayer, R. E., & Wittrock, M. C. (1996). Problem-solving transfer. Handbook of educational psychology, 47-62. [Gould Library]