Skip to main content
California Department of Education Logo

Computer Science Standards




Results


Showing 11 - 18 of 18 Standards

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.

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.

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.

Standard Identifier: 9-12S.AP.10

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Algorithms
Practice(s): Recognizing and Defining Computational Problems, Communicating About Computing (3.1, 7.2)

Standard:
Describe how artificial intelligence drives many software and physical systems.

Descriptive Statement:
Artificial intelligence is a sub-discipline of computer science that enables computers to solve problems previously handled by biological systems. There are many applications of artificial intelligence, including computer vision and speech recognition. Students research and explain how artificial intelligence has been employed in a given system. Students are not expected to implement an artificially intelligent system in order to meet this standard. For example, students could observe an artificially intelligent system and notice where its behavior is not human-like, such as when a character in a videogame makes a mistake that a human is unlikely to make, or when a computer easily beats even the best human players at a given game. Alternatively, students could interact with a search engine asking various questions, and after reading articles on the topic, they could explain how the computer is able to respond to queries.

Standard Identifier: 9-12S.AP.15

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Control
Practice(s): Recognizing and Defining Computational Problems, Communicating About Computing (3.2, 7.2)

Standard:
Demonstrate the flow of execution of a recursive algorithm.

Descriptive Statement:
Recursion is a powerful problem-solving approach where the problem solution is built on solutions of smaller instances of the same problem. A base case, which returns a result without referencing itself, must be defined, otherwise infinite recursion will occur. Students represent a sequence of calls to a recursive algorithm and show how the process resolves to a solution. For example, students could draw a diagram to illustrate flow of execution by keeping track of parameter and returned values for each recursive call. Alternatively, students could create a video showing the passing of arguments as the recursive algorithm runs.

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.

Standard Identifier: 9-12S.AP.25

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Collaborating Around Computing, Creating Computational Artifacts (2.4, 5.2)

Standard:
Use version control systems, integrated development environments (IDEs), and collaborative tools and practices (e.g., code documentation) while developing software within a group.

Descriptive Statement:
Software development is a process that benefits from the use of tools that manage complexity, iterative development, and collaboration. Large or complex software projects often require contributions from multiple developers. Version control systems and other collaborative tools and practices help coordinate the process and products contributed by individuals on a development team. An integrated development environment (IDE) is a program within which a developer implements, compiles or interprets, tests, debugs, and deploys a software project. Students use common software development and documentation support tools in the context of a group software development project. At this level, facility with the full functionality available in the collaborative tools is not expected. For example, students could use common version control systems to modify and improve code or revert to a previous code version. Alternatively, students could use appropriate IDEs to support more efficient code design and development. Additionally, students could use various collaboration, communication, and code documentation tools designed to support groups engaging in complex and interrelated work.

Standard Identifier: 9-12S.AP.26

Grade Range: 9–12 Specialty
Concept: Algorithms & Programming
Subconcept: Program Development
Practice(s): Communicating About Computing (7.2)

Standard:
Compare multiple programming languages, and discuss how their features make them suitable for solving different types of problems.

Descriptive Statement:
Particular problems may be more effectively solved using some programming languages than other programming languages. Students provide a rationale for why a specific programming language is better suited for a solving a particular class of problem. For example, students could explain how a language with a large library base can make developing a web application easier. Alternatively, students could explain how languages that support particular programming paradigms (e.g., object-oriented or functional) can make implementation more aligned with design choices. Additionally, students could discuss how languages that implement garbage collection are good for simplicity of memory management, but may result in poor performance characteristics.

Showing 11 - 18 of 18 Standards


Questions: Curriculum Frameworks and Instructional Resources Division | CFIRD@cde.ca.gov | 916-319-0881