AP Computer Science Principles
The curriculum for the AP Computer Science Principles (APCSP) class is UTeachCS: Thriving In Our Digital World, created at the University of Texas by Bradley Beth. This curriculum is endorsed by the College Board, which oversees all Advanced Placement courses. APCSP underwent a major redesign in summer 2020, and I was extensively involved in professional development with College Board to learn the new material and organizational structure.
The new curriculum contains 5 Big Ideas, which are addressed in various modules of study:
- Creative Development
- Algorithms and Programming
- Computing Systems and Networks
- Impact of Computing
Also, the course addresses 6 Computational Thinking Practices - skills which students are expected to demonstrate - and which are also embedded in the modules:
- Computational Solution Design
- Algorithms and Program Development
- Abstraction in Program Development
- Code Analysis
- Computing Innovations
- Responsible Computing
Students will learn a block-based computer language (Scratch) and a text-based language (Python) while working in a project-based environment. Collaboration is essential in this course, but county guidelines for a safe and healthy computer lab will be followed. The end-of-course exam includes a performance task in which the students will design and code an app in April, and take a 70-question multiple-choice exam in May.
Here are just a few examples of unit projects students will create during the course:
- Design an algorithm that can generate a custom, reproducible password that is uniquely different for each website.
- Use an iterative and incremental development process to design and construct a Scratch program, game, or movie that incorporates interaction and media.
- Create a filter to transform digital images by programmatically manipulating pixels. Use Python coding language.
- Code a character's movement using bitstrings.
- Design a computing innovation that could someday revolutionize and enhance everyday life.
There are many small projects leading up to these final unit projects. Attendance is extremely important in order to learn the incremental skills required for the larger unit projects. In addition, peer programming is used in this class. If one partner is missing the project will suffer. See the article here for more information about peer programming.