Sarah Guthals, PhD
I went to UC San Diego where I earned a BS, MS, and PhD in Computer Science with an emphasis on education. My dissertation was “Designing Learning Experiences that Enculturate Novices”, which focused on computer science education for novices of every age; from K-12, to university, to full-time teachers who were asked to learn computer science so they could teach AP CS the following year.
During grad school I started a company focused on teaching kids how to code through in person and online courses and self-guided software. For this work and my PhD work I was awarded Forbes 30 Under 30 in the Science category in 2016. I’ve written nearly a dozen technical books as part of the For Dummies series, for both kids and adults (most recent one comes out this summer; “GitHub For Dummies”). I worked as a contractor for GitHub for a year and a half prototyping and testing an under-13-year-old version of GitHub, then as an engineering manager at GitHub for the editor tools team, which builds GitHub integrations into Visual Studio, VS Code, Atom, and Unity. I have a small startup where I mostly do consulting in computer science education. I’m currently a Principal Program Manager at Microsoft.
2019 - Published as Sarah Guthals
GitHub For Dummies - Book
AbstractCode collaboratively with GitHub Once you’ve learned the basics of coding the next step is to start sharing your expertise, learning from other coding pros, or working as a collaborative member of development teams. GitHub is the go-to community for facilitating coding collaboration, and GitHub For Dummies is the next step on your journey as a developer. Written by a GitHub engineer, this book is packed with insight on how GitHub works and how you can use it to become a more effective, efficient, and valuable member of any collaborative programming team. Store and share your work online with GitHub Collaborate with others on your team or across the international coding community Embrace open-source values and processes Establish yourself as a valuable member of the GitHub community From setting up GitHub on your desktop and launching your first project to cloning repositories, finding useful apps on the marketplace, and improving workflow, GitHub For Dummies covers the essentials the novice programmer needs to enhance collaboration and teamwork with this industry-standard tool.
2018 - Published as Sarah Guthals
Helping Kids with Coding For Dummies - Book
AbstractHelp for grown-ups new to coding Getting a jump on learning how coding makes technology work is essential to prepare kids for the future. Unfortunately, many parents, teachers, and mentors didn't learn the unique logic and language of coding in school. Helping Kids with Coding For Dummies comes to the rescue. It breaks beginning coding into easy-to-understand language so you can help a child with coding homework, supplement an existing coding curriculum, or have fun learning with your favorite kid. The demand to have younger students learn coding has increased in recent years as the demand for trained coders has far exceeded the supply of coders. Luckily, this fun and accessible book makes it a snap to learn the skills necessary to help youngsters develop into proud, capable coders! Help with coding homework or enhance a coding curriculum Get familiar with coding logic and how to de-bug programs Complete small projects as you learn coding language Apply math skills to coding If you’re a parent, teacher, or mentor eager to help 8 to 14 year olds learn to speak a coding language like a mini pro, this book makes it possible!
2017 - Published as Sarah Guthals
Building a Mobile App: Design and Program Your Own App! - Book
AbstractCoding is cool, and these fun projects help you get started today! Building a Mobile App offers basic lessons in Android development, designed specifically for kids! Three fun projects walk you through basic coding skills using MIT's App Inventor—a free, online programming tool that uses a simple block style language that makes coding easy to learn. No long chapters to read, and no homework—just dive right in! You'll begin with a basic project that shows you how to make an app that works; next, you'll put those skills to work on a photo editing app that takes your skills to the next level. Finally, you'll level up one more time to become a Game Maker—that's right, you'll actually build a mobile game that you can send to your friends! Each project includes step-by-step directions and plenty of graphics to help you stay on track, and easy-to-read instructions help you complete each project frustration-free. App building can get pretty complicated, but it doesn't have to start out that way. Start small to pick up the basics quickly, and you'll be coding in no time! This book helps you get started quickly and easily, with a focus on fun. Build your own Android mobile apps using a free online platform! Code everything yourself, including buttons, screens, and interactions! Build an app that lets you draw on pictures you take! Create a simple, interactive game you can share with your friends! Adults all over the world turn to For Dummies books for clear instruction with a sense of humor; the Dummies Junior books bring that same "learning is fun" attitude to kids, with projects designed specifically for a kid's interests, needs, and skill level. Building a Mobile App gets kids coding quickly, with fun projects they'll be happy to show off!
Write Code Like a Pro: Create Working Applications - Book
AbstractCODERS ARE ROCK STARS Coders are the people who are building the future. You can stake your own claim on the future by learning pro coding techniques. Take a look inside to figure out how and why coders think a bit differently, the basics of building a working application with a professional coding language, and how to test your app to make sure it works. Get a jump on your future as a rock-star coder today! See the big picture – get a grip on how pro coders start and finish a project Know the code – get your hands on a pro coding language and put it to work Make things happen – create a working application you can share with friends
Little Book of Griefs: Minecraft Education Edition: Tips for Kids (1) - Book
AbstractYou can now Mod your Minecraft Education Edition! And what better way to start than to grief your new worlds?? Though when we are in our friends worlds, we want to be respectful, in our own worlds, we can grief everything we want! This book teaches you four awesome mods to write to grief. Invite your friends into your world and watch their surprise as you blow up mountains, make lava pits, and have monsters attack from all angles. Don't worry - you're still in control...or are you?
Building 3D Digital Games - Book
AbstractSo you want to make your very own 3D video game? That is an awesome idea! Making video games is A LOT of fun, but it can be a lot of hard work too. The video games that you play on your computer, game consoles, or even mobile devices were built by large teams of professional engineers over years! For example, the original Legend of Zelda took over 100 people 3 years to make! What you will be building here may not be as polished as the games you play right now, but you can think of them like prototype games – the games that you make to get your idea down, have your friends play it, and then when you’ve perfected your idea and gotten some more experience you can make it into a game that people can play around the world!
2016 - Published as Sarah Guthals
Building a Minecraft City: Build Like a Pro! (Dummies Junior) - Book
AbstractThe coolest kid-friendly Minecraft projects If you have a Minecraft fanatic on your hands, you're about to be the most popular adult on the "block." Offering young Minecraft enthusiasts the ultimate sandbox experience, Building a Minecraft City gives kids aged 7 – 11 an outlet to enhance their love of the game and take their creative play to new heights. Brought to you by the trusted For Dummies brand, this kid-focused book offers step-by-step instructions and simple explanations for completing projects that will teach your child invaluable new skills—all while having a ton of fun! They'll gain confidence as they design and build truly impressive Minecraft structures, and you'll delight in watching them develop and refine their problem-solving skills as they work on their own. It's a win-win! Features a kid-friendly design that is heavy on eye-popping graphics Focuses on three basic projects that set young readers on the road to further exploration Boasts a small, full-color, accessible package that instills confidence in the reader Introduces basic engineering concepts to kids in a way they can understand Screen time can be as educational as it is fun, and this book shows your child how to approach their favorite game from a new angle to think—and do—outside the box.
2015 - Published as Sarah Guthals
Modding Minecraft: Build Your Own Minecraft Mods! (Dummies Junior) - Book
AbstractMy kid can mod Minecraft? Oh my! There’s no doubt about it: Minecraft has taken the world by storm. If your resident Minecraft fanatic is ready to take their experience to a new level of play, introduce them to modding! Modding allows Minecraft players to modify the game through code—giving them the ability to add a variety of gameplay changes, ranging from new blocks and items to new mechanisms to craft. It’s pretty much a Minecraft enthusiast’s dream brought to life! In Modding Minecraft, your child will be introduced to three fun and easy-to-complete projects that teach them the coding skills to make the most of their love of Minecraft. Walking young readers through projects that outline how to create games in Minecraft for single or multiple players, this friendly and accessible guide takes the intimidation out of coding and instills confidence in children as young as seven as they complete cool coding projects to mod their favorite game. Full-color, eye-popping graphics and a short page count hold their attention while the goal-based format keeps them focused on the task at hand. Before you know it, your kid will be writing their own mods and having even more fun with Minecraft. Kids can complete the projects on their own or alongside an adult Introduces getting started with a single-player, single-level game Moves readers on to multi-level game playing Finishes with a multi-level, multi-player game based on the classic “capture the flag” game With simple and clear instruction that your child can understand, Modding Minecraft is the perfect place for your kid to dig deep and open up a whole new world in their creative play.
Minecraft Modding For Kids For Dummies - Book
AbstractAre you a Minecraft fanatic looking to mod your games? Hours of fun await! Minecraft Modding For Kids For Dummies teaches you how to mod in easy-to-do parts. Offering loads of helpful explanations and cool projects along the way, this friendly guide will have you advancing levels, keeping score, respawning players, building portals, creating an archery range—and much more—faster than you can say redstone! There's no denying that modding is cool. After all, it allows you to alter your Minecraft gaming world to constantly keep things new and fun. While it isn't incredibly difficult to learn to mod, it does take some practice. Luckily, Minecraft Modding For Kids For Dummies is here to help you build basic coding skills to make modding your games as easy as 1-2-3! The book is in full color and lies flat so you can look while you play Includes lifetime access to LearnToMod software with 3 months free access to a private Minecraft server Features larger print to make the text feel less daunting Offers next steps you can take if you want to learn even more about modding and coding If you're one of the millions of kids who play Minecraft every day, this hands-on guide gets you up and running fast with modding your favorite game!
2014 - Published as Sarah Esper
Computing as the 4th “R” - Slides - Deeper Learning Workshop
Abstract + RefK-12 Computer Science Education has been an increasingly popular topic worldwide. Additionally, with K-12 standardized testing moving online, students are being required to improve their computer skills, which, among other factors, has also motivated the discussion to add computer science to the core curriculum [6, 8, 35, 22]. Educational programming languages, such as Scratch  and Alice , have a set of features that foster their use with younger students  such as drag-and-drop, limited API, and visual output. Given that novices can be introduced to such educational languages with a basic understanding of computer science concepts, industry-standard programming languages like Java can now be introduced to younger students. This paper re-introduces CodeSpells [14, 13, 15], a 3D immersive video game that is unique in that it attempts to engage students in introductory computing concepts in similar ways to Scratch/Alice, but using Java, while providing them a metaphor of wizardry that attempts to mimic the culture of computer science. CodeSpells has been shown to engage students in confidently writing Java code, but it has yet been shown to result in students being able to write Java code, or begin to become computer scientists. In this paper, we show the results of an 8-week study conducted on 55 9-10 year old students across two different schools. Throughout the study, students not only played CodeSpells, but also used a guided workbook to explore Java code outside of the CodeSpells virtual environment. Through both immersive interactions and the guided workbook, students demonstrated their understanding of introductory computing concepts and their ability to program in Java, both on the computer, and on paper. Ref: Sarah Esper, Stephen R. Foster, William G. Griswold, Carlos Herrera, and Wyatt Snyder. 2014. CodeSpells: bridging educational language features with industry-standard languages. In Proceedings of the 14th Koli Calling International Conference on Computing Education Research (Koli Calling '14). ACM, New York, NY, USA, 05-14. DOI=10.1145/2674683.2674684 http://doi.acm.org/10.1145/2674683.2674684
Abstract + RefCollaborative and community learning is well researched in traditional learning spaces. Communities of Practice and Computer Supported Collaborative Learning spaces and pedagogies support learners to experience learning through activities, personal interactions and innovative technologies. This becomes more difficult when designing learning at scale environments because these environments need to motivate learners while not being able to impart the values of the discipline through in-person interactions. In this work we introduce an alternative learning at scale environment, CodeSpells. CodeSpells is an epistemic game that attempts to motivates learners to acquire knowledge, develop skills, embrace values, identify with the discipline, and gain the ability to authentically problem solve. Through this work we will show how the theory of Epistemic Frames is critical to motivating and enculturating learners not only in our non-traditional environment, but also in more traditional MOOC-like learning at scale approaches. Ref: Sarah Esper, Sam R. Wood, Stephen R. Foster, Sorin Lerner, William G. Griswold, Jared J. Defigh, Ayesha Mazumdar, Carlos Herrera, Tom Lieber, Greg Ord, Wyatt Snyder. 2014. A discussion on adopting peer instruction in a course focused on risk management. CHI'14. Learning Innovations at Scale Workshop.
Abstract + RefPeer Instruction (PI) has been shown to promote learning in introductory CS courses as well as upper-division courses such as architecture. A common thread among PI courses is that they focus on programs, algorithms, or equations that follow clear rules. In these courses there is usually one answer, though there may be varying approaches to finding it. An open-question in the PI research is: How could PI be incorporated in a course such as Software Engineering, where the focus is risk management and is therefore situational and dependent on personal experience and resources? This paper addresses one approach to developing PI materials for such a course. The pedagogy has been slightly modified: the instructor asks clicker questions, but then asks the students to call out suggestions for the answers. This paper describes this change and presents data from a student survey about their experiences. A call to the community is made to discuss how this and other modifications may be beneficial pedagogical changes to PI. Ref: Sarah Esper. 2014. A discussion on adopting peer instruction in a course focused on risk management. J. Comput. Sci. Coll. 29, 4 (April 2014), 175-182.
Abstract + RefSerious games are a good approach to teaching computer science . But there are still complications that arise, for example, no access to an instructor. This paper presents a study conducted using CodeSpells, a 3D immersive video game that aims to teach novice programmers basic Java concepts . This paper specifically addresses the design of the quests in CodeSpells that provide scaffolding to support students in learning. The study analyzed how 16 students aged 8--12 understood and modified basic Java programs to complete quests. Based on game-play from an exploratory study, quests were added to engage students earlier and in more complex code edits. Both student understanding of programming and their comfort with modifying code was studied. This paper presents findings and lessons learned in quest design, and shows that quest design should set the expectation for students to engage with the code, not just use the code. Ref: Sarah Esper, Samantha R. Wood, Stephen R. Foster, Sorin Lerner, and William G. Griswold. 2014. Codespells: how to design quests to teach java concepts. J. Comput. Sci. Coll. 29, 4 (April 2014), 114-122.
Children’s Perceptions of What Counts as a Programming Language - Paper - Journal of Computer Science
Abstract + RefAn educational programming language may be more accessible, less frustrating, and more rewarding for young students. However, if a student thinks that the educational language does not constitute actual computer programming, it is hard to build interest in the subject and confidence in their programming skills. We conducted a study in a summer enrichment program for academically high-achieving students entering the sixth grade. Students were interviewed about their perception of various computer programming environments and our analysis of their reasoning helps us to better understand students' tacit assumptions about computer programming. Half of the students were selected to complete a worksheet showing the connections between the programming language Scratch, Java, C++, and Python. Using linear regression we found that there were no statistically significant differences between students who did and did not complete this worksheet in terms of confidence and perception. Ref: Colleen Lewis, Sarah Esper, Victor Bhattacharyya, Noelle Fa-Kaji, Neftali Dominguez, and Arielle Schlesinger. 2014. Children's perceptions of what counts as a programming language. J. Comput. Sci. Coll. 29, 4 (April 2014), 123-133.
2013 - Published as Sarah Esper
Learning to Program with Magic - Slides - MozFest
Guiding Novice Programmers in Self-Regulated Learning: A Gamified Approach - Slides - UCSD Thesis Proposal
Student Experience in a Student-Centered Peer Instruction Classroom - Paper - ICER
Abstract + RefAlthough studies have shown Peer Instruction (PI) in computing courses to be beneficial for learning and retention, study of the student experience has been limited to attitudinal survey results. This study provides a preliminary evaluation of student experiences in a PI course -- specifically asking them to reflect on their role as a student in a PI lecture compared to a standard university lecture. Student responses to this question are first analyzed using Chi's Interactive-Constructive-Active-Passive framework which categorizes student activities by their value in a constructivist learning framework. This analysis finds that the majority of students reported activity in a PI lecture as "interactive" in contrast with "active" (e.g. taking notes) in a standard lecture. Additionally, a grounded theory open-coding analysis provides an initial examination of student perceptions of the PI lecture experience. Although students positively value learning-related aspects (feedback and increased understanding) a surprising breadth of value was noted around issues of affect and increased sense of community. In particular, these experiences invite discussion about PI and issues of STEM retention in post-secondary education. Ref: Beth Simon, Sarah Esper, Leo Porter, and Quintin Cutts. 2013. Student experience in a student-centered peer instruction classroom. In Proceedings of the ninth annual international ACM conference on International computing education research (ICER '13). ACM, New York, NY, USA, 129-136.
CodeSpells: Embodying the Metaphor of Wizardry through Programming - Paper - ITiCSE
Abstract + RefThis paper addresses how CodeSpells uses the metaphor of wizardry, along with an embodied API to engage students in learning to program in Java. Giving novice programmers a concrete representation of code has been encouraged and shown to help students understand the concepts with more ease. There have been many attempts to improve the novice learning experience by providing: a visual programming language, a hardware component or an application that is more approachable. The benefit of this research is that students are better able to understand how abstract code effects the environment. We build on this work through CodeSpells by immersing novices in the abstraction of code through embodiment to allow them to understand complex and abstract programming problems as if they were being affected by what they wrote. In this paper we present a new approach to novice programming environments, one that embodies the user and encourages a quick grasp of introductory concepts followed by a deep understanding through exploration. Ref: Sarah Esper, Stephen R. Foster, and William G. Griswold. 2013. CodeSpells: embodying the metaphor of wizardry for programming. In Proceedings of the 18th ACM conference on Innovation and technology in computer science education (ITiCSE '13). ACM, New York, NY, USA, 249-254.
On the Nature of Fires and How to Spark Them When You’re Not There - Paper - SIGCSE
Abstract + RefTraditionally, computer science education research contributes new tools, techniques, and theories to improve institutionalized learning spaces e.g. classrooms. However, we take the position that the study and improvement of computer science learning spaces outside the classroom are just as important. We take a step toward illuminating the critical qualities of non-institutional computer science learning spaces by engaging in a grounded-theoretical examination of first-hand accounts of non-institutional learning. To further study the topic, we attempted to recreate (in the lab) a learning environment with many qualities that characterize non-institutional learning. To make this possible, we employed a modified version of CodeSpells -- a video game designed to teach Java programming in a way that engenders the sense of sustained, playful, creative exploration driven entirely by the learner. This study introduced 40 girls, ages 10 to 12, to programming for the first time. We use the results of both studies to develop a theoretical framework which we use to examine existing tools such as Scratch, Alice, and educational games in a new light. Ref: Sarah Esper, Stephen R. Foster, and William G. Griswold. 2013. On the nature of fires and how to spark them when you're not there. In Proceeding of the 44th ACM technical symposium on Computer science education (SIGCSE '13). ACM, New York, NY, USA, 305-310.
A Post-Broccoli Paradigm: Educational Games with Diverse, Sustainable Ecosystems - Paper - CHI
Abstract + RefWe investigate the unique educational benefits of 1-on-1 competitive games, arguing that such games can be just as easy to design as single-player educational games, while yielding a more diverse and sustainable learning experience. We present a study of chess and StarCraft II in order to inform the design of similar educational games and their communities. We discuss a competitive game we designed to teach Java programming. We evaluate the game by discussing its user study. Our main contributions are 1) an argument that the use of 1-on-1 competition can solve two existing problems inherent to single-player games, 2) an analysis of the features that make competitive games effective learning environments, and 3) an early but encouraging description of the emergent learning environment one can expect from designing an educational game with these features. - VIDEO Ref: Stephen R. Foster, Sarah Esper, and William G. Griswold. 2013. From competition to metacognition: designing diverse, sustainable educational games. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '13). ACM, New York, NY, USA, 99-108.
2012 - Published as Sarah Esper
Understanding the Expert Debugging Process to Inform the Design of Debugging Tools - UCSD Research Exam
RefRef: Sarah Esper. Understanding the Expert Debugging Process to Inform the Design of Debugging Tools. UCSD. 2013.
Exploratory Homeworks: An Active Learning Tool for Textbook Reading - Paper - ICER
Abstract + RefConstructivist learning theory suggests that learners must construct their own understandings, rather than have understanding passively dumped into their brains. These findings support the US National Research Council's recommendations for the adoption of active learning pedagogies in the classroom. However, the "classroom lecture" is only one of the resources students commonly have for learning in higher education. In this paper, we present exploratory homeworks -- a tool to support active learning for teaching programming languages. By leveraging the opportunity for the student to interact with the computer/compiler, we seek to provide a model for students of how to explore and understand programming language constructs and concepts. We report on the use of 15 exploratory homework assignments used in a CS0 course with 440 students in Winter 2011. We provide a model and advice for others wishing to develop exploratory homeworks for their programming courses and present quantitative and qualitative evidence regarding students' positive valuation of the homeworks. Ref: Sarah Esper, Beth Simon, and Quintin Cutts. 2012. Exploratory homeworks: an active learning tool for textbook reading. In Proceedings of the ninth annual international conference on International computing education research (ICER '12). ACM, New York, NY, USA, 105-110.
The Abstraction Transition Taxonomy: Developing Desired Learning Outcomes through the Lens of Situated Cognition - Paper - ICER
Abstract + RefWe report on a post-hoc analysis of introductory programming lecture materials. The purpose of this analysis is to identify what knowledge and skills we are asking students to acquire, as situated in the activity, tools, and culture of what programmers do and how they think. The specific materials analyzed are the 133 Peer Instruction questions used in lecture to support cognitive apprenticeship -- honoring the situated nature of knowledge. We propose an Abstraction Transition Taxonomy for classifying the kinds of knowing and practices we engage students in as we seek to apprentice them into the programming world. We find students are asked to answer questions expressed using three levels of abstraction: English, CS Speak, and Code. Moreover, many questions involve asking students to transition between levels of abstraction within the context of a computational problem. Finally, by applying our taxonomy in classifying a range of introductory programming exams, we find that summative assessments (including our own) tend to emphasize a small range of the skills fostered in students during the formative/apprenticeship phase. Ref: Quintin Cutts, Sarah Esper, Marlena Fecho, Stephen R. Foster, and Beth Simon. 2012. The abstraction transition taxonomy: developing desired learning outcomes through the lens of situated cognition. In Proceedings of the ninth annual international conference on International computing education research (ICER '12). ACM, New York, NY, USA, 63-70.
2011 - Published as Sarah Esper
Computing as the 4th “R”: a general education approach to computing education - Paper - ICER
Abstract + RefComputing and computation are increasingly pervading our lives, careers, and societies - a change driving interest in computing education at the secondary level. But what should define a "general education" computing course at this level? That is, what would you want every person to know, assuming they never take another computing course? We identify possible outcomes for such a course through the experience of designing and implementing a general education university course utilizing best-practice pedagogies. Though we nominally taught programming, the design of the course led students to report gaining core, transferable skills and the confidence to employ them in their future. We discuss how various aspects of the course likely contributed to these gains. Finally, we encourage the community to embrace the challenge of teaching general education computing in contrast to and in conjunction with existing curricula designed primarily to interest students in the field. Ref: Quintin Cutts, Sarah Esper, and Beth Simon. 2011. Computing as the 4th "R": a general education approach to computing education. ICER 2011. ACM, New York, NY, USA, 133-138.
Experience Report: an AP CS Principles AP Requirement - Paper - UCSD Technical Report