AP Computer Science Principles introduces students to the central ideas of computer science, instilling the ideas and practices of computational thinking, and inviting students to understand how computing changes the world. In this course, students will develop computational thinking skills vital for success across all disciplines, such as using computational tools to analyze and study data and working with large datasets to analyze, visualize, and draw conclusions from trends. The major areas of study in the course are organized around seven big ideas, which encompass ideas foundational to studying computer science. The seven big ideas being: creativity, abstraction, data and information, algorithms, programming, the Internet, and global impact. The course engages students in the creative aspects of the field by allowing them to develop computational artifacts based on their interests. Students will also develop effective communication and collaboration skills by working individually and collaboratively to solve problems and will discuss and write about the impacts these solutions could have on their community, society, and the world. It is important to note that the course has three assessments, consisting of two performance tasks and an end-of-course AP Exam. Each of the two through-course performance tasks require you to create computational artifacts (a visualization, a graphic, a video, a program, or an audio recording that you create using a computer) along with a written response explaining the artifact.

AP Computer Science introduces you to the formal concepts of object-oriented computer programming using the Java programming language. During the first semester, you will gain an understanding of the basics of object-oriented programming with a focus on basic Java syntax, data types, decision and looping structures, mathematic and logic operators, basic class and object creation, and finally method creation and implementation. During the second semester, you will have the opportunity to further develop and refine your programming skills by focusing on the techniques of data abstraction, including encapsulation, inheritance, and polymorphism. The emphasis will be on the organization of information and the implementation of common data structures through common searching and sorting algorithms. You will also explore the concept of recursion.