Computer ScienceAP Computer Science Principles

Computer Science Principles (CSP) curriculum is designed to introduce students to the central ideas of computer science, to instill ideas and practices of computational thinking, and to have students engage in activities that show how computing changes the world. The course is rigorous and rich in computational content, includes computational and critical thinking skills, and engages students in the creative aspects of the field. 

The main contents are described as follows.

Unit 1: The Digital Representation of Information

This unit sets the foundation for thinking about the digital (binary) representation of information and how that affects the world we live in. This unit explores the technical challenges and questions that arise from the need to represent digital information in computers and transfer it between people and computational devices. Topics include: the digital representation of information - numbers, text, images, and communication protocols.

Unit 2: The Internet

This unit largely explores the structure and design of the Internet and the implications of those design decisions including the reliability of network communication, the security of data, and personal privacy. Topics include the Internet Protocol (IP), DNS, TCP/IP, cryptography and other security and hacking concerns. The unit also makes the link between the existence of computationally hard problems and encryption schemes that are “hard” for computers to crack.

Unit 3: Programming

This unit introduces students to programming in the JavaScript language and creating small applications (apps) that live on the web. This introduction places a heavy emphasis on understanding general principles of computer programming and revealing those things that are universally applicable to any programming language. Students will program in an online programming environment called App Lab that has many features, chief among them the ability to write JavaScript programs with click-and-drag blocks or just typing text - allowing the user to switch back and forth at will.

Unit 4: Data

In this unit students continue programming and building apps, but now with a heavier focus on data. Being able to extract knowledge from data is an important aspect of CS Principles and in this unit students will do that in a number of ways. Students will write programs that generate data to model or simulate a scenario they wish to investigate. Students will process large lists of data imported from other sources and also pull data from live data APIs. Students will also more fully use App Lab’s cloud data storage capabilities to create databases to use with their own apps.

Unit 5 - Performance Tasks

This unit is primarily set aside to ensure that students have enough time in class to work on and complete their performance tasks for submission.

The course will enable students to gain the skills in Computational Thinking Practices as define by the College Board:

P1: Connecting Computing

Identify impacts of computing.
Describe connections between people and computing.
Explain connections between computing concepts.

P2: Creating Computational Artifacts
Create an artifact with a practical, personal, or societal intent.
Select appropriate techniques to develop a computational artifact.
Use appropriate algorithmic and information management principles.

P3: Abstracting
Explain how data, information, or knowledge is represented for computational use.
Explain how abstractions are used in computation or modeling.
Identify abstractions.
Describe modeling in a computational context.

P4: Analyzing Problems and Artifacts
Evaluate a proposed solution to a problem.
Locate and correct errors.
Explain how an artifact functions.
Justify appropriateness and correctness of a solution, model, or artifact.

P5: Communicating
Explain the meaning of a result in context.
Describe computation with accurate and precise language, notations, or visualizations
Summarize the purpose of a computational artifact.

P6: Collaborating
Collaborate with another student in solving a computational problem.
Collaborate with another student in producing an artifact.
Share the workload by providing individual contributions to an overall collaborative effort.
Foster a constructive, collaborative climate by resolving conflicts and facilitating the contributions of a team member
Exchange knowledge and feedback with a partner or team member.
Review and revise their work as needed to create a high-quality artifact.