Computer Science Standards
Results
Showing 21 - 30 of 37 Standards
Standard Identifier: 9-12.AP.17
Grade Range:
9–12
Concept:
Algorithms & Programming
Subconcept:
Modularity
Practice(s):
Developing and Using Abstractions, Creating Computational Artifacts (4.3, 5.2)
Standard:
Create computational artifacts using modular design.
Descriptive Statement:
Computational artifacts are created by combining and modifying existing computational artifacts and/or by developing new artifacts. To reduce complexity, large programs can be designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. Students should create computational artifacts with interacting procedures, modules, and/or libraries. For example, students could incorporate a physics library into an animation of bouncing balls. Alternatively, students could integrate open-source JavaScript libraries to expand the functionality of a web application. Additionally, students could create their own game to teach Spanish vocabulary words using their own modular design (e.g., including methods to: control scoring, manage wordlists, manage access to different game levels, take input from the user, etc.).
Create computational artifacts using modular design.
Descriptive Statement:
Computational artifacts are created by combining and modifying existing computational artifacts and/or by developing new artifacts. To reduce complexity, large programs can be designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. Students should create computational artifacts with interacting procedures, modules, and/or libraries. For example, students could incorporate a physics library into an animation of bouncing balls. Alternatively, students could integrate open-source JavaScript libraries to expand the functionality of a web application. Additionally, students could create their own game to teach Spanish vocabulary words using their own modular design (e.g., including methods to: control scoring, manage wordlists, manage access to different game levels, take input from the user, etc.).
Standard Identifier: 9-12.AP.18
Grade Range:
9–12
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Fostering an Inclusive Computing Culture, Creating Computational Artifacts (1.1, 5.1)
Standard:
Systematically design programs for broad audiences by incorporating feedback from users.
Descriptive Statement:
Programmers use a systematic design and review process to meet the needs of a broad audience. The process includes planning to meet user needs, developing software for broad audiences, testing users from a cross-section of the audience, and refining designs based on feedback. For example, students could create a user satisfaction survey and brainstorm distribution methods to collect feedback about a mobile application. After collecting feedback from a diverse audience, students could incorporate feedback into their product design. Alternatively, while developing an e-textiles project with human touch sensors, students could collect data from peers and identify design changes needed to improve usability by users of different needs.
Systematically design programs for broad audiences by incorporating feedback from users.
Descriptive Statement:
Programmers use a systematic design and review process to meet the needs of a broad audience. The process includes planning to meet user needs, developing software for broad audiences, testing users from a cross-section of the audience, and refining designs based on feedback. For example, students could create a user satisfaction survey and brainstorm distribution methods to collect feedback about a mobile application. After collecting feedback from a diverse audience, students could incorporate feedback into their product design. Alternatively, while developing an e-textiles project with human touch sensors, students could collect data from peers and identify design changes needed to improve usability by users of different needs.
Standard Identifier: 9-12.AP.19
Grade Range:
9–12
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Communicating About Computing (7.3)
Standard:
Explain the limitations of licenses that restrict use of computational artifacts when using resources such as libraries.
Descriptive Statement:
Software licenses include copyright, freeware, and open-source licensing schemes. Licenses are used to protect the intellectual property of the author while also defining accessibility of the code. Students consider licensing implications for their own work, especially when incorporating libraries and other resources. For example, students might consider two software libraries that address a similar need, justifying their choice of one over the other. The choice could be based upon least restrictive licensing or further protections for their own intellectual property.
Explain the limitations of licenses that restrict use of computational artifacts when using resources such as libraries.
Descriptive Statement:
Software licenses include copyright, freeware, and open-source licensing schemes. Licenses are used to protect the intellectual property of the author while also defining accessibility of the code. Students consider licensing implications for their own work, especially when incorporating libraries and other resources. For example, students might consider two software libraries that address a similar need, justifying their choice of one over the other. The choice could be based upon least restrictive licensing or further protections for their own intellectual property.
Standard Identifier: 9-12.AP.20
Grade Range:
9–12
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Testing and Refining Computational Artifacts (6.3)
Standard:
Iteratively evaluate and refine a computational artifact to enhance its performance, reliability, usability, and accessibility.
Descriptive Statement:
Evaluation and refinement of computational artifacts involves measuring, testing, debugging, and responding to the changing needs and expectations of users. Aspects that can be evaluated include correctness, performance, reliability, usability, and accessibility. For example, after witnessing common errors with user input in a computational artifact, students could refine the artifact to validate user input and provide an error message if invalid data is provided. Alternatively, students could observe a robot in a variety of lighting conditions to determine whether the code controlling a light sensor should be modified to make it less sensitive. Additionally, students could also incorporate feedback from a variety of end users to help guide the size and placement of menus and buttons in a user interface.
Iteratively evaluate and refine a computational artifact to enhance its performance, reliability, usability, and accessibility.
Descriptive Statement:
Evaluation and refinement of computational artifacts involves measuring, testing, debugging, and responding to the changing needs and expectations of users. Aspects that can be evaluated include correctness, performance, reliability, usability, and accessibility. For example, after witnessing common errors with user input in a computational artifact, students could refine the artifact to validate user input and provide an error message if invalid data is provided. Alternatively, students could observe a robot in a variety of lighting conditions to determine whether the code controlling a light sensor should be modified to make it less sensitive. Additionally, students could also incorporate feedback from a variety of end users to help guide the size and placement of menus and buttons in a user interface.
Standard Identifier: 9-12.AP.21
Grade Range:
9–12
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Collaborating Around Computing (2.4)
Standard:
Design and develop computational artifacts working in team roles using collaborative tools.
Descriptive Statement:
Collaborative tools can be as complex as a source code version control system or as simple as a collaborative word processor. Team roles in pair programming are driver and navigator but students can take on more specialized roles in larger teams. Teachers or students should choose resources that aid collaborative program development as programs grow more complex. For example, students might work as a team to develop a mobile application that addresses a problem relevant to the school or community, using appropriate tools to support actions such as: establish and manage the project timeline; design, share, and revise graphical user interface elements; implement program components, track planned, in-progress, and completed components, and design and implement user testing.
Design and develop computational artifacts working in team roles using collaborative tools.
Descriptive Statement:
Collaborative tools can be as complex as a source code version control system or as simple as a collaborative word processor. Team roles in pair programming are driver and navigator but students can take on more specialized roles in larger teams. Teachers or students should choose resources that aid collaborative program development as programs grow more complex. For example, students might work as a team to develop a mobile application that addresses a problem relevant to the school or community, using appropriate tools to support actions such as: establish and manage the project timeline; design, share, and revise graphical user interface elements; implement program components, track planned, in-progress, and completed components, and design and implement user testing.
Standard Identifier: 9-12.AP.22
Grade Range:
9–12
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Communicating About Computing (7.2)
Standard:
Document decisions made during the design process using text, graphics, presentations, and/or demonstrations in the development of complex programs.
Descriptive Statement:
Complex programs are often iteratively designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. Comments are included in code both to document the purpose of modules as well as the implementation details within a module. Together these support documentation of the design process. Students use resources such as libraries and tools to edit and manage parts of the program and corresponding documentation. For example, during development of a computational artifact students could comment their code (with date, modification, and rationale), sketch a flowchart to summarize control flow in a code journal, and share ideas and updates on a white board. Students may document their logic by explaining the development process and presenting to the class. The presentation could include photos of their white board, a video or screencast explaining the development process, or recorded audio description.
Document decisions made during the design process using text, graphics, presentations, and/or demonstrations in the development of complex programs.
Descriptive Statement:
Complex programs are often iteratively designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. Comments are included in code both to document the purpose of modules as well as the implementation details within a module. Together these support documentation of the design process. Students use resources such as libraries and tools to edit and manage parts of the program and corresponding documentation. For example, during development of a computational artifact students could comment their code (with date, modification, and rationale), sketch a flowchart to summarize control flow in a code journal, and share ideas and updates on a white board. Students may document their logic by explaining the development process and presenting to the class. The presentation could include photos of their white board, a video or screencast explaining the development process, or recorded audio description.
Standard Identifier: 9-12S.AP.16
Grade Range:
9–12 Specialty
Concept:
Algorithms & Programming
Subconcept:
Modularity
Practice(s):
Recognizing and Defining Computational Problems, Developing and Using Abstractions (3.2, 4.2)
Standard:
Analyze a large-scale computational problem and identify generalizable patterns or problem components that can be applied to a solution.
Descriptive Statement:
As students encounter complex, real-world problems that span multiple disciplines or social systems, they need to be able to decompose problems and apply already developed code as part of their solutions. Students decompose complex problems into manageable subproblems that could potentially be solved with programs or procedures that can be reused or already exist. For example, in analyzing an Internet radio app, students could identify that users need to create an account and enter a password. They could identify a common application programming interface (API) for checking and displaying password strength. Additionally, students could recognize that the songs would need to be sorted by the time last played in order to display the most recently played songs and identify a common API for sorting dates from most to least recent. Alternatively, in analyzing the problem of tracking medical treatment in a hospital, students could recognize that patient records need to be stored in a database and identify a database solution to support quick access and modification of patient records. Additionally, they could recognize that records in the database need to be stored securely and could identify an encryption API to support the desired level of privacy.
Analyze a large-scale computational problem and identify generalizable patterns or problem components that can be applied to a solution.
Descriptive Statement:
As students encounter complex, real-world problems that span multiple disciplines or social systems, they need to be able to decompose problems and apply already developed code as part of their solutions. Students decompose complex problems into manageable subproblems that could potentially be solved with programs or procedures that can be reused or already exist. For example, in analyzing an Internet radio app, students could identify that users need to create an account and enter a password. They could identify a common application programming interface (API) for checking and displaying password strength. Additionally, students could recognize that the songs would need to be sorted by the time last played in order to display the most recently played songs and identify a common API for sorting dates from most to least recent. Alternatively, in analyzing the problem of tracking medical treatment in a hospital, students could recognize that patient records need to be stored in a database and identify a database solution to support quick access and modification of patient records. Additionally, they could recognize that records in the database need to be stored securely and could identify an encryption API to support the desired level of privacy.
Standard Identifier: 9-12S.AP.17
Grade Range:
9–12 Specialty
Concept:
Algorithms & Programming
Subconcept:
Modularity
Practice(s):
Developing and Using Abstractions, Creating Computational Artifacts (4.3, 5.2)
Standard:
Construct solutions to problems using student-created components, such as procedures, modules, and/or objects.
Descriptive Statement:
Programmers often address complex tasks through design and decomposition using procedures and/or modules. In object-oriented programming languages, classes can support this decomposition. Students create a computational artifact that solves a problem through use of procedures, modules, and/or objects. This problem should be of sufficient complexity to benefit from decomposition and/or use of objects. For example, students could write a flashcard program in which each card is able to show both the question and answer and record user history. Alternatively, students could create a simulation of an ecosystem in which sprites carry out behaviors, such as consuming resources.
Construct solutions to problems using student-created components, such as procedures, modules, and/or objects.
Descriptive Statement:
Programmers often address complex tasks through design and decomposition using procedures and/or modules. In object-oriented programming languages, classes can support this decomposition. Students create a computational artifact that solves a problem through use of procedures, modules, and/or objects. This problem should be of sufficient complexity to benefit from decomposition and/or use of objects. For example, students could write a flashcard program in which each card is able to show both the question and answer and record user history. Alternatively, students could create a simulation of an ecosystem in which sprites carry out behaviors, such as consuming resources.
Standard Identifier: 9-12S.AP.18
Grade Range:
9–12 Specialty
Concept:
Algorithms & Programming
Subconcept:
Modularity
Practice(s):
Developing and Using Abstractions, Creating Computational Artifacts, Testing and Refining Computational Artifacts (4.2, 5.3, 6.2)
Standard:
Demonstrate code reuse by creating programming solutions using libraries and APIs.
Descriptive Statement:
Code reuse is critical both for managing complexity in modern programs, but also in increasing programming efficiency and reliability by having programmers reuse code that has been highly vetted and tested. Software libraries allow developers to integrate common and often complex functionality without having to reimplement that functionality from scratch. Students identify, evaluate, and select appropriate application programming interfaces (APIs) from software libraries to use with a given language and operating system. They appropriately use resources such as technical documentation, online forums, and developer communities to learn about libraries and troubleshoot problems with APIs that they have chosen. For example, students could import charting and graphing modules to display data sets, adopt an online service that provides cloud storage and retrieval for a database used in a multiplayer game, or import location services into an app that identifies points of interest on a map. Libraries of APIs can be student-created or publicly available (e.g., common graphics libraries or map/navigation APIs).
Demonstrate code reuse by creating programming solutions using libraries and APIs.
Descriptive Statement:
Code reuse is critical both for managing complexity in modern programs, but also in increasing programming efficiency and reliability by having programmers reuse code that has been highly vetted and tested. Software libraries allow developers to integrate common and often complex functionality without having to reimplement that functionality from scratch. Students identify, evaluate, and select appropriate application programming interfaces (APIs) from software libraries to use with a given language and operating system. They appropriately use resources such as technical documentation, online forums, and developer communities to learn about libraries and troubleshoot problems with APIs that they have chosen. For example, students could import charting and graphing modules to display data sets, adopt an online service that provides cloud storage and retrieval for a database used in a multiplayer game, or import location services into an app that identifies points of interest on a map. Libraries of APIs can be student-created or publicly available (e.g., common graphics libraries or map/navigation APIs).
Standard Identifier: 9-12S.AP.19
Grade Range:
9–12 Specialty
Concept:
Algorithms & Programming
Subconcept:
Program Development
Practice(s):
Collaborating Around Computing, Creating Computational Artifacts (2.2, 2.3, 5.2)
Standard:
Plan and develop programs for broad audiences using a specific software life cycle process.
Descriptive Statement:
Software development processes are used to help manage the design, development, and product/project management of a software solution. Various types of processes have been developed over time to meet changing needs in the software landscape. The systems development life cycle (SDLC), also referred to as the application development life cycle, is a term used in systems engineering, information systems, and software engineering to describe a process for planning, creating, testing, and deploying an information system. Other examples of common processes could include agile, spiral, or waterfall. Students develop a program following a specific software life cycle process, with proper scaffolding from the teacher. For example, students could work in teams on a common project using the agile development process, which is based on breaking product development work into small increments. Alternatively, students could be guided in implementing sprints to focus work on daily standup meetings or scrums to support efficient communication.
Plan and develop programs for broad audiences using a specific software life cycle process.
Descriptive Statement:
Software development processes are used to help manage the design, development, and product/project management of a software solution. Various types of processes have been developed over time to meet changing needs in the software landscape. The systems development life cycle (SDLC), also referred to as the application development life cycle, is a term used in systems engineering, information systems, and software engineering to describe a process for planning, creating, testing, and deploying an information system. Other examples of common processes could include agile, spiral, or waterfall. Students develop a program following a specific software life cycle process, with proper scaffolding from the teacher. For example, students could work in teams on a common project using the agile development process, which is based on breaking product development work into small increments. Alternatively, students could be guided in implementing sprints to focus work on daily standup meetings or scrums to support efficient communication.
Showing 21 - 30 of 37 Standards
Questions: Curriculum Frameworks and Instructional Resources Division |
CFIRD@cde.ca.gov | 916-319-0881