CS Principles

Rationale

Computing and computer science are helping to shape and change our world. A solid understanding and facility with computational thinking, computing, and computer science is important, if not integral, to being part of a well-educated and informed citizenry. Although the computer science community has worked diligently to create intellectually rich and engaging courses, not all students have had the opportunity to take advantage of these courses. In particular, many students, particularly female students and those from underrepresented minority groups, are either choosing not to enroll in or do not have access to courses, materials, and role-models in computing and computer science. In response to this identified problem, members of the computer science community are developing a curriculum framework for a new AP Computer Science: Principles course, designed to complement the existing first course in computer science modeled by the AP Computer Science A course. This annotated course outline highlights the novel aspects of the Principles course and then provides a brief explanation of each Big Idea and Computational Thinking Practice that will comprise it.

AP Computer Science: Principles is designed to introduce students to the central ideas of computing and computer science, to instill ideas and practices of computational thinking, and to have students engage in activities that show how computing and computer science change the world. The proposed course is rigorous and rich in computational content, includes computational and critical thinking and skills, and engages students in the creative aspects of the field. Through both its content and pedagogy, this course aims to appeal to a broad audience.

A key theme of the Principles course is its focus on creativity. The Big Ideas and Computational Thinking Practices that follow hint at the creative nature of computing and computer science, yet alone they cannot truly convey how we hope creativity should be addressed in the course. It's not enough for students to know that "computing requires creativity." Rather, we want them to actually be creative: creating artifacts that they want to show off to their friends and family, using simulation to explore questions that interest them, and designing and implementing solutions employing the iterative and sometimes messy process that artists, writers, and engineers use to translate ideas into tangible form.

A second theme is the course's use of technology as a means for solving computational problems and exploring creative endeavors, rather than a focus on a specific tool or language. To that end, the course highlights programming as one of the seven big ideas of computer science, because programming is among the creative processes that help transform ideas into reality. Programming will be a tool students use to explore concepts and create exciting and personally relevant artifacts. In contrast to traditional college introductory CS courses and the current AP CS A course, the Principles course will not focus on nor be organized around a specific language. The instructor of the course will select one or more languages, based on appropriateness for a specific project or problem and according to guidelines provided as part of the course specification. Language specifics will be taught only to the extent that students need them to produce their programs. Similarly, students in this course will work with "big-data"--to analyze it, to visualize it, to draw conclusions from trends in it--but the course itself does not specify particular tools for these explorations.

A third theme that will help the course appeal to a broad audience is the course's focus on people and society, not just on machines and systems. Students will explore computer science's relevance to and impact on the world today. They will investigate the innovations in other fields that computing and computer science have made possible. They will examine the ethical implications of new computing technologies. They will perform activities that develop their communication and teamwork skills. Students in this course will work individually and in teams to solve problems. They will talk and write about their solutions, the importance of these problems and their impact on the world.

The success of this course hinges on both a compelling curriculum and an engaging pedagogy. The following Big Ideas and Practices specify the course curriculum: the content, practices, thinking, and skills central to the discipline of computing and computer science. Course instructors will be key players in developing pedagogy that brings these to life. Of course we must do more than provide a curriculum framework on which a course can be built, we must ultimately provide the professional development and teacher education necessary to ensure the success of the course on a large scale. As this course develops, pilot instructors will create resources including reading materials, assignments, and lecture materials necessary to ensure the course's success. Instructor training sessions will help new instructors gain the knowledge they need to confidently teach the course.

Through this novel content and engaging pedagogy, we hope that students will experience the joy and beauty that permeates computing and computer science: the sense of community from connecting with friends on social networks, the "ah ha!" moment when an algorithm finally makes sense, the thrill of constructing a program and seeing it work, the pride of creating something for oneself, one's family or friends, or for the world.