Online Learning Webs: Designing Support Structures for Online Communities by MASSACHUSEfTS INTI1tTE OF TECHNOLOGY Champika Fernando OCT 3 0 201 B.S. Computer Science, University of Toronto (2006) LIBRARIES Submitted to the Program in Media Arts and Sciences, School of Architecture and Planning, in partial fulfillment of the requirements for the degree of Master of Science in Media Arts and Sciences at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY September 2014 Massachusetts Institute of Technology 2014. All rights reserved. Signature redacted Author Program in Media Arts and Sciences August 27, 2014 Certified by Signature redacted Mitchel Resnick LEGO Papert Professor of Learning Research Academic Head, Program in Media Arts and Sciences Thesis Supervisor Signature redacted Accepted by Pattie Maes Alex W. Dreyf os Professor of Media Technology Interim Academic Head, Program in Media Arts and Sciences Online Learning Webs: Designing Support Structures for Online Communities by Champika Fernando ,Submitted to the Program in Media Arts and Sciences, School of Architecture and Planning, on August 22, 2014, in partial fulfillment of the requirements for the degree of Master of Science in Media Arts and Sciences Abstract This thesis explores how we can design online learning communities to better support connections to the people and resources beginners need when learning to program. I describe and analyze the design and implementation of the Scripts Workshop, a learning environment that supports members of the Scratch online community who are stuck on a programming problem in a Scratch project. The Scripts Workshop considers the People, Activities and Spaces needed to support these users in getting un-stuck. I conclude by describing a set of design principles for building learning webs within online communities, derived from the Scripts Workshop experiment. Thesis Supervisor: Mitchel Resnick Title: LEGO Papert Professor of Learning Research, Program in Media Arts and Sciences This thesis is based on research supported by the National Science Foundation under grant number 1002713 and 1027848. Any opinions, findings, and conclusions, or recommendations expressed in this document are those of the author and do not necessarily reflect the views of the National Science Foundation. 2 Online Learning Webs: Designing Support Structures for Online Communities by Champika Fernando The following people served as readers for this thesis: Signature redacted Thesis Reader Pattie Maes Alex W. Dreyfoos Professor of Media Technology Program in Media Arts and Sciences, MIT Signature redacted Thesis Reader Karen Brennan Assistant Professor Graduate School of Education, Harvard University Signature redacted Thesis Reader__ Justin Reich Richard L. Menschel HarvardX Research Fellow Office of the President and Provost, Harvard University 3 Acknowledgements Considering the focus of this thesis is on the people and resources that support learning, it seems particularly pertinent to begin by thanking all the people who supported me as I struggled through this very foreign process of writing a thesis. Thank you first to my patient and ever-supportive advisor Mitch Resnick. So much of what I've learned over the past few years I've learned through conversations and collaborative design meetings with Mitch. Mitch - thank you so much for being a source of inspiration, support, and friendship. Thank you to my readers Pattie Maes, Karen Brennan, and Justin Reich, who not only tolerated my tardiness, but also took the time to give me thoughtful and constructive feedback in spite of it. Thank you all for being so generous with your time and advice throughout the process and particularly in the final stretch. Thank you to the Scripts Workshop design team Ricarose Roque, Sarah Otts, Mark Goff, Eric Schilling, and Amos Blanton whose work this thesis is based on. Weekly meetings have never been so fun. Ricarose Roque, who in addition to leading the Scripts Workshop team, provided invaluable advice, resources, moral support, and friendship along the way. Thank you Ricarose! Thank you to the Scratch Mentors and Script Helpers who participated in the Scripts Workshop. And, to all the members of the Scratch community - you never cease to surprise and inspire me. Stephanie Gayle - thank you for not letting me give up and for giving me that stack of thesis quality paper months ago - it came in handy. To the members of the Scratch Team and the Lifelong Kindergarten research group - your kindness, creativity, and passion have inspired me and I feel so fortunate to be a part of this community. 4 Contents 1 Introduction .................................................................................................................................... 9 1.1 2 3 4 5 6 7 Thesis Overview ................................................................................................................................. 12 Theoretical Inspirations ............................. ................................ ......................................... 14 2.1 Learning Webs ........................................................................................................................................ 14 2.2 Constructionism ..................................................................................................................................... 16 2.3 Social Perspectives on Learning......................................................................................................18 D esign Inspirations....................................................................................................................19 3.1 Scratch Online Community ................................................................................................................ 19 3.2 Stack Overflow ........................................................................................................................................ 23 Existing Scratch Support Spaces....................................................................................... 26 4.1 Scratch Team Created Resources....................................................................................................27 4.2 Scratch Team Designed, Community Supported Spaces......................................................28 4.3 Community Designed, Community Supported Spaces .......................................................... 30 4.4 Limitations ................................................................................................................................................ 32 Scripts W orkshop ....................................................................................................................... 34 5.1 People..........................................................................................................................................................34 5.2 Activities .................................................................................................................................................... 41 5.3 Spaces..........................................................................................................................................................49 5.4 Possibilities and Lim itations.............................................................................................................59 Im plications: Scratch Com m unity .................................................................................... 62 6.1 Identity ....................................................................................................................................................... 62 6.2 Com m unication.......................................................................................................................................64 6.3 Diversity of Interest..............................................................................................................................66 Im plications: Beyond Scratch ............................................................................................ 5 68 68 7.1 Relationships and Inspiration ..................................................................................................... 7.2 Technologies for communication ................................................................................................... 68 7.3 Policy ........................................................................................................................................................... 69 7.4 Massive Open Online Courses .......................................................................................................... 69 7.5 Internet as Learning W eb...................................................................................................................70 Bibliography...................................................................................................................................... 71 6 List of Figures Figure 1-1: (left) Google search results for "Learn to code", (right) screenshots from online programming apps (Codeacademy, Code Avengers, Code Combat)......................................10 Figure 1-2: (left) Google search results for "Programming help". (right) Homepage of the popular Stack Overflow programming Q&A community............................................................11 Figure 3-1: The Scratch online community (behind) and the Scratch programming editor (front)................................................................................................................................................................20 Figure 3-2: An example of comments on a Scratch Project ................................................................. 21 Figure Figure Figure Figure Figure Figure Figure 3-3: The backpack within the Scratch editor for moving assets between projects .... 21 3-4: Scratch discussion forums (back) and an example of a Scratch studio (front)...22 3-5: Scratch community guidelines.................................................................................................23 3-6: The Stack Overflow homepage............................:....................................................................24 4-1: An illustration of the Scratch resource ecosystem..........................................................27 4-2: Scratch help section (left) and in-editor tip-bar (right)................................................28 4-3: Scratch Welcoming Committee................................................................................................29 Figure 4-4: Examples of the variety of types of Scratcher created tutorials................................31 Figure 4-5: Scratcher created community of tutorials and helpers.................................................31 Figure 4-6: Comments from Scratchers wanting to contribute to the Tutorial Madness stu d io ................................................................................................................................................................. 3 2 Figure 5-1: Comments within the Scripts Workshop reflect people looking to get help........35 Figure 5-2: Comments within a typical "Helper Studio" reflect people looking to provide help.............................................................................................................................................36 Figure 5-4: Figure 5-4: Script Helpers discussing importance of quick help.......................................................37 Figure 5-5: Unsupportive interaction between a Script Helper and Scratcher .......................... 39 Figure 5-6: Scratch Mentor modeling supportive help ......................................................................... 40 Figure 5-7: Scratch Mentor providing feedback on how to improve a tutorial project..........43 Figure 5-8: Creative tutorial project, provides two sprites, and suggests you write the script for the third.....................................................................................................................................................44 Figure 5-9: Positive remarks from community on a Scripts Workshop tutorial project........45 Figure 5-10: Scratcher looking for help is left hanging in the discussion forums ..................... 46 Figure 5-11: In providing support a Script Helper points to another Scratcher who may be useful ................................................................................................................................................................. 47 Figure 5-12: Script Helpers responding poorly to a request for help.............................................48 Figure 5-13: Scratch Mentor modeling supportive help.......................................................................49 Figure 5-14: Main Scripts Workshop space with listing of projects looking for help .............. 50 Figure 5-15: Scratch Team and Scratch Mentors participating in the Scripts Workshop, as listed in the 'curators' tab of the Scripts Workshop......................................................................50 Figure 5-16: Script Helpers as listed in the 'curators' tab of the Scripts Workshop.................51 Figure 5-17: A Scratcher looking for help in the Scripts Workshop................................................52 Figure 5-18: The same Scratcher from figure 5:17, now providing help in the Scripts W o rk sh o p ........................................................................................................................................................ 7 52 Figure 5-19: Example of a Script Helper proving help on a Scratchers project..........................54 Figure 5-20: Advice from a Scratch Mentor on how to provide help .............................................. 55 Figure 5-21: Figure 5-22: Figure 5-23: Figure 5-24: Scratch Mentor describing challenges of online support...........................................55 Scratch Mentor describing challenges of programming support...........................56 Scratch Mentor describing challenges of pedagogical support...............................56 'What it takes to be a Scratch Helper': A project that explains the requirements of a Scripts Helper..........................................................................................................57 Figure 5-25: A chart of individual Script Helpers areas of expertise. Names have been greyed out........................................................................................................................................................59 Figure 6-1: Figure 6-2: Figure 6-3: Figure 6-4: Scratch user profile page ............................................................................................................ 63 Scratch user profile with helper identity information...................................................64 Backpack for moving sprites, scripts, sounds, and costumes between projects.65 A project comment with and without the ability to add scripts................................66 8 El Introduction Over the past year there has been a groundswell of national interest in teaching and learning computer programming. This is illustrated by the attention and success garnered by last December's Hour of Code campaign. The campaign was launched by Code.org (a group backed by the tech industry), and invited students across the United States to spend at least one hour learning to code during Computer Science Education Week 2013. The campaign was promoted by everyone from tech giants like Google and Facebook, to actors and pop stars like Ashton Kutcher and Shakira. Even the President of the United States encouraged students to participate, suggesting, "Don't just buy the latest video game; make it. Don't just download the latest app; help design it" [1]. At the end of the week Code.org reported that 1 in every 5 students in the United States had participated [2]. Participating in the Hour of Code meant completing one or more structured tutorials, which Code.org provided on their site. Most of these were games or puzzles that teach basic concepts and are meant to be done on your own. But the excitement around programming goes well beyond Hour of Code. Today, typing "Learn to code" into Google returns millions of hits. Most of these are geared towards beginners and also focus on tutorials, programming challenges, games, and step-by-step projects (Figure 1-1). 9 "Lea.m Web t code" Ne. Video Books Images More - Search tools About 25800,000 rssuts (0.22 seconds) Codecademy: Learn to code www.oodecademy.conV . - Codecademy How can coding help you? Hoer how Tommy went from knowing nothing about code to building one of Time's '50 Best Webeltes' after teeming with Python - JavaScdt - HTML & CBS - PHP Leam Code.org Sun, Earth, and Code - oode.orglem Zombies. Leam rspeatloops, conditlonea. and basic algorftms. Available in 34 languages. Lawn o odse with Malk Zuckerbeg and Angry Bkrds Ages 6-106... Angry Birds - Code.arg - Beyond One Hour - Sign in wil d LINTO CodeCombat - Leam how to code by playing a game M MA~FYL1IMA vour rnwn aal ary GIE - codoornbet.com Learn o Cods by Playing a Game. JavaScript. The language of the web. Great for writing websites, web apps. HTMLS games, and servers. Python. Simple yet Code Avengers: learn to code games, apps and websites - ww.oodeavengercom/ Leam how to code games. apps and websties with fun and effective interactive games. HTML. CSS and JavaScript tA"rids an for beginners. t for wrves servers. ,s. and Purp si Figure 1-1: (left) Google search results for "Learn to code", (right) screenshots from online programming apps (Codeacademy, Code Avengers, Code Combat) For many beginners the structure provided by these activities may be beneficial. But there is a huge leap between these activities and using code, as the President suggests, to create something you've designed and imagined yourself - wherein lies the real power of programming. The problems you run into when working on real-world projects are not as well defined as these puzzles and almost always require reaching out to other people and resources for support. A second search for "Programming help" on Google returns thousands of results that focus on connecting you with communities of 'expert programmers' who can ostensibly quickly answer your programming questions as you work on projects (Figure 1-2). 10 EM -' .. n, Web V4" No M"Mmr* C 29 uoonft) tge AboA e0 Mae M*M - 5saftheb I=i stackoverflow e Interesting Top Q.estions PrograwmngM Help Fanm 1Drown in Code 11. 2M " Esp pepsme he* to C. wWd C.", Ask ansear eou harrrwr esatUulpww. a awy elhet C. " ered pew C" . a+gle W 1lw 0 VOW 0 aMM . * fee ed h wE Can I downgrade Visual studio 2010 PRO to (tree) Express? 1 v* .dS4a &4O1o Vlm.sbed aUked 34s ago b PmgrenVOnlne Exer -UvePermon 0 0 Pmteminom PrOgNming Ho Tpo puar tak asy and Vef 7",.. VCf. .o Nft W Cde FOr. k ul p. IM. Oeer wsp rmn g e eseewiae r. seIM VA t aneaW a - Q& CamW HemsewoAk File Iogesac H-2: -pwf (riet Help~ Figremin spWf ,ew ? pepswn eo reee vesaw eq+ne r~blw re e-ss VO stylong adjustments to woo commerce shop page 1 w s 0 0 2 votes ansers views asked MIMAagICk Ruby cropping external images returns i mage too se Aftianwd asked 5 is ago gecigp rfb* cmuniet eut Pormighl" rgt oeaeoh swO a~ 9es0*war Figure 1-2: (left) Google search results for "Programming help". (right) Homepage of the popular Stack Overflow programming Q&A community For professional programmers, community Q&A sites like Stack Overflow are incredible sources of support. However, visiting any one of these sites you quickly realize they aren't spaces designed for beginners or kids. They value efficiency and accuracy, often at the cost of pedagogy, which results in a culture that can be intimidating and unwelcoming to beginners. This feeling is encapsulated in a post from a beginner in the popular programming help community, Stack Overflow: I'm a relatively new programmer so some things that are simple to many are complex or at least not immediately obvious to me. Whenever I post a question except for one or two responders, most people seem to love giving sarcastic and mocking answers. Why is the community like that? I think there should be perhaps a beginner tag so that the people who don't want to deal with that don't have to. [3] These two search results illustrate a gap in current online spaces for learning to program. Beginners have an abundance of tools available to them but don't have many clear pathways for connecting to resources and social support as they tackle messy problems on real projects. 11 This is not a problem unique to online learning spaces. As Brennan [4] points out, support for social dimensions of learning have been underutilized in computing education. People and relationships are inseparable from learning and there has been much research in the learning sciences that points to this [5]. In the design of online learning environments we have an opportunity to rethink how we teach and learn computational thinking to better take advantage of the Internet's capacity to connect learners with a variety of people and resources for support. In a 1971 essay titled "Deschooling Society", Ivan Illich suggests that our general approach to designing educational systems is fundamentally flawed. The planning of new educational institutions must not start with the question, "What should someone learn?" but with the question, "What kinds of things and people might learners want to be in contact with in order to learn?" In this thesis I explore this question through the design of an online learning environment that facilitates kids connecting with the things and people needed to help them as they work on personally meaningful programming projects. I focus specifically on the context of kids because most of the work being done around social online learning today focuses on adults. I'll introduce the design and implementation of the Scripts Workshop, a learning environment within the Scratch online community that aims to support kids who are stuck on programming problems by connecting them with resources, skilled peers, and mentors. The overarching goal of this work is to influence the conversation around the design of online learning communities and inspire other designers of these spaces to consider more social approaches to learning. 1.1 Thesis Overview In Chapter 2, I give an overview of the pedagogical inspiration and theoretical framework for my 12 thesis. I'll describe Ivan Illich's learning webs (Resources, Skill Models, and Mentors), which provide the inspiration for this thesis. I'll also describe ideas from Constructionism and Social theories of learning that guide this work. In Chapter 3, I describe the design of two online communities, the Scratch online community and Stack Overflow, which are sources of design inspiration and insight for this thesis. Though I'm critical of Stack Overflow as a community for beginners and kids, there is a lot that can be learned from their design choices in supporting professionals and experts. In Chapter 4, I survey and describe existing ways that members of the Scratch online community find support. I'll also explain the limitations of the current options. In Chapter 5, I describe and analyze the design and implementation of the Scripts Workshop in terms of the People, Activities, and Spaces involved. I'll conclude with 4 design principles that can be taken from the Scripts Workshop experiment. I'll also describe some of the limitations of the workshop, which provide the basis for Chapter 6. In Chapter 6, based on the work in the Scripts Workshop, I propose design changes within the Scratch online community to enable better systems of community support. In Chapter 7, based on the work in the Scripts Workshop, I propose future work outside the scope of Scratch but within other areas of online learning. 13 Theoretical Inspirations "The planning of new educational institutions must not start with the question, 'What should someone learn?' but with the question 'what kinds of things and people might learners want to be in contact with in order to learn?"' Illich [6] The above quote describes the overarching pedagogical and design philosophy that guides my thesis. In addition to this networked, social approach to learning, I take a community-based constructionist approach; where people are engaged in making tangible objects within a community of practice. In this chapter I give an overview of the theoretical and pedagogical influences of this work. 1.2 Learning Webs In support of his goal of connecting learners with the people and things that can help them learn, Illich suggests four networks that learners should have access to. "The child grows up in a world of things, surroundedby people who serve as models for skills and values. He finds peers who challenge him to argue, to compete, to 14 cooperate, and to understand;and if the child is lucky, he is exposed to confrontation or criticism by an experienced elder who really cares. Things, models, peers, and elders arefour resourceseach of which requires a different type of arrangementto ensure that " everybody has ample access to it. Illich [6] In this thesis, I focus on three of these four networks, which I define below along with the terms I'll use to refer to them throughout this thesis. Resources (Things) These are the tools, objects, and spaces that a learner should be in contact with in the process of learning. In terms of spaces, Illich [6] suggests that the "quality of the environment and the relationship of a person to it will determine how much he learns". In terms of tools and objects, he describes the importance of having artifacts whose inner-workings are apparent and accessible as a source of learning. Skilled Peers (Models) These are people with more expertise (but not necessarily pedagogical experience) who are available and willing to demonstrate how to do what the learner wants to do. Illich [6] points out that though skill demonstration can be recorded and automated, the real-human aspect is preferable and more effective for many learners. I'll note that I'm collapsing two networks that Illich makes distinct, "models" and "peers". He describes the first as "skill teachers" or people with an expertise over the learner. He describes the second as peers who "pursue a common goal based on common interest and ability". Instead, I focus on peers as skill teachers. In the Scratch online community there exists a range of experience, expertise, within peer groups around particular interests. Therefore, there is potential to see peers not just as peers but also as skill models. 15 Mentors (Elders) Illich [6] describes these as people as "professional educators". Their role is to provide pedagogical guidance in the learning experiences of others. Mentors require a knowledge of human learning, an awareness of educational resources, and 'wisdom' based on experience. Though Illich likely imagines this role as one filled by adults, in this thesis, I explore the potential for kids to take on this role based on their experience in the Scratch online community and demonstration of the qualities listed above. 1.3 Constructionism The Scratch programming language and online community, in which the Scripts Workshop is implemented, are heavily inspired by Seymour Papert's theory of Constructionism. Papert defines Constructionism in a National Science Foundation proposal entitled Constructionism:A New Opportunityfor Elementary Science Education. "From constructivist theories of psychology we take a view of learning as a reconstruction rather than as a transmission of knowledge. Then we extend the idea of manipulative materials to the idea that learning is most effective when part of an activity the learner experiences as constructing a meaningful product." Papert [7] Papert and his colleagues and students at MIT were some of the first to start thinking about how kids could program computers to control robots, compose music, create games and do other creative activities [8]. They designed the LOGO programming language in 1967 as a means for that vision. LOGO allowed children to program a small turtle on the screen. Since then, it has served as a model for many other educational programming languages including Scratch. In this thesis I take inspiration from the following "big ideas behind constructionism" as outlined 16 by Papert [9]: Learning by Doing Papert suggests we learn better when learning is part of doing something we find interesting. Taking inspiration from this idea, in Scratch, instead of working on programming problems or puzzles, kids learn to program as they create personally meaningful projects. When working on programming projects like these, one invariably runs into difficult and not so well defined problems that provide rich opportunities for learning. Many Scratchers give up at these difficult roadblocks, however, those that find success, do so by asking for help from family, friends, or the community[10]. In the Scripts Workshop, we focus on creating a support network for Scratchers who have reached these roadblocks. They are connected with other Scratchers who work through the problem with them so that they can continue with their projects. Hard Fun Though it's important that a learner enjoy what they're doing, Papert points out that it does not mean it should be easy. Learners enter the Scripts Workshop when they are stuck or struggling with a problem on their Scratch project. The idea is they are motivated to work through it because they enjoy what they are working on. In the Scripts Workshop they find a community who can support them through that challenging process. You Can't Get it Right Without Getting it Wrong Papert suggests the only way to 'get it right' is by carefully looking at what happened when it went wrong. The Scripts Workshop aims to connect learners with the people and resources to help them do that. 17 1.4 Social Perspectives on Learning For much of history, teaching and learning happened within the context of apprenticeships. Though that's less so the case today, in the learning sciences there continues to be much research to support the social aspects of learning. Vygotsky, one of the earliest proponents of the social aspects of learning, put forth the concept of the zone of proximal development (ZPD), which essentially accounts for what a child can do without help and what he or she can do with help. He defines it as: "the distance between the actual developmental level as determined by independent problem solving and the level of potential development as determined through problem solving under adult guidance, or in collaboration with more capable peers" [11]. Later, Lave & Wenger [12], studied communities of people that share a common craft or profession such as butchers and tailors. They coined the term 'community of practice' (CoP) to describe a model of learning whereby members of a community develop individually by sharing their knowledge and experiences. Newer members entering the community interact with more experienced members to learn the practices and tools of the community. More recently, Bruckman [13] studied young people in an online constructionist environment called MOOSE Crossing, where she found that kids looked to the community as a source of both emotional and technical support. 18 Design Inspirations In this chapter I describe the design inspirations for this thesis. I start by describing the design of the Scratch Online Community where the Scripts Workshop is implemented and end with a description of the Stack Overflow programming community, the design of which also informs my thesis. 2.1 Scratch Online Community Scratch is a popular block-based visual programming language that allows young people to create interactive media such as stories, animations, and games. The Scratch online community connects Scratchers (as Scratch users call themselves) allowing them to share, discuss, and remix one another's projects (Figure 3-1). There are similar commercial and research-based projects such as HopScotch and Alice[ 14] among many others. However, Scratch is unique in the size, diversity, and activity of its online community. There are more than 3 million registered users from all over the world, from ages 7 to 70, sharing 10, 000 new projects a day. The online community was created to provide Scratchers with a community where they can support, collaborate, and critique one another, as well as build on one another's work. It aspires to appeal to people who may not have seen themselves as programmers and to be accessible for people of all ages, backgrounds, and interests [151. 19 lipx ,t ;r - L7- ar r .,Ir - sv Figure 2-1: The Scratch online community (behind) and the Scratch programming editor (front) Social Interactions to Support Learning Within the Scratch online community there are multiple features designed to support social interactions for learning. These include the ability to view or remix the code of any shared project on the site as well as the ability to comment (Figure 3-2), on projects to leave feedback or constructive criticism. 20 d 7 371 529 Studios r Embed p 'Sharer, 25 Jul2014 Report this 4Ccommens (730) Tum off commenting Leave a comment You have 500 characters left LOVE the art 4 hours ago Reply you ae good d drawing 24 hours ago Reply its ummer 2 days ago Reply we know Figure 2-2: An example of comments on a Scratch Project In addition, Scratchers can use the backpack (Figure 3-3) feature to borrow pieces of code, or other assets from someone else's project and use them in their own. Backpack Sprite script Script Sprite Script Sorilef Sprrlt Script Sound mal Figure 2-3: The backpack within the Scratch editor for moving assets between projects 21 C There are also discussion forums for having conversations on a variety of topics and studios, which are collections of projects and comments curated by a group of Scratchers (Figure 3-4). Disoun P.1 ,aMelw.wrMs....tt ^Wft 066MIPCOYAlIOr 1. ftWo upon Art Club p. 0.-% 100. ) r4 .a f0-. 101110 _. t.0. fa. c. " o.. , . . , r., c.e. o.r..., EI R " f..11. wrw0 9-U Es UN fo..-n.ro"+. . 1Mti+ ft wrwwp1+1 d 1." pr.", fp A .ww"w W ''_. t0 UPagml0 . kl..1r wO*ftalR. t .. lg1~ .g A10?t eat'U ty'U .d 1O14)!00 .4 f Mk.r IM'O.M.O' W1 1 M IuPf" AL 0 10.POI NoA ... YO OOW"T Vo,. VWIN y 0101/001/ fr111w " M...+..ew."+1. Ue...0leq. fl"0u1M " IM f."Mir.. 1 M "r"a""d A1.N- ". Aye.. IfM.M w./L '"w 11.00-. .11. M L .M.YOW IJL UFO .f-y F.:'' Figure 2-4: Scratch discussion forums (back) and an example of a Scratch studio (front). Culture The Scratch online community strives to be a friendly, welcoming, and productive space for beginners and experts of all ages, with diverse backgrounds, and a diversity of interests. This is a tall order for any online community and becomes more and more difficult as the community grows in size. The design of spaces and features within the community are heavily motivated by this goal. Members of the community are also expected to play a significant part in maintaining and supporting the culture. This is reflected in the Scratch community guidelines (Figure 3-5). 22 Be respectful. When sharing projects or posting comments, remember that people of many different ages and backgrounds will see what you've shared. Be constructive. When commenting on others' projects, say something you like about it and offer suggestions. - Share. You are free to remix projects, ideas, images, or anything else you find on Scratch and anyone can use anything that you share. Be sure to give credit when you remix. Keep personal Info private. For safety reasons, don't use real names or post contact info like phone numbers or addresses. Help keep the site friendly. ff you think a project or comment is mean, insulting, too violent, or otherwise inappropriate, click "Report" to let us know about it. Figure 2-5: Scratch community guidelines 2.2 Stack Overflow The Stack Overflow site is one of the more popular Q&A sites for programmers [161. It is geared towards professional and enthusiast programmers looking for answers to their programming questions. Though this is not the target audience of the Scripts Workshop, Stack Overflow serves as a good example of the way a site can design its software and technology to shape the culture of its community. In describing the culture of Stack Overflow, co-founder Joel Spolsky [ 17], suggests that everything about a community either draws people in or turns them away. In examining the homepage of Stack Overflow (Figure 3-6) he suggests, "if you're not a programmer, you see this page, you don't understand a single thing and you leave, which is what we want". 23 stackoverfiow s Stack Overfow is a question and answer site for professional and enthusiast s u s Hen's how It works: programmers. lts 100% free, no registration required. A Take the 2-minute tour minestng .a ed 0 0 2 votes answers v ws 0 votes hot week monf, Creating O.ist of multiple object types asked 1 m ago Generation D Systems 543 a+ 418 CD or C/C++ How to receive packets from client, filter E redirect vows them to server, receive from server a send to client 1 co 5 votes The answer * Top Questions voes Anybody can Anybody can ask a question a+ c? modeW 664 Anti-hacking a 2 ases vows game - best practises, suggestions a 0 anwer 2 v; 0 0 11 votes ansrs vwews 1m agoAroCS 2212 mo dtied In ago AutroC8 2.212 WebView shows a little white flash when the loadData method is called asked 1m ago PoverbWo , web A androi 188 Windows Form TextBox Won't Update From Outside Class 2m ago jmchnney 2moded 6.022 Figure 2-6: The Stack Overflow homepage. People often wonder why Stack Overflow is so strict about its protocol for asking and answering questions. Spolsky says they intentionally don't support conversations. "If it's fun, it shouldn't be happening on our site" [17]. This is because their goal is not to support relationships or learning, their goal is to create reusable artifacts. He goes on to say that their main focus is not on the experience of users asking questions, or even the experience of users answering questions. Instead, they focus on the experience of users that come to Stack Overflow just to read answers or make use of previously asked and answered questions. By not allowing conversations, displaying an intimidating homepage, and closing questions because they are duplicates or poorly worded they support their goal of creating a set of re-usable artifacts. 24 In the Scripts Workshop, we attempt to build on the success of Stack Overflow's community driven model but focus instead on supporting beginners and meaningful connections for learning first. 25 Existing Scratch Support Spaces In this chapter I survey existing avenues of support within the Scratch community. As a participant in the Scratch community there are several spaces to get support while creating projects. This varies from spaces and content created and maintained by the Scratch team, to spaces designed by the Scratch team but mostly maintained by the community, to spaces and resources designed and maintained by the community. Figure 4-1 attempts to illustrate the current landscape of resources. 26 -I Scratch Team designed space, Scratch Team created content Scratch Team designed space, Community created content Community designed space, Community created content Size of circle represents relative amount of content. Items to the left are more closely tied to the main site nav and editor Figure 3-1: An illustration of the Scratch resource ecosystem. 3.1 Scratch Team Created Resources The Scratch team has produced and curated a set of tips, starter-projects, and tutorials that are meant to help in getting started. The tips exist within the programming editor and the tutorials and starter projects are organized in a central "Help" section of the site (Figure 4-2). They are created by learning researchers and designers, so these resources are well designed, appropriate, and useful; however, they are limited in number and scope. There are currently ten video 27 tutorials, twenty-four starter-projects and twelve how-to tutorials. These resources attempt to cover themes that are popular in the community such as animation, games, interactive art, music and dance, stories, and video sensing. Because of their visibility and usefulness these resources get a lot of use. They provide great starting points for project creation but it would be impossible for the Scratch team alone to support the breadth and depth of things Scratchers are interested in doing or get stuck on while they are doing those things Ssp-by-SW~ ft I® Get Started with S cratch Ott rips 1 of 13 Into Start Moving Try out the step-by-step Intro , rn- Drag a move block into the Scripts area. Explore these Watch the Getting starter projects Started video I -o Scratc~h Ua Here are some guides to help you learn Scratch: Getting Started Guide This step-by-step guide (PDF) provides an easy Introduction to Scratch. Then click on that block to make the cat move N, T7i aon.> Scratch Cards Each of these cards shows something you can do InScratch. Figure 3-2: Scratch help section (left) and in-editor tip-bar (right) 3.2 Scratch Team Designed, Community- Supported Spaces In order to provide support beyond the finite resources the Scratch Team has developed, there are also explicit spaces designed for the community members to support one another. 28 Discussion Forums The discussion forums allow Scratchers to connect on a variety of topics. The "Help With Scripts" forum welcomes Scratchers to post their requests for programming help and wait for a response from the community. Brennan[10] found there was a 95% response rate to 1449 topics (mostly representing questions) created from January to July 2012 with a median of 4 responses per topic. The forum is very active, with a median first response time of 22 minutes. However, this activity comes from a small (less than 10%) part of the community. One challenge with the forums that Scratchers reported in interviews with Brennan[10] was the ability to connect with someone who is able to help them in a way that is accessible. Welcoming Committee The welcoming committee is not a space for explicit programming support, but it is one of the first places many new Scratchers go and it reflects a space within the community that serves as a form of social support. Scratchers within the welcoming committee promote the cultural values of the Scratch community and are an initial connection for new Scratchers (Figure 4-3). Scratch Welcoming Committee! Projects(100+) curators by Pufise21O4 Wet to S by idcyono mp by tv 0,"wiu SCRATCH yv"O Wtoosi to Sostdtt MWIems. flew oa by T.wgopuff6 Wetoomet Fteport thisstudo {iee Awi ActMi Comments(25848) Updted 31 May 2014 Wecome to Scratchl of the projects in the projects section and leave e conment Inthecomments section to meet a menbr of the Welooming Conmtteet byttJ _?2by . Click on any poenm To talk to people, make friends, and advertiseyour projects, please go to the correct sections of thediscuson fortms http://scratchAmt.edu/discuss Ii wdosg We uautdtttttl by poffimsty Weteemes to OSetit by Lie. Figure 3-3: Scratch Welcoming Committee 29 -. Umfut Togs T.. by Mtysi-Losee mew 3.3 Community-Designed, CommunitySupported Spaces This is perhaps the most interesting of the existing support spaces. There are thousands of community-created projects tagged "tutorial", dozens of YouTube videos and several websites created by Scratchers wanting to support their peers and share what they know. They're created by all levels of Scratchers - from experienced to those who just joined a week or two ago. Wiki The Scratch wiki is a collaboratively written wiki written primarily by and for Scratchers. It consists of content curated and edited by approved contributors. It started as the Scratch Programming Wiki - a separate website created by a member of the community to help Scratchers with programming. As its popularity grew the Scratch Team saw its value and decided to host it on the main scratch.mit.edu site. Today the wiki includes more than 100 tutorials created by Scratchers. However, with titles like "Shooting projectiles" and "Extensive scrolling engine", these tutorials serve mostly those interested in creating games and use language that assumes a certain level of technical experience. For those who need more guidance, the format of the wiki doesn't provide an opportunity to interact with the author or ask questions. Helper Projects and Studios The thousands of projects tagged "tutorial" represent a range of interests - from drawing, to animation, to games, and vary from general "how to do variables" to very specific "how to draw a pony facing you" (Figure 4-4). They also vary greatly in terms of their usefulness and understandability. Further, because they aren't highlighted anywhere on the site many of them are never discovered and have only a few views from the community. 30 How to draw a pony facing you Scratch Tutorial 3: Variables by LPSpuppygirl by tuK&13 J N1.. SACK LEA , f ru Kl r ( p.. Figure 3-4: Examples of the variety of types of Scratcher created tutorials Scratchers have also used studios to create spaces meant for helping fellow Scratchers. An example of this is "Tutorial Madness" (Figure 4-5) which is managed by fifteen Scratchers and contains more than 100 tutorials. Tutorial Madness! Projects(100+) kunfol Commenis(1001) 112SS Actiity Crators lA1 Ma ,; Lur.! by V-x iPJVI AnkneeyaTutoW^.ll by Fo Nlii Now To Put YouTuie. by WabastoGmi Updated 27 MAy 2014 smsemlaa mwssem3ae -Notice: Curators will not be accepted for now. I'm sony, but I can't keep submitting people in. We il appredatethewonderful fact that you al want to Join, but I don't want to Ourate bomb 1*-M. Poemon tutona by 1tyangwi How to make by poknaid Quick Cat Tutorbats How a cat, go... Platformnkh by toyaigwa tugrtat mussammuumeusa A thetitle Implies, All tutorials can go hero 0 Myou want one of your tutorids in here as soon as possible, just link us the tutoria in thecommentssection, and I look forward to seeing them( This is not Just drawing tutorils, so don't bearaid to link protects about varltais, cloud data. sounds, et. by vowe to drm a Lum W M nm Drewieg Tutourw ,.by htysty"o susrsrnseasamssmsrs I will try not to Orate bomb this studio. I you are invited to ojrste. Figure 3-5: Scratcher created community of tutorials and helpers 31 ;w "olow"a) A look at the comments, more than 1000, with the majority being requests to contribute, reflects the enthusiasm felt about helping others in the community (Figure 4-6). The enthusiasm and diversity of activity within these spaces is inspiring however it's unclear how useful they are to other Scratchers. They aren't organized or easily found within the community - and the quality varies drastically. Foofy101 Can you please add my anime eye tutorial? Thankls http://scratch.mit.edu/projects/24270840/ 02 July 2014 Reply WMakmtderGirl I have a "How to Put Music In To Scratch Projects herel -> http://scratch.nit.edu/projects/24103877/ 26 June 2014 Reply 1 OnechwI3 I have a how I draw cat eyes tutorial her --> http://scratch.mit.edu/projects/23908059/ Can somebody add it for me? By the way, nice dancing N. :3 21 June 2014 Reply 1Ayangwi I MADE MORE POKEMON TUTORIALSIIIIlItIIIIIII BETTER THAN EVER 09 June 2014 Reply Figure 3-6: Comments from Scratchers wanting to contribute to the Tutorial Madness studio 3.4 Limitations Many kids thrive in the Scratch online community and are able to find resources that provide 32 support and inspiration as they create and share projects. In interviews with Scratchers conducted by Brennan [10] most kids described the ability to connect with other creators in the online community as an important and useful resource towards their own participation as creators. However, we also know that many Scratchers don't ever make those connections and don't get past the creation of a single project. Since these Scratchers are inactive or end up leaving the community, it's difficult to tell their story or understand their feeling of disconnectedness. Even active members of the Scratch community run into challenges finding the resources they need in the community. The size of the community is both a challenge and an advantage in this regard. With a larger community there are more potential sources of support, however, it is also - significantly harder to find the right sources in the crowd. Another challenge is communication many Scratchers are unable to articulate the problem and support they need[10]. 33 Scripts Workshop In this chapter I introduce the Scripts Workshop, an experimental learning environment that connects the people, spaces, and activities required for effective community-driven support within the Scratch online community. The design of the workshop is based on principals of social and constructionist learning as described in Chapter 2 and influenced and informed by existing Scratch community practices described in Chapter 3. The Scripts Workshop is developed on top of existing features in the Scratch community and actively avoids implementing new platform structures. In product development this is sometimes referred to as a minimum viable product (MVP) strategy. It allowed us to test and iterate our design with minimal resources. The following sections provide a description and analysis of the main spaces, people, and activities within the Scripts Workshop experiment. Section 5.4 concludes with 4 community design principals that can be derived from this experiment as well as an outline of its limitations. 4.1 People The people involved in the Scripts Workshop can be divided into 4 major roles: Learners, Script Helpers, Scratch Mentors, and Scratch Team. In the workshop, learners connect with Script Helpers and Scratch Mentors who are supported by the Scratch Team. These roles are derived from Illich's requirement that learners have access to a network of skill models (Script Helpers) 34 and pedagogues (Scratch Mentors) that is supported by administrators (Scratch Team). The following sections examine these roles within the context of the workshop and each other. Learners Many of the community-designed and community-supported spaces in Scratch have a surplus of Scratchers wanting to help and a deficit of Scratchers looking for help. For a short time, the Scripts Workshop was featured prominently on the homepage of Scratch in order to direct more Scratchers seeking help to the space by reducing the current barriers to finding these community support spaces. Over the course of 3 months more than 100 projects went through the workshop 30 of them were from Scratchers who had only been in the community for a few months and several of them included first projects. In the Scripts Workshop the number of people seeking help often outnumbered those providing help, which gave those providing help ample opportunity to interact with real learners and real problems, something that is missing in other Scratch community support spaces (Figure 5-1). In the discussion forums Scratchers often request help without context and the helper studios tend to be spaces occupied by those wanting to help (Figure 5-2). http://scratch.mit.edu/proects/25127031 trying to add a scrolling map. and a save system can anyone help? 31 July 2014 Reply http://scratch.mit.edu/pro ects/24401011/ im trying to tun this into a scroll for ages. can anyone please help me? 31 July 2014 Reply http://scratch.mit.edu/projects/25165670/ Could someone please have a look at this ? 30 July 2014 Reply Figure 4-1: Comments within the Scripts Workshop reflect people looking to get help 35 can I possibly curate I love helping peoplel 10 July 2014 J Reply can ijoin iam a friendly good scratchers 30 April 2014 Reply Can I help? I love helping new Scratchers! 05 April 2014 Reply Figure 4-2: Comments within a typical "Helper Studio" reflect people looking to provide help Script Helpers The Script Helpers were selected by application. There is an abundance of enthusiasm around helping that doesn't correlate with ability to help, and the application process introduced a necessary threshold to participation that was meant to filter those with at least some experience and demonstrated ability to help. The application involved creating and submitting a tutorial project that Scratch Mentors (described below) would review and either accept or provide feedback on for improvements. The tutorial project wasn't necessarily a good indicator of someone's ability as a Script Helper; rather, it was an assurance that they had some minimal level of experience as a creator in Scratch and an invested desire in sharing that skill. It's important to note that the Script Helpers didn't have any special privilege in their role as helpers. That is, in keeping with Illich's [6] design, where anyone with a skill to share may share it, the Scripts Workshop was open to everyone. If a Scratcher saw a project in the workshop that they felt they could provide help on, they were welcome to do so whether they were a Script Helper or not. Instead of privilege over helping, the Script Helpers instead had a responsibility 36 for helping. They were visible, active, and skilled, members of the community who participated in the space. They also received explicit support from Scratch Mentors in developing their ability as helpers. Script Helpers' interactions within the Scripts Workshop act as models for other Scratchers entering the space, with the desire to help but lack of experience and ability. Over the course of three months, 46 Script Helpers were accepted into the Scripts Workshop. Most of these were Scratchers who had some experience and skill expertise in Scratch, were excited about supporting others, but lacked experience in how best to do so. In fact, many of them felt the goal of providing support was to do so as fast as possible which sometimes meant just solving the problem without providing any explanation (Figure 5-4). Well, the more we have, the more quickly we will be able to respond to problems. Some people can be very impatient, so this is a good thing.... 03 May 2014 Reply yeah you are right. 03 May 2014 Reply Figure 4-3: Script Helpers discussing importance of quick help Scratch Mentors While the Script Helpers focused on helping Scratchers with their projects, the Scratch Mentors focused on helping Script Helpers better help Scratchers. They did this by modeling good strategies for help and also acting as moderators for the Scripts Workshop spaces. Scratch Mentors, play a role akin to what Illich [6] describes as 'Professional Educators', and are focused on supporting the learning experiences of others. Though Illich imagined this role filled by 37 people with professional experience as educators, we explored the capacity of young people to take on these responsibilities. The Scratch Team invited 5 older teens to serve as Scratch Mentors, all of whom were selected based on their active participation in the community, specifically, helping others with a demonstrated empathy for beginners. For example, all 5 Scratch Mentors were also part of the Scratch Welcoming Committee described in Chapter 3, so they had experience interacting with newcomers and beginners and promoting a supportive and respectful culture. They were seasoned members of the community who contributed and participated in multiple spaces from the wiki to the discussion forums and other social spaces. In the Scratch forums or wiki Scratchers who answer forum posts or create wiki articles don't have much explicit support in these roles. In the Scripts Workshop, Scratch Mentors model strategies for supporting Scratchers, provide Script Helpers with feedback on critique as they help Scratchers, and create resources and facilitate conversations that reflect on what it means to support someone's learning. Below is an example of a poor interaction between a Script Helper and a learner in the Scripts Workshop: 38 Fli, can you please help me with this: http://scratch.mit.edu/projects/23927778/#player ? Its already here, but the person who commented hasn't replied to my comments yet, and I'd like to figure this out as soon as I can... ThanksI 23 June 2014 Reply You can't expect people to be on all the time. 23 June 2014 Reply I know. I'm just asking for someone that is online right now to help me. I'm not accusing that person. 23 June 2014 Reply Figure 4-4: Unsupportive interaction between a Script Helper and Scratcher This particular Script Helper had several interactions like this. Below is an intervention from a Scratch Mentor: 39 Si, it is great that you help so much in the Scripts Workshop, thanks a lot for that I think your work could even be improved if you could follow the following steps: Everytime you write a comment, read throug it again before posting. Ask yourself: Is this post necessary? If your answer is yes, ask yourself if anything in it could hurt another Scratcher - if so, change that. Then add some nice words here and there. I think this might avoid problems on the Scripts Workshop Studio 03 May 2014 Reply S Yes, I've been practicing that. Thanks for reminding me anyway. Sr Reply ) 03 May 2014 03 May 2014 Reply Figure 4-5: Scratch Mentor modeling supportive help Scratch Team There were 5 of us from the Scratch Team who led the design of the Scripts Workshop. The role we played would most closely match what Illich [5] referred to as the "administrators and designers" of learning webs, whose skills and attitudes he compares to that of museum or library staff. Their main goal is to stay out of the way while facilitating encounters among students and the things and people that will support their learning. The 5 of us on this team, together, represent a skill set that encompasses UX design, webdevelopment, programming, learning research, education, community moderation, and perhaps most importantly, we are all active members of the Scratch online community. Having some expertise in all these areas was important to the design of the Scripts Workshop. We met weekly 40 to discuss the design of the space and (after launch) to discuss how it was being used, what was working or not working, and what we should change. When the Scripts Workshop first launched we participated in order to help model the type of role we expected the Scratch Mentors to play. We also invited the Scratch Mentors to participate in some of the planning of the Scripts Workshop. We hoped that their participation in the design and plan for the Scripts Workshop would allow them to better understand and support the goals of the space, as well as empower them as managers of the space. After the initial launch we reduced our participation to a minimum, only making ourselves available to Scratch Mentors if they wanted our support in a specific decision or interaction. 4.2 Activities There are two main activities that are supported through the Scripts Workshop: creating resources and providing help on projects. These are adapted from activities that already occur in the Scratch community. This section describes those two activities and their goals. Community-Supported Creation of Resources Within the Scratch community, Scratchers produce text-based tutorials in the wiki and projectbased tutorials that they share on the site. In the Scripts Workshop we build on the idea of using Scratch projects as a medium for resources. They are not an ideal medium by any means. For example, showing the Scratch UI or blocks in a project (which tutorials often do) requires taking screenshots with third party software a process that is challenging for many young Scratchers and tedious in general. However, we feel that projects are a better medium for resources than text because they are interactive and more accessible for both helpers and learners. In the Scripts Workshop we attempt to provide Scratchers support in creating more useful and accessible resources. 41 As described above, Script Helpers apply to participate in the Scripts Workshop through the creation and submission of a "helpful project". We defined a helpful project as anything that explains a concept in Scratch or contains a set of reusable scripts or sprites with instructions on how to use them. Scratchers submitted projects and Scratch Mentors reviewed them and provided feedback and suggestions for improvement. Once they got to a place where a Scratch Mentor felt it was something that would be helpful, easily understandable, and usable by another Scratcher, the project was added to a growing collection of "helper projects" which served as models for others who wanted to apply. By receiving design constraints and goals from Scratch Mentors, Scratchers produced projects that were more relevant and useful for programming in Scratch than what you might see by just typing "programming tutorial" in the Scratch search bar. With access to a set of example projects in the Scripts Workshop, Scratchers had a model to work from and were able to borrow concepts and ideas in their own projects. Through feedback and suggestions from Scratch Mentors, Scratchers were able to refine their projects (Figure 5-7). Through this process we ended up with a set of projects that ranged in topic from variables, dragging, sensing, lists, and cloning among others; as well as a set of projects with reusable scripts and sprites. Some projects even developed creative techniques that prompted the learner to participate. Figure 5-8 is an example of a project, which provides the viewer with two reusable animated sprites, and a third image, which they invite the viewer to program herself. 42 rem f rwrueri Ths is very very helpful and you explained the script very weill Just one little suggestion: Could you describe your usable script in the project notes? That would be even more helpful I think. 30 April 2014 Reply Donel 30 April 2014 Reply Awesomel I could already add the project to the Scripts Studio, but I though maybe you would like it to look a bit more interesting for people who look at the studio gallery - so maybe you'd like to make a background or something like that first? 01 May 2014 Reply OKI 01 May 2014 Reply Figure 4-6: Scratch Mentor providing feedback on how to improve a tutorial project 43 (reuseable sprites, by Jamiemouse v423f WIU I #m 'obXC ya RMV I mIt -Ig .aafiLa.. dMme Wrhoa Md to uft tnhem it I Iss to the tad gcter I "prie+ I =L g*g sWw. So 410o 4&Wd al f 9 you CW Ca tAO MUr isr . 9 derk a Ma Arity .m* me. I made this dragon... With not scriptst That's when YOU come in, I want you to put some scripts and maybe more costumes to make this a better dragon. You can even change the colors and designst Figure 4-7: Creative tutorial project, provides two sprites, and suggests you write the script for the third. The studio where these projects lived was highlighted on the site, which meant the projects received many more views than the average project labeled "tutorial" on the site. In addition many of these projects received positive and thankful comments from viewers. Just as recognition from the community leads to confidence and motivation as a creator, we hope that it does the same here for helpers (Figure 5-9). 44 Realy helped! 09 August 2014 Reply Nice tutorial! Very specific, informative, and well-written 30 June 2014 H Reply Thank youl:) 30 June 2014 Reply Wow! I thought the scripts would be like this: when green flag clicked forever - glide 0 secs to x:(mouse x) y:(mouse y) or something like that. Great tutorial! 14 June 2014 Reply Thanks (And no, 14 June 2014 it's a bit more complex than glide.) Reply Figure 4-8: Positive remarks from community on a Scripts Workshop tutorial project Community-Supported Help on Projects In the Scratch Community, the discussion forums are one space where Scratchers go to get help from another Scratcher. However the forums are text heavy, and questions are often asked without context, and responses often use language that's not understandable to the asker, leading to confusing conversations that are usually left hanging (Figure 5-10). 45 I, New to Scratch 5 posts Hi, When i use a "When it switches to backdrop" (set to no 4) it does not show I have remade the sprite and done many things " Remade it Copied the code and many more Please help[ Pt s are the project and post link so we can look into it. Scratcher 100 posts how do i do that? New to Scratch 5 posts Go to the project page and click the share button in the top right comer Scratcher 500+ posts Done Thanks I NEED HELP STILL DOE! New to Scratch 5 posts_ _ _ Figure 4-9: Scratcher looking for help is left hanging in the discussion forums There are of course other resources available in the Scratch community (as described in Chapter 3); however, for a newcomer in the community (or even an old-timer) they aren't so easy to navigate and understand. 46 In the Scripts Workshop we shift the focus to helping Scratchers with a specific problem within the context of a project they're working on. The workshop is an entry point for getting help on a problem. Within the workshop a Scratcher connects with a Script Helper, who will either help them directly or will act as a guide for the vast ecosystem of resources that exist in Scratch, by connecting them to other relevant sources like tutorials, example projects, or other Scratchers. (Figure 5-11) JCaieoc Hello. I'm making a scanner/printer and I'm having trouble getting the program to recognize so many different shades of colors. Are their and shortcuts I could use?? http://scratch.mit.edu/projects/25589964/ 6 days ago Reply JCW=s @JCalex sorry. are their any shortcuts 6 days ago Reply phyno @JCalex yes, frodewin is an expert on this, (I believe :P) 5 days ago Reply Figure 4-10: In providing support a Script Helper points to another Scratcher who may be useful Scratch Mentors also participate in helping projects in the Scripts Workshop - the goal is for them to model behavior of what it looks like to be empathetic towards learners and provide good help. In addition they provide Script Helpers with feedback on their interactions with Scratchers in order to help them refine their techniques for helping (Figure 12, 13). 47 Hey guys, I know that in this, you're supposed to make a project with your question, but right now my 'project' is no more than an idea. So if you don't answer this, it's fine. But my question is: I want to make a game where things fall from the sky and you must catch them. Simple. But I don't know how to randomize the amount of time in between the things falling. If you could show me a script or something, that would be epic, but if you don't that's completely fine. 01 May 2014 Reply Not a problemi Instead of using wait 1 secs, put the pick random 1 to 10 from the operators section into the number 1 in the wait block. Clear? 01 May 2014 Reply Oh... I thought you are supposed to see the project before saying it... 01 May 2014 .W Reply Well...the point of this studio is for people who have projects they need help with, so I'm not really sure if this is the right place for this. Maybe you could post this in the "Help with Scripts" section of the forums. 01 May 2014 Reply Figure 4-11: Script Helpers responding poorly to a request for help. 48 Ithink it is absolutely okay to ask such a question, don't worry :) As others already said, there is a useful block in the category "operators" (the light green blocks) that choses a random number that is between two other numbers that you can chose. 01 May 2014 Reply Thank you, but I don't want to make a bunch of Sprites that all have that same script. What I mean is that if I made one sprite with that script, it would work and could repeat. But I want to have multiple balloons go up, and still only use one sprite. Is that possible? 01 May 2014 Reply SZ Yes, it is possible with clones. Maybe this wiki article helps: http://wiki.scratch.mit.edu/wik/Clones 01 May 2014 Reply Figure 4-12: Scratch Mentor modeling supportive help 4.3 Spaces There are three main spaces that define the Scripts Workshop. These are: the workshop - a communal space for connecting, project comments - a space for contextual conversations, and helper forums - a space for reflection. The following sections describe and analyze these three spaces. Workshop Studio The workshop studio is a Scratch Studio that highlights projects looking for help and people who are able to help. Unlike many of the existing support spaces within Scratch, upon entering you immediately see that it's a space for beginners or people seeking help and not just a place for experts (Figure 5-14). 49 Scripts Workshop Projct(29) :1 Followre Comments(1964) Curators Activity Allow anyone to add projects n 0 Report this studio tu Testing by S N-spreVTmfwv Left 4 Dead Survival by thmensitivecononut UNER CONSTRUCT!.. by *erbsn Mage Buoyancy Sirnutxtion by ducnb-ns Viiae uwnepr kw.Ip) by RobotSperk Cyase Destruction 2: The rim... by u~stsoUt Platforming Updated 1 Jul 2014 APW by sheeiowe Welcome to the Scripts Workshop! Looking for help on your project? Stud on a glitch? Have a question? Share your project in this studio and a Scripts Team member will help you. Follow these steps: 1. in your project notes, describe what you need help with or write your question. 2. Pastea by Dr~nott rte': link to your project in the Comments and we'll add your project to this Studio. DON"T PLAYi by %mwoww" FOR S... 00 w Cheaftwdate battaW Mushroom Farm Defe.. by EviCookc M by k*n"7 by Loud*1e=iiones Figure 4-13: Main Scripts Workshop space with listing of projects looking for help You can also easily identify people in the space who can help on the curators tab (Figure 5-15, 516). 2i E an EH7 Figure 4-14: Scratch Team and Scratch Mentors participating in the Scripts Workshop, as listed in the 'curators' tab of the Scripts Workshop 50 Figure 4-15: Script Helpers as listed in the 'curators' tab of the Scripts Workshop Unlike other spaces, which are text heavy, the workshop uses the familiar and thus more welcoming elements of projects and people to define the space. The comments tab is where Scratchers can submit a link to their projects and request help. There aren't long or confusing conversations here, only short interactions asking for help which makes the space less intimidating and lowers the barrier for participation. The communication within this space is also moderated by the Scratch Mentors who promote and model patience and empathy. The design of the workshop studio acts as a signal to beginners and learners that it is a space for them and provides clear and easy examples for how they can participate. In addition, the workshop space acts as a model for all those Scratchers with an enthusiasm for helping who want to develop their skill in doing so. As described in the "Script Helpers" section above, the workshop space is open to anyone who wants to provide support whether they are a Script Helper or not. Thus, these enthusiastic aspirational helpers can go from observing, to practicing 51 participation within this space and receive feedback from Scratch Mentors and others as they do it (Figure 5-17, 5-18). EvilCookie36 Hello, I need help on my game, Cheatt. It won't work (obviously). Here's the link: http://scratch.mit.edu/projects/24653156/ 15 July 2014 Reply @EvilCookie36 Added 16 July 2014 Reply EviCookieSS @yellow25 Thanks! 18 July 2014 Reply Figure 4-16: A Scratcher looking for help in the Scripts Workshop LoudHeadphones Oh yes I forgot to tell you that my Mushroom Farm Defender no longer needs help so you can take it off! :D Thanks EvilCookiel 26 July 2014 Reply EvICookdM @LoudHeadphones Your welomel 27 Jy 2014 Reply LoudHeadphones *EvilCo kie3G :D 27 Juiy 2014 Reply Figure 4-17: The same Scratcher from figure 5:17, now providing help in the Scripts Workshop. 52 The workshop space acts as a starting point for those seeking help, and the people within the workshop act as knowledgeable guides to the world of Scratch resources that is otherwise overwhelming or un-navigable by a beginner. Project Notes & Comments Many of the conversations in the discussion forums are out of context and confusing to follow and often lead to frustration by participants. In many cases it seems a conversation will just drop off and it is unclear whether the conversation starter's issue was resolved or whether they just decided not to return to that thread in the forum. In the Scripts Workshop, a Scratcher frames their request for help in the project notes and help is provided in the project comments. This places the 'object' the learner and helper are referring to "right in front of them", making it easier to talk about. It also makes it significantly easier to start, follow-up, or end a conversation around a project. Projects in the Scripts Workshop aren't removed from the workshop until the learner confirms that they don't need anymore help (Figure 5-19). 53 iieiio i tam on trio s:cripts Team. I think your problem is that on the bottom of your define ''Set Basics* script you have a block that's walting until Eldertalk =3. AlM you need to do is remove that block! 08 August 2014 Reply SAlright. Let me try that. k)9 August 2014 Reply SYAY IT WORKED THANK YOU!! OQ Auinrt 7014 R4anlv SNo problem! Is that all you needed help with? 09 August 2014 Reply Yup! Or you can test it. 09 August 2014 Reply LjI did! It works great! :) Since you dont need any moare help, P'it have it removed from the Script Wourkshop. 09 August 2014 Reply Figure 4-18: Example of a Script Helper proving help on a Scratchers project 54 El Helper and Mentor Forums A key space within the Scripts Workshop is the forums where Scratch Mentors and Script Helpers share stories, strategies, and questions among themselves. These forums provide a space for Scratch Mentors and Script Helpers to reflect on the process of helping and support one another in that process. They also use this space to help organize themselves in order to better work as a team. Having a space where they can communicate helped to encourage a sense of community among them. In the Scratch Mentor forums one Scratch Mentor shared her thoughts on how someone should be helped, drawing on her experiences as a "homework helper" outside of Scratch: How should they be helped? I've been homework mentor in my school... Our strategy was the following (which worked most of the time): * Get clear about the instructions, what do you want to achieve? (most of the time, people didn't understand the instuctions because they didn't read them correctly) * And then: How will you achieve it? I'm sure you have some ideas, collect them. (Makes them think about solutions, not only waiting for someone to answer) * Then think about them again, what can you exclude? (Kind of scientific way of doing it But it's really cool to reflect about one's own ideas) * If you really don't know the answer, ask me again (so we think about the ideas together and find the right solution) Figure 4-19: Advice from a Scratch Mentor on how to provide help She also shared her insights into the challenges faced when helping. For example, the technical challenges presented by working online: But from my experiences I can say, that it's not that easy on the intemet - you are far away from the one you are talking to, and sometimes you aren't even online at the same time. Also, it's hard to describe programming and it's easier to provide the scripts. Figure 4-20: Scratch Mentor describing challenges of online support 55 Or the challenges of helping with programming: Most of the time I give some ideas, like: "You could use this and that block" or "You need a script for this, that and that" (so that they have to figure out themselves how to put the script together) or else I link a wiki-article, if there's a good one... But that's not so good for long and complicated scripts: What I do then is make the scripts and add comments to them and then I try to reflect with the user what I did, but I can imagine that some people just say "Yes I understood that" although they didn't understand it or just didn't want to think about it. Figure 4-21: Scratch Mentor describing challenges of programming support Or managing learner expectations without discouraging them: Another experience: Sometimes, people are asking: How do I make a multiplayer game like Minecraft. Often they are new Scratchers without any projects. How do I explain to them that they'll probably not be able to do that in the way they imagine it, without discouraging them? Most of the time I'll link a wiki article or a project here, just for them to get an idea of what they plan. Figure 4-22: Scratch Mentor describing challenges of pedagogical support This led to discussion among mentors about how to convey these ideas and the suggestion came up to create a Scratch Helper Guidebook. After more discussion this turned into a collaborative Scratch project made by the Scratch Mentors to convey what it means to be a "helper" (Figure 524). 56 r. n. aScatch HStpt3 0 a~~~ ScrptsHeler In the Script Helpers forums one Script Helper shared his story of helping: I helped helloyowuzzup on their project Scratch's Singathon. They basically had everything ready, but they hadn't done much programming. They needed help with the menu to flip through the different songs. In the project notes they said that their own scripting was confusing them, so I decided it would be best if I just made a remix for them with a functional menu. Before I started on the remix, however, I made sure I understood exactly what they wanted. I had a fairly lengthy back-and-forth to make sure I did it right. During this back-and-forth, they said that they didn't understandsomething that I had said. After they said so, I did my best to explain things more simply, and that way I was able to find 57 out exactly what they wanted most efficiently. When I startedremixing, Ifound out the project was horribly cluttered; not with scripts, but just in general. There were a lot of sprites, and they were all showing in random places. The scriptsthat were there were very repetitive. Accordingly, I started with just some simple organization, and then I went on to putting together the menu. That part wasn't hard. After Ifinished it, they were VERY thankful, which made me feel good about helping them. He goes on to summarize the take-away from his experience as: It's not just aboutfixing the problem; it's also about making sure they have a good experience and get exactly what they want, and, as (in most cases) more experienced Scratchers, showing them what Scratch is all about. And, hopefully, the Scratcher will be very thankful, making it enjoyable for you as well! The Script Helpers forum was also used as a space self-organize. One Script Helper suggested that it would be easier if he knew what skills all the other Script Helpers could help with so he could more easily point to them as a resource. He decided to make a chart and invited all the Script Helpers to fill it out (Figure 25). 58 r 1 . IMombal Variables Usts Movemient Animation Sensing Blocks____ m -pentors blocks ntrol blocks nsilng blocks ta manipulation . M loth roect Ske9ton&/engines odty - actor designs. are ideas crolling .Cloud Dat . e Variables OS inphic lones and Variables Ghost effect . Random bug fixs an sta Nth * Looks Movement m " Data . - * . ding and stamping out minor bugs W9th ones and how they work Decrypting doud vaiables Ineractive Art Animation basic m*wa~lleeto * Bitmap . Lag redudng . gaming . variables . animation . slide shows . Platforming . Top-down games . Bug flxes/Troubleshooting . Scrolling . Vector art Effects En Rendering Vector Art - movement j variables * simplistic drawing SImprovement ideas plgtformers raycesters 3D engines vector and bitmap veicity . code affiency * string manipulation . trigonometry scrolling Figure 4-24: A chart of individual Script Helpers areas of expertise. Names have been greyed out. 4.4 Possibilities and Limitations The Scripts Workshop illustrates the possibilities for more effective community support for learning within the Scratch online community. Specifically, we can highlight 4 major takeaways: 1. Focusing on supporting projects instead of questions helped make otherwise abstract conversations more concrete. 2. By creating spaces and highlighting people that model good strategies and techniques for helping, the Scripts Workshop provides Scratchers who want to help, with an opportunity to observe and then participate. 3. Defining and supporting roles focused on mentorship and pedagogy helped to seed and 59 promote a culture focused on learning and not just answering questions. 4. Creating spaces for reflection also strengthened the focus on learning and provided opportunities for helpers to support one another as they develop and share strategies and stories. The Scripts Workshop also highlights some limitations: Identity Scratchers struggled with the idea that Script Helpers provided help, but so could anyone else. The fact that this was a distinct role, that required an application, review, and acceptance process, signaled to them that there should be some unique privileges that came along with it. This conflicted with the general idea of promoting helping as practice and value embedded in the community. Communication Another limitation is introduced by the block-based nature of the Scratch programming language. Script Helpers and learners would struggle through conversations where they tried to use text to explain how to edit, shift, add, or remove graphical blocks. Sometimes they would remix and share a project to overcome this. These projects would clutter their own profile pages and so they'd delete them soon after and the learner would lose access to them. Diversity of Interest Many of the projects submitted to the Scripts Workshop were by newcomers to the Scratch community. However they lacked diversity of interest. The majority of projects submitted were games. Though this could be because Scratchers are more likely to run into scripting issues when creating a game than other types of projects like animations or interactive stories - I'm skeptical of that. A community support space should strive to better reflect the diversity of interests of the 60 community. Some aspects of these limitations can be addressed through more substantial platform changes or additions. I'll propose and describe these in Chapter 6. 61 El Implications: Scratch Community The design of an online community greatly influences its practices. Design decisions within the Scratch online community are made with careful consideration as to the implications it will have on its core values of creating and sharing in a supportive and diverse community. In this chapter, based on the learnings from the Scripts Workshop, I suggest and describe design changes within the community to encourage and better scaffold Scratchers supporting one another. I'll structure these suggestions according to three key limitations we saw within the Scripts Workshop: Identity, Communication, and Culture. 5.1 Identity Within the Scratch Community's 3 million plus registered users, it's difficult to identify who might be willing and able to provide help. The Scripts Workshop defined a space where Scratchers who were willing to help congregated; however, their ability to help varied. Since many young Scratchers are excited to provide help, we had a large number of applications to become Script Helpers but very few that qualified. In a later iteration we moved to an invite model based on previously demonstrated ability and interest in supporting others. This would work well in the limited scope and size of the Scripts Workshop but doesn't scale well to support a community as large as the Scratch Community. To do this, we need better ways of identifying Scratchers who have both the ability and willingness to help. We also want to ensure that helping 62 doesn't become an activity that is reserved for a selected few. Currently Scratch profiles focus on identity in the community as creators. For example, the content on a Scratcher's profile page lists their shared projects and studios, favorite projects, and followers (Figure 5-1). Many Scratchers who participate in the community as helpers and create tutorial projects or remix projects as a form of helping, create separate accounts to draw a more clear line between their identity as creators and helpers. If instead, their profile also listed tutorials or resources they've created, projects they've helped troubleshoot, and skills they are willing to share (Figure 6-1) - it would better highlight not just how they participate in the community as a creator but also as a helper or skill model. It would also provide Scratchers with the willingness to help, clearer pathways to build up and demonstrate their ability to help. E®( UiFaytheGoblin V V:;rther Jomixid ?years, 9 months ago Fetured Project About me Scnatch Mentor a mome What I've been doing x LFaytheohl is now following the studio ST Appreiation Wesict -------------- I othe aooune - OalFayRwmx aLJFayfheoobl 4a What I'mwvoldng on - is now following Rumanti -erar,tem Mentoring Stuff xD Masct's PlwzeCoilab httpY/bowrjustedu/studou/2101 62/ LiFayewGobnh Is nowfollowing Cnamp99 aLvasooban Is now following kdady 9 oarm. S emles ap About Me Report 9* Me~wl Shae Projets PM0) NEED HELP hat it take WITH YOUR 4atc Oetfg H~elp by by LFqedbe~eb the Sc.. Whatttls to e.a&.. DE Frnpa by LFettwittbbt by LFttU~obf Kmraty... b LFaG ohn. Ve all Favodte Projects (89) Fowet Gump music. by wcsdusie-97 user Requem fey. drm by wisdequ,.97 S n From Scertoh by K.SIL in... Make a Dltfmeos by Ur~admaoe Figure 5-1: Scratch user profile page 63 EPride1embow by Mmasqeis WP Ar~ea Ni~~-i , LiFaytheGoblin is helping Rumanti with their project Cats 16 hours, 41 minutes ago MI 111""" p.1V How l can help Cloud Variables, Platformer Games, Animations 11614E? .. _ . . Tufto.at I cretd 1) _a NEED HELP WITH YOUR Custom r TTl Blocks! 0~U4w by bpby th w&, n Tuber. rw m M by 1n.N by LfWmon MePq"O4.n Figure 5-2: Scratch user profile with helper identity information If stored and indexed explicitly this data could also be used to move towards a stronger networkof-skills model allowing Scratchers to better find helpers within the community - for example, being able to search based on skills or tutorials, or highlighting the most loved, favorited, or viewed tutorials on the homepage. By tying these forms of participation more closely with a user's profile, it will also increase the perceived importance of them and foster a community that values not just creating but also supporting others in creating. 5.2 Communication In the Scripts Workshop we saw Scratchers struggle with communicating their ideas while helping others on a project. Part of this is developmental and can be attributed to the young age of many Scratchers, but part of it is also due to a lack of appropriate tools that support communicating about projects. In the Scripts Workshop, Script Helpers helped debug scripts through conversations in the 64 project comments. In contrast to the discussion forums, this helped to better contextualize the conversations around specific projects. Still, Scratchers continued to struggle with the abstraction required to talk about scripts using just text-based comments. The block-based design of the Scratch programming language makes it more accessible to beginners, but it also adds complexity when trying to discuss the scripts they construct. In the physical world, kids collaborating or helping each other on a project can more easily communicate by using nonverbal cues like pointing to specific areas or "showing" instead of "explaining". To facilitate conversations about projects in the online space Scratchers need better tools for talking about them. In the discussion forums, Scratchers are able to assemble graphical scripts (albeit with some difficulty) in their posts. Through the Backpack (Figure 6-6) Scratchers can collect and share sprites, scripts, costumes, and sounds between projects. Backpack Sprye Scrit Script site Script Sprite Scr-te* Sound ^ w Costwme Googls* 2 Figure 5-3: Backpack for moving sprites, scripts, sounds, and costumes between projects. Since its release with Scratch 2.0 in 2013 the Backpack has made it easier to build off the work of others in the community by borrowing bits and pieces of a project instead of remixing the entire thing. Focusing on supporting one another, the Backpack could be extended to allow Scratchers to drag scripts out of the backpack and drop them into a comment, fully integrated with the text. This would help them to talk about and debug bits and pieces of a project instead of remixing the entire project. This would give Scratchers a richer and more concrete language for talking about projects (Figure 6-7). 65 Comments (1479) JiggI.Visuay23 On the shopping cart sprite you have to have a show block after when green flag pressed. I think that should work. 23 July 2014 Comments (1479) Leave a comment I You have 500 charac~ar bft ., JIggIeVisu*23 Try this script on your shopping cart sprite I added a show block at the start to make it visible. 23 July 2014 Figure 5-4: A project comment with and without the ability to add scripts 5.3 Diversity of Interest Scratch has demonstrated the value of interest-based approaches to computer programming and computational fluency[18]. A core element of the Scratch programming language and community is reflecting a diversity of interests as a way of engaging people who may not typically be interested in programming. The homepage (http://scratch.mit.edu) of the Scratch online community is actively curated to feature projects that highlight a range of interests and 66 styles, which include dress-up projects, music projects, political surveys, and animations among others. In designing support spaces for this community it is important then that these spaces also reflect and support the diversity of interests of the community. This is an area where both the existing community support spaces and the Scripts Workshop fail. As a next iteration of the Scripts Workshop we are looking at creating sub-spaces for support based on interest. We can think about using these spaces to better support groups who are traditionally underrepresented in computing by connecting to their interests [18] and providing a context with strong social support and guidance. By creating multiple spaces for support based on interest we can also focus on smaller sub-communities at a scale where it would be easier to define culture and apply features of the Scripts Workshop. 67 Implications: Beyond Scratch In this chapter I will describe implications of this work beyond Scratch as well as future research possibilities. 6.1 Relationships and Inspiration An important aspect of learning is relationships. When reflecting on childhood learning experiences people often refer fondly to the people who inspired them, whether it be teachers, friends, or family members. In Illich's [6] learning webs the interactions are framed as exchanges with not much indication of building longer lasting relationships. However, relationships are an inseparable part of communities, and relationships are powerful tools for learning. In the physical world these connections are often unplanned or serendipitous. In the design of online learning webs we should consider how relationships fit or don't fit and what we can do to support connections between learners and people who will not only share their skills but be a source of inspiration and more personal mentorship. 6.2 Technologies for communication The way we connect and communicate over the Internet is changing rapidly. Today there are 68 tools like Skype and Google Hangouts to communicate in face-to-face in real-time using video over the network. Wearable and mobile technologies also provide new ways to think about how and when we connect with one another. In this thesis learners communicated through asynchronous text-based methods; however, there are opportunities to explore how we can utilize these new technologies to improve connections and communication for the purpose of learning. It would be a mistake to assume that these newer technologies are always a better choice over older ones. For example, real-time video communication is appealing because it's closer to the way we communicate in the physical world, but it also requires planning and coordination. There are also considerations to be made about the most effective methods of online communication for kids. As we design and develop new online learning environments it is important to explore and understand the challenges and opportunities for communicating virtually and what types of communication are best for what types of learning interactions. 6.3 Policy As we think about designing online learning environments for young learners we inevitably have to revisit policies around kids interacting online. At the moment many of the policies, though meant to protect children from the perils of the Internet, also exclude them from taking advantage of its potential as a powerful tool for connecting and learning. Today, most online learning environments focus on adult learners; however, reform in policy could lead to a burst of new environments that support kids learning online. 6.4 Massive Open Online Courses The increasing interest in teaching and learning online goes beyond the field of computer science. As we think about learning in the online space we have again opportunities to reconsider our instruction-focused methods of pedagogy that for years have remained unchanged. 69 One of the most prevalent systems of online learning today comes in the form of Massive Open Online Courses (MOOCs). There are MOOCs offered in subjects that include computer science, engineering, business, education, and more [19]. MOOCs are divided into three categories: network-based (also referred to as cMOOCs or connectivist MOOCs), task-based, and contentbased (like Coursera and Udacity, also referred to as xMOOCs and the most popular of the three) [20]. Though most applications combine aspects of all three of these categories they generally have more properties of one. xMOOCs more closely imitate learning in schools and the goal is often to reach broader and larger audiences by making content ava'ilable online. cMOOCs are much less common but focus on the networked aspects of both the Internet and learning. The fact that there are relatively fewer cMOOCs may be in part because of the uncertainty of how to design them well to support social interactions of potentially large groups of people or strangers. MOOCs have only been around for a few years, but as they continue to evolve, it is important to research ways of better combining the positive learning aspects of all three types while addressing the question of who and what learners should be connected to (and how) for a different subject areas. 6.5 Internet as Learning Web The Internet itself is essentially a giant network of people and things - many of which are useful for learning. Sites like Facebook act as a "social-layer" to the web - connecting friends, family, and colleagues for sharing stories, photos, and other personally meaningful artifacts. It's possible to imagine a "learning-layer" to the web - connecting mentors, skilled-experts, and peers for joint-inquiry, skills exchange, and sharing information and resources along various subjects and areas of interest. Google Helpouts is a new video-based platform and marketplace for skill sharing that takes a step in this direction. An ideal learning-layer would also provide opportunities to connect people based on location in order to support communities of learners both offline and online, and would support learners of all ages. 70 Bibliography [ 1] code.org, PresidentObama asks America to learn computer science. 2013. [2] Code.org, "In 7 days, the Hour of Code makes history and breaks records," Anybody Can . Learn. [3] WeekzGod, "Beginners unwelcome on stackoverflow?" meta.stackexchange.com. 14-Dec- 2013. [4] K. Brennan, "Social Dimensions of Computing Education," presented at the Future Directions in Computing Education Summit, 2014. [5] R. K. Sawyer, in The Cambridge Handbook of the Learning Sciences, 1 edition., Cambridge ; New York: Cambridge University Press, 2006, p. Chapter 1. [6] I. Illich, DeschoolingSociety, New edition edition. London; New York: Marion Boyars Publishers Ltd, 1995. [7] S. Papert, "Constructionism: A New Opportunity for Elementary Science Education," May 1987. [8] M. Resnick, "Reviving Papert's Dream," EducationalTechnology, vol. 52, no. 4, Aug-2012. [9] S. Papert, "Eight Big Ideas Behind the Constructionist Learning Lab." 1999. [10] K. A. Brennan, "BEST OF BOTH WORLDS: ISSUES OF STRUCTURE AND AGENCY IN COMPUTATIONAL CREATION, IN AND OUT OF SCHOOL," Massachusetts Institute of Technology, 2013. [11] L. S. Vygotsky and M. Cole, Mind in Society: The Development ofHigher Psychological Processes, 14th edition. Cambridge: Harvard University Press, 1980. [12]J. Lave and E. Wenger, Situated Learning:Legitimate PeripheralParticipation.Cambridge England ; New York: Cambridge University Press, 1991. [13] A. Bruckman, "Community Support for Constructionist Learning," Comput. Support. Coop. Work, vol. 7. [14] C. Kelleher and R. Pausch, "Lowering the Barriers to Programming: A Taxonomy of Programming Environments and Languages for Novice Programmers," ACM Comput Surv, vol. 37, no. 2, pp. 83-137, Jun. 2005. 71 [15] M. Resnick, J. Maloney, A. Monroy-Hernandez, N. Rusk, E. Eastmond, K. Brennan, A. Millner, E. Rosenbaum, J. Silver, B. Silverman, and Y. Kafai, "Scratch: Programming for All," Commun ACM, vol. 52, no. 11, pp. 60-67, Nov. 2009. [16] A. Anderson, D. Huttenlocher, J. Kleinberg, and J. Leskovec, "Discovering Value from Community Activity on Focused Question Answering Sites: A Case Study of Stack Overflow," presented at the ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD), 2012. [17] J. Spolsky, The CulturalAnthropology of Stack Exchange. 2012. [18] M. Resnick, M. Ito, U. Gasser, N. Rusk, and P. Schmidt, "Coding for All: Interest Driven Trajectories to Computational Fluency." Jul-2013. [19] "MOOC List I A complete list of Massive Open Online Courses (free online courses) offered by the best universities and entities." [Online]. Available: http://www.mooclist.com/. [Accessed: 18-Aug-2014]. [20] L. Lane, "Three Kinds of MOOCs," Lisa's (Online) Teaching & History Blog. 72