# CS Principles 2018

Standards Alignment

## Unit 2 - Digital Information

### Lesson 1: Bytes and File Sizes

#### CSTA K-12 Computer Science Standards (2011)

CT - Computational Thinking
• CT.L2:14 - Examine connections between elements of mathematics and computer science including binary numbers, logic, sets and functions.
• CT.L3A:6 - Analyze the representation and trade-offs among various forms of digital information.
• CT.L3A:7 - Describe how various types of data are stored in a computer system.

#### Computer Science Principles

2.1 - A variety of abstractions built upon binary sequences can be used to represent all digital data.
2.1.1 - Describe the variety of abstractions used to represent data. [P3]
• 2.1.1B - At the lowest level, all digital data are represented by bits.
• 2.1.1C - At a higher level, bits are grouped to represent abstractions, including but not limited to numbers, characters, and color.
2.1.2 - Explain how binary sequences are used to represent digital data. [P5]
• 2.1.2B - In many programming languages, the fixed number of bits used to represent characters or integers limits the range of integer values and mathematical operations; this limitation can result in overflow or other errors.
• 2.1.2C - In many programming languages, the fixed number of bits used to represent real numbers (as floating point numbers) limits the range of floating point values and mathematical operations; this limitation can result in round
• 2.1.2E - A sequence of bits may represent instructions or data.
• 2.1.2F - A sequence of bits may represent different types of data in different contexts.
3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analyze how data representation, storage, security, and transmission of data involve computational manipulation of information. [P4]
• 3.3.1G - Data is stored in many formats depending on its characteristics (e.g., size and intended use)

#### CSTA K-12 Computer Science Standards (2017)

DA - Data & Analysis
• 3A-DA-10 - Evaluate the tradeoffs in how data elements are organized and where data is stored.

### Lesson 2: Text Compression

#### CSTA K-12 Computer Science Standards (2011)

CL - Collaboration
• CL.L2:3 - Collaborate with peers, experts and others using collaborative practices such as pair programming, working in project teams and participating in-group active learning activities.
CPP - Computing Practice & Programming
• CPP.L2:4 - Demonstrate an understanding of algorithms and their practical application.
CT - Computational Thinking
• CT.L2:9 - Interact with content-specific models and simulations (e.g., ecosystems, epidemics, molecular dynamics) to support learning and research.
• CT.L3B:8 - Use models and simulations to help formulate, refine, and test scientific hypotheses.
• CT.L3B:9 - Analyze data and identify patterns through modeling and simulation.

#### Computer Science Principles

2.1 - A variety of abstractions built upon binary sequences can be used to represent all digital data.
2.1.1 - Describe the variety of abstractions used to represent data. [P3]
• 2.1.1A - Digital data is represented by abstractions at different levels.
• 2.1.1B - At the lowest level, all digital data are represented by bits.
• 2.1.1C - At a higher level, bits are grouped to represent abstractions, including but not limited to numbers, characters, and color.
2.2 - Multiple levels of abstraction are used to write programs or create other computational artifacts
2.2.1 - Develop an abstraction when writing a program or creating other computational artifacts. [P2]
• 2.2.1B - An abstraction extracts common features from specific examples in order to generalize concepts.
3.1 - People use computer programs to process information to gain insight and knowledge.
3.1.1 - Use computers to process information, find patterns, and test hypotheses about digitally processed information to gain insight and knowledge. [P4]
• 3.1.1A - Computers are used in an iterative and interactive way when processing digital information to gain insight and knowledge.
• 3.1.1D - Insight and knowledge can be obtained from translating and transforming digitally represented information.
• 3.1.1E - Patterns can emerge when data is transformed using computational tools.
3.1.2 - Collaborate when processing information to gain insight and knowledge. [P6]
• 3.1.2A - Collaboration is an important part of solving data driven problems.
• 3.1.2B - Collaboration facilitates solving computational problems by applying multiple perspectives, experiences, and skill sets.
• 3.1.2C - Communication between participants working on data driven problems gives rise to enhanced insights and knowledge.
• 3.1.2D - Collaboration in developing hypotheses and questions, and in testing hypotheses and answering questions, about data helps participants gain insight and knowledge.
3.1.3 - Explain the insight and knowledge gained from digitally processed data by using appropriate visualizations, notations, and precise language. [P5]
• 3.1.3A - Visualization tools and software can communicate information about data.
• 3.1.3E - Interactivity with data is an aspect of communicating.
3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analyze how data representation, storage, security, and transmission of data involve computational manipulation of information. [P4]
• 3.3.1A - Digital data representations involve trade offs related to storage, security, and privacy concerns.
4.2 - Algorithms can solve many but not all computational problems.
4.2.1 - Explain the difference between algorithms that run in a reasonable time and those that do not run in a reasonable time. [P1]
• 4.2.1A - Many problems can be solved in a reasonable time.
• 4.2.1B - Reasonable time means that as the input size grows, the number of steps the algorithm takes is proportional to the square (or cube, fourth power, fifth power, etc.) of the size of the input.
• 4.2.1C - Some problems cannot be solved in a reasonable time, even for small input sizes.
• 4.2.1D - Some problems can be solved but not in a reasonable time. In these cases, heuristic approaches may be helpful to find solutions in reasonable time.
4.2.2 - Explain the difference between solvable and unsolvable problems in computer science. [P1]
• 4.2.2A - A heuristic is a technique that may allow us to find an approximate solution when typical methods fail to find an exact solution.
• 4.2.2B - Heuristics may be helpful for finding an approximate solution more quickly when exact methods are too slow.
4.2.3 - Explain the existence of undecidable problems in computer science. [P1]
• 4.2.3A - An undecidable problem may have instances that have an algorithmic solution, but there is no algorithmic solution that solves all instances of the problem.
• 4.2.3B - A decidable problem is one in which an algorithm can be constructed to answer â€œyesâ€ or â€œnoâ€ for all inputs (e.g., â€œis the number even?â€)
• 4.2.3C - An undecidable problem is one in which no algorithm can be constructed that always leads to a correct yes or no answer
4.2.4 - Evaluate algorithms analytically and empirically for efficiency, correctness, and clarity. [P4]
• 4.2.4A - Determining an algorithmâ€™s efficiency is done by reasoning formally or mathematically about the algorithm.
• 4.2.4C - The correctness of an algorithm is determined by reasoning formally or mathematically about the algorithm, not by testing an implementation of the algorithm.
• 4.2.4D - Different correct algorithms for the same problem can have different efficiencies.

#### CSTA K-12 Computer Science Standards (2017)

DA - Data & Analysis
• 3A-DA-10 - Evaluate the tradeoffs in how data elements are organized and where data is stored.

### Lesson 3: Encoding B&W Images

#### CSTA K-12 Computer Science Standards (2011)

CL - Collaboration
• CL.L2:3 - Collaborate with peers, experts and others using collaborative practices such as pair programming, working in project teams and participating in-group active learning activities.
CPP - Computing Practice & Programming
• CPP.L2:4 - Demonstrate an understanding of algorithms and their practical application.
CT - Computational Thinking
• CT.L2:13 - Understand the notion of hierarchy and abstraction in computing including high level languages, translation, instruction set and logic circuits.
• CT.L2:14 - Examine connections between elements of mathematics and computer science including binary numbers, logic, sets and functions.
• CT.L2:7 - Represent data in a variety of ways including text, sounds, pictures and numbers.
• CT.L2:8 - Use visual representations of problem states, structures and data (e.g., graphs, charts, network diagrams, flowcharts).
• CT.L2:9 - Interact with content-specific models and simulations (e.g., ecosystems, epidemics, molecular dynamics) to support learning and research.
• CT.L3A:6 - Analyze the representation and trade-offs among various forms of digital information.
• CT.L3B:8 - Use models and simulations to help formulate, refine, and test scientific hypotheses.
• CT.L3B:9 - Analyze data and identify patterns through modeling and simulation.

#### Computer Science Principles

1.1 - Creative development can be an essential process for creating computational artifacts.
1.1.1 - Apply a creative development process when creating computational artifacts. [P2]
• 1.1.1A - A creative process in the development of a computational artifact can include, but is not limited to, employing nontraditional, nonprescribed techniques; the use of novel combinations of artifacts, tools, and techniques; and the exploration of personal cu
• 1.1.1B - Creating computational artifacts employs an iterative and often exploratory process to translate ideas into tangible form.
1.2 - Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem.
1.2.1 - Create a computational artifact for creative expression. [P2]
• 1.2.1A - A computational artifact is anything created by a human using a computer and can be, but is not limited to, a program, an image, audio, video, a presentation, or a web page file.
1.3 - Computing can extend traditional forms of human expression and experience.
1.3.1 - Use computing tools and techniques for creative expression. [P2]
• 1.3.1C - Digital images can be created by generating pixel patterns, manipulating existing digital images, or combining images.
2.1 - A variety of abstractions built upon binary sequences can be used to represent all digital data.
2.1.1 - Describe the variety of abstractions used to represent data. [P3]
• 2.1.1A - Digital data is represented by abstractions at different levels.
• 2.1.1B - At the lowest level, all digital data are represented by bits.
• 2.1.1C - At a higher level, bits are grouped to represent abstractions, including but not limited to numbers, characters, and color.
2.1.2 - Explain how binary sequences are used to represent digital data. [P5]
• 2.1.2A - A finite representation is used to model the infinite mathematical concept of a number.
• 2.1.2B - In many programming languages, the fixed number of bits used to represent characters or integers limits the range of integer values and mathematical operations; this limitation can result in overflow or other errors.
2.3 - Models and simulations use abstraction to generate new understanding and knowledge.
2.3.1 - Use models and simulations to represent phenomena. [P3]
• 2.3.1A - Models and simulations are simplified representations of more complex objects or phenomena.
• 2.3.1B - Models may use different abstractions or levels of abstraction depending on the objects or phenomena being posed.
• 2.3.1C - Models often omit unnecessary features of the objects or phenomena that are being modeled.
• 2.3.1D - Simulations mimic real world events without the cost or danger of building and testing the phenomena in the real world.
3.1 - People use computer programs to process information to gain insight and knowledge.
3.1.1 - Use computers to process information, find patterns, and test hypotheses about digitally processed information to gain insight and knowledge. [P4]
• 3.1.1A - Computers are used in an iterative and interactive way when processing digital information to gain insight and knowledge.
• 3.1.1D - Insight and knowledge can be obtained from translating and transforming digitally represented information.
• 3.1.1E - Patterns can emerge when data is transformed using computational tools.
3.1.2 - Collaborate when processing information to gain insight and knowledge. [P6]
• 3.1.2A - Collaboration is an important part of solving data driven problems.
• 3.1.2B - Collaboration facilitates solving computational problems by applying multiple perspectives, experiences, and skill sets.
• 3.1.2C - Communication between participants working on data driven problems gives rise to enhanced insights and knowledge.
• 3.1.2D - Collaboration in developing hypotheses and questions, and in testing hypotheses and answering questions, about data helps participants gain insight and knowledge.
3.1.3 - Explain the insight and knowledge gained from digitally processed data by using appropriate visualizations, notations, and precise language. [P5]
• 3.1.3A - Visualization tools and software can communicate information about data.
• 3.1.3E - Interactivity with data is an aspect of communicating.
3.2 - Computing facilitates exploration and the discovery of connections in information.
3.2.1 - Extract information from data to discover and explain connections, patterns, or trends. [P1]
• 3.2.1H - Metadata can be descriptive data about an image, a Web page, or other complex objects.
• 3.2.1I - Metadata can increase the effective use of data or data sets by providing additional information about various aspects of that data.
3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analyze how data representation, storage, security, and transmission of data involve computational manipulation of information. [P4]
• 3.3.1A - Digital data representations involve trade offs related to storage, security, and privacy concerns.

#### CSTA K-12 Computer Science Standards (2017)

CS - Computing Systems
• 3A-CS-02 - Compare levels of abstraction and interactions between application software, system software and hardware layers.
DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.
• 3A-DA-09 - Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.

### Lesson 4: Encoding Color Images

#### CSTA K-12 Computer Science Standards (2011)

CL - Collaboration
• CL.L2:3 - Collaborate with peers, experts and others using collaborative practices such as pair programming, working in project teams and participating in-group active learning activities.
CPP - Computing Practice & Programming
• CPP.L2:4 - Demonstrate an understanding of algorithms and their practical application.
CT - Computational Thinking
• CT.L2:13 - Understand the notion of hierarchy and abstraction in computing including high level languages, translation, instruction set and logic circuits.
• CT.L2:14 - Examine connections between elements of mathematics and computer science including binary numbers, logic, sets and functions.
• CT.L2:7 - Represent data in a variety of ways including text, sounds, pictures and numbers.
• CT.L2:8 - Use visual representations of problem states, structures and data (e.g., graphs, charts, network diagrams, flowcharts).
• CT.L2:9 - Interact with content-specific models and simulations (e.g., ecosystems, epidemics, molecular dynamics) to support learning and research.
• CT.L3A:6 - Analyze the representation and trade-offs among various forms of digital information.
• CT.L3B:8 - Use models and simulations to help formulate, refine, and test scientific hypotheses.
• CT.L3B:9 - Analyze data and identify patterns through modeling and simulation.

#### Computer Science Principles

1.1 - Creative development can be an essential process for creating computational artifacts.
1.1.1 - Apply a creative development process when creating computational artifacts. [P2]
• 1.1.1A - A creative process in the development of a computational artifact can include, but is not limited to, employing nontraditional, nonprescribed techniques; the use of novel combinations of artifacts, tools, and techniques; and the exploration of personal cu
• 1.1.1B - Creating computational artifacts employs an iterative and often exploratory process to translate ideas into tangible form.
1.2 - Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem.
1.2.1 - Create a computational artifact for creative expression. [P2]
• 1.2.1A - A computational artifact is anything created by a human using a computer and can be, but is not limited to, a program, an image, audio, video, a presentation, or a web page file.
1.3 - Computing can extend traditional forms of human expression and experience.
1.3.1 - Use computing tools and techniques for creative expression. [P2]
• 1.3.1C - Digital images can be created by generating pixel patterns, manipulating existing digital images, or combining images.
2.1 - A variety of abstractions built upon binary sequences can be used to represent all digital data.
2.1.1 - Describe the variety of abstractions used to represent data. [P3]
• 2.1.1A - Digital data is represented by abstractions at different levels.
• 2.1.1B - At the lowest level, all digital data are represented by bits.
• 2.1.1C - At a higher level, bits are grouped to represent abstractions, including but not limited to numbers, characters, and color.
• 2.1.1D - Number bases, including binary, decimal, and hexadecimal, are used to represent and investigate digital data.
• 2.1.1F - Hexadecimal (base 16) is used to represent digital data because hexadecimal representation uses fewer digits than binary.
2.1.2 - Explain how binary sequences are used to represent digital data. [P5]
• 2.1.2D - The interpretation of a binary sequence depends on how it is used.
• 2.1.2E - A sequence of bits may represent instructions or data.
• 2.1.2F - A sequence of bits may represent different types of data in different contexts.
2.2 - Multiple levels of abstraction are used to write programs or create other computational artifacts
2.2.1 - Develop an abstraction when writing a program or creating other computational artifacts. [P2]
• 2.2.1A - The process of developing an abstraction involves removing detail and generalizing functionality.
• 2.2.1B - An abstraction extracts common features from specific examples in order to generalize concepts.
2.3 - Models and simulations use abstraction to generate new understanding and knowledge.
2.3.1 - Use models and simulations to represent phenomena. [P3]
• 2.3.1A - Models and simulations are simplified representations of more complex objects or phenomena.
• 2.3.1B - Models may use different abstractions or levels of abstraction depending on the objects or phenomena being posed.
• 2.3.1C - Models often omit unnecessary features of the objects or phenomena that are being modeled.
• 2.3.1D - Simulations mimic real world events without the cost or danger of building and testing the phenomena in the real world.
3.1 - People use computer programs to process information to gain insight and knowledge.
3.1.1 - Use computers to process information, find patterns, and test hypotheses about digitally processed information to gain insight and knowledge. [P4]
• 3.1.1A - Computers are used in an iterative and interactive way when processing digital information to gain insight and knowledge.
• 3.1.1D - Insight and knowledge can be obtained from translating and transforming digitally represented information.
• 3.1.1E - Patterns can emerge when data is transformed using computational tools.
3.1.2 - Collaborate when processing information to gain insight and knowledge. [P6]
• 3.1.2A - Collaboration is an important part of solving data driven problems.
• 3.1.2B - Collaboration facilitates solving computational problems by applying multiple perspectives, experiences, and skill sets.
• 3.1.2C - Communication between participants working on data driven problems gives rise to enhanced insights and knowledge.
• 3.1.2D - Collaboration in developing hypotheses and questions, and in testing hypotheses and answering questions, about data helps participants gain insight and knowledge.
3.1.3 - Explain the insight and knowledge gained from digitally processed data by using appropriate visualizations, notations, and precise language. [P5]
• 3.1.3A - Visualization tools and software can communicate information about data.
• 3.1.3E - Interactivity with data is an aspect of communicating.
3.2 - Computing facilitates exploration and the discovery of connections in information.
3.2.1 - Extract information from data to discover and explain connections, patterns, or trends. [P1]
• 3.2.1H - Metadata can be descriptive data about an image, a Web page, or other complex objects.
• 3.2.1I - Metadata can increase the effective use of data or data sets by providing additional information about various aspects of that data.
3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analyze how data representation, storage, security, and transmission of data involve computational manipulation of information. [P4]
• 3.3.1A - Digital data representations involve trade offs related to storage, security, and privacy concerns.

#### CSTA K-12 Computer Science Standards (2017)

CS - Computing Systems
• 3A-CS-02 - Compare levels of abstraction and interactions between application software, system software and hardware layers.
DA - Data & Analysis
• 2-DA-07 - Represent data using multiple encoding schemes.
• 3A-DA-09 - Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.

### Lesson 5: Lossy vs. Lossless Compression

#### CSTA K-12 Computer Science Standards (2011)

CD - Computers & Communication Devices
• CD.L2:4 - Use developmentally appropriate, accurate terminology when communicating about technology.
CL - Collaboration
• CL.L2:3 - Collaborate with peers, experts and others using collaborative practices such as pair programming, working in project teams and participating in-group active learning activities.
CT - Computational Thinking
• CT.L2:7 - Represent data in a variety of ways including text, sounds, pictures and numbers.
• CT.L3A:6 - Analyze the representation and trade-offs among various forms of digital information.

#### Computer Science Principles

3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analyze how data representation, storage, security, and transmission of data involve computational manipulation of information. [P4]
• 3.3.1A - Digital data representations involve trade offs related to storage, security, and privacy concerns.
• 3.3.1C - There are trade offs in using lossy and lossless compression techniques for storing and transmitting data.
• 3.3.1D - Lossless data compression reduces the number of bits stored or transmitted but allows complete reconstruction of the original data
• 3.3.1E - Lossy data compression can significantly reduce the number of bits stored or transmitted at the cost of being able to reconstruct only an approximation of the original data.
• 3.3.1G - Data is stored in many formats depending on its characteristics (e.g., size and intended use)
7.3 - Computing has a global affect -- both beneficial and harmful -- on people and society.
7.3.1 - Analyze the beneficial and harmful effects of computing. [P4]
• 7.3.1F - Open source and licensing of software and content raise legal and ethical concerns.
7.5 - An investigative process is aided by effective organization and selection of resources. Appropriate technologies and tools facilitate the accessing of information and enable the ability to evaluate the credibility of sources.
7.5.2 - Evaluate online and print sources for appropriateness and credibility [P5]
• 7.5.2A - Determining the credibility of a soruce requires considering and evaluating the reputation and credentials of the author(s), publisher(s), site owner(s), and/or sponsor(s).
• 7.5.2B - Information from a source is considered relevant when it supports an appropriate claim or the purpose of the investigation

#### CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
• 3A-AP-20 - Evaluate licenses that limit or restrict use of computational artifacts when using resources such as libraries.
DA - Data & Analysis
• 2-DA-09 - Refine computational models based on the data they have generated.
• 3A-DA-09 - Translate between different bit representations of real-world phenomena, such as characters, numbers, and images.

### Lesson 6: Rapid Research - Format Showdown

#### Computer Science Principles

1.1 - Creative development can be an essential process for creating computational artifacts.
1.1.1 - Apply a creative development process when creating computational artifacts. [P2]
• 1.1.1A - A creative process in the development of a computational artifact can include, but is not limited to, employing nontraditional, nonprescribed techniques; the use of novel combinations of artifacts, tools, and techniques; and the exploration of personal cu
• 1.1.1B - Creating computational artifacts employs an iterative and often exploratory process to translate ideas into tangible form.
1.2 - Computing enables people to use creative development processes to create computational artifacts for creative expression or to solve a problem.
1.2.1 - Create a computational artifact for creative expression. [P2]
• 1.2.1A - A computational artifact is anything created by a human using a computer and can be, but is not limited to, a program, an image, audio, video, a presentation, or a web page file.
• 1.2.1B - Creating computational artifacts requires understanding and using software tools and services.
• 1.2.1C - Computing tools and techniques are used to create computational artifacts and can include, but are not limited to, programming IDEs, spreadsheets, 3D printers, or text editors.
• 1.2.1D - A creatively developed computational artifact can be created by using nontraditional, nonprescribed computing techniques.
• 1.2.1E - Creative expressions in a computational artifact can reflect personal expressions of ideas or interests.
1.2.3 - Create a new computational artifact by combining or modifying existing artifacts. [P2]
• 1.2.3A - Creating computational artifacts can be done by combining and modifying existing artifacts or by creating new artifacts.
• 1.2.3C - Combining or modifying existing artifacts can show personal expression of ideas.
1.2.4 - Collaborate in the creation of computational artifacts. [P6]
• 1.2.4A - A collaboratively created computational artifact reflects effort by more than one person.
• 1.2.4B - Effective collaborative teams consider the use of online collaborative tools.
• 1.2.4C - Effective collaborative teams practice interpersonal communication, consensus building, conflict resolution, and negotiation.
• 1.2.4D - Effective collaboration strategies enhance performance.
• 1.2.4E - Collaboration facilitates the application of multiple perspectives (including sociocultural perspectives) and diverse talents and skills in developing computational artifacts.
• 1.2.4F - A collaboratively created computational artifact can reflect personal expressions of ideas.
2.1 - A variety of abstractions built upon binary sequences can be used to represent all digital data.
2.1.1 - Describe the variety of abstractions used to represent data. [P3]
• 2.1.1B - At the lowest level, all digital data are represented by bits.
• 2.1.1C - At a higher level, bits are grouped to represent abstractions, including but not limited to numbers, characters, and color.
• 2.1.1D - Number bases, including binary, decimal, and hexadecimal, are used to represent and investigate digital data.
• 2.1.1E - At one of the lowest levels of abstraction, digital data is represented in binary (base 2) using only combinations of the digits zero and one.
2.1.2 - Explain how binary sequences are used to represent digital data. [P5]
• 2.1.2F - A sequence of bits may represent different types of data in different contexts.
2.2 - Multiple levels of abstraction are used to write programs or create other computational artifacts
2.2.1 - Develop an abstraction when writing a program or creating other computational artifacts. [P2]
• 2.2.1A - The process of developing an abstraction involves removing detail and generalizing functionality.
• 2.2.1B - An abstraction extracts common features from specific examples in order to generalize concepts.
3.2 - Computing facilitates exploration and the discovery of connections in information.
3.2.1 - Extract information from data to discover and explain connections, patterns, or trends. [P1]
• 3.2.1H - Metadata can be descriptive data about an image, a Web page, or other complex objects.
• 3.2.1I - Metadata can increase the effective use of data or data sets by providing additional information about various aspects of that data.
3.3 - There are trade offs when representing information as digital data.
3.3.1 - Analyze how data representation, storage, security, and transmission of data involve computational manipulation of information. [P4]
• 3.3.1D - Lossless data compression reduces the number of bits stored or transmitted but allows complete reconstruction of the original data
• 3.3.1E - Lossy data compression can significantly reduce the number of bits stored or transmitted at the cost of being able to reconstruct only an approximation of the original data.
• 3.3.1G - Data is stored in many formats depending on its characteristics (e.g., size and intended use)
• 3.3.1H - The choice of storage media affects both the methods and costs of manipulating the data it contains.
7.3 - Computing has a global affect -- both beneficial and harmful -- on people and society.
7.3.1 - Analyze the beneficial and harmful effects of computing. [P4]
• 7.3.1F - Open source and licensing of software and content raise legal and ethical concerns.