The AP Computer Science Principles course is designed to be equivalent to a first-semester introductory college computing course. In this course, students will develop computational thinking vital for success across all disciplines, such as using computational tools to analyze and study data and working with large data sets to analyze, visualize, and draw conclusions from trends. The course is unique in its focus on fostering student creativity. Students are encouraged to apply creative processes when developing computational artifacts and to think creatively while using computer software and other technology to explore questions that interest them.They will also develop effective communication and collaboration skills, working individually and collaboratively to solve problems, and discussing and writing about the importance of these problems and the impacts to their community, society, and the world.
Different from AP Computer Science A which is taught in Java, the AP Computer Science Principles course does not have a designated programming language. Teachers select the programming language(s) that is most appropriate for their students.
AP Computer Science Principles Course Content
The following are the major areas of study, or big ideas which are foundational to studying computer science:
- Creativity: Computing is a creative activity. Creativity and computing are prominent forces in innovation; the innovations enabled by computing have had and will continue to have far-reaching impact.
- Abstraction: Abstraction reduces information and detail to facilitate focus on relevant concepts. It is a process, a strategy, and the result of reducing detail to focus on concepts relevant to understanding and solving problems.
- Data and Information: Data and information facilitate the creation of knowledge. Computing enables and empowers new methods of information processing, driving monumental change across many disciplines — from art to business to science.
- Algorithms: Algorithms are used to develop and express solutions to computational problems. Algorithms realized in software have affected the world in profound and lasting ways.
- Programming: Programming enables problem solving, human expression, and creation of knowledge. Programming andthe creation of software has changed our lives. Programming results in the creation of software, and it facilitates the creation of computational artifacts, including music, images, and visualizations.
- The Internet: The Internet pervades modern computing. The Internet and the systems built on it have had a profound impact on society. Computer networks support communication and collaboration.
- Global Impact: Computing has global impact. Our methods for communicating, collaborating, problem solving, and doing business have changed and are changing due to innovations enabled by computing.
Computational Thinking Practices
The course also incorporates computational thinking practices that set clear expectations of what students will do in the course:
- Connecting Computing – Students learn to draw connections between different computing concepts.
- Creating computational artifacts – Students engage in the creative aspects of computing by designing and developing interesting computational artifacts as well as by applying computing techniques to creatively solve problems.
- Abstracting – Students use abstraction to develop models and simulations of natural and artificial phenomena, use them to make predictions about the world, and analyze their efficacy and validity.
- Analyzing problems and artifacts – Students design and produce solutions, models, and artifacts, and they evaluate and analyze their own computational work as well as the computational work others have produced.
- Communicating – Students describe computation and the impact of technology and computation, explain and justify the design and appropriateness of their computational choices, and analyze and describe both computational artifacts and the results or behaviors of those artifacts.
- Collaborating – Students collaborate on a number of activities, including investigation of questions using data sets and in the production of computational artifacts.