Seventh Grade
Students will deepen their understanding of computing devices as they continue to explore the application of computer science knowledge to real-world problems. The computer science literate student will evaluate how devices process data and address potential problems through project development. They will investigate the need for security measures and protocols for data transmission. Successful students will be able to integrate reliable and valid computational models to process data that is meaningful and useful. They can evaluate possible solutions to programming challenges based on the user’s needs. Students will implement programming skills using parameters to meet a project’s goal and timeline. Computer science literate students will be able to compare and contrast possible solutions utilizing computing technologies to solve everyday challenges, taking into consideration bias, accessibility, and privacy.
Concept: Computing Systems (CS)Subconcept: Devices (D)
7.CS.D.1
Identify some advantages, disadvantages, and consequences with the design of computer devices based on an analysis of how users interact with devices.
The study of human–computer interaction (HCI) can improve the design of devices, including both hardware and software. Teachers can guide students to consider usability through several lenses, including accessibility, ergonomics, and learnability. For example, assistive devices provide capabilities such as scanning written information and converting it to speech.
Practice(s): Recognizing and Defining Computational Problems: 3.3
Subconcept: Hardware and Software (HS)
7.CS.HS.1
Design projects that combine hardware and software to collect and exchange data.
Collecting and exchanging data involves input, output, storage, and processing. When possible, students should select the hardware and software components for their project designs by considering factors such as functionality, cost, size, speed, accessibility, and aesthetics. For example, components for a mobile app could include: accelerometer, Global Position System (GPS), microphone, fingerprint sensor, etc.
Practice(s): Creating Computational Artifacts: 5.1
Subconcept: Troubleshooting (T)
7.CS.T.1
Evaluate strategies to fix problems with computing devices and their components within a system.
Since a computing device may interact with interconnected devices within a system, problems may not be due to the computing device itself but to devices or components connected to it. For example, troubleshooting strategies include following a troubleshooting flow diagram, making changes to software to see if hardware will work, checking connections and settings, and swapping in working components.
Practice(s): Testing and Refining Computational Artifacts: 6.2
Concept: Networks and the Internet (NI)Subconcept: Cybersecurity (C)
7.NI.C.1
Evaluate multiple methods of encryption for the secure transmission of information.
Encryption can be as simple as letter substitution or as complicated as modern methods used to secure networks and the Internet. The students will examine the different levels of complexity used to hide or secure information. For example, students explore different methods of securing messages using methods such as Caesar ciphers or steganography (i.e., hiding messages inside a picture or other data).
Practice(s): Developing and Using Abstractions: 4.4
7.NI.C.2
Explain how physical and digital security measures protect electronic information.
Information that is stored online is vulnerable to unwanted access. Examples of physical security measures to protect data include keeping passwords hidden, locking doors, making backup copies on external storage devices, and erasing a storage device before it is reused. For example, digital security measures include secure router admin passwords, firewalls that limit access to private networks, and the use of a protocol such as HTTPS to ensure secure data transmission.
Practice(s): Communicating About Computing: 7.2
Subconcept: Network, Communication, and Organization (NCO)
7.NI.
NCO.1
Compare and contrast models to understand the many protocols used for data transmission.
Protocols are rules that define how messages are sent between computers. They determine how quickly and securely information is transmitted across networks and the Internet, as well as how to check for and handle errors in transmission. For example, students should examine how data is sent using protocols to choose the fastest path, to deal with missing information, and to deliver sensitive data securely. The priority at this level is understanding the purpose of protocols and how they enable secure and errorless communication. Knowledge of the details of how specific protocols work is not expected.
Practice(s): Developing and Using Abstractions: 4.4
Concept: Data and Analysis (DA)Subconcept: Collection, Visualization and Transformation (CVT)
7.DA.
CVT.1
Collect and analyze data using computational tools to create models that are meaningful and useful.
As students continue to build on their ability to organize and present data visually to support a claim, they will need to understand when and how to transform data for this purpose. For example, students use computational tools such as Microsoft Excel or Google Sheets to solve a problem that is relevant and meaningful.
Practice(s): Testing and Refining Computational Artifacts: 6.3
Subconcept: Storage (S)
7.DA.S.1
Use multiple encoding schemes to represent data, including binary and ASCII.
Students should represent the same data in multiple ways. For example, students could represent the same color using binary, RGB values, hex codes (low-level representations), as well as forms understandable by people, including words, symbols, and digital displays of the color (high-level representations).
Practice(s): Developing and Using Abstractions: 4.0
Subconcept: Inference and Models (IM)
7.DA.IM.
1
Use computational models and determine the reliability and validity of data they generate.
A model may be a programmed simulation of events or a representation of how various data are related. To refine a model, students need to consider which data points are relevant, how data points relate to each other, and if the data are accurate. For example, students may make a prediction about how far a ball will travel based on a table of data related to the height and angle of a track.
Practice(s): Creating Computational Artifacts, Developing and Using Abstractions: 5.3, 4.4
Concept: Algorithms and Programming (AP)Subconcept: Algorithms (A)
7.AP.A.1
Use planning strategies, such as flowcharts or pseudocode, to develop algorithms to address complex problems.
Complex problems are problems that would be difficult for students to solve computationally. Students should use pseudocode and/or flowcharts to organize and sequence an algorithm that addresses a complex problem, even though they may not actually program the solutions. For example, students might follow an algorithm that produces a recommendation for purchasing sneakers based on inputs such as size, colors, brand, comfort, and cost.
Practice(s): Developing and Using Abstractions: 4.4, 4.1
Subconcept: Variables (V)
7.AP.V.1
Compare and contrast variables that represent different data types and perform operations on their values.
A variable is like a container with a name, in which the contents may change, but the name (identifier) does not. When planning and developing programs, students should decide when and how to declare and name new variables. Students should use naming conventions to improve program readability. For example, possible operations include adding points to the score, combining user input with words to make a sentence, changing the size of a picture, or adding a name to a list of people.
Practice(s): Creating Computational Artifacts: 5.1, 5.2
Subconcept: Control (C)
7.AP.C.1
Design and develop programs that combine control structures, including nested loops and compound conditionals.
Control structures can be combined in many ways. Nested loops are loops placed within loops. Compound conditionals combine two or more conditions in a logical relationship (e.g., using AND, OR, and NOT), and nesting conditionals within one another allows the result of one conditional to lead to another. For example, when programming an interactive story, students could use a compound conditional within a loop to unlock a door only if a character has a key AND is touching the door.
Practice(s): Creating Computational Artifacts: 5.1
Subconcept: Modularity (M)
7.AP.M.1
Decompose problems into parts to facilitate the design, implementation, and review of programs.
In order to design, implement and evaluate programs students will break down problems into smaller parts. For example, students might code one part of a game at a time (sprites, motion, interaction, backgrounds, etc).
Practice(s): Recognizing and Defining Computational Problems: 3.2
7.AP.M.2
Use procedures with parameters to organize code and make it easier to reuse.
Students should use procedures and/or functions that are used multiple times within a program to repeat groups of instructions. These procedures can be generalized by defining parameters that create different outputs for a wide range of inputs. For example, a procedure to draw a circle involves many instructions, but all of them can be invoked with one instruction, such as “drawCircle.” By adding a radius parameter, the user can easily draw circles of different sizes.
Practice(s): Developing and Using Abstractions, Creating Computational Artifacts: 4.1, 4.3, 5.1, 5.2
Subconcept: Program Development (PD)
7.AP.PD.1
Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
Development teams that employ user-centered design create solutions (e.g., programs and devices) that can have a large societal impact, such as an app that allows people with speech difficulties to translate hard-to-understand pronunciation into understandable language. Students should begin to seek diverse perspectives throughout the design process to improve their computational artifacts. Considerations of the end-user may include usability, accessibility, age-appropriate content, respectful language, user perspective, pronoun use, color contrast, and ease of use.
Practice(s): Collaborating Around Computing, Fostering an Inclusive Computing Culture: 2.3, 1.1
7.AP.PD.2
Incorporate existing code and media into programs, and give attribution.
Building on the work of others enables students to produce more interesting and powerful creations. Students should use portions of code and/or digital media in their own programs and websites. For example, when creating a side-scrolling game, students may incorporate portions of code that create a realistic jump movement from another person's game. They may also import Creative Commons-licensed images to use in the background. Students should give attribution to the original creators to acknowledge their contributions.
Practice(s): Developing and Using Abstractions, Creating Computational Artifacts, Communicating About Computing: 4.2, 5.2, 7.3
7.AP.PD.3
Systematically test and refine programs using a range of possible inputs.
At this level, testing should become a deliberate process that is more iterative, systematic, and proactive students should begin to test programs by considering potential errors, such as what will happen if a user enters invalid input (e.g., negative numbers and 0 instead of positive numbers).
Practice(s): Testing and Refining Computational Artifacts: 6.1
7.AP.PD.4
Distribute and execute tasks while maintaining a project timeline when collaboratively developing computational artifacts.
Collaboration is a common and crucial practice in program development. Often, many individuals and groups work on the interdependent parts of a project together. Students should assume pre-defined roles within their teams and manage the project workflow using structured timelines. With teacher guidance, they will begin to create collective goals, expectations, and equitable workloads. For example, students may divide the design stage of a game into planning the storyboard, flowchart, and different parts of the game mechanics. They can then distribute tasks and roles among members of the team and assign deadlines.
Practice(s): Collaborating Around Computing: 2.2
7.AP.PD.5
Document programs to make them easier to follow, test, and debug.
Documentation allows creators and others to more easily use and understand a program. Students should provide documentation for end users that explains their artifacts and how they function. For example, students could provide a project overview and clear user instructions. They should also incorporate comments into their programs and communicate their process throughout the design, development, and user experience phases.
Practice(s): Communicating About Computing: 7.2
Concept: Impacts of Computing (IC)Subconcept: Culture (C)
7.IC.C.1
Explain how some of the tradeoffs associated with computing technologies can affect people's everyday activities and career options.
Advancements in computer technology are neither wholly positive nor negative. However, the ways that people use computing technologies have tradeoffs. Students should consider current events related to broad ideas, including privacy, communication, and automation. For example, driverless cars can increase convenience and reduce accidents, but they are also susceptible to hacking. The emerging industry will reduce the number of taxi and shared-ride drivers, but will create more software engineering and cybersecurity jobs.
Practice(s): Communicating About Computing: 7.2
7.IC.C.2
Discuss how bias and accessibility issues can impact the functionality of existing technologies.
Students should discuss the usability of various technology tools (e.g., apps, games, and devices) with the teacher's guidance. For example, facial recognition software that works better for certain skin tones was likely developed with a homogeneous testing group and could be improved by sampling a more diverse population.
Practice(s): Fostering an Inclusive Computing Culture: 1.2
Subconcept: Social Interactions (SI)
7.IC.SI.1
Describe the process for creating a computational product by collaborating with others using digital technologies.
Crowdsourcing can be used as a platform to gather services, ideas, or content from a large group of people, especially from the online community. It can be done at the local level (e.g., classroom or school) or global level (e.g., age-appropriate online communities). For example, a group of students could combine animations to produce a digital community creation. They could also solicit feedback from many people though use of online communities and electronic surveys.
Practice(s): Collaborating Around Computing, Creating Computational Artifacts: 2.4, 5.2
Subconcept: Safety, Law, and Ethics (SLE)
7.IC.
SLE.1
Identify the benefits and risks associated with sharing information digitally.
Sharing information online can help establish, maintain, and strengthen connections between people. For example, it allows artists and designers to display their talents and reach a broad audience. However, security attacks often start with personal information that is publicly available online. Social engineering is based on tricking people into revealing sensitive information and can be thwarted by being wary of attacks, such as phishing and spoofing.
Practice(s): Communicating About Computing: 7.2
Concept: Computing Systems (CS)Subconcept: Devices (D)
7.CS.D.1
Identify some advantages, disadvantages, and consequences with the design of computer devices based on an analysis of how users interact with devices.
The study of human–computer interaction (HCI) can improve the design of devices, including both hardware and software. Teachers can guide students to consider usability through several lenses, including accessibility, ergonomics, and learnability. For example, assistive devices provide capabilities such as scanning written information and converting it to speech.
Practice(s): Recognizing and Defining Computational Problems: 3.3
Subconcept: Hardware and Software (HS)
7.CS.HS.1
Design projects that combine hardware and software to collect and exchange data.
Collecting and exchanging data involves input, output, storage, and processing. When possible, students should select the hardware and software components for their project designs by considering factors such as functionality, cost, size, speed, accessibility, and aesthetics. For example, components for a mobile app could include: accelerometer, Global Position System (GPS), microphone, fingerprint sensor, etc.
Practice(s): Creating Computational Artifacts: 5.1
Subconcept: Troubleshooting (T)
7.CS.T.1
Evaluate strategies to fix problems with computing devices and their components within a system.
Since a computing device may interact with interconnected devices within a system, problems may not be due to the computing device itself but to devices or components connected to it. For example, troubleshooting strategies include following a troubleshooting flow diagram, making changes to software to see if hardware will work, checking connections and settings, and swapping in working components.
Practice(s): Testing and Refining Computational Artifacts: 6.2
Concept: Networks and the Internet (NI)Subconcept: Cybersecurity (C)
7.NI.C.1
Evaluate multiple methods of encryption for the secure transmission of information.
Encryption can be as simple as letter substitution or as complicated as modern methods used to secure networks and the Internet. The students will examine the different levels of complexity used to hide or secure information. For example, students explore different methods of securing messages using methods such as Caesar ciphers or steganography (i.e., hiding messages inside a picture or other data).
Practice(s): Developing and Using Abstractions: 4.4
7.NI.C.2
Explain how physical and digital security measures protect electronic information.
Information that is stored online is vulnerable to unwanted access. Examples of physical security measures to protect data include keeping passwords hidden, locking doors, making backup copies on external storage devices, and erasing a storage device before it is reused. For example, digital security measures include secure router admin passwords, firewalls that limit access to private networks, and the use of a protocol such as HTTPS to ensure secure data transmission.
Practice(s): Communicating About Computing: 7.2
Subconcept: Network, Communication, and Organization (NCO)
7.NI.
NCO.1
Compare and contrast models to understand the many protocols used for data transmission.
Protocols are rules that define how messages are sent between computers. They determine how quickly and securely information is transmitted across networks and the Internet, as well as how to check for and handle errors in transmission. For example, students should examine how data is sent using protocols to choose the fastest path, to deal with missing information, and to deliver sensitive data securely. The priority at this level is understanding the purpose of protocols and how they enable secure and errorless communication. Knowledge of the details of how specific protocols work is not expected.
Practice(s): Developing and Using Abstractions: 4.4
Concept: Data and Analysis (DA)Subconcept: Collection, Visualization and Transformation (CVT)
7.DA.
CVT.1
Collect and analyze data using computational tools to create models that are meaningful and useful.
As students continue to build on their ability to organize and present data visually to support a claim, they will need to understand when and how to transform data for this purpose. For example, students use computational tools such as Microsoft Excel or Google Sheets to solve a problem that is relevant and meaningful.
Practice(s): Testing and Refining Computational Artifacts: 6.3
Subconcept: Storage (S)
7.DA.S.1
Use multiple encoding schemes to represent data, including binary and ASCII.
Students should represent the same data in multiple ways. For example, students could represent the same color using binary, RGB values, hex codes (low-level representations), as well as forms understandable by people, including words, symbols, and digital displays of the color (high-level representations).
Practice(s): Developing and Using Abstractions: 4.0
Subconcept: Inference and Models (IM)
7.DA.IM.
1
Use computational models and determine the reliability and validity of data they generate.
A model may be a programmed simulation of events or a representation of how various data are related. To refine a model, students need to consider which data points are relevant, how data points relate to each other, and if the data are accurate. For example, students may make a prediction about how far a ball will travel based on a table of data related to the height and angle of a track.
Practice(s): Creating Computational Artifacts, Developing and Using Abstractions: 5.3, 4.4
Concept: Algorithms and Programming (AP)Subconcept: Algorithms (A)
7.AP.A.1
Use planning strategies, such as flowcharts or pseudocode, to develop algorithms to address complex problems.
Complex problems are problems that would be difficult for students to solve computationally. Students should use pseudocode and/or flowcharts to organize and sequence an algorithm that addresses a complex problem, even though they may not actually program the solutions. For example, students might follow an algorithm that produces a recommendation for purchasing sneakers based on inputs such as size, colors, brand, comfort, and cost.
Practice(s): Developing and Using Abstractions: 4.4, 4.1
Subconcept: Variables (V)
7.AP.V.1
Compare and contrast variables that represent different data types and perform operations on their values.
A variable is like a container with a name, in which the contents may change, but the name (identifier) does not. When planning and developing programs, students should decide when and how to declare and name new variables. Students should use naming conventions to improve program readability. For example, possible operations include adding points to the score, combining user input with words to make a sentence, changing the size of a picture, or adding a name to a list of people.
Practice(s): Creating Computational Artifacts: 5.1, 5.2
Subconcept: Control (C)
7.AP.C.1
Design and develop programs that combine control structures, including nested loops and compound conditionals.
Control structures can be combined in many ways. Nested loops are loops placed within loops. Compound conditionals combine two or more conditions in a logical relationship (e.g., using AND, OR, and NOT), and nesting conditionals within one another allows the result of one conditional to lead to another. For example, when programming an interactive story, students could use a compound conditional within a loop to unlock a door only if a character has a key AND is touching the door.
Practice(s): Creating Computational Artifacts: 5.1
Subconcept: Modularity (M)
7.AP.M.1
Decompose problems into parts to facilitate the design, implementation, and review of programs.
In order to design, implement and evaluate programs students will break down problems into smaller parts. For example, students might code one part of a game at a time (sprites, motion, interaction, backgrounds, etc).
Practice(s): Recognizing and Defining Computational Problems: 3.2
7.AP.M.2
Use procedures with parameters to organize code and make it easier to reuse.
Students should use procedures and/or functions that are used multiple times within a program to repeat groups of instructions. These procedures can be generalized by defining parameters that create different outputs for a wide range of inputs. For example, a procedure to draw a circle involves many instructions, but all of them can be invoked with one instruction, such as “drawCircle.” By adding a radius parameter, the user can easily draw circles of different sizes.
Practice(s): Developing and Using Abstractions, Creating Computational Artifacts: 4.1, 4.3, 5.1, 5.2
Subconcept: Program Development (PD)
7.AP.PD.1
Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
Development teams that employ user-centered design create solutions (e.g., programs and devices) that can have a large societal impact, such as an app that allows people with speech difficulties to translate hard-to-understand pronunciation into understandable language. Students should begin to seek diverse perspectives throughout the design process to improve their computational artifacts. Considerations of the end-user may include usability, accessibility, age-appropriate content, respectful language, user perspective, pronoun use, color contrast, and ease of use.
Practice(s): Collaborating Around Computing, Fostering an Inclusive Computing Culture: 2.3, 1.1
7.AP.PD.2
Incorporate existing code and media into programs, and give attribution.
Building on the work of others enables students to produce more interesting and powerful creations. Students should use portions of code and/or digital media in their own programs and websites. For example, when creating a side-scrolling game, students may incorporate portions of code that create a realistic jump movement from another person's game. They may also import Creative Commons-licensed images to use in the background. Students should give attribution to the original creators to acknowledge their contributions.
Practice(s): Developing and Using Abstractions, Creating Computational Artifacts, Communicating About Computing: 4.2, 5.2, 7.3
7.AP.PD.3
Systematically test and refine programs using a range of possible inputs.
At this level, testing should become a deliberate process that is more iterative, systematic, and proactive students should begin to test programs by considering potential errors, such as what will happen if a user enters invalid input (e.g., negative numbers and 0 instead of positive numbers).
Practice(s): Testing and Refining Computational Artifacts: 6.1
7.AP.PD.4
Distribute and execute tasks while maintaining a project timeline when collaboratively developing computational artifacts.
Collaboration is a common and crucial practice in program development. Often, many individuals and groups work on the interdependent parts of a project together. Students should assume pre-defined roles within their teams and manage the project workflow using structured timelines. With teacher guidance, they will begin to create collective goals, expectations, and equitable workloads. For example, students may divide the design stage of a game into planning the storyboard, flowchart, and different parts of the game mechanics. They can then distribute tasks and roles among members of the team and assign deadlines.
Practice(s): Collaborating Around Computing: 2.2
7.AP.PD.5
Document programs to make them easier to follow, test, and debug.
Documentation allows creators and others to more easily use and understand a program. Students should provide documentation for end users that explains their artifacts and how they function. For example, students could provide a project overview and clear user instructions. They should also incorporate comments into their programs and communicate their process throughout the design, development, and user experience phases.
Practice(s): Communicating About Computing: 7.2
Concept: Impacts of Computing (IC)Subconcept: Culture (C)
7.IC.C.1
Explain how some of the tradeoffs associated with computing technologies can affect people's everyday activities and career options.
Advancements in computer technology are neither wholly positive nor negative. However, the ways that people use computing technologies have tradeoffs. Students should consider current events related to broad ideas, including privacy, communication, and automation. For example, driverless cars can increase convenience and reduce accidents, but they are also susceptible to hacking. The emerging industry will reduce the number of taxi and shared-ride drivers, but will create more software engineering and cybersecurity jobs.
Practice(s): Communicating About Computing: 7.2
7.IC.C.2
Discuss how bias and accessibility issues can impact the functionality of existing technologies.
Students should discuss the usability of various technology tools (e.g., apps, games, and devices) with the teacher's guidance. For example, facial recognition software that works better for certain skin tones was likely developed with a homogeneous testing group and could be improved by sampling a more diverse population.
Practice(s): Fostering an Inclusive Computing Culture: 1.2
Subconcept: Social Interactions (SI)
7.IC.SI.1
Describe the process for creating a computational product by collaborating with others using digital technologies.
Crowdsourcing can be used as a platform to gather services, ideas, or content from a large group of people, especially from the online community. It can be done at the local level (e.g., classroom or school) or global level (e.g., age-appropriate online communities). For example, a group of students could combine animations to produce a digital community creation. They could also solicit feedback from many people though use of online communities and electronic surveys.
Practice(s): Collaborating Around Computing, Creating Computational Artifacts: 2.4, 5.2
Subconcept: Safety, Law, and Ethics (SLE)
7.IC.
SLE.1
Identify the benefits and risks associated with sharing information digitally.
Sharing information online can help establish, maintain, and strengthen connections between people. For example, it allows artists and designers to display their talents and reach a broad audience. However, security attacks often start with personal information that is publicly available online. Social engineering is based on tricking people into revealing sensitive information and can be thwarted by being wary of attacks, such as phishing and spoofing.
Practice(s): Communicating About Computing: 7.2