Big Idea #2

Abstraction reduces information and detail to facilitate focus on relevant concepts.


Learning Objectives:
2.1.1 Describe the variety of abstractions used to represent data. [P3]
2.1.2 Explain how binary sequences are used to represent digital data. [P5]
2.2.1 Develop an abstraction when writing a program or creating other computational artifacts.[P2]
2.2.2 Use multiple levels of abstraction to write programs. [P3]
2.2.3 Identify multiple levels of abstractions that are used when writing programs. [P3]
2.3.1 Use models and simulations to represent phenomena. [P3]
2.3.2 Use models and simulations to formulate, refine, and test hypotheses. [P3]


Readings/Lectures


External Resources

Labs/Exercises

Building a custom block

Building your own blocks
Make a "draw polygon" Block
The Max Block
Input types
Do it: Composition of Functions
Sum-thing's Up

Predicates

Predicates
Predicates: Make a "Between" block



Custom blocks make code easier to understand

"refactoring" is the process of rewriting a program (or part of a program) to make is better in some way (faster, easier to modify, easier to understand, etc.). These exercises ask the student to refactor by writing custom blocks to -- primarily -- make a script easier to understand.


Activities

The "Brick Wall" activity is a case study on abstraction.
There are several versions of the brick wall activity you can explore here.


















Learning Objectives © 2014 The College Board. All rights reserved. Computer Science: Principles is a pilot course under development. It is not an official Advanced Placement course currently being offered by the College Board. This document is based upon work supported by the National Science Foundation, grant CNS‐0938336. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.