TrueNotFalse- Boolean Logic Game Design
Boolean logic or Boolean algebra is a branch of algebra introduced by George Boole consisting of two basic values- 0 (False) and 1 (True). It is commonly used with a series of operations like conjunction/ AND (⋀), disjunction/ OR (⋁) and the negation/ NOT (¬) and is the foundation for digital electronics with wide application in software and hardware programming, set theory and statistics and even in mathematics, logical reasoning, and puzzles. Given its wide application, it is formally taught in high school through scientific theorems and algebra in mathematics and physics or through formulation statements in literature or through causal statements in history. In college, advance concepts are taught using conditionals and boolean expressions in computer science and digital logic design in electronics and computer engineering using visual representations like truth tables, logic gates, and venn diagrams (Weng, Tseng, Lee 2010). However, there are a number of shortcomings of such traditional learning methods such as lack of meaningful scenarios for students to relate boolean concepts with (Weng, Tseng, Lee 2010), lack of tools to apply and learn boolean logic through experimentation (Hacker, Sitte 2004) and others. We use a game based learning approach to teach and learn Boolean logic. TruNotFalse is a game design prototype that resulted from a month long 3 member group project in the Education Technology class at Georgia Institute of Technology.
For this project, our team carried out extensive literature review to understand what educational aids and pedagogical designs principles exist for designing for our target audience. Post the literature review, we followed a tight design and prototyping process to design the game.
We considered our audience to be anyone in high school and above either new to or experienced in reasoning and logic. However, for the purpose of this project, we specifically designed an education intervention aimed at high school and college students in the United States interested in CS or Computer Engineering .
Difficulties with CS ed
Students in the United States, even at the high-school and college level, often receive practically no computer science education. Despite an abundant awareness of the potential in technology-related careers, “in 22 states, computer science classes don’t count toward math or science high school graduation requirements,” and “fewer than 3% of college students graduate with a degree in computer science, and only 8% of STEM graduates are in computer science” (Blurbs and Useful Stats, 2015). As a result, many students have little knowledge of computer science, even concepts and tools within computer science that can transfer into other disciplines, such as boolean logic.
In “Misconceptions and attitudes that interfere with learning to program”, Clancy (2004) has shown that students who are new to CS in high school and college hold numerous computer science misconceptions and face difficulties such as :
- Struggles with linguistic transfer: For eg, the usage of ‘while’ in English as a continuous test- “while you are on the road, keep driving”- which is different from the usage of ‘while’ in CS as a one test per iteration,
- Poor real-world analogies such as a variable as a box which makes students believe that a variable can store more than 1 item similar to a box
The Learning approach
"The reason most kids don‘t like school is not that the work is too hard, but that it is utterly boring" (Dr. Seymour Papert, Prof. at the MIT)
Our learning goals heavily influenced the learning approach we took in designing the intervention.
The first and foremost decision we made was how to do we make the technology engaging yet effective for high school and college students. Prior research results have pointed that educational games and gamified interventions engage students with the underlying material and help understand & retain concepts better (McClarty et al. 2012) .
In “Learner-centered design: The challenge for HCI in the 21st century”, Soloway et al (1994) explain how the learning software should put the needs of the learners at the center of the design and address their special needs such as difficulty in understanding the concepts associated with the software, lack of motivation, growth in the knowledge of the individual over time and diversity among individuals. Scaffolding is hence an important design requirement for our learning aid as it targets not only novice students with no background in computer science but also students who are fairly familiar with boolean logic or propositional logic in general but are looking to gain increased mastery in it.
We also wanted to make sure that the learning intervention can be used as an aid to the existing curriculum as well rather than wholly replace it. (Real world authenticity)
Finally, we strongly resonate with Seymour Papert’s (1980) and Resnick et al’s (1996) vision in “Mindstorms: Children, computers, and powerful ideas” and “Pianos not stereos: creating computational construction kits” about expanding the role of the software from a simple “learning machine” and evolving the role of the children, and learners in general, to that of an epistemologist in charge of their own learning by providing them the necessary structure to connect Boolean logic to their interests, hobbies and real world experiences. Through this constructionist approach, we encourage metacognition among students by enabling them to reflect on what they have learnt so far and eventually “... take control of their own learning by defining learning goals and monitoring their progress in achieving them” (Bransford 2000).
Our design assumes no prior knowledge of Boolean logic or programming. It only assumes a familiarity with mazes. The core design of every maze in trueNotFalse is the same. Each has a Boolean clause, such as (A & (!B | C)) which never changes throughout the maze and is assumed to be true (we represent the ‘and’, ‘or’, ‘xor’, and ‘not’ operators with ‘&’, ‘| ’, ‘^’, and ‘!’, respectively). At each junction in the maze, the student chooses a path. Each path is labeled with a Boolean variable, or a Boolean clause. The student selects the path with the ‘best’ label.