20
A Crafts-Oriented Approach to Computing in High School: Introducing Computational Concepts, Practices, and Perspectives with Electronic Textiles YASMIN B. KAFAI, University of Pennsylvania EUNKYOUNG LEE, Korea Institute for Curriculum and Evaluation KRISTIN SEARLE, University of Pennsylvania DEBORAH FIELDS, Utah State University ELIOT KAPLAN, The Westminster Schools DEBORA LUI, University of Pennsylvania In this article, we examine the use of electronic textiles (e-textiles) for introducing key computational con- cepts and practices while broadening perceptions about computing. The starting point of our work was the design and implementation of a curriculum module using the LilyPad Arduino in a pre-AP high school computer science class. To understand students’ learning, we analyzed the structure and functionality of their circuits and program code as well as their design approaches to making and debugging their e-textile creations and their views of computing. We also studied students’ changing perceptions of computing. Our discussion addresses the need for and design of scaffolded challenges and the potential for using crafts ma- terials and activities such as e-textiles for designing introductory courses that can broaden participation in computing. Categories and Subject Descriptors: K.3.2 [Computers and Education]: Computer and Information Science Education—Computer science education General Terms: Human Factors Additional Key Words and Phrases: Electronic textiles, education, K-12 ACM Reference Format: Kafai, Y. B., Lee, E., Searle, K., Fields, D., Kaplan, E., and Lui, D. 2014. A crafts-oriented approach to computing in high school: Introducing computational concepts, practices, and perspectives with electronic textiles. ACM Trans. Comput. Educ. 14, 1, Article 1 (March 2014), 20 pages. DOI:http://dx.doi.org/10.1145/2576874 1. INTRODUCTION In the past decade, researchers and educators have made many efforts to broaden ac- cess to and participation in computer science (CS) education in order to address the continued low number of students interested in CS and the underrepresentation of women and minorities in these fields in the United States [Wilson et al. 2010]. Some have developed programming tools to simplify the mechanics of learning to program, thereby helping young novice programmers to become more fluent and expressive with This work was supported by a collaborative grant (0855868/0855886) from the National Science Foundation to Yasmin Kafai, Leah Buechley, and Kylie Peppler. Any opinions, findings, and conclusions or recommen- dations expressed in this article are those of the authors and do not necessarily reflect the views of the National Science Foundation, the University of Pennsylvania, or Indiana University. Author’s address: Y. B. Kafai; email: [email protected]. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or repub- lish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]. c 2014 ACM 1946-6226/2014/03-ART1 $15.00 DOI:http://dx.doi.org/10.1145/2576874 ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School

  • Upload
    upenn

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

A Crafts-Oriented Approach to Computing in High School:Introducing Computational Concepts, Practices,and Perspectives with Electronic Textiles

YASMIN B. KAFAI, University of PennsylvaniaEUNKYOUNG LEE, Korea Institute for Curriculum and EvaluationKRISTIN SEARLE, University of PennsylvaniaDEBORAH FIELDS, Utah State UniversityELIOT KAPLAN, The Westminster SchoolsDEBORA LUI, University of Pennsylvania

In this article, we examine the use of electronic textiles (e-textiles) for introducing key computational con-cepts and practices while broadening perceptions about computing. The starting point of our work was thedesign and implementation of a curriculum module using the LilyPad Arduino in a pre-AP high schoolcomputer science class. To understand students’ learning, we analyzed the structure and functionality oftheir circuits and program code as well as their design approaches to making and debugging their e-textilecreations and their views of computing. We also studied students’ changing perceptions of computing. Ourdiscussion addresses the need for and design of scaffolded challenges and the potential for using crafts ma-terials and activities such as e-textiles for designing introductory courses that can broaden participation incomputing.

Categories and Subject Descriptors: K.3.2 [Computers and Education]: Computer and InformationScience Education—Computer science education

General Terms: Human Factors

Additional Key Words and Phrases: Electronic textiles, education, K-12

ACM Reference Format:Kafai, Y. B., Lee, E., Searle, K., Fields, D., Kaplan, E., and Lui, D. 2014. A crafts-oriented approach tocomputing in high school: Introducing computational concepts, practices, and perspectives with electronictextiles. ACM Trans. Comput. Educ. 14, 1, Article 1 (March 2014), 20 pages.DOI:http://dx.doi.org/10.1145/2576874

1. INTRODUCTION

In the past decade, researchers and educators have made many efforts to broaden ac-cess to and participation in computer science (CS) education in order to address thecontinued low number of students interested in CS and the underrepresentation ofwomen and minorities in these fields in the United States [Wilson et al. 2010]. Somehave developed programming tools to simplify the mechanics of learning to program,thereby helping young novice programmers to become more fluent and expressive with

This work was supported by a collaborative grant (0855868/0855886) from the National Science Foundationto Yasmin Kafai, Leah Buechley, and Kylie Peppler. Any opinions, findings, and conclusions or recommen-dations expressed in this article are those of the authors and do not necessarily reflect the views of theNational Science Foundation, the University of Pennsylvania, or Indiana University.Author’s address: Y. B. Kafai; email: [email protected] to make digital or hard copies of all or part of this work for personal or classroom use is grantedwithout fee provided that copies are not made or distributed for profit or commercial advantage and thatcopies bear this notice and the full citation on the first page. Copyrights for components of this work ownedby others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or repub-lish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Requestpermissions from [email protected]© 2014 ACM 1946-6226/2014/03-ART1 $15.00DOI:http://dx.doi.org/10.1145/2576874

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:2 Y. B. Kafai et al.

new technologies [Kelleher and Pausch 2005]. Others have examined the social andcultural barriers that impede participation [Margolis and Fisher 2001; Margolis et al.2008] or focused on the use of new activities like game and story designs to recruit moregirls and minorities into computing [Denner et al. 2012; DiSalvo and Bruckman 2011;Kafai 1995]. Efforts are also underway to create networks of opportunities throughstatewide alliances among schools, after-school programs, and college outreach pro-grams [Bruckman et al. 2009].

A different approach to broaden participation in computing has been to developnew computational materials and activities that can serve as alternative points ofentry for underrepresented groups [Buechley and Hill 2010]. The development ofcomputational construction kits such as the LilyPad Arduino [Buechley 2006] pro-vides a compelling example. The LilyPad Arduino instruction kit includes a sewablemicrocontroller, sensors, and actuators, which can be used to teach programming andengineering concepts. While e-textile construction kits are similar in many functionalaspects to robotics construction kits, e-textile kits use soft materials rather than mo-tors and gears, and they incorporate crafting techniques such as sewing, which his-torically have a more feminine orientation. One of the challenges in learning withe-textiles has been to understand the connections to computing as students craft tex-tiles, engineer circuits, and program designs in their projects [Kafai et al. 2012b].

In this article, we report on the design and implementation of a 10-week e-textilemodule we conducted with 15 high school students (16–18 years) as part of a pre-APCS class. Our goals with this implementation were twofold: to showcase the feasibil-ity of bringing e-textiles into the high school CS classroom and to test the applicationof a conceptual framework that could highlight the connections to computing and itsimpact on students’ perceptions of computing. In previous work [Kafai et al. 2012a],we analyzed young people’s learning with e-textiles at the intersections of crafting,coding, and circuitry, to capture its interdisciplinary nature. Here, we apply a frame-work of computational concepts, practices, and perspectives developed by Brennan andResnick [2012] to connect to computational thinking [Wing 2006]. Our analyses of stu-dents’ completed artifacts, design approaches, and reflective interviews, were guidedby the following two research questions. (1) What computational concepts and prac-tices were reflected in students’ e-textile designs? (2) How did students’ perceptions ofcomputing change? Based on our analyses, we describe how providing a design chal-lenge with targeted constraints and support for remixing code and circuit designs canaid in student learning of computational concepts while also providing opportunitiesfor personal expression and broadened perceptions of computing. We highlight whatwe learned about developing innovative, introductory CS activities in K-12 computing.

2. BACKGROUND

There are many compelling examples of how computing curricula can not only providea rich introduction to core concepts and generate personally relevant contexts for com-puting, but also provide bridges to real-world applications and connections to largergroups of students. At the college level, successful approaches have included program-ming multimedia applications [Forte and Guzdial 2004], testing game designs [DiSalvoand Bruckman 2011], and designing mobile apps [Wolber et al. 2011]. At the K-12 level,robotics [Baretto and Benitti 2012], interface designs [Yardi et al. 2008], game design[Kafai 1995], and storytelling classes [Kelleher 2008] have been successful in broaden-ing students’ participation in, and perceptions of, programming. Curricular extensionsthat build on arts-and-crafts-oriented activities and materials have received far lessattention [Eisenberg et al. 2009]. The recent development of commercially available e-textile construction kits, such as the LilyPad Arduino, provides the missing connectionbetween craft-based activities and computing [Buechley et al. 2013].

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:3

Bringing e-textiles into the classroom, however, required us to articulate what ex-actly students learn when they design e-textiles and to determine how their learningrelates to computing. While we focused in previous examinations on the interdisci-plinary nature of learning with e-textiles [Kafai et al. 2012b], it is equally importantto establish a connection to CS education and, in particular, computational thinking.Wing [2006] described computational thinking as the “ability to engage in problemsolving, designing systems, and understanding human behavior” (p. 6). To highlightthe multiple dimensions of computational thinking, Brennan and Resnick [2012]distinguished between computational concepts, practices, and perspectives. Computa-tional concepts refer to elements such as sequences, loops, parallelism, events, con-ditionals, operators, and data structures that are present in many programminglanguages. Computational practices are activities, such as being incremental, reusingand remixing, testing and debugging, and modularizing and abstracting, that design-ers use to create programs. While some aspects of concepts and practices appear to beeasily applicable to what is being accomplished in crafting with e-textiles, it is not clearhow the interdisciplinary elements such as the circuitry and crafting can be accountedfor in students’ learning.

Computational perspectives, such as expressing, connecting, and questioning, referto worldviews that designers develop as they engage with digital media [Kafai andPeppler 2011]. Computational perspectives connect to a core concern in broadeningCS participation that focuses on learners’ perceptions of computing, where they seeapplications for computing, and how they see themselves within the field and theirfuture careers. When researchers ask about students’ perceptions of computing[Dimond and Guzdial 2008; Yardi and Bruckman 2007], they often hear an assortmentof statements such as “being boring or tedious,” “only for smart students,” “antisocial,”or “lacking creativity.” The classroom implementation we conducted affords us the op-portunity to reexamine these perceptions because of the particular positioning of e-textiles within a larger computing culture. E-textiles are hybrid designs, consciouslycombining traditionally masculine activities such as engineering and computing withtraditionally feminine activities such as crafting and sewing. We were interested inwhether learning with e-textile materials could indeed broaden not only participationin, but also perceptions of, computing. Focusing on computational concepts, practices,and perspectives allows us to examine students’ understanding of core CS concepts, thegenerative thinking practices students developed through the process of bringing theire-textile designs to fruition, and students’ changing perceptions of computer science.

3. METHODS

3.1. Participants

A class of 15 students (7 girls and 8 boys) ages 16–18 years (juniors and seniors) from apublic high school participated in a 10-week (19 meetings) e-textiles module as part oftheir elective computer science class. The students reflected the demographic makeupof the school as a whole: 46% African American, 10% Latino, 9% Asian/Pacific Islander,33% White, and 2% other. In addition, 49% of students were receiving free or reducedlunch, reflecting socioeconomic diversity. As a result, students’ experiences with com-puting varied widely prior to their freshman year of high school. However, due to theschool’s status as a science and technology magnet school, each student was issued alaptop for academic and personal use during the school year. Students in the class hadspent September to March programming in Alice1, and many had also taken a physicscourse during which they programmed robots. Because we did not have access to

1www.Alice.com

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:4 Y. B. Kafai et al.

Fig. 1. The LilyPad Arduino and sewable components (left); conductive thread (right).

students’ work and grades from these courses, we used the CS instructor’s evaluationsof students’ programming skills (e.g., “good,” “bad,” “could try harder,” “motivated butstruggling”) and students’ self-reported skill levels from preproject interviews that weconducted to gauge their prior understanding. While none of the students had workedwith e-textiles before, we found that their prior experiences provided some familiaritywith programming, and in some cases, reengaged students who were not interested inworking in Alice and had viewed their prior coursework as rote in nature.

The e-textile course met twice a week for 65 minutes per session. The designer andteacher of the course was one of the coauthors (Kaplan), a fourth-year undergradu-ate majoring in digital media design with an interest in becoming a computer scienceteacher. He created curricular materials and had two years of experience teaching af-terschool e-textile workshops. He developed the e-textiles curriculum (for more detail,see 4.1) and taught it as part of his senior capstone project for his education minor.A graduate student (Searle) with prior experience in both e-textiles and teaching, col-lected observational data. She also assisted students with e-textile design, construc-tion, and coding as needed.

3.2. LilyPad Arduino Construction Kit

The LilyPad Arduino construction kit [Buechley and Eisenberg 2008] enables noviceengineers and designers to embed electronic hardware into textiles. The LilyPad kitcontains a set of sewable electronic components, including a programmable microcon-troller and an assortment of sewable sensors (e.g., light, temperature) and actuators(e.g., light-emitting diodes or LEDs, sound buzzers) that allow users to build their ownsoft, wearable computers (see Figure 1). Designers put LilyPad modules together withconductive thread instead of traditional materials like insulated wire, and they usesewing rather than soldering techniques (Figure 1, right). To define the behaviors ofthe project, designers employ the popular ModKit or Arduino development environ-ments (see Figure 2), enabling them to program the LilyPad microcontroller to man-age sensor and output modules (like LEDs) employed in their designs. Arduino is anopen-source, text-based software platform similar to C language. ModKit [Millner andBaafi 2011] is a visual programming environment built as an overlay of Arduino thatshows lines of code as stackable blocks similar to the Scratch language [Maloney et al.2010]. Programming of lights is done by writing certain pins to high (positive) or low(negative). For polarized LEDs, the positive side must be set to positive (“digitalWrite

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:5

Fig. 2. Arduino (left) and ModKit (right) programming environments.

led1 HIGH”) and the negative side must be programmed to negative (“digitalWriteled1 LOW”) or connected to a hardwired negative pin. To make lights blink users mustprogram one polarized side of an LED steady and program the other to turn on andoff, which often leads to learning about control flow [Fields et al. 2012b].

Both the LilyPad Arduino and the regular Arduino have digital and analog pinsin addition to hardwired positive and negative pins. Digital pins are numbered(3, 4, 5, 6, etc.) and can act as digital outputs (on/off), analog outputs (variable output),and digital inputs (on/off). Analog pins have an “a” (a0, a1, a2, etc.) and can act asdigital outputs (on/off), digital inputs (on/off), and analog inputs (variable input). Thusdigital pins can fade lights (analog output), and analog pins can read sensors (analoginput from a sensor). Learning the affordances of different pins is one key area of stu-dents’ learning how to use the LilyPad microcontroller. Often students’ designs changeas they realize that certain pins can only do certain things—for instance, that analogpins cannot fade lights but can only turn them on and off [Fields et al. 2012a]. Theymust also apply these concepts to programming. In using either Arduino or ModKit,programmers must set pins to “OUTPUT” or “INPUT.” The design task discussed inthis article, a sensor made of two conductive fabric patches, offers even more complex-ity because programmers must apply the Arduino internal pull-up resistor capability,essentially setting a pin to an input and then setting it to positive or “high” in order tobe functional.2

3.3. Design of E-Textile High School Class

The design of the e-textile class initially followed an outline proposed by Buechley andcolleagues [Buechley et al. 2007] that structured the course into six units focusing oncircuit designs, code, and materials. While we used some of these units in our course(such as learning about circuits and code), we decided to design activities around stu-dents’ completion of an individual e-textile design challenge, a “human sensor” projectthat included four or more LEDs and two or more electrically conductive patchesthat, when touched simultaneously, acted as a sensor. Table I provides an overviewof the focal daily class activities and materials (e.g., sample projects, starter projects,

2For a more detailed explanation, see http://arduino.cc/en/Tutorial/DigitalPins.

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:6 Y. B. Kafai et al.

Table I. Overview of e-Textile Class Activities

Days Activity Description1–3 Simple Electronic

Circuits &Conductive Sewingwith StarterProjects

Brief review of electricity (how it works, using a flashlight,introducing basic notations). Students make simple circuits usingalligator clips, a battery, a switch, and 1 LED followed bylearning how to sew with conductive thread to create their firstsoft circuits. Finally, in pairs or small groups, students workthrough a series of simple circuit-debugging activities.

4–5 Programming withArduino & LilyPadProtoSnap Boards

Instructor demonstrates how to program electronic circuits withArduino programming software. The syntax of programminglanguage and how programs are compiled and executed areexplained. Students then write programs in pairs with codeexamples (e.g., blinking multiple LEDs, turning on LEDs basedon light sensor values, making sounds, etc.) Structure of codeexamples consisted of the key concepts, sequences, loops,conditionals, operators, and variables.

6–8 Basic E-TextileDesign Schemes &Individual DesignConsultations

Introduction of computational circuit diagrams showing 2conductive patches and 4 LEDs connected to the LilyPad.Students generate their own designs, focusing first on theirchosen aesthetic and later on the logistics of circuitry and coding.“Design Consultations” are required before construction canbegin; the course instructor or expert research team membermeets individually with students to finalize their designdiagrams.

9–18 CulminatingE-Textile Design:Crafting, Coding, &Debugging

Students implement their designs, first cutting pieces ofconductive and nonconductive fabric and ironing these on theirproject. Then students sew electronic components together and tothe LilyPad, testing each line with alligator clips and/or amultimeter. Short lessons on code concepts are interspersed withlonger periods where students work on their individual projects.More complex coding concepts are introduced on an individualbasis as they are relevant to students’ projects. Studentsiteratively test and debug their designs, developing solutionsto address them. Some students add new components towardthe end.

19 Final Presentations Students demonstrate and explain the design and functionalityof their e-textile projects in class.

debugging projects, design consultations, flexible lessons and assessments) that provedto be instrumental in communicating key ideas and helping students complete theirprojects.

In addition to the individual human sensor projects (the main design challenge), weutilized several other types of projects for learning purposes. For instance, we havefound that it helps to introduce e-textiles by showing sample projects of our own cre-ation in addition to projects displayed on the LilyPond Web site.3 These examples helpstudents generate ideas for projects, illustrate simple as well as more complex e-textiledesigns, and provide a sense of a larger community involved in this type of work. Theyalso serve to emphasize the aesthetic aspect of the projects and help students developa vision for their own final projects [Fields et al. 2012a].

Because many of the students had never sewn before, in the early stages of theclass we used starter projects to introduce students to sewing. With these projects,we familiarized students with some basic but central ideas such as, (1) connectingpositive-to-positive and negative-to-negative, (2) not sewing through both the positiveand negative ends of a component, and (3) not crossing positive and negative lines.

3www.lilypond.mit.edu

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:7

Fig. 3. E-textile Debugging Project; Left Diagram: Incorrect version (+ – +); Right Diagram: Correctedversion: (+ + +).

We also used debugging projects [Fields et al. 2012b; Kaplan et al. 2011] in the intro-ductory phase. During these projects, students working in pairs or small groups testedtheir growing understanding of e-textile circuit designs. Some students had an oppor-tunity to experiment with a series of electronic circuit debugging projects after learn-ing about circuitry. The e-textile debugging projects incorporated three different kindsof challenges: (1) short circuits, (2) electronic topology (series vs. parallel circuits), and(3) polarization (e.g., LEDs have a positive side and a negative side). The e-textile de-bugging projects were developed based on prior workshop observations that studentsfaced multiple challenges when designing their own e-textile projects. For example,they caused short circuits by sewing together positive and negative ends of LEDs orcrossing positive and negatively charged threads. To help prevent these mistakes, weused three debugging projects: (1) a short circuit problem that required students toidentify and fix the problem; (2) an electronic topology problem that required studentsto align parallel circuits (see Figure 3); and (3) a polarization problem that requiredstudents to alter a faulty circuit design that incorrectly connected positive to negative.

In addition, some students volunteered to solve code-debugging projects that we pi-loted using Arduino. The code-debugging projects incorporated three different kinds ofchallenges: (1) a setup of devices problem that required students to fix the incorrectcode within the Arduino setup function for programming the hardware system; (2) acontrol flow problem that required students to address several control flow issues suchas incorrect conditional statements, incorrect quit conditions in a loop function, and er-roneous sequenced statements (see Table II); and (3) a variables problem that requiredstudents to fix a dysfunctional setup that included variables.

In order to support the practice of remixing, we also provided various code exam-ples to help students learn how to program actuators and sensors that come with theprewired circuits of the LilyPad ProtoSnap boards. Students worked in small groupsto examine code examples such as various blinking patterns. They also tested howto control actuators such as LED lights, vibration motor boards, and speakers, basedon values from light or temperature sensors. These code examples helped students tofamiliarize themselves with the basic structure and functionality of Arduino program-ming code so that they could modify existing code by adding their own ideas to it. Thecode examples also provided material that the students could (and often did) remix byincluding segments of programming code into their own design projects.

The final and largest block of the class was dedicated to completing the culminatingdesign challenge project. For the culminating project, we asked students to include fourLEDs and two conductive patches but left other details up to them, and we providedthem with sample code that they could remix to best suit their programming needs.We have found that providing such constraints helps novice designers to get startedbut also allows for customization, as the final class projects showcase (see Section 4.2).

During this time, the class moved to a more flexible format of individual assistanceand minilectures on topics tailored to the project needs of the student designers. For

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:8 Y. B. Kafai et al.

Table II. Example of Code Debugging Project

Challenge: You want LED #5 to blink 5 times but LED #5 keeps blinking without stopping. What’sgoing on? Fix the code so that LED #5 only blinks 5 times.

<Incorrect Code>

// pin 5 that the LED is attached toconst int ledPin = 5;

void setup() {// initialize the digital pin as an outputpinMode(ledPin, OUTPUT);

}void loop() {int i=0;while(i<5){digitalWrite(ledPin, HIGH); // turn the LED ondelay(1000); // wait for a seconddigitalWrite(ledPin, LOW); // turn the LED offdelay(1000); // wait for a second

}}

<Corrected Code>

// pin 5 that the LED is attached toconst int ledPin = 5;int i=0;

void setup() {// initialize the digital pin as an output

pinMode(ledPin, OUTPUT);}void loop() {while(i<5){digitalWrite(ledPin, HIGH); // turn the LED on

delay(1000); // wait for a seconddigitalWrite(ledPin, LOW); // turn the LED offdelay(1000); // wait for a secondi++;

}}

instance, on Day 11, we spent roughly half of the class period (30 minutes) introducingArduino code for working with analog inputs and the other half working on students’projects. Then, on Day 14, when many students had already affixed their conductivepatches to their artifacts, we introduced conditional statements, with a focus on usingserial data to code the touch-sensitive conductive patches on students’ projects (seeTable III for examples). Multiple class sessions were required for crafting the projects,including making aesthetic elements (letters or shapes cut out of felt and ironed onusing iron-on transfer fabric, for instance), sewing the circuitry, and programming anddebugging the artifacts.

Design consultations were a critical part of completing the culminating projects.Students met individually with one of the course instructors or other e-textile experts(members of the research team) to finalize their design diagrams, including makingsure that the components were correctly connected to one another. Once students’ de-sign diagrams were approved by one of the instructors, we encouraged them to beginby crafting their felt elements and then sewing on the electronic components, testingeach line as they went using alligator clips and/or a multimeter, and then coding anddebugging their projects. In reality, the process is less linear than it appears here,particularly as students went through an iterative process of testing and debuggingvarious components of their projects. In addition, we recognize that individual designconsultations with an instructor may not be viable in all contexts. Peer-to-peer consul-tations are one possible alternative for instructors interested in replicating this kindof course module.

While all students received a participation grade for the class, we also used othermethods to assess their knowledge at three key points along the way. First, after learn-ing about circuitry and electricity, students participated in a sequence of simple circuitdebugging projects (see the preceding) and were asked to answer a series of questionsabout what was wrong with the circuits and how to change them in order to alter thebehavior of the circuit (adding a switch, for instance). Second, after programming withArduino and learning the basics of how to alter the behavior of an LED by writing code

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:9

Table III. Selection of Student E-Textile Designs: Trinity’s Cupcake Cushion, Giuliana’s SunflowerShirt, Lloyd’s Boom Box, and Marty’s Stuffed Octopus

for the LilyPad Arduino, students participated in a series of code- debugging projects(see the preceding). Third, after completing their final projects, students engaged inextensive debugging because almost all of the projects had a problem of one kind oranother that needed to be fixed. For some students, the problem was related to cir-cuitry (e.g., crossed positive and negative lines causing a short circuit) while for othersit was related to coding (e.g., forgetting to include a delay between turning an LED onand off, for instance). We recorded in field notes how well the students diagnosed andsolved these problems on their own, with peer assistance, or, as a last resort, with ourassistance. While these notes provided us with additional insight about how much theyunderstood about programming e-textiles, they also were skewed toward instructors’interactions with students because we were directly involved in these conversations.We thus often missed moments of peer-to-peer mentoring, but we heard about themfrom students after the fact and, more extensively, in the postproject interviews.

3.4. Analysis of E-Textile Projects

To document students’ design processes, we collected their hand drawn blueprints oftheir designs, took hourly photographs of their e-textile designs, and made copies oftheir Arduino code. We then created portfolios for each student, combining the doc-umentation to develop a more complete portrait of how they learned computationalconcepts and practices as they moved through the process of creating their e-textile ar-tifacts. Drawing on Brennan and Resnick’s [2012] framework for computational think-ing to understand students’ learning of computational concepts, we examined circuitdesigns, code, and final artifacts to evaluate how students used input/output; digitaland analog connections; control flow; and structures such as sequences, conditionals,loops, operators, and variables in Arduino. Then, to get an overview of students’ use of

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:10 Y. B. Kafai et al.

computational practices, we inductively identified different approaches to computingthat were evident in our observation notes about students’ design processes and withinstudents’ designs themselves [Charmaz 2003]. We classified these approaches asincremental practices (developing a little bit, trying out), reusing and remixing prac-tices, and testing and debugging practices.

3.5. Analysis of Interviews

In order to understand students’ computational perceptions, we conducted and ana-lyzed pre- and postproject interviews in which students reflected on their e-textile de-signs as indicators for how they saw computation as a medium for expression. Twelveof the 15 students were available and willing to participate in the semistructured in-terviews, which lasted 30-plus minutes each. In the preproject interviews, we askedstudents to describe their expectations of CS and what they had learned in the courseto date. In the postproject interviews, we asked students how their project had changedfrom their early ideas to completion, what they were most proud of and what was mostchallenging, what they felt they had learned about computer science in the process,whether their ideas about computer science had changed, and whether the project hadinfluenced their future goals. All interviews were logged (a very close but not word-for-word transcription) and then analyzed, focusing on three aspects: personal relevancy ofcomputing, potential study and career path in computing, and expanded understand-ing of computing at large. If we chose to directly quote a student, we went back to theinterview and transcribed that segment word for word.

4. FINDINGS

4.1. Design of E-Textile Projects

Before we turn to the computational concepts, practices, and perspectives, it is helpfulto have a better understanding of what kind of e-textiles students created in class andwhat students learned in creating the embedded circuits. In response to the designrequirement of including four LEDs and two conductive patches, students created anarray of e-textile artifacts with distinctive circuit designs and remixed Arduino code.Students created wearable t-shirts, stuffed objects, a tote bag, and a decorative wallhanging (see Table III). Among the t-shirts alone, there was an NFL-themed design, alight-up Taurus symbol, a rendition of Van Gogh’s Starry Night, and a Jamaica-themedt-shirt that played reggae music. One student even chose to decorate his senior classsweatshirt with LEDs. Among the stuffed objects, students made a cupcake cushion, aboom box pillow, a stuffed octopus, and a variation on a Voodoo doll. One student madea tote bag with a raindrop theme, while another student made a decorative wall hang-ing for her bedroom. One question we had in engaging students in a common designchallenge was whether there would be enough customizability within that challengeto allow for personalization. Indeed, we found that there was a large range of creativedesigns.

In addition, we wanted to understand whether students just copied the circuit tem-plate (see Figure 4) or whether they customized it for their circuit designs and thusmoved into more sophisticated forms of remixing. In studying remixing in the Scratchonline programming community,4 Monroy-Hernandez [2012] identified a range ofremixing practices, from full-on copying, to editing small parts of code, to changinglarge amounts of code. We applied this idea of a range of remixing practices to un-derstand to what degree students altered the provided circuit schematic to their ownproject.

4scratch.mit.edu

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:11

Fig. 4. Initial design template with circuit schematic. Red lines are positive, black are negative, greypatches (ovals) are conductive patches made from aluminum foil or conductive fabric.

Fig. 5. Trinity’s initial (left) and final (right) circuit diagrams for cupcake cushion.

Indeed, there was variation not only in students’ e-textile designs but also in theircircuit diagrams. Students differed in how many pieces they connected, what kind ofcircuits they used (e.g., parallel circuits), and most importantly, how they coordinatedfunctionality with aesthetic aspects. They also changed their designs as they beganto understand the affordances of different types of circuits. For instance, in makingher cupcake pillow, Trinity began with a circuit design that was complex and wouldhave been difficult to sew (see Table III). She then realized through instruction thatall of the negatives in the project could be connected, including the negative ends ofthe LEDs and the negative of a conductive patch in her two-part sensor. She thenchanged her design to minimize the earlier redundancy and had all of the negatives ofthe LEDs connect directly to the negatively charged patch. As Figure 5 makes evident,this cleaner design was much easier to sew and program.

Likewise, Marty, in consultation with one of the course instructors, altered the initialcircuitry design for his stuffed octopus. Originally, he designed eight independent linesrunning from the LilyPad to eight LEDs. By making the back of his stuffed octopus onelarge conductive patch that acted as a continuous negative line to the LilyPad and theeight LEDs (see Figure 6), he was able to simplify the sewing of the circuitry. We see inthese examples that students learned about circuitry by remixing our design templateto meet the needs of their particular projects. In this way, their aesthetic motivationspromoted learning by remixing circuit designs. In the next section (4.2) we illustratehow remixing code also showed evidence of learning.

In the following sections, we examine how the circuit designs and programs revealedthe students’ grasp of computational concepts, engaged them in computational prac-tices, and focused their computational perspectives.

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:12 Y. B. Kafai et al.

Fig. 6. Marty’s initial (left) and final (right) circuit diagrams for stuffed octopus.

Table IV. Starter Code Provided to Students

// define the variables (give it a name)int Patch = A2; // pin A2 that the conductive patch (sensor) is attached toint ledA = 3; // pin 3 that the LED is attached to

void setup() {pinMode(Patch, INPUT); // initialize the analog pin as an inputpinMode(ledA, OUTPUT); // initialize the digital pin as an output

}void loop() {

int PatchValue = analogRead(Patch); // read the value from the conductive patches (sensor)if (PatchValue > 800){ // if the value is high enough, blink the LEDdigitalWrite(ledA, HIGH); // turn the LED on (HIGH is the voltage level)delay(1000); // wait for a seconddigitalWrite(ledA, LOW); // turn the LED off by making the voltage LOWdelay(1000); // wait for a second}

}

4.2. Computational Concepts

We now turn to how students employed computational concepts in writing code fortheir e-textiles. All students were provided with starter code that they customized tofit to their particular circuit designs (see Table IV).

Input/Output, Digital/Analog, and Constant Variables. Each student had to set upthe starter code by initializing the ports for their particular circuit layout. Table Villustrates how Lloyd completed the setup function for his circuit design (right side)while the circuit diagram (left side) illustrates how he connected the sensor (conductivepatch) to the analog pins and the actuators (LEDs) and speaker to the digital pins.This arrangement indicates that Lloyd understood the difference between input andoutput devices and digital and analog signals. In order to make his circuit functional,he needed to take input values from the conductive patch that used the human bodyas a connector; while one hand touched a conductive patch, the other conductive fabricpatch had to be connected to an analog pin and to the negative ground on the LilyPad.To accomplish this, Lloyd set up the code so that the pin mode for one conductive patchwas the input while the other patch’s pin mode was set up to become an output. He alsoused constant variables instead of a particular pin number (see Tables V, VI, and VII)allowing him to more easily change the code when needed.

Sequences. The computational concept of sequence describes the control flow of codeexecution as a series of steps or instructions. We found that all students learned howto program functional code sequences in Arduino to coordinate the behavior of sensors

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:13

Table V. Lloyd’s Circuit Diagram and Code for Setup Hardware

Note: Lloyd built and sewed his circuit with 1 LilyPad, 10 LEDs, 1 speaker, and 2 conductivepatches. He designed 2 LED rings, with each ring consisting of 5 LEDs linked in parallel andconnected to a digital number pin (5 and 11). The speaker is connected to the digital number pin(6). One conductive patch is connected to the analog number pin (A4), and the other conductivepatch is connected to the negative (-) pin.

Table VI. Examples of Students’ Code Included Sequence Concepts

Giuliana’s Code (excerpt) Lloyd’s Code (excerpt)

digitalWrite(5,HIGH); // turn the LED#5 ondelay(1000); // wait for a seconddigitalWrite(5,LOW); // turn the LED#5 offdigitalWrite(6,HIGH); // turn the LED#6 ondelay(1000); // wait for a seconddigitalWrite(6,LOW); // turn the LED#6 offdigitalWrite(9,HIGH); // turn the LED#9 ondelay(1000); // wait for a seconddigitalWrite(9,LOW); // turn the LED#9 offdigitalWrite(11,HIGH); // turn the LED#11 ondelay(1000); // wait for a seconddigitalWrite(11,LOW); // turn the LED#11 offdigitalWrite(A3,HIGH); // turn the LED#A3 ondelay(1000); // wait for a seconddigitalWrite(A3,LOW); // turn the LED#A3 off

// turn the left side 5 LEDs while making beepsound and turn the left side 5 LEDs offdigitalWrite(leftRing, HIGH)beep(speaker, E4 note*2, 200);digitalWrite(leftRing, LOW);

// turn the right side 5 LEDs while making beepsound and turn the right side 5 LEDs offdigitalWrite(rightRing, HIGH);beep(speaker, E4 note*2, 200);digitalWrite(rightRing,LOW);

// turn the lift side 5 LEDs on for 0.2 secondsdigitalWrite(leftRing, HIGH);delay(200);

and actuators in their e-textile artifacts. Students learned to combine sequential orparallel behaviors of actuators and sensors. Table VI shows excerpts of the code forGiuliana’s sunflower shirt, which had each one of the five LEDs light up for one second,one after the other. Lloyd programmed a parallel sequence so that the LED lights in hisboom box blinked simultaneously to beeping sounds, with arithmetic operators raisinga note by one octave each time.

Conditionals, Loops, Operators, and Variables. The circuit designs for all e-textileprojects involved at least one human resistance sensor because of the two conductivepatches. This use of human resistance sensors required more complex coding becauseeach project’s patches varied in size and thus resulted in different ranges of resistance.In addition, some projects had more than two patches, resulting in multiple inputs.Students had to use operators to compare sensing values with threshold values to setup conditions for different behaviors. They had to put all conditional statements into

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:14 Y. B. Kafai et al.

Table VII. Examples of Students’ Code that Included Conditionals, Loops, Operators, and Variables Concepts

Lloyd’s Code (excerpt) Trinity’s Code (excerpt)

// speaker connected pin 6, a conductive patchconnected pin A4, left side 5 LEDs connected pin5, and rightside 5 LEDs connected pin 11

int speaker = 6;int patch1 = A4;int leftRing = 5;int rightRing = 11;. . .

void loop() {// read the value from the conductive patchesint patch1Val = analogRead(patch1);// if the patches touched, blink LED groupsif (patch1Val < 920){digitalWrite(rightRing,LOW);digitalWrite(leftRing, HIGH);delay (100) ;

. . .

}// if the patches squeezed, blink LED groups withsoundelse if (patch1Val < 950){digitalWrite(leftRing, HIGH);beep(speaker, E4 note*2, 200);digitalWrite(leftRing, LOW);

. . .

}else {digitalWrite(rightRing,LOW);digitalWrite(leftRing, LOW);

}}

// a conductive patch connected pin A2, LEDsconnected pin 5 and 6

int brightness = 0;int fadeAmount = 5;int sensorPin = A2;. . .

void loop() {// read the value form the conductive patchesint sensorValue = analogRead(sensorPin);// if the patches touched, fade LEDs from brightestto offif (sensorValue < 500){analogWrite(5, brightness);analogWrite(6, brightness);. . .

brightness = brightness + fadeAmount;if(brightness == 0 ||brightness == 255) {fadeAmount = - fadeAmount;}delay(50);}else{. . .

}}

a loop because sensing behaviors have to repeat through the whole program runningtime. They also had to define and use variables to store sensing values or specificvalues to adjust the brightness of the LEDs. Table VII shows that Lloyd’s and Trinity’scode implemented complex functionality using multiple if/else statements based onmultiple conditions and multiple true/false values.

4.3. Computational Practices

While students engaged in all of the computational practices listed by Brennan andResnick [2012], reusing and remixing code were key practices. All of the studentsneeded to modify the starter code for their projects because each project had differentfunctionalities due to different circuit designs, patch sizes, and intended behaviors.For example, Lloyd programmed the speaker in his boom box design to play SuperMario’s theme song by remixing both the starter code and additional code—which hefound online with the instructor’s help—that played a simple song. Remixing the codefor the sound proved more difficult than Lloyd expected because rather than simplydetermining the appropriate frequencies for the notes in the song, which he could doby comparing a music score to a frequency chart, he had to alter how long each note

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:15

Fig. 7. The development process for Lloyd’s circuit design.

Fig. 8. The development process for Trinity’s circuit design.

played as well as add timing delays between notes. He explained his remixing approachas follows.

We tried to [program] the speaker to play Super Mario’s theme song. And inthe beginning we didn’t understand how to get it to play it correctly. But now,ever since we looked up sheets [the original sheet music for the theme song],and where we put breaks [delay functions] between the notes, it soundslike the beginning intro of Super Mario Brothers theme song. (Postprojectinterview, 05/29/12)

All students refined their projects through iterative cycles of imagining, designing, andconstructing in small steps, trying out and then further developing their designs. Forinstance, in his initial design Lloyd drew a big rectangle with two circles for his boombox, while his final sketch translated the essential elements into LilyPad components(See Figure 7). He later changed the design because, after sewing the circuits, he re-alized that he wanted to include a speaker in his boom box. For this, he had to modifythe circuit designs to minimize crossing lines between circuits.

Similarly, Trinity refined her circuit design for her cupcake pillow. Initially, sheplanned to use fabric pieces to replicate the texture of frosting layers and LEDs tomimic sprinkles. She created a topper with a patch on it that would swing from the topof the cupcake and touch another conductive patch on the cupcake itself to make thesprinkles light up. Her initial design had circuits with 5 LEDs in the front and a Lily-Pad in the back. The second step of her design process addressed the issue of crossinglines (short circuits). In the end, she altered the position of the conductive patches andthe LilyPad so as to minimize crossing lines (See Figure 8).

Students also needed to test and debug their code and circuit designs to make surethat their projects worked as expected. In general, they went through a debuggingcycle by first coding and testing, finding mistakes, fixing the code, and then trying itagain. However, debugging e-textiles is a complex process, more so than debugging pro-gram code, because bugs can be caused by the code, circuit design, or crafting. Theseinterdependencies among codes, circuits, and crafting are what engage students incomplex problem solving with e-textiles [Kafai et al. 2012b]. We observed that manystudents struggled with debugging. For instance, at one time Giuliana faced bugs

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:16 Y. B. Kafai et al.

in both the program code and in her crafting. Her initial program code didn’t workbecause she coded functions in the wrong order. She nearly managed to fix this prob-lem by paying close attention how each LED lit up, but no matter what she changedin her code, one LED would not light up. She then realized that her code was correctbut that there was a problem with the sewing of the physical circuit, which she neededto fix. As this example illustrates, students’ debugging practices applied to code and tocircuit designs.

4.4. Perceptions of Computing

Students’ overall reflections indicate that they developed more realistic, personallyrelevant, and expansive perspectives of computing in the process of making theire-textile artifacts.

4.4.1. Relevance of Computing. In preproject interviews, most students stated that, inspite of a semester of computer science, coding remained a mystery to them, removedfrom their everyday interactions with computers; this reflects findings from previousresearch indicating that students often see computing as irrelevant to their ownlives [Dimond and Guzdial 2008; Yardi and Bruckman 2007]. For instance, Carltonexpressed a common theme when he said, “I’m sure computers are lovely, but it’s notsomething I’d like to delve into.” This sentiment was shared by other students, whopointed out disconnects between their everyday lives, future career aspirations, andcomputer programming. Megan described wanting to go into a career in internationalrelations and said, “I think that I’d use computers, but it’s not like I’ll be doing codingor anything.” We highlight this disconnect between the perceived need for computingin current and future lives because it is prevalent even among students enrolled in ascience and technology magnet high school.

In interviews after the projects were completed, students demonstrated a shift to-ward viewing computing as more relevant to their identities, their daily lives, andtheir career choices. Students stressed that e-textiles provided the opportunity to usecomputing as an outlet for personal creativity or customizability. Many students (7 outof 11) focused on the aesthetic customizability as what made the projects important tothem. Lloyd, for instance, said that he had been tuning out in the course prior to thee-textiles module but contrasted this attitude with his positive engagement in makinga soft boom box. Describing his project he said, “This is music, it’s a boom box. A boombox expresses how I feel....Music is my identity.” Some students (4 of 11) focused onbehavioral customizability, noting that they could shape not only how a project lookedbut also how it technically functioned. In addition, more than half of the students (6of 11) articulated how their e-textiles projects could fit in with or be used in their ev-eryday lives and, by extension, recognized that other devices they used in their dailylives were programmed (e.g., cell phones) or could be programmed (e.g., a doorbell).For instance, Megan’s project allowed her to transform an “ugly” shirt from her uncleinto a useful object, which she could use both to scare her younger siblings and as aHalloween costume.

4.4.2. Ability to See Oneself as a Computer Scientist. While all the students saw them-selves as fairly competent in using technology on a daily basis—this self-assessmentshould not come as a surprise since all of them had chosen to be part of a science andtechnology magnet school—there were still substantial differences in how their percep-tions of themselves as programmers shifted. In spite of prior CS education using Alice,a large group (7 out of 11) was initially intimidated or even completely disinterestedin programming but reported feeling greater competency after the class, expressing asense of accomplishment, or even surprise, about the fact that “I did this.” Giulianainitially described herself as someone who was not good at programming, but after

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:17

the class she talked about her project (and specifically learning to write in Arduino)as a huge accomplishment, “I think it’s just this moment like, “I did it! Finally... Yup.I’m that cool. I programmed a shirt to light up.... I think it’s just that moment of ac-complishment.” The creation of a functional application or artifact, and not just theproduction of code, seems to play a critical role in how students evaluated their ac-complishments. In addition, the individualized nature of each project made it moredifficult for students to cheat or copy from one another. In contrast, many studentsnoted that it was easy to find answers to their Alice assignments online.

The remainder of the interviewed students (4 out of 11) felt confident in their pro-gramming skills from the beginning; their experiences with e-textiles only served toincrease their abilities to identify and solve programming problems, and to validatetheir self-perceptions. Reflecting on the class, Raven described how exciting it wasto speak the same language, “Like we’re talking in terms that I’ve never thoughtI would. . . speak. . . And I’m like, ‘I’m understanding everything that you’re saying’,which is really nice.” She connected her ability to understand problem solving andcomputing with being part of a larger community with which she now shares a com-mon vocabulary and understanding. Some students, like Will, who self-identified assomeone who knew about programming before class, proclaimed that they now moreclearly understood the connection between programming an e-textiles project in classand programming in other situations, like video games. Being able to speak a commonlanguage and understanding the applications of programming are part of what led tostudents feeling part of a broader community of programmers.

4.4.3. Perceptions of Computing as a Field. Most students also gained a better idea of thecomputing field at large, initially conceptualizing computing as something containedonly “within the screen” but expanding it after class to see that it included tangible,real world objects. This perception was most clearly connected to the unique e-textilesprojects themselves; almost all students noted that the class was more “hands-on”and that you could really “touch” the products you were working on (as opposed tocomputer programs in Alice). Trinity liked that e-textiles took programming ”outsideof [the] computer,” while Megan pointed out, “we can touch it, we can feel it, we knowwhat’s going on.” Several students also described the tangibility of the project withrespect to how they could more easily “show off” their finished projects to their friendsand families. When asked what she would do with her project, Abeni replied, “Hangit in my room. So when my friends come in, they can touch it. My parents don’t knowabout this, so... it’s really cool.” Some students even went further by relating projectsto professional applications in the real world. In some cases, this meant seeing theirindividual projects as being on a trajectory toward professional e-textile projects, suchas LED sneakers for children or costumes worn by celebrity musicians.

5. DISCUSSION

We see the introduction of e-textiles into the high school curriculum as part of a largereffort to broaden the portfolio of available materials, activities, and pedagogies in CSeducation in K-12. Our analyses indicate that the e-textile activities were successfulin engaging students in a rich array of computing concepts and practices while atthe same time broadening their perceptions of computing. Students expanded theirthinking about the relevance of computing to their personal lives, their self-concept ascomputer scientists, and their understanding of computing as a field.

Perhaps the most significant implication of our study is the role of remixing instudents’ learning and personal, creative expression. We gave a design challenge tostudents with specific requirements: to make a human sensor project with at leastfour LEDs, two patches, and two computational conditions. We provided them with a

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:18 Y. B. Kafai et al.

template of how circuits could be designed and some introductory code intended forremixing. Notably, the freedom within these design requirements afforded creativ-ity for students’ designs in terms of what they made and how they made it. Thisin turn had two major effects. First, students had a great deal of room for personalexpression—this helped them feel that computing was a tool relevant for expressingthemselves and their identities. Second, although the template and the initial codegave them a starting point for design, the nuances and requirements of the resultinginterest-driven projects pushed students to learn a great deal while designing circuitsthat were customized for a range of projects and writing code for those projects. Thus,the core constrained design challenge with limited templates allowed for creative vari-ance that provided unique technical challenges for each student. Additionally, this cre-ative freedom helped students feel a great deal of ownership in designing their projects.

These design activities suggest that remixing and reusing code is a core compu-tational practice when students engage in a design challenge. When Brennan andResnick [2012] introduced remixing, they focused on students taking code and/or ideasfrom others and integrating it into their own projects. Building on their work, weconsidered whether circuit designs could also be remixed as part of an overarchingpractice of computational thinking. We saw evidence of learning in the adaptationsand remixes that students accomplished in their e-textile designs. Many of these in-novations required intricate circuit topology both for efficiency (e.g., using a commonnegative thread to connect multiple LEDs) and insulation (i.e., keeping positive andnegative lines from touching). The customization of each project further led to inno-vative coding both as a function of projects with differently sized conductive patchesthat required unique computational conditions based on the specific range of resis-tance in each project (from 800–1000, from 450–1000, etc.), as well as the number ofpatches that allowed for multiple inputs, and the numbers and placement of LEDsand other actuators. Additional learning of computational concepts resulted from per-sonal desires for lighting and sound effects, which each student had to adapt for heror his specific project. Debugging and testing were also unique to each project, as eachstudent had to figure out what was wrong with his or her own particular construc-tion. Remixing a common template turned out to be a generative activity, in whichcustomization and creative expression led to individual learning.

As a result of our findings, we see two areas for future research on remixing. First,future research could further analyze remixing of ideas and crafting techniques aswell as remixes of circuit designs and code. It is admittedly easier to attend to changesin code than alterations of ideas, but these changes could reveal new areas of knowl-edge that are relevant to e-textiles, material science, and project design in general.Second, research that traces the dissemination of ideas, code, circuit designs, and craft-ing techniques among students could provide a valuable look into the social creativityand collective learning in that space. In both Brennan and Resnick’s [2012] suggestionof remixing as a computational practice and in Monroy-Hernandez’s [2012] substantialanalysis of remixing in the online Scratch community, they attend to the online spaceof remixing, considering where people find code and ideas to remix, how they remixthem, and what their new (or not so new) creations provide to others for remixing. Oursuggestion for future research would focus this research on a local environment like aclassroom.

Admittedly in this article, which emphasizes computing, we have downplayed therole of crafts and the physical techniques of creating soft computational circuits in or-der to emphasize more traditionally valued academic learning in circuitry and coding.Yet crafting is intricately related to the particular development of circuits and codein e-textiles [Kafai et al. 2012b]. Other work has pointed out the connection betweencrafting practices such as knitting and the computational thinking involved in tracing

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

A Crafts-Oriented Approach to Computing in High School 1:19

and following directions [Craig et al. 2012]—an unexpected return to the historicalroots of computing often located in jacquard loom designs. This suggests that futurestudies should analyze computational practices in crafting and how those can integrateinto computational concepts, practices, and perspectives more specific to computerscience and programming.

Perhaps the biggest success is that all of the high school students, girls and boys,were equally engaged in the various aspects of crafting, circuitry, and coding. Makingpersonal and portable computational projects with materials that connect to every-day experiences and domestic activities such as crafting and sewing provided a newwindow for these students to see the general and personal relevance of computing.Designing e-textiles addressed many of the reservations that these young people hadabout computing: it was interdisciplinary, in that it integrated multiple disciplines ofcomputing, engineering, and crafting; it had real-world relevance, in that it involvedrepurposing and augmenting everyday items; and it allowed for creative expressionthrough the creation of personal e-textile artifacts within given design constraints.Through the integration of these elements, e-textiles drew participation from girls andothers in the class who often are not drawn to computational activities. Despite bestefforts, game design and robotics workshops are heavily geared toward male studentsbecause of how the professional communities are structured. Likewise, the exhibitionmodel of e-textile displays as compared to the competition model of robotics might haveequally contributed to the success of broadening participation [Kafai et al. 2012a]. Thisis all to say that efforts focused on broadening participation in computing need to beimplemented on multiple fronts—new materials, new practices, and new models ofcomputational participation—no single approach will be the pathway to success.

REFERENCES

Baretto, F. and Benitti, V. 2012. Exploring the educational potential of robotics in schools: A systematicreview. Comput. Educ. 58, 978–988.

Brennan, K. and Resnick, M. 2012. New frameworks for studying and assessing the development of compu-tational thinking. Annual Meeting of the American Educational Research Association, Vancouver, BC,Canada.

Bruckman, A., Biggers, M., Ericson, E., McKlin, T., Dimond, J., DiSalvo, B., Hewner, M., Ni, L., and Yardi,S. 2009. “Georgia computes!”: Improving the computing education pipeline. In Proceedings of ACMSIGCSE. 86–90.

Buechley, L. 2006. A construction kit for electronic textiles. In Proceedings of IEEE International Symposiumon Wearable Computers (ISWC). 83–92.

Buechley, L. and Eisenberg, M. 2008. The LilyPad Arduino: Toward wearable engineering for everyone.IEEE Perv. Comput. 7, 2, 12–15.

Buechley, L. and Hill, B. M. 2010. LilyPad in the wild: How hardware’s long tail is supporting new engineer-ing and design communities. In Proceedings of Designing Interactive Systems (DIS). 199–207.

Buechley, L., Eisenberg, M., and Elumeze, N. 2007. Towards a curriculum for electronic textiles in the highschool classroom. In Proceedings of the Conference on Innovation and Technology in Computer ScienceEducation (ITiCS). 28–32.

Buechley, L., Peppler, K., Eisenberg, M., and Kafai, Y. 2013. Textile Messages: Dispatches from the World fore-Textiles and Education. Peter Lang, New York, NY.

Charmaz, K. 2003. Grounded theory: Objectivist and constructionist methods. In Strategies for QualitativeInquiry 2nd Ed., N. K. Denzinger and Y. S. Lincoln Eds., Sage, Thousand Oaks, CA, 249–291.

Craig, M., Petersen, S., and Petersen, A. 2012. Following a thread: Knitting patterns and program tracing.In Proceedings of SIGCSE. 233–238.

Denner, J., Werner, L. and Ortiz, E. 2012. Computer games created by middle school girls: Can they be usedto measure understanding of computer science concepts? Comput. Educ. 58, 1, 240–249.

Dimond, J. and Guzdial, M. 2008. More than paradoxes to offer: Exploring motivations to attract women tocomputing. Tech. Rep., Georgia Institute of Technology.http://gacomputes.cc.gatech.edu/Members/jpdimond/dimondParadoxes.pdf.

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.

1:20 Y. B. Kafai et al.

DiSalvo, B. and Bruckman, A. 2011. From interests to values: Computer science is not that difficult butwanting to learn it is. Commun. ACM 54, 8, 27–29.

Eisenberg, M., Elumeze, N., MacFerrin, M., and Buechley, L. 2009. Children’s programming, reconsidered:Settings, stuff, and surfaces. In Proceedings of the 8th International International Conference on Inter-action Design and Children. 1–8.

Fields, D. A., Kafai, Y., and Searle, K. S. 2012a. Functional aesthetics for learning: Creative tensions inyouth e-textiles designs. In Proceedings of the 10th International Conference of the Learning Sciences.196–203.

Fields, D. A., Kafai, Y. B., Searle, K. A., and Min, H. S. 2012b. Debuggems to assess student learning ine-textiles. In Proceedings of ACM Special Interest Group on Computer Science Education (SIGCSE).

Forte, A. and Guzdial, M. 2004. Motivation and nonmajors in computer science: Identifying discrete audi-ences from introductory courses. IEEE Trans. Educ. 48, 2, 248–253.

Kafai, Y. B. 1995. Minds in Play. Lawrence Erlbaum Associates, Hillsdale, NJ.Kafai, Y. B. and Peppler K. A. 2011. Youth, technology, and DIY: Developing participatory competencies in

creative media production. Rev. Res. Educ. 35, 89–119.Kafai, Y. B., Burke, W., and Mote, C. 2012a. What makes things fun to participate? The role of audience for

middle school game designers. In Proceedings of the Interaction Design for Children Conference (IDC10).284–287.

Kafai, Y. B., Fields, D. A., and Searle, K. A. 2012b. Making learning visible: Connecting crafts, circuitry &coding in e-textile designs. In Proceedings of the 10th International Conference of the Learning Sciences(ICLS). 188–195.

Kaplan, E., Griffin, J., Kafai, Y. B., and Burke, W. Q. 2011. A deconstruction kit for the LilyPad Arduino:Designing debugging sets for learning about circuitry & programming for high school students. InProceedings of 42nd ACM Technical Symposium on Computer Science Education (SIGCSE).

Kelleher, C. 2008. Using storytelling to introduce girls to computer programming. In Beyond Barbie andMortal Kombat: New Perspectives on Gender and Gaming, Y. B. Kafai, C. Heeter, J. Denner, andJ. Y. Sun Eds., The MIT Press, Cambridge, MA, 247–264.

Kelleher, C. and Pausch, R. 2005. Lowering the barriers to programming: A taxonomy of programmingenvironments and languages for novice programmers. ACM Comput. Surv. 37, 2, 83–137.

Maloney, J., Resnick, M., Rusk, N., Silverman, B., and Eastmond, E. 2010. The Scratch programminglanguage and environment. ACM Trans. Comput. Educ. 10, 4.

Margolis, J. and Fisher, A. 2001. Unlocking the Clubhouse. The MIT Press, Cambridge, MA.Margolis, J., Estrella, R., Goode, J., Holme, J. J., and Nao, K. 2008. Stuck in the Shallow End. The MIT

Press, Cambridge, MA.Millner, A. and Baafi, E. 2011. Modkit: Blending and extending approachable platforms for creating com-

puter programs and interactive objects. In Proceedings of the 10th International Conference on Interac-tion Design and Children (IDC). 250–253.

Monroy-Hernandez, A. 2012. Designing for remixing: Supporting an online community of amateurcreators. Unpublished dissertation, Media Laboratory, Massachusetts Institute of Technology.http://llk.media.mit.edu/papers/andres-dissertation.pdf.

Wilson, C., Sudol, L., Stephenson, C., and Stehlik, M. 2010. Running on Empty: The Failure to Teach K–12Computer Science in the Digital Age. ACM. http://www.acm.org/runningonempty/fullreport.pdf.

Wing, J. 2006. Computational thinking. Commun. ACM 49, 33–35.Wolber, D., Abelson, H., Spertus, E., and Looney, L. 2011. App Inventor: Create Your Own Android Apps.

O’Reilly Media, Inc., Sebastopol, CA.Yardi, S. and Bruckman, A. 2007. What is computing? Bridging the gap between teenagers’ perceptions

and graduate students’ experiences. In Proceedings of the 3rd International Workshop on ComputingEducation Research. 39–50.

Yardi, S., Krolikowski, P., Marshall, T., and Bruckman, A. 2008. An HCI approach to computing in the realworld. ACM J. Educ. Res. Comput. 8, 3, 1–20.

Received March 2013; revised September 2013; accepted September 2013

ACM Transactions on Computing Education, Vol. 14, No. 1, Article 1, Publication date: March 2014.