Eighth Grade
Students will apply their understanding of computing devices as they implement applications of computer science knowledge to real-world problems. The computer literate student will apply programming skills to process data and address problems using computing devices. They will implement security measures and protocols for data transmission to address vulnerabilities. They can also collect and represent reliable and valid computational models. Successful students can integrate possible solutions to programming challenges based on the user’s needs. They will achieve this by implementing programming skills using parameters to meet a project’s goal and timeline. Computer science literate students will be able to utilize computing technologies and develop possible solutions to solve everyday challenges, taking into consideration bias, accessibility, and privacy.
Concept: Computing Systems (CS)Subconcept: Devices (D)
8.CS.D.1
Improve the design of computing devices based on an analysis of how users interact them, and consider unintended consequences.
The study of human–computer interaction (HCI) can improve the design of devices, including both hardware and software. Students should make recommendations for existing devices (e.g., a laptop, phone, or tablet) or design their own components or interface (e.g., create their own controllers). 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)
8.CS.HS.1
Design and evaluate projects that combine hardware and software components 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, GPS, and speech recognition. The choice of a device that connects wirelessly through a Bluetooth connection versus a physical USB connection involves a tradeoff between mobility and the need for an additional power source for the wireless device.
Practice(s): Creating Computational Artifacts: 5.1
Subconcept: Troubleshooting (T)
8.CS.T.1
Systematically identify and develop strategies to fix problems with computing devices and their components.
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. Just as pilots use checklists to troubleshoot problems with aircraft systems, students should use a similar, structured process to troubleshoot problems with computing systems and ensure that potential solutions are not overlooked. Examples of 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)
8.NI.C.1
Apply multiple methods of encryption to model 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. Students should encode and decode messages using a variety of encryption methods, and they should understand the different levels of complexity used to hide or secure information. For example, students could secure messages using methods such as Caesar cyphers or steganography (i.e., hiding messages inside a picture or other data). They can also model more complicated methods, such as public key encryption, through unplugged activities.
Practice(s): Developing and Using Abstractions: 4.4
8.NI.C.2
Evaluate how various physical and digital security measures protect electronic information and how a lack of such measures could lead to vulnerabilities.
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. Examples of 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. Examples of vulnerabilities include password strength, awareness of how data is used, as well as threats to personal and professional data.
Practice(s): Communicating About Computing: 7.2
Subconcept: Network, Communication, and Organization (NCO)
8.NI.
NCO.1
Develop models to illustrate the role of protocols in transmitting data across networks and the Internet.
Protocols are rules that define how messages are sent. 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. Students should model how data is sent using protocols to choose the fastest path, to deal with missing information, and to deliver sensitive data securely.
For example, students can be given a data transmission scenario and asked to determine which protocol should be used and why. 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)
8.DA.
CVT.1
Collect data using computational tools and transform the data to make it more 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. Students should transform data to remove errors, highlight or expose relationships, and/or make it easier for computers to process. Data cleaning is an important transformation for ensuring consistent format and reducing noise and errors (e.g., removing irrelevant responses in a survey). An example of a transformation that highlights a relationship is representing males and females as percentages of a whole instead of as individual counts.
Practice(s): Testing and Refining Computational Artifacts: 6.3
Subconcept: Storage (S)
8.DA.S.1
Represent data using multiple encoding schemes including binary and ASCII.
Data representations occur at multiple levels of abstraction, from the physical storage of bits to the arrangement of information into organized formats (e.g., tables). 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)
8.DA.IM.
1
Design computational models and evaluate them based on the reliability and validity of the data they generate.
A model may be a programmed simulation of events or a representation of how various data is 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 is accurate. For example, students may make a prediction about how far a ball will travel based on a table of data they designed related to the height and angle of a track. The students could then test and refine their model by comparing predicted versus actual results and considering whether other factors are relevant (e.g., size and mass of the ball). Additionally, students could refine game mechanics based on tests to make the game more balanced or fair.
Practice(s): Creating Computational Artifacts, Developing and Using Abstractions: 5.3, 4.4
Concept: Algorithms and Programming (AP)Subconcept: Algorithms (A)
8.AP.A.1
Develop 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 express an algorithm that produces a recommendation for purchasing sneakers based on inputs such as size, colors, brand, comfort, and cost. Testing the algorithm with a wide range of inputs and users allows students to refine their recommendation algorithm and to identify other inputs they may have initially excluded.
Practice(s): Developing and Using Abstractions: 4.4, 4.1
Subconcept: Variables (V)
8.AP.V.1
Create named 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. Examples of 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)
8.AP.C.1
Design and iteratively 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, 5.2
Subconcept: Modularity (M)
8.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
8.AP.M.2
Create procedures with parameters to organize code and make it easier to reuse.
Students should create 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: 4.1, 4.3
Subconcept: Program Development (PD)
8.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
8.AP.PD.2
Incorporate existing code, media, and libraries into original 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, algorithms, and/or digital media in their own programs and websites. At this level, they may also import libraries and connect to web application program interfaces (APIs). 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
8.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
8.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
8.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)
8.IC.C.1
Compare and contrast tradeoffs associated with computing technologies that 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
8.IC.C.2
Develop a solution to address an issue of bias or accessibility in the design of existing technologies.
Students should test and 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. When discussing accessibility, students may notice that allowing a user to change font sizes and colors will not only make an interface usable for people with low vision but also benefits users in various situations, such as in bright daylight or a dark room.
Practice(s): Fostering an Inclusive Computing Culture: 1.2
Subconcept: Social Interactions (SI)
8.IC.SI.1
Collaborate with contributors by using digital technologies when creating a computational product.
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)
8.IC.
SLE.1
Evaluate 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. For example, students could brainstorm reasons why individuals would want to share information online and the potential risks of doing so.
Practice(s): Communicating About Computing: 7.2
Concept: Computing Systems (CS)Subconcept: Devices (D)
8.CS.D.1
Improve the design of computing devices based on an analysis of how users interact them, and consider unintended consequences.
The study of human–computer interaction (HCI) can improve the design of devices, including both hardware and software. Students should make recommendations for existing devices (e.g., a laptop, phone, or tablet) or design their own components or interface (e.g., create their own controllers). 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)
8.CS.HS.1
Design and evaluate projects that combine hardware and software components 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, GPS, and speech recognition. The choice of a device that connects wirelessly through a Bluetooth connection versus a physical USB connection involves a tradeoff between mobility and the need for an additional power source for the wireless device.
Practice(s): Creating Computational Artifacts: 5.1
Subconcept: Troubleshooting (T)
8.CS.T.1
Systematically identify and develop strategies to fix problems with computing devices and their components.
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. Just as pilots use checklists to troubleshoot problems with aircraft systems, students should use a similar, structured process to troubleshoot problems with computing systems and ensure that potential solutions are not overlooked. Examples of 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)
8.NI.C.1
Apply multiple methods of encryption to model 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. Students should encode and decode messages using a variety of encryption methods, and they should understand the different levels of complexity used to hide or secure information. For example, students could secure messages using methods such as Caesar cyphers or steganography (i.e., hiding messages inside a picture or other data). They can also model more complicated methods, such as public key encryption, through unplugged activities.
Practice(s): Developing and Using Abstractions: 4.4
8.NI.C.2
Evaluate how various physical and digital security measures protect electronic information and how a lack of such measures could lead to vulnerabilities.
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. Examples of 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. Examples of vulnerabilities include password strength, awareness of how data is used, as well as threats to personal and professional data.
Practice(s): Communicating About Computing: 7.2
Subconcept: Network, Communication, and Organization (NCO)
8.NI.
NCO.1
Develop models to illustrate the role of protocols in transmitting data across networks and the Internet.
Protocols are rules that define how messages are sent. 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. Students should model how data is sent using protocols to choose the fastest path, to deal with missing information, and to deliver sensitive data securely.
For example, students can be given a data transmission scenario and asked to determine which protocol should be used and why. 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)
8.DA.
CVT.1
Collect data using computational tools and transform the data to make it more 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. Students should transform data to remove errors, highlight or expose relationships, and/or make it easier for computers to process. Data cleaning is an important transformation for ensuring consistent format and reducing noise and errors (e.g., removing irrelevant responses in a survey). An example of a transformation that highlights a relationship is representing males and females as percentages of a whole instead of as individual counts.
Practice(s): Testing and Refining Computational Artifacts: 6.3
Subconcept: Storage (S)
8.DA.S.1
Represent data using multiple encoding schemes including binary and ASCII.
Data representations occur at multiple levels of abstraction, from the physical storage of bits to the arrangement of information into organized formats (e.g., tables). 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)
8.DA.IM.
1
Design computational models and evaluate them based on the reliability and validity of the data they generate.
A model may be a programmed simulation of events or a representation of how various data is 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 is accurate. For example, students may make a prediction about how far a ball will travel based on a table of data they designed related to the height and angle of a track. The students could then test and refine their model by comparing predicted versus actual results and considering whether other factors are relevant (e.g., size and mass of the ball). Additionally, students could refine game mechanics based on tests to make the game more balanced or fair.
Practice(s): Creating Computational Artifacts, Developing and Using Abstractions: 5.3, 4.4
Concept: Algorithms and Programming (AP)Subconcept: Algorithms (A)
8.AP.A.1
Develop 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 express an algorithm that produces a recommendation for purchasing sneakers based on inputs such as size, colors, brand, comfort, and cost. Testing the algorithm with a wide range of inputs and users allows students to refine their recommendation algorithm and to identify other inputs they may have initially excluded.
Practice(s): Developing and Using Abstractions: 4.4, 4.1
Subconcept: Variables (V)
8.AP.V.1
Create named 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. Examples of 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)
8.AP.C.1
Design and iteratively 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, 5.2
Subconcept: Modularity (M)
8.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
8.AP.M.2
Create procedures with parameters to organize code and make it easier to reuse.
Students should create 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: 4.1, 4.3
Subconcept: Program Development (PD)
8.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
8.AP.PD.2
Incorporate existing code, media, and libraries into original 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, algorithms, and/or digital media in their own programs and websites. At this level, they may also import libraries and connect to web application program interfaces (APIs). 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
8.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
8.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
8.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)
8.IC.C.1
Compare and contrast tradeoffs associated with computing technologies that 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
8.IC.C.2
Develop a solution to address an issue of bias or accessibility in the design of existing technologies.
Students should test and 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. When discussing accessibility, students may notice that allowing a user to change font sizes and colors will not only make an interface usable for people with low vision but also benefits users in various situations, such as in bright daylight or a dark room.
Practice(s): Fostering an Inclusive Computing Culture: 1.2
Subconcept: Social Interactions (SI)
8.IC.SI.1
Collaborate with contributors by using digital technologies when creating a computational product.
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)
8.IC.
SLE.1
Evaluate 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. For example, students could brainstorm reasons why individuals would want to share information online and the potential risks of doing so.
Practice(s): Communicating About Computing: 7.2