Teaching the Beauty and Joy of Computing Curriculum

The Teaching the Beauty and Joy of Computing (BJC) Curriculum Massive Open Online Course for Educators (MOOC-Ed) provides professional development and support for teachers of the BJC high school computer science curriculum.

The BJC curriculum is endorsed by the College Board as an Advanced Placement Computer Science Principles (AP CSP) course for high school students. While this MOOC-Ed will help prepare you to teach BJC, the online course alone does not meet the requirements to become a College Board certified AP teacher; attending a summer BJC Professional Development workshop is required for that certification. Information about those workshops is available at https://bjc.berkeley.edu/summer-pd. Ideally, BJC teachers will be able to both attend a BJC Institute and use this MOOC-Ed to further their preparation.

Much of this MOOC-Ed is built around short videos of pairs of students working together to solve BJC curriculum programming challenges. These videos demonstrate students' — often very clever — problem solving, while also highlighting some common mistakes your students may make, misconceptions they may have, and misdirections they may take. These student videos serve several important purposes in this course for teachers, including to:

  • Provide you with a concrete sense of what BJC looks like in practice;
  • Help you learn about the specific BJC labs used in the videos to inform your own teaching;
  • Show how different student pairs work together and learn as they develop, test, and debug their ideas;
  • Learn how the curriculum incorporates the Big Ideas and Computational Thinking Practices that are at the core of BJC (and other CSP curriculum) through seeing students actively engage with them;
  • Demonstrate how Snap! provides an easy-to-use and powerful tool for students' learning and creativity; and
  • Seed discussions among you and your peers in this MOOC-Ed about teaching the BJC curriculum and guiding your students' learning.

We build upon the student videos to provide programming insights materials about the Snap! language and to discuss effective teaching practices to help you develop your pedagogical content knowledge and be a successful BJC teacher. In addition, you will hear computer science experts discuss the central ideas of the curriculum and experienced BJC teachers discuss what they have learned and their recommendations for teaching BJC. Throughout this course, you will have opportunities to learn with and from your peers, and to help them learn, through the discussion forum.

The MOOC-Ed focuses on the early units of the curriculum to help you begin to teach it successfully and to prepare your students for the Advanced Placement Computer Science Principles exam; the content of the full BJC curriculum goes well beyond the AP requirements. This course also introduces you to the Snap! programming language. Many who have not programmed before are surprised at how easy and enjoyable it is to create simple programs with this visual programming language that was designed to support teaching and learning.

The MOOC-Ed is designed to be flexible to allow you to select the resources and activities that best serve your professional learning needs — whether you are a computer science expert or a novice at computer programing, and whether you are experienced at guiding project-based, student-driven activities or new to those approaches. You can use it in the following ways:

  1. As an online course that you work through in sequence, on your own or with local or online colleagues. By completing a required set of activities, you can earn a certificate of completion that most teachers can submit to their local agency to obtain continuing education units (CEUs).
  2. As a set of on-demand resources from which you can select as needed to support your own BJC teaching.
  3. As resources to enhance other BJC professional development activities, which may, for example, use the student videos to stimulate discussions about how teachers can best facilitate students' learning.

Course Objectives

  • Understand the AP CSP Framework Big Ideas and Computational Thinking Practices that are at the core of the BJC curriculum.
  • Understand the BJC curriculum content and pedagogy.
  • Learn about the Snap! programming language and how it enables students to learn programming through creation and experimentation.
  • Understand what BJC looks like in practice, through student videos, and how you can best guide your students' learning, through expert videos and peer discussions.
  • Prepare to implement the BJC student-driven, inquiry-based learning approach in your classroom.
  • Learn how to prepare your students for the AP CSP multiple choice exam and for the required "Create" (creating a computer program or other computer artifact) and "Explore" (explaining the impact of a selected innovation) performance tasks.

Learn More

Beauty and Joy of Computing

Online Professional Learning for Educators

The development of this MOOC-Ed is funded by the National Science Foundation under grant number 1441075 to Education Development Center, Inc. (EDC). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.

Beauty and Joy of Computing by the University of California, Berkeley and Education Development Center, Inc. is licensed under Creative Commons license Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

The Teaching the Beauty and Joy of Computing Curriculum MOOC-Ed has been developed by the NC State University Friday Institute for Educational Innovation and the Department of Computer Science, under contract to Education Development Center, Inc., and is licensed under Creative Commons license Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

Session 1: Welcome to the BJC Curriculum: Student and Teacher Perspectives

In this session, you will be introduced to the MOOC-Ed and the BJC curriculum through the perspectives of students and teachers. Videos of pairs of students working on different parts of a BJC programming lab and of expert teachers sharing their approaches to teaching BJC will provide insights into what BJC looks like in practice and how you can successfully guide your students' learning. Expert teacher panels discuss strategies for facilitating both the programming labs and teaching students about the global impact of computing through the social implications labs and Computing in the News activities.

Session 2: Introducing the Snap! Programming Language

In this session, you will explore coding concepts central to all programming languages and begin to learn about the Snap! programming language and environment, from learning how to set up an account to experimenting by revising or extending a starting script. As a self-directed learning experience, this session should be approached differently by those who are new to computer programming, those who have programming experience but are new to the Snap! language, and those who already know Snap!

Session 3: Getting Started: Creating the Click Alonzo Game

This session invites you to delve into a simple programming project and then to view examples of ways to extend the lab to give students opportunities to develop their own variations, learning more about programming as they do so. You will have an opportunity to observe videos of students, discuss your observations with other MOOC-Ed participants, and learn more about Snap! programming and specific computer science concepts in the process. A panel of expert teachers offer insights into pair programming and effectively managing it in your classroom.

Session 4: Programming with Text: Making and Using Lists

In this session, you will explore a lab in which students learn how to create lists of data, select data from those lists, and combine data in new ways. As in the previous session, you will observe pair programming through student videos and discuss your observations with other participants. You will also observe videos of students working on a more advanced lab using lists of data and list processing programming commands. A panel of expert teachers offers suggestions about teaching the first few labs to help your students establish a strong foundation for the rest of the BJC curriculum.

Session 5: Polygons and Patterns: Abstracting by Creating Blocks

In this session, you will explore a lab that is designed to help students understand important programming concepts such as variables, loops, and inputs while they explore creating shapes on the screen. They learn to create new blocks (e.g., for drawing a polygon with any number of sides) that can then be used within their programs, thereby learning about the concept and process of abstraction. As in previous sessions, you will observe pair programming through student videos and discuss your observations with other MOOC-Ed participants. A panel of expert teachers offers suggestions for helping students understand the difference between local and global variables, and the related Big Idea of abstraction and Computational Thinking Practice of abstracting.

Session 6: The Number Guessing Game: Variables and Algorithms

In this session, you will explore labs that expand students' understanding of local and global variables and engage them in more complex programming challenges. As in previous sessions, you will observe videos of students engaged in pair programming with both a simple and a more complex programming challenge, and discuss your observations with other participants. A panel of expert teachers offers suggestions for helping students debug programs and for engaging more advanced students in both their own projects and in helping their classmates.

Session 7: Preparing Students for the AP Exam

In the final session, you will look toward the Advanced Placement Computer Science Principles exam and its "Explore" and "Create" performance tasks. Additional resources are provided to help you prepare students for the AP exam. You will hear advice from both teachers and students about preparing students for the written exam and the performance tasks. A final online discussion with your peers focuses on how you can best prepare students for this assessment focused on application to ideas and the impact of computer innovations.

Participants who fulfill certain requirements can obtain a certificate of completion from NC State University that they can submit to their local agency to request Continuing Education Units (CEUs) for 25 hours of professional development. Granting of CEUs will be subject to the policies and procedures of your state or local agency. If you have questions about how CEUs are granted, please check with your local agency.

To obtain a certificate of completion, you must meet the following requirements:

  1. Participate in the discussion by posting at least one original post and one reply to a colleague's post in the discussion forum for each of five sessions.
  2. Submit, via the course discussion forum in at least two sessions, your analysis of one or more videos of students' work in which you describe:
    1. What programming concepts, Big Ideas, and Computational Thinking Practices you observe the students using or learning;
    2. Your observations of what the students know and are yet to learn;
    3. How you would guide the specific students at the end of the video: questions you would ask; problem-solving strategies you would discuss; hints you would provide; information you would present; additional challenges you would give them, etc.
  3. Complete the end-of-course and session surveys.
  4. Certify that you have spent at least 25 hours engaged in the MOOC-Ed professional learning activities.

Certificates will be available for download after the requirements are met and you complete questions in an end-of-course survey verifying that you met the requirements. The final deadline for completing the survey is June 30 of the academic year of participation.

Nancy Stevens

Nancy Stevens is a Business and Information Technology teacher at Dare County Schools. She teaches Introduction to Computer Science and AP Computer Science Principles. She is a Microsoft Certified Educator, Google Certified Educator, and a Code.org Facilitator for Computer Science Discoveries.

Madeline Drayton

Madeline Drayton is a Computer Science teacher at Providence High School in Charlotte, North Carolina. She has been teaching programming/technology courses for the past 10 years. Prior to teaching, she worked with AT&T Solutions as a Senior Project Manager.

Leslie Keller

Leslie Keller is a Computer Science teacher at Apex Friendship High School in Apex, North Carolina. She has thirteen years of teaching experience face-to-face, seven of those in computer science.

No photo available

Joshua Paley is a Computer Science and Mathematics teacher at Henry M. Gunn High School in Palo Alto, California. He appreciates the BJC curriculum for its combination of flexibility and serious pedagogy.

No photo available

Abe Cohen-Garcia is a Computer Science teacher at Bronx Arena High School in Bronx, New York. Bronx Arena High School is a collaboration between the Department of Education and SCO Family of Services that serves over-age, under-credited students, inspiring them to reengage in school and empowering them with an education that will prepare them for success in college, career, and life. Using technology to create a personalized education experience, students work in a self-paced learning environment, mastering the skills needed to succeed in the 21st century. Abe has taught BJC for two years.

Kim Overman

Kim Overman is a Math and Computer Science instructor at Ponderosa High School. She has taught math, primarily AP Calculus and Algebra 1, for 31 years in California. She currently teaches in a rural high school in the foothills of northern California. Her BA is in Applied Math, Scientific Programming from UCSD, and this is her second year teaching BJC.

Sherry Booth Freeman

Sherry Freeman is a Senior Research Scholar at the Friday Institute for Educational Innovation and an Adjunct Assistant Professor in the College of Education at North Carolina State University. Sherry's professional interests center on the development and evaluation of innovative uses of technology to support teaching and learning. Currently, Sherry co-leads the evaluation of all Friday Institute MOOC-Eds. Sherry holds a B.A. in Mathematics from Sweet Briar College; an Ed.M. from the Harvard University Graduate School of Education; and a Ph.D. in Curriculum and Instruction from North Carolina State University.

Mark Samberg

Mark Samberg is the Technology Innovations Lead at the Friday Institute for Educational Innovation at NC State University. In this role, he works with the project teams at the institute to identify, select, and implement technology solutions that support the work of the projects, outreach, and research at the Friday Institute. Mark also leads the development of the Friday Institute Professional Learning and Collaboration Environment for online professional learning and the MOOC-Ed initiative, was the digital content team lead for the North Carolina Digital Learning Plan, and co-leads the North Carolina Digital Leaders Coaching Network. Additionally, Mark provides coaching and training to teachers, ITFs, and school leadership both online and face to face. Mark joined the Friday Institute after 12 years of working in public schools throughout North Carolina as as a math teacher, instructional coach, technology director, and software developer. Mark holds B.S. degrees in Mathematics Education and Computer Science from NC State University. He also holds a M.Ed. in Instructional Technology from East Carolina University where he is an Ed.D. candidate in Educational Leadership.

Glenn Kleiman

Glenn Kleiman is a Senior Faculty Fellow at the Friday Institute for Educational Innovation and a Professor at the NC State University College of Education. A cognitive psychologist by background (Ph.D., Stanford, 1977), his work in education has spanned basic and applied research, curriculum development, software development, professional development for teachers and administrators, policy analyses, and consulting for school districts and state departments of education. Early in his career, Dr. Kleiman conducted research on children's language development and reading, and he was a Senior Researcher at the National Center for the Study of Reading at the University of Illinois. At the Friday Institute, Dr. Kleiman has led the development of Massive Online Open Courses for Educators (MOOC-Ed) initiatives. This builds upon his prior work at Education Development Center, Inc., (EDC) in Newton, MA, where as director of the Center for Online Professional Education, he developed a national program of online learning for educators (called EdTech Leaders Online or ETLO) and conducting research on the effectiveness of different approaches to online professional learning. Dr. Kleiman was also on the faculty of the Harvard Graduate School of Education from 1995–2007 and education chair of the Harvard/EDC Leadership and the New Technologies Institutes. Since moving to North Carolina in 2007, Dr. Kleiman has been a member of the North Carolina eLearning Commission and the Governor's Education Transformation Committee, and he played a lead role in the development of the North Carolina Race to the Top proposal and the 2015 North Carolina's Digital Learning Plan for K–12 schools.

Blythe Tyrone

Blythe Tyrone is a Program Manager at the Friday Institute for Educational Innovation. She oversees the implementation of all MOOC-Eds and was a member of the development team for the first MOOC-Ed, Digital Learning Transitions. Previously she served as the lead Communications Specialist for the Friday Institute. She holds an M.S. in Communication from NC State University.

Tiffany Barnes

Tiffany Barnes is Professor of Computer Science at NC State University. She received the B.S. and M.S. degrees in Computer Science and Mathematics, and the Ph.D. degree in Computer Science from N.C. State. A member of Phi Beta Kappa and the NC State Golden Chain Society, she has served as Chair (2008) and Program Chair (2009) of the Educational Data Mining conference, Chair of the STARS Celebration conference (2011 and 2015), Program Chair (2014) for the Foundations of Digital Games conference (2009), the ACM Special Interest Group on Computer Science Education Board (2010–2016), the Board of Directors for the International Educational Data Mining Society (2011-2016), Associate Editor for the Journal of Educational Data Mining (2008–2010), and Guest Editor for the IEEE Computer Graphics and Applications Special Issue on Serious Games (2009). Dr. Barnes received an NSF CAREER Award for her novel work in using data and educational data mining to add intelligence to STEM learning environments. Dr. Barnes is co-PI and current Executive Vice President for the STARS Computing, a consortium of universities that engage college students in outreach, research, and service to broaden participation in computing. Her research focuses on educational data mining, serious games for education, health, and energy, and broadening participation in computing education and research.

Christina Riska Simmons

Christina Riska Simmons has been supporting the Friday Institute for Educational Innovation with the content development of online courses for both educators and students since 2016. Currently an education consultant, her work focuses on the design and development of products and programs for educators and learners across Grades K–12, in and out of school settings and across subjects. Before launching an education consulting business, Ms. Simmons worked for fifteen years in K–12 educational publishing, including multiple, key roles in digital product and program development at National Geographic Education and content development for a variety of major basal and supplemental publishers. Ms. Simmons has a B.A. in English from Towson University, and an M.A. in English from DePaul University.

MOOC-Eds provide a scalable, accessible, and flexible approach that is aligned with the principles of effective professional learning. Our approach is grounded in authentic, active, and collaborative professional learning activities. The approach builds upon the following key design principles:

  1. Self-directed, job-connected, personalized learning, to enable you to focus your time and attention on what you will find most valuable, whether you want to learn more about the Big Ideas and Computational Thinking Practices of computer science, the Snap! programming language, understanding how students approach the BJC labs, preparing your students for the Advanced Placement performance tasks, or many other topics relevant to successfully teaching the BJC curriculum.
  2. Multiple perspectives, including opportunities to learn from leaders in computer science education, experienced BJC teachers, and high school students.
  3. Peer-supported learning, to enable you to learn from other teachers and to share your ideas, questions, and experiences with your online colleagues.
  4. Anywhere, anytime learning, so that you can use this MOOC-Ed as you teach the BJC curriculum and continue your learning as you go.

You are invited to use this course in any way that helps you become a successful BJC teacher!

Start Date 10/01/2018
Duration 7 sessions
Cost Free
Primary Audience Grade 9-12 Teachers
Certificate Available Yes
Certificate Hours 25