Encouraging Playful Design in Computer Science



Similar documents
Incorporation of an online tutoring tool into programming courses. Abstract

Announcements. Project status demo in class

KS3 Computing Group 1 Programme of Study hours per week

How To Teach Students To Program A Virtual World

SDA Bocconi Learning Goals

Introducing Software Engineering to the Freshman Student

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Facilitating Students Collaboration and Learning in a Question and Answer System

KNOWLEDGE MANAGEMENT AND COOPERATION TECHNOLOGY. G. De Michelis Dept. of Informatics, Systems and Communication, University of Milano Bicocca, Italy

Using Visual Logic with Pseudocode to Teach an Introductory Programming Course

Programmer education in Arts and Humanities Course Degree.

Proposal for a BA in Applied Computing

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

CTF & CSE USING THE KHAN ACADEMY CS PLATFORM

CS/ISE 5714 Spring 2013

Code Kingdoms Learning a Language

Heuristic Evaluation Techniques for Collaborative Software

Research and Digital Game- based Play: A Review of Martha Madison

Student Achievement through Staff Development

Introductory Problem Solving in Computer Science

AP CS Principles Pilot at University of California, San Diego

User research for information architecture projects

ELL Considerations for Common Core-Aligned Tasks in English Language Arts

Using Measurement to translate Business Vision into Operational Software Strategies

Joseph L. McCourt Middle School Cumberland, RI Servicing students in grades 6 8

A Project Based Approach for Teaching System Analysis, Design, and Implementation Courses

Felix B. Tan and Hazel Chan The University of Auckland, New Zealand. Introduction ABSTRACT

Computer Graphics Art Curriculum Resources

Doctor of Education - Higher Education

Epistemic artifacts The potential of artifacts in design research Flemming Tvede Hansen The Danish Design School, Denmark

STUDENT PERSPECTIVES ON A REAL WORLD PROJECT

Introductory Game Creation: No Programming Required

Paper Designing Web Applications: Lessons from SAS User Interface Analysts Todd Barlow, SAS Institute Inc., Cary, NC

Case Method for Computing Education (CMCE)

Delaware Performance Appraisal System

BA&Sc in Interactive Systems Design

Rhode Island School of Design Strategic Plan Summary for critical making. making critical

APPLY AGENT BEST PRACTICES AND BRIDGE THE SUCCESS GAP Product No

Mississippi Statewide Teacher Appraisal Rubric M-STAR

Abstract Title Page. Authors and Affiliations: Maria Mendiburo The Carnegie Foundation

Screen Design : Navigation, Windows, Controls, Text,

Measuring the Effectiveness of Software Testers

The Art Institute of Philadelphia Catalog Addendum GAME ART & DESIGN

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

REFLECTING ON EXPERIENCES AS PROGRAM COORDINATOR WITH SLA, SI, AND PLTL AT IUPUI

Banking Application Modernization and Portfolio Management

Leveraging online courses to increase student success in a Computer Science degree. Linda Marshall

The Bennington College Plan Process

EXPERIENCES WITH A REAL PROJECTS FOR REAL CLIENTS COURSE ON SOFTWARE ENGINEERING AT A LIBERAL ARTS INSTITUTION *

School of Computer Science

The Value of Small Language Programming For Computer Science Majors

Executive Summary and Recommendations

Involving Parents in the School - Ministry of Education Tips

Blended Delivery in PostSecondary Music Education: The Cognition of Listening

HOW TO USE ICT TO HELP STUDENTS TO GAIN IN CONFIDENCE AND EFFICIENCY IN AN ALGORITHMIC AND COMPUTER PROGRAMMING COURSE?

Doctor of Philosophy in Computer Science

Errors in Operational Spreadsheets: A Review of the State of the Art

INSTRUCTIONAL STRATEGY IN THE TEACHING OF COMPUTER PROGRAMMING: A NEED ASSESSMENT ANALYSES

Bridging the Global Skills Gap

Session T1D Assessing Course Outcomes for a Freshman Engineering Computer Programming Course

The Rhetoric of Web Design

Instructional Transaction Theory: An Instructional Design Model based on Knowledge Objects

Qatari K-12 Education - Problem Solving Climate Crisis

Traveling Circuits Lesson 3 MY ROBOTIC FRIENDS

Rapid prototyping: an efficient way to collaboratively design and develop e-learning content.

Learning and Teaching

New Teacher Preparation Partnership Program

Approaches to learning (ATL) across the IB continuum

Teaching Methodology for 3D Animation

Innovative Module Delivery Methods In A Creative Music & Sound Technology Teaching Environment

Social Media and CFL Pedagogy: Transforming Classrooms into Learning Communities

Teaching Object-Oriented Software Design within the Context of Software Frameworks

Teaching Math to English Language Learners

Effective Features of Algorithm Visualizations

Critical Thinking in Community Colleges. ERIC. Digest.

The Open University s repository of research publications and other research outputs

Computational Modeling and Simulation for Learning an Automation Concept in Programming Course

PRINCIPLES OF ORGANIZATIONAL GOAL SETTING. Author, Birge D. Reichard Ph.D.

elfa2015 Pedagogical Implications of a Crossword Puzzle Mobile Application for Language Learning

SAS JOINT DATA MINING CERTIFICATION AT BRYANT UNIVERSITY

Abstract. Introduction

Difference Between Model-Driven and Traditional Iterative Software Development

The Application of Statistics Education Research in My Classroom

Developing Higher Level Thinking

A Client-Server Interactive Tool for Integrated Artificial Intelligence Curriculum

Experimental Evaluation of Teaching Recursion in a Video Game

Computer Assisted Language Learning

Curriculum for the basic subject at master s level in. IT and Cognition, the 2013 curriculum. Adjusted 2014

Are College Students Prepared for a Technology-Rich Learning Environment?

An Object Model for Business Applications

Improving learning outcomes for first year introductory programming students

Masters in Human Computer Interaction

Masters in Advanced Computer Science

How to Support Students Computational Thinking Skills in Educational Robotics Activities

A Software Engineering Model for Mobile App Development

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

A Guide. Assessment of Student Learning

Software Process for QA

The Power of Effective Leadership in Schools

LEARNING THEORIES Ausubel's Learning Theory

Transcription:

Encouraging Playful Design in Computer Science Gregory Garrett Creativity and Design Cognition, Spring 2010 Georgia Institute of Technology gte180w@gatech.edu Abstract In this paper we describe our vision for playful design in the realm of computer science education. As a concept, playful design has been in existence since Paul Rand s seminal work published in 1965. However, its application has been limited to more traditional design fields, such as art and architecture. We believe it can be effectively applied to computer science design exercises as well, helping to better pique student interest. For this, we compare two current development environments aimed at introductory computer science education, discussing where they fulfill the principles of playful design and where they do not. Then we will sketch out a hypothetical system that we believe comes closer to embodying those principles. Keywords Playful design, Computer Science, education, serious games Copyright is held by the author/owner(s). ACM Classification Keywords K.3.2: Computer and Information Science Education General Terms Education, Experimentation Introduction Actively engaging students in learning and keeping their long-term interest is a challenge for teachers in any subject area, but perhaps more so for the subject of computer science. Many institutions report attrition rates as high as 30-40% for their computer science programs, indicating the extent of this challenge [3]. While some attrition is to be expected for any college program, this rate is high in comparison to programs of similar academic complexity. For freshmen entering the Georgia Institute of Technology, only 60.5% of those starting in the College of Computing graduated after 6 years [7]. For those entering the College of Engineering, the graduation rate within that timeframe was 81.9%. A number of approaches have been attempted to try and address this problem. Programming environments such as Scratch and Alice are designed to lower the learning curve, allowing students to create robust, interactive systems using a simplified syntax. Other

systems aim to integrate the learning of computer science concepts into games [3, 5]. The shared trait amongst these solutions is the leveraging of play as a means to further engage and motivate students. Yet even such simplifications may be too much for beginning students. Playful design is used in such fields as architecture to teach fundamental concepts such as proportion and symmetry without requiring the student to build scale models [8]. Instead, abstractions like Tangrams are used, aiding the student in exploring these concepts implicitly. Playful design also encourages creativity in students, helping them to push the boundaries of what their freshly learned knowledge can do. We believe that this approach would be beneficial to beginning computer science students, and would better engage them in the subject, allowing them to see the potential capabilities of computer programming. Playful Design Paul Rand argues that the best way to engage a student in design activities is to provide them with problems defined in such a way that the limits imposed in them arouse the play instinct [8]. Not only do such limitations keep the student interested, they also help the student to produce novel and meaningful solutions. Without these limitations, the student will most likely lose interest, producing designs that are either a literal translation of the problem or some meaningless, abstract pattern. The limitations defined in the problem become a type of scaffolding. An example of this would be the use of grids when drawing [8]. The grid enables the artist to worry less about such concepts as proportion and dimensions, and instead focus on individual expression and the creation of novel ideas. Yet the ultimate utility of the grid comes in the fact that if the artist feels it necessary, they may ignore that scaffolding. Abstraction is another important aspect of playful design. Openness and ambiguity allow students to create their own meanings when at play [4]. Yet this can only happen after the student has a basic knowledge of design disciplines and their applications [8]. This knowledge of essential principles acts as an additional limitation. Rand uses a quote from Georges Braque to illustrate this point: Progress in art does not lie in extending its limits, but in knowing them better. Once this baseline of knowledge has been obtained, exercises should vacillate between theoretical and practical problems [8]. This pedagogical technique closely mirrors what Costello and Edmonds consider to be a key indicator of play: the oscillation between engaging in explorative goals (asking What can this do? ) and playful goals (asking What can I do with this? ) [4]. Adding the following types of discrepancies can encourage this oscillation: novelty, surprise content, complexity and uncertainty. Playful Design for Computer Science Playful design exercises for computer science must embody the core principles of the practice, consisting of problems with defined limits conducive to play, encouraging the student to move back and forth between explorative and playful goals. Since Rand first defined playful design, computers have become near ubiquitous. This platform allows for the creation of design exercises with the included dimension of interactivity. This interactivity can enhance the

teaching experience by providing the student with feedback useful to learning. A study about using computer games as a medium for teaching computer science concepts found that meaningful feedback improves learning effects [2]. The same study also found that students using the test system were less engaged when there was no clear link between their ingame performance and the theory they were learning in class. the user would simply draw outside of the gridlines to engage in more free form design. In computer-based playful design, however, such capability must be consciously programmed into the system. The following computer science concepts, which are suggested by the CS Joint Curriculum Task Force for introductory computer science courses, would be ideally suited to playful design exercises [1]: Thus, playful design exercises for computer science will successfully implement the following features: Problem limitations which are conducive to play Encouragement of oscillation between explorative and playful goals Meaningful feedback A clear link back to computer science concepts Algorithmic computation Algorithmic efficiency Data models Control structures Order of execution Encapsulation Relationships among encapsulated components Testing and debugging As with traditional playful design, a degree of abstraction and scaffolding must be provided to encourage play. Abstraction will be accomplished by distilling computer science concepts down to their most basic form, presenting them through a metaphor. The creation of the metaphor is vital, for the student must be able to link it back to the theory. Scaffolding would provide a mechanism to allow the user to easily create a computer program. A possible example of this would be to place available coding instructions in the environment, enabling the user to rely less on rote memory and instead focus on creating novel solutions. One significant difference between computer-based and traditional playful design is the user s ability to forgo the exercise s scaffolding. In traditional playful design, Evaluating Scratch and Alice During the initial research phase of this project, we were unable to find any systems that were explicitly created for engaging the computer science student in playful design. However, there do exist a number of development environments aimed at beginning students, each claiming to aid the learning process in one way or another. As an initial step in our study, we wanted to perform a high level evaluation of these systems to see how well they fulfilled the requirements for playful design. We chose to evaluate Scratch and Alice, two development environments that have been used in the classroom to aid beginning computer science students. Our decision

was based on the popularity of both systems, as well as their use of a direct manipulation interface. We also investigated the Processing and Phrogram development environments, but found their reliance on rote memorization of available program instructions to be detrimental to encouraging play. As this is an exploratory study, we did not perform the user studies necessary to determine if Scratch and Alice quantitatively elicit the play instinct in users, and if the oscillation between explorative and playful goals occurred. Instead, we performed cognitive walkthroughs of the systems using an exemplary task (see attached supplementary material). The exemplary task consisted of making an avatar move back and forth across the screen. While this may seem trivial, even this simple task exercises a number of core computer science concepts: The user must know an operation exists before they can learn its capabilities (the explorative goal). Synthesizability, on the other hand, is concerned with what happens after an action, that is, feedback. As discussed previously, proper feedback can enhance the learning experience, so a successful playful design system will pay careful attention to it. Data models by setting and manipulating the value of variables Control structures through the use of loop and branching structures Order of execution by the proper sequencing of commands Overall, it was found that Scratch contained fewer usability pitfalls. Usability is a major factor in playful design systems, as the goal is to get the user to focus on creating novel solutions, not on figuring out how to use the system. Of particular interest to this study are the principles of predictability and synthesizability. Predictability involves operation visibility, which is necessary to the explorative aspects of playful design. figure 1: The Scratch interface Scratch best fulfilled the predictability principle. In Alice, a number of key operations were invisible to the user. They did exist, but the user had to hunt around for them. This is annoying for more experienced programmers and could be daunting to beginning computer science students.

Scratch succeeded in this regard because it stored available operations in a two level deep structure. As seen in figure 1, all control operations are listed under the Control tab. If a user was unsure of where they might find a particular operation, they could fairly easily search the different categories of operations. primitive code functions. Yet in Alice they are bound to the world object. This is also inconsistent with other functions, since loop structures, which are also usually implemented as primitive functions, occupy their own area of the interface (see lower right hand corner in figure 2). Alice has a number of other instances where it fails to uphold the predictability principle. Neither Scratch nor Alice generated feedback that might be useful for learning. Making syntax errors in either development environment is difficult to do, as the scaffolding they provide prevents the user from doing so. Instead, errors occur from the incorrect ordering of operations. And in this the systems do not give feedback. Instead, the user must watch the movements of the avatar to determine where they may have gone wrong. This can be tedious or even impossible if the avatar moves outside of the camera view and does not return. figure 2: The Alice interface Alice, however, offered a more complex interface. Operations were tightly bound to their parent object, a concept that many beginning computer science students will be unfamiliar with. This binding does not always make sense, as is demonstrated when the user wishes to add a branching statement to their program. In other programming languages, such functions are not associated with a particular object, and instead are These results indicate that neither system analyzed fully implements all of the elements necessary to qualify as playful design. While Scratch presents a more usable interface that encourages exploration, it lacks the kind of feedback that would be useful for learning. Future Work Much work is still required to fully realize a development environment that qualifies for playful design. A first step would be to perform user studies on both Scratch and Alice to determine if they invoke the play instinct in the participant. How effectively a system brings out the play instinct could be measured by the number of novel solutions developed during a test session, as well as through participant interviews

and surveys. Pre- and post-tests could also be used to measure if participants experienced any learning gains as a result of using the system, as in [2]. Results from this study could then be used to inform the design of a development environment prototype with the explicit purpose of fulfilling playful design principles (figure 3). figure 3: A playful attempt at creating a highly abstract system which can still effectively teach computer science concepts. The user is given a non-descript blob, which they must modify to accomplish a goal. Adding features, such as a head and wings, gives the creature new capabilities. Part of the challenge is in determining which combination of features will best complete the task. The user must create an action sequence from the list of available operations to attempt to reach the goal of the game. This system could exercise concepts such as relationships amongst encapsulated components, order of execution, and algorithmic efficiency.

7 Acknowledgements We thank Ellen Do for her support and guidance in this work. Citations [1] ACM/IEEE-CS Joint Curriculum Task Force. In Computing Curricula 2001. Accessed Apr. 21, 2010. http://acm.org/education/curric_vols/cc2001.pdf [2] Barnes, T., Powell, E., Chaffin, A., and Lipford, H. Game2Learn: Improving the motivation of CS1 students. In Proc. Innovation and Technology in Computer Science Education 2007, ACM Press (2007), 121-125. [3] Beaubouef, T. and Mason, J. Why the High Attrition Rate for Computer Science Students: Some Thoughts and Observations. In ACM SIGCSE Bulletin, ACM Press (2005), 103-106. [4] Costello, B. and Edmonds, E. A Study in Play, Pleasure and Interaction Design. In Proc. Designing Pleasurable Products and Interfaces 2007, ACM Press (2007), 76-91. [5] Korte, L., Anderson, S., Pain, H., and Good, J. Learning by Game-Building. In Proc. Innovation and Technology in Computer Science Education 2007, ACM Press (2007), 53-57. [6] Kultima, A., Niemelä, J., Paavilainen, J., and Saarenpää, H. Designing Game Idea Generation Games. In Proc. Future Play 2008, ACM Press (2008), 137-144. [7] Office of Institutional Research and Planning. Annual First-Time Freshman Retention Study. Georgia Institute of Technology (2008). [8] Rand, P. Design and the Play Instinct. In Education of Vision, ed. Gyorgy Kepes, George Braziller Inc. (1965), 154-173.