Research

Papers and Publications

  • Design Principles behind Beauty and Joy of Computing
    Paul Goldenberg, June Mark, Brian Harvey, Al Cuoco, Mary Fries. (2020). SIGCSE.

    This paper shares the design principles of one Advanced Placement Computer Science Principles (AP CSP) course, Beauty and Joy of Computing (BJC), both for schools considering curriculum, and for developers in this still-new field. BJC students not only learn about CS, but do some and analyze its social implications; we feel that the job of enticing students into the field isn’t complete until students find programming, itself, something they enjoy and know they can do, and its key ideas accessible. Students must feel invited to use their own creativity and logic, and enjoy the power of their logic and the beauty and elegance of the code by which they express it. All kids need genuine challenge and sensible support so all can have the joy of making—seeing themselves as creators, not just consumers, and seeing that it is their own intellect, not just our instructions, that is the source of that making. Framework standards are woven into a consistent social and intellectual storyline to give the curriculum integrity.

  • Fostering Engagement and Creativity through Programming: The Beauty and Joy of Computing in a First-year Engineering Class
    Federico Meza, Nicolás Torres, Andrea Vásquez. (2020). 2020 39th International Conference of the Chilean Computer Science Society (SCCC).

    There is a growing interest in learning computer programming even among students from majors other than computer science (CS). Many universities offer a common Introduction to Programming (CS1) course, but this approach is usually detrimental to those who are not pursuing a CS major. This article is an experience report that summarizes the results of adapting and implementing the course “The Beauty and Joy of Computing” (BJC) in an Engineering in Product Design first-year class, a group that showed below-average performance in the past. BJC is a course for undergraduate non-CS majors at UC Berkeley, designed to broaden student participation in Computer Science. After a fully online semester of BJC at UTFSM, students showed greater responsibility and commitment when compared to previous cohorts. They also reported greater satisfaction with programming while having a lower attrition rate and comparable final grades to students in the regular CS1 class.

  • The Beauty and Joy of Computing
    Dan Garcia, Brian Harvey, Tiffany Barnes. (2015). ACM Inroads.

    In this article, we share our philosophy, an update on our course design principles, a general flow through our curriculum, the impact BJC has had, and conclude with lessons learned.

  • Lessons Learned from "BJC" CS Principles Professional Development
    Thomas Prince, Veronica Cateté, Jennifer Albert, Tiffany Barnes, Dan Garcia. (2014). SIGCSE.

    Computer Science Principles (CSP) will become an Advanced Placement course during the 2016-17 school year, and there is an immediate need to train new teachers to be leaders in computing classrooms. From 2012-2015, the Beauty and Joy of Computing team offered professional development (PD) to 133 teachers, resulting in 89 BJC CSP courses taught in high schools. Our data show that the PD improved teachers’ confidence in our four core content categories and met its primary goal of training teachers in equitable, inquiry-based instruction. In this paper, we present the evolution of the BJC PD, its challenges and lessons that we learned while continually adapting to teachers’ needs and contexts.

  • CS Principles Professional Development: Only 9,500 to go! Lessons Learned from our CS10K Summer 2013 PD
    Jan Cuny, Diane Baxter, Dan Garcia, Jeff Gray, Ralph Morelli. (2014). SIGCSE.

    Our grand challenge is to scale high-quality computer science curriculum and instruction to reach all high school students. CS10K – an NSF and ACM-sponsored project – is working to do just that by supporting curriculum development, computer education research and professional development through the Computing Education for the 21st Century (CE21) program at NSF. Professional Development (PD) is a key piece of the project, as we need to train 10,000 teachers to teach rigorous computing courses in 10,000 high schools by 2016 – the school year that a new Advanced Placement Course will be rolled out. This panel will provide an overview of the PD landscape and then each panelist will discuss the unique aspects of their PD project for high school teachers.

  • The Beauty and Joy of Computing: Computer Science for Everyone
    Brian Harvey. (2012). Constructionism.

    The Beauty and Joy of Computing is a computer science course for undergraduate non-majors that combines a deep programming experience with lectures, readings, and discussions about nonprogramming topics such as the social context of computing and the future and limitations of computing. The course is designed to appeal to a wide range of students, including women and underrepresented minorities. The programming half of the course uses BYOB, an extension to Scratch adding first class procedures, lists, and objects. The course has been chosen as one of the pilots for a coming (2016) high school Advanced Placement exam. Our current work includes further curriculum development, an NSF-funded teacher preparation program, and the implementation of Snap!, a new browser-based version of BYOB.

  • CS Principles Pilot at University of California, Berkeley
    Dan Garcia, Brian Harvey, Luke Segars. (2012). ACM Inroads.

    The course is intended for non-CS majors. For students in the College of Letters and Sciences, it fulfills the “Quantitative Reasoning” breadth requirement. It is not required for CS majors, but some intended CS majors with no prior programming experience decide to take it as preparation for our first course for CS majors. In addition, many non-CS majors enjoy CS10 enough to continue with the sequence for majors.

  • Bringing "No Ceiling" to Scratch: Can One Language Serve Kids and Computer Scientists?
    Brian Harvey, Jens Monig. (2010). Constructionism.

    Scratch is a computer programming language for children, with a graphical drag-and-drop user interface. It is a descendent of Logo, developed at the MIT Media Lab. A small but growing trend among universities is to develop computer science courses for non-majors using Scratch as the programming environment, because it isn’‘t threatening - the same reason it works for kids. Also, the visible use of multiple threads in Scratch provide a simple introduction to parallelism. One such course was piloted this year at the University of California, Berkeley: “The Beauty and Joy of Computing.” But Scratch has weaknesses as a programming language. Most notably, it lacks procedures, so it can’t convey the impressive phenomenon of recursion, one of the central ideas of computer science (and also one of the central ideas of early Logo pedagogy). Its support for data structures is also weak. These weaknesses aren’t oversights; the designers of Scratch deliberately avoided cluttering the language with anything a child might find threatening. To serve these two audiences, it has been proposed to split the Scratch community with two versions of the language, one for kids and one for advanced users. We believe that this is not necessary. By taking key ideas, such as procedures as first class data, from the Scheme language, we can add only a few features to Scratch and still make it powerful enough to support a serious introductory computer science curriculum. Furthermore, the graphical interface of Scratch makes the reification of procedures as data seem much less abstract and intimidating to novices.

  • Beauty and Joy of Computing: 2016-17 Findings from an AP CS Principles course
    June Mark, Kelsey Klein. (2019). SIGCSE 2019.

    This paper reports on findings from the implementation of BJC as an AP CSP course in NYC from the 2016–17 school year with 1,383 students (33% juniors, 44% seniors; 43% female, 27% black, 28% Hispanic, Asian 23%, white 19%; 60% free or reduced price lunch, 2% English language learners, 7% with disabilities). BJC enrollments for 2017-2018 were 2,383 students with higher participation by females, blacks and Hispanics (49% female, 33% black, 29% Hispanic). Students from all demographic groups showed similar gains in content, confidence, interest, belonging, and identity. When excluding 2 high-performing schools from an analysis of 2017 AP CSP scores, 1,192 NYC students from 75 schools took the exam, with about half using the BJC curriculum. Students taught with BJC passed at a significantly higher rate (54.2%) than students not taught with BJC (37.7%).

  • Lessons Learned from BJC CS Principles Professional Development
    Thomas W Price, Veronica Cateté, Jennifer Albert, Tiffany Barnes, Daniel D Garcia. (2016). SIGCSE 2016.

    From 2012-2015, the BJC team offered professional development (PD) to 133 teachers, resulting in 89 BJC CSP courses taught in high schools. The PD improved teachers’ confidence in our four core content categories and met its primary goal of training teachers in equitable, inquiry-based instruction. In this paper, we present the evolution of the BJC PD, its challenges and lessons that we learned while continually adapting to teachers’ needs and contexts.

  • BJC in action: Comparison of student perceptions of a computer science principles course
    Thomas W Price, Jennifer Albert, Veronica Catete, Tiffany Barnes. (2015). RESPECT 2015.

    This paper investigates how the responses of females and students from underrepresented racial minority groups (URMs) differed from those of their counterparts in 399 post-course BJC surveys. We found that female students had taken fewer CS courses prior to BJC but that students from URMs had taken more prior CS courses. Both groups were nearly equally likely to recommend the course to a friend, with about 80% recommending. We found no evidence to suggest that female students showed more or less interest in specific CS topics, such as learning how computing has changed the world or making mobile apps/games. Despite having taken more CS courses prior to BJC, we found that students from URMs were overall less likely to intend to take additional CS courses. Overall, our findings suggest that BJC makes some progress towards broadening participation in computing.

  • Effective computer science teacher professional development: Beauty and joy of computing 2018
    Alexandra Milliken, Christa Cody, Veronica Catete, Tiffany Barnes. (2019). ITiCSE 2019.

    The Advanced Placement Computer Science Principles (AP CSP) course has been fully active for 2 years, garnering a large group of diverse students, and flaming the need for highly trained CSP teachers, especially in effective practices for diversity and equity. We have conducted summer professional development (PD) workshops from 2012-2018 which have prepared 748 teachers to teach AP CSP using the Beauty and Joy of Computing (BJC) curriculum. To improve equity and readiness for teaching, we have refined our PD by shortening the PD from 6 weeks to 1 week; developing new, highly scaffolded pre-PD work; and modifying the in-person schedule to incorporate more pedagogy and teaching experiences, while continuing to provide in-depth, hands-on support for teachers to learn the basics of programming. The most recent revisions to our PD schedule resulted in improved post-PD survey results, with teachers from the 2018 cohort planning to adopt more of the BJC curriculum than in past years. From 2017 to 2018, planned adoption rates increased by 13%, resulting in 73% of the 2018 PD participants planning to adopt more than 60% of the BJC curriculum and 58% planning to adopt 80-100% of the BJC curriculum in their classrooms in 2018-2019. In this paper, we discuss the most recent BJC PD implementation and provide evidence of increased teacher self-efficacy in areas including fostering interest in computing for underrepresented populations.

  • The beauty and joy of computing
    D Garcia, B Harvey, T Barnes. (2015). ACM Inroads.

    In this article, we share our philosophy, an update on our course design principles, a general flow through our curriculum, the impact BJC has had, and conclude with lessons learned.

  • The beauty and joy of computing: Computer science for everyone
    B Harvey. (2012). Proceedings of Constructionism.

    “The Beauty and Joy of Computing” is a computer science course for undergraduate non-majors that combines a deep programming experience with lectures, readings, and discussions about nonprogramming topics such as the social context of computing and the future and limitations of computing. The course is designed to appeal to a wide range of students, including women and underrepresented minorities. The programming half of the course uses BYOB, an extension to Scratch adding first class procedures, lists, and objects. The course has been chosen as one of the pilots for a coming (2016) high school Advanced Placement exam. Our current work includes further curriculum development, an NSF-funded teacher preparation program, and the implementation of SNAP!, a new browser-based version of BYOB.

  • The first five computer science principles pilots: summary and comparisons
    L Snyder, T Barnes, D Garcia, J Paul, B Simon. (2012). ACM Inroads.

    This paper presents the 7 Big Ideas and 6 Computational Thinking practices and descriptions of the first 5 pilots for the AP CSP course.

  • CS principles pilot at University of California, Berkeley
    DD Garcia, B Harvey, L Segars. (2012). ACM Inroads.
  • CS principles pilot at University of North Carolina at Charlotte
    T Barnes. (2012). ACM Inroads.
  • CS principles: piloting a new course at national scale
    O Astrachan, T Barnes, DD Garcia, J Paul, B Simon, L Snyder. (2011). SIGCSE 2011 Panel.
  • Transforming K-12 computing education: AP® computer science principles
    J Cuny. (2015). ACM Inroads.

    This critical perspective focuses on the new Advanced Placement® Computer Science Principles course and its place in the larger CS10K Initiative. CS Principles as defined by the College Board is a framework; several different, aligned curricula have been created.

  • AP CS principles and the beauty and joy of computing curriculum
    Daniel D Garcia, Tiffany Barnes, Michael Ball, Emil Biga, Josh Paley, Marnie Hill, Nathan Mattix, Parisa Safa, Sean Morris, Shawn Kenner. (2016). SIGCSE 2016 Workshop.

    Workshops like this one have been offered at SIGCSE 2012, 2013, 2014, 2016, and 2018

  • Scaling Up for CS10K: Teaching and Supporting New Computer Science High School Teachers
    Tiffany Barnes, Jamie Payton, Daniel D Garcia. (2016). SIGCSE 2016 Workshop.

    This workshop helped engage college and university computing faculty in supporting local high school teachers in learning to teach computer science.

  • Snap on the Scratch wiki
    B Harvey. (2018). Scratch Wiki.

    An article on the design of the Snap programming language.

  • Bringing "no ceiling" to scratch: Can one language serve kids and computer scientists
    B Harvey, J Mönig. (2010). Proceedings of Constructionism.

    By combining graphical drag-and-drop user interface of Scratch and key ideas, such as procedures as first class data, from the Scheme language, this paper describes the ideas for Snap, a programming language that can support a rigorous introductory computer science curriculum.

  • Creation and validation of low-stakes rubrics for K-12 computer science
    Veronica Cateté, Nicholas Lytle, Tiffany Barnes. (2018). ITiCSE 2018.

    This paper builds low-stakes rubrics that support novice CS teachers to consistently assess student programming assignments.

  • Application of the Delphi Method in Computer Science Principles Rubric Creation
    Veronica Cateté, Tiffany Barnes. (2017). ITiCSE 2017.

    This research study introduces two variations of the Delphi Method to create learning-oriented rubrics for Computer Science Principles teachers using the Beauty and Joy of Computing curriculum.

  • A Pathway to Strengthening Support for Beauty and Joy of Computing Teachers
    Meghana Subramaniam, Veronica Cateté. (2017). SIGCSE 2017.

    In this paper, we introduce a new style of coding rubric, which allows teachers to better understand the fundamentals of the Beauty and Joy of Computing, an AP Computer Science Principles course.

  • Developing a rubric for a creative CS Principles lab
    Veronica Cateté, Erin Snider, Tiffany Barnes. (2016). ITiCSE 2016.

    The “Beauty and Joy of Computing” Computer Science Principles class has inspired many new teachers to learn to teach creative computing classes in high schools. However, new computer science teachers feel under-prepared to grade open-ended programming assignments and support their students’ successful learning. Rubrics have widely been used to help teaching assistants grade programs and are a promising way to support new teachers to learn how to grade BJC programs. In this paper, we adapt general coding criteria from auto-graders to a lab where students write code to draw a brick wall. We tested the rubric on student assignments and showed that we can achieve high inter-rater agreement with the refined rubric.

  • Rediscovering the passion, beauty, joy, and awe: making computing fun again, part 6
    DD Garcia, V Barr, M Guzdial, DJ Malan. (2013). SIGCSE 2013.

    Dan Garcia’s passion, beauty, joy, and awe sessions at SIGCSE were inspirations for creating the BJC course.

  • Lessons from a course on serious games research and prototyping
    A Chaffin, T Barnes. (2010). Proceedings of the Fifth International Conference on the Foundations of Digital Games.

    Tiffany Barnes’s work on teaching serious game research and prototyping to students inspired her to introduce creative student-driven projects in introductory computing as in BJC.

  • iSnap: Data-driven Support for Novice Programming Informed by Evaluations of Hint Quality and Investigations of Student Help-seeking Behavior
    Thomas W. Price. (2018). NC State University.

    Dissertation by Thomas W. Price.

  • The Impact of Data Quantity and Source on the Quality of Data-driven Hints for Programming
    Thomas W. Price, Rui Zhi, Yihuan Dong, Nicholas Lytle, Tiffany Barnes. (2018). AIED 2018.

    Using two datasets, we investigate how the quantity of data and the source of data (whether it comes from students or experts) impact one hint generation algorithm. We find that with student training data, hint quality stops improving after 15-20 training solutions and can decrease with additional data. We also find that student data outperforms a single expert solution but that a comprehensive set of expert solutions generally performs best.

  • Reducing the State Space of Programming Problems through Data-Driven Feature Detection
    R Zhi, TW Price, N Lytle, Y Dong, T Barnes. (2018). EDM 2018 - CSEDM Workshop.

    The large state space of programming problems makes providing adaptive support in intelligent tutoring systems (ITSs) difficult. We present a data-driven feature detection algorithm for reducing the state space size, that could allow for more interpretable analysis of student progress as well as easier integration of data-driven feedback.

  • Evaluation of a Data-driven Feedback Algorithm for Open-ended Programming
    TW Price, R Zhi, T Barnes. (2017). EDM 2017.

    This paper presents a novel, data-driven algorithm for generating feedback for students on open-ended programming problems, annotating a student’s whole program with suggested edits, including code that should be moved, deleted, or added.

  • Factors Influencing Students' Help-Seeking Behavior while Programming with Human and Computer Tutors
    TW Price, Z Liu, V Cateté, T Barnes. (2017). ICER 2017.

    Busy instructors and large class sizes can make expert help a scarce resource. This paper presents a qualitative analysis of 15 students’ interviews, in which they reflect on solving two programming problems with human and computer help.

  • Position paper: Block-based programming should offer intelligent support for learners
    TW Price, T Barnes. (2017). IEEE Blocks and Beyond Workshop 2017.

    Block-based programming environments make learning to program easier by allowing learners to focus on concepts rather than syntax. We argue that these environments should offer learners support while they program.

  • The Continuous Hint Factory-Providing Hints in Vast and Sparsely Populated Edit Distance Spaces
    B Paaßen, B Hammer, TW Price, T Barnes. (2017). arXiv preprint.

    Intelligent tutoring systems can support students in solving multi-step tasks by providing a hint regarding what to do next. However, engineering such next-step hints manually or using an expert model becomes infeasible if the space of possible states is too large. We provide a mathematical framework for edit-based hint policies and, based on this theory, propose a novel hint policy to provide edit hints in vast and sparsely populated state spaces. We demonstrate that the Continuous Hint Factory can predict more accurately what capable students would do compared to existing prediction schemes on two learning tasks, especially in an open-ended programming task, and that the Continuous Hint Factory is comparable to existing hint policies at reproducing tutor hints on a simple UML diagram task.

  • iSnap: towards intelligent tutoring in novice programming environments
    TW Price, Y Dong, D Lipovac. (2017). SIGCSE 2017.

    This paper describes a new version of Snap that uses data to provide students with hints while programming.

  • Generating Data-driven Hints for Open-ended Programming
    TW Price, Y Dong, T Barnes. (2016). EDM 2016.

    This paper presented new algorithms to create data-driven hints for Snap and BJC labs.

  • Comparing textual and block interfaces in a novice programming environment
    Thomas W Price, Tiffany Barnes. (2015). ICER 2015.

    A study of two groups of novice programmers showing that students using blocks spent less time off task and completed more of the activity’s goals in less time.

  • Creating data-driven feedback for novices in goal-driven programming projects
    Thomas W Price, Tiffany Barnes. (2015). AIED 2015.

    Original proposal to generate hints for novice programs.

  • Infusing computational thinking into middle grade science classrooms: lessons learned
    V Cateté, N Lytle, Y Dong, D Boulden, B Akram, J Houchins, T Barnes, E Wiebe, J Lester, B Mott, K Boyer. (2018). WiPCSE 2018.

    There is a growing need to present all students with an opportunity to learn computer science and computational thinking (CT) skills during their primary and secondary education. Traditionally, these opportunities are available outside of the core curriculum as stand-alone courses often taken by those with preparatory privilege. Researchers have identified the need to integrate CT into core classes to provide equitable access to these critical skills. We have worked in a research-practice partnership with two magnet middle schools focused on digital sciences to develop and implement computational thinking into life sciences classes. In this report, we present initial lessons learned while conducting our design-based implementation research on integrating computational thinking into middle school science classes. These case studies suggest that several factors including teacher engagement, teacher attitudes, student prior experience with CS/CT, and curriculum design can all impact student engagement in integrated science-CT lessons.

Our "FRABJOUS CS" (Framing a Rigorous Approach to Beauty and Joy for Outreach to Underrepresented Students in Computing at Scale) NSF-funded project: one-page summary and full proposal.

"And, has thou slain the Jabberwock?
Come to my arms, my beamish boy!
O frabjous day! Callooh! Callay!"
He chortled in his joy.