Colorado Academic Standards Online
Use the options below to create customized views of the Colorado Academic Standards. For all standards resources, see the Office of Standards and Instructional Support.
Current selections are shown below (maximum of five)
clear Content Area: Computer Science - 2019 // Grade Level: High School // Standard Category: All Standards Categories
Computer Science - 2019
High School, Standard 1. Computational Thinking
keyboard_arrow_down keyboard_arrow_up
1. Computational thinking is used to create algorithmic solutions to real-world problems.
Students Can:
- Identify and create different types of algorithms (sort, search, etc.).
- Predict the outcome of different types of algorithms.
- Create or adapt algorithms to solve problems for multiple purposes (e.g., personal interests, client needs).
- Use an algorithm that involves mathematical operations and functions to solve problems.
- Use an iterative approach to utilizing and/or developing an algorithm.
- Recognize problems that cannot be solved computationally.
- Identify and describe algorithms that exist within their personal lives.
Academic Contexts and Connections:
- Examine ways computers could make human activities easier and more efficient. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis)
- Evaluate attempts to create a working algorithm. (Personal Skills: Self-Awareness; Initiative/Self-Direction)
- Identify how algorithms can be used to solve social problems. (Civic/Interpersonal Skills: Communication; Global/Cultural Awareness)
- Compare and contrast solvable and unsolvable computational problems. (Professional Skills: Information Literacy; Use Information and Communications Technologies; Personal Skills: Perseverance/Resilience)
- Central to computational thinking are the processes of generalization and decomposition, with an eye toward the technology that will be used to solve the problem. This planning and abstraction process should also include students decomposing complex problems into manageable sub-problems that could potentially be solved with programs or procedures that already exist. As students develop algorithms, they should identify procedures and/or functions that are used multiple times within a program to repeat groups of instructions (CSTA 3A-AP-17 & 2-AP-14).
keyboard_arrow_down keyboard_arrow_up
2. Algorithms can be represented and used in different ways (e.g., languages, diagrams, pseudocode).
Students Can:
- Identify and compare different algorithms that can be used to solve the same problem.
- Illustrate the flow of execution of an iterative algorithm (e.g., recursion).
- Explain the value of heuristic algorithms to model ways to solve problems.
- Adapt algorithms used in one problem to solve a related or different problem.
- Use multiple methods to represent an algorithm (e.g., diagram, programming language, unplugged).
Academic Contexts and Connections:
- Create an algorithm to solve a client's needs. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Creativity/Innovation; Inquiry/Analysis)
- Use pseudocode to represent an algorithm. (Personal Skills: Self-Awareness; Initiative/Self-Direction)
- Collaboratively develop an algorithm that could solve a social communication problem. (Civic/Interpersonal Skills: Communication; Global/Cultural Awareness)
- Present an algorithmic solution using multiple methods. (Professional Skills: Information Literacy; Use Information and Communications Technologies; Leadership)
- Students should use pseudocode, diagrams and/or flowcharts to organize and sequence an algorithm that addresses a problem. Representing algorithms in alternative forms supports the planning phase of the design process and helps students see various ways to structure an algorithm (CSTA 2-AP-10).
keyboard_arrow_down keyboard_arrow_up
3. Algorithm development and use is an ongoing process that involves adapting, critiquing and troubleshooting programs and/or processes.
Students Can:
- Describe pros and cons of the performance of algorithms for the same task.
- Use an iterative approach to developing an algorithm.
- Test and troubleshoot so that algorithms produce reasonable results.
Academic Contexts and Connections:
- Use client feedback to develop an initial algorithm. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Creativity/Innovation; Inquiry/Analysis)
- Develop a plan for using client feedback to improve an algorithm. (Personal Skills: Self-Awareness; Initiative/Self-Direction)
- Produce a progress report detailing algorithm development. (Civic/Interpersonal Skills: Communication; Global/Cultural Awareness)
- Demonstrate debugging an algorithm. (Personal Skills: Perseverance/Resilience)
- Testing and refinement is the deliberate and iterative process of improving a computational artifact. This process includes debugging (identifying and fixing errors) and comparing actual outcomes to intended outcomes. Students should respond to the changing needs and expectations of end users and improve the performance, reliability, usability and accessibility of artifacts. For example, students could incorporate feedback from a variety of end users to help guide the size and placement of menus and buttons in a user interface (CSTA 3A-AP-21).
keyboard_arrow_down keyboard_arrow_up
- 2. Systematically analyze a problem using decomposition and abstraction to formulate a solution.
4. Large, complex problems can be broken down into smaller, more manageable components.
Students Can:
- Demonstrate how the process of decomposition is iterative and used to solve problems.
- Formulate possible solutions based on the decomposition of a problem.
Academic Contexts and Connections:
- Break down problems into smaller problems identifying patterns in each level. (Personal Skills: Self-Awareness; Initiative/Self-Direction)
- Propose a logical sequence to fix the problem. (Professional Skills: Information Literacy; Use Information and Communications Technologies; Leadership; Personal Skills: Perseverance/Resilience)
- At this level, students should decompose complex problems into manageable sub-problems that could potentially be solved with programs or procedures that already exist. For example, students could create an app to solve a community problem by connecting to an online database through an application programming interface (API) (CSTA 3A-AP-17).
keyboard_arrow_down keyboard_arrow_up
- 2. Systematically analyze a problem using decomposition and abstraction to formulate a solution.
5. Abstraction is used to reduce complexity of larger problems by focusing on main ideas.
Students Can:
- Describe how abstraction is central to computational thinking.
- Identify and prioritize the most relevant parts of a problem while filtering out extraneous details.
- Demonstrate different ways to represent key problem components.
Academic Contexts and Connections:
- Design a game with efficient use of code. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Creativity/Innovation; Inquiry/Analysis)
- Develop a work plan and match essential activities with goals. (Personal Skills: Self-Awareness; Initiative/Self-Direction)
- Sort data using keywords and look for patterns to represent the essential nature of the data. (Civic/Interpersonal Skills: Communication; Global/Cultural Awareness)
- Describe a model of a cat that has all the essential features of a cat without using the word cat to see if another student can guess the description. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- Abstraction is a necessary part of modeling, problem solving and computational thinking; it requires the identification of key aspects of a given context to formulate and solve a problem of interest. Students might select an embedded device such as a car stereo, identify the types of data (radio station presets, volume level) and procedures (increase volume, store/recall saved station, mute) it includes, and explain how the implementation details are hidden from the user (CSTA 3A-CS-01).
keyboard_arrow_down keyboard_arrow_up
- 3. Represent and analyze data in order to generate new knowledge and capability.
6. Data can be represented in different ways for storage and exchange.
Students Can:
- Identify different types of data that are exchanged and produced by computers (e.g., protocols).
- Represent data using multiple encoding schemes (e.g., RGB, Hex, HSB, ASCII, Unicode).
- Evaluate the trade-offs for how data elements are organized and where data are stored (e.g., PNG/GIF, structured/unstructured).
- Compare and contrast various data structures/techniques for storing and processing data (e.g., arrays, lists, tables).
Academic Contexts and Connections:
- Propose an app that utilizes a database. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Creativity/Innovation; Inquiry/Analysis)
- Compare and contrast text or visual data coding schemes for student lockers. (Personal Skills: Self-Awareness; Initiative/Self-Direction)
- Examine data types in Thorn Spotlight software that helps fight human trafficking. (Civic/Interpersonal Skills: Communication; Global/Cultural Awareness)
- Contribute to a group outcome regarding data storage for a project. (Professional Skills: Leadership)
- People make choices about how data elements are organized and where data is stored (e.g., convert hexadecimal color codes to decimal percentages, ASCII/Unicode representation, and logic gates (CSTA 3A-DA-09)). These choices affect cost, speed, reliability, accessibility, privacy and integrity. Students should evaluate whether a chosen solution is most appropriate for a particular problem. Students might consider the cost, speed, reliability, accessibility, privacy and integrity tradeoffs between storing photo data on a mobile device versus in the cloud (CSTA 3A-DA-10).
keyboard_arrow_down keyboard_arrow_up
- 3. Represent and analyze data in order to generate new knowledge and capability.
7. Many problems appropriate for solving with a computer are organized around patterns.
Students Can:
- Analyze computer programs to identify patterns within the program.
- Provide multiple versions of data visualization in order to deepen problem analysis.
- Interpret and analyze data to make informed decisions.
Academic Contexts and Connections:
- Analyze Snapchat and Instagram for popular program patterns. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Creativity/Innovation; Inquiry/Analysis)
- Represent personal grades in Tableau and SQL. (Personal Skills: Self-Awareness; Initiative/Self-Direction)
- Evaluate crime rates in Colorado from a variety of data sources. (Civic/Interpersonal Skills: Communication; Global/Cultural Awareness)
- Provide suggestions for reducing crime based on the data evaluation and give a formal presentation or report. (Professional Skills: Information Literacy; Use Information and Communications Technologies; Leadership; Personal Skills: Perseverance/Resilience)
- One of the most powerful features of computational thinking is using technological tools to make sense of natural and social phenomena. Coding and analytic techniques can be used to identify and visualize patterns in complex data. For example, students could be asked to identify trends in a data set representing social media interactions, movie reviews or shopping patterns (CSTA 3B-DA-05).
keyboard_arrow_down keyboard_arrow_up
- 3. Represent and analyze data in order to generate new knowledge and capability.
8. Data from a computer program can be visually presented to better understand and articulate solutions to a problem.
Students Can:
- Analyze computer output in different forms (e.g., plain text, CSV, graphs, images).
- Design visualizations using the appropriate tool(s) with the end user in mind.
- Provide multiple versions of data visualization in order to deepen problem analysis.
Academic Contexts and Connections:
- Use organization and visualization tools and techniques to identify patterns in data. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Creativity/Innovation; Inquiry/Analysis; Informed Risk Taking)
- Pose questions that can be explored with a given data set. (Personal Skills: Initiative/Self-Direction)
- Discuss how the intended audience for output might influence how to represent data. (Civic/Interpersonal Skills: Global/Cultural Awareness)
- Create appropriate visual representations to identify patterns and relationships in data. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- People transform, generalize, simplify and present large data sets in different ways to influence how other people interpret and understand the underlying information. Examples include visualization, aggregation, rearrangement and application of mathematical operations. People use software tools or programming to create powerful, interactive data visualizations and perform a range of mathematical operations to transform and analyze data. Students should model phenomena as systems, with rules governing the interactions within the system and evaluate these models against real-world observations. For example, flocking behaviors, queueing or life cycles (CSTA 3A-DA-11).
Computer Science - 2019
High School, Standard 2. Computing Systems and Networks
keyboard_arrow_down keyboard_arrow_up
- 4. Use systems thinking to describe networks and common software and hardware components.
1. Communication between computers (and over the internet) can be configured in many different ways and consist of several hardware and software components.
Students Can:
- Describe key protocols and underlying processes of internet-based services, (e.g., https) and discuss impact of technology change on communication protocols.
- Illustrate and describe the basic components and various network types and topologies (e.g., personal, local, metropolitan and wide).
- Explain the difference between decimal, hexadecimal, octal and binary number formats and how they are used in computing environments.
Academic Contexts and Connections:
- Using note cards, demonstrate how a message can be sent and received using UDP, and then using TCP. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Draw the star and bus topologies and explain the difference between the two. (Civic/Interpersonal Skills: Communication)
- Use hexadecimal numbering to determine the color of paint on a wall in a picture on a website. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- Computing is at its most powerful when devices are connected via a network. Networks are comprised of various hardware and software components that have specific functions within the network. For example, individual devices are assigned an address that uniquely identifies it on the network; routers function by comparing IP addresses to determine the pathways packets should take to reach their destination; and switches function by comparing MAC addresses to determine which computers or network segments will receive frames (CSTA, 3A-NI-04). Each device is assigned an address that uniquely identifies it on the network. Routers function by comparing IP addresses to determine the pathways packets should take to reach their destination. Switches function by comparing MAC addresses to determine which computers or network segments will receive frames. Students could use online network simulators to experiment with these factors (CSTA 3A-NI-04).
keyboard_arrow_down keyboard_arrow_up
- 4. Use systems thinking to describe networks and common software and hardware components.
2. Computer hardware, the lowest level of a computer system, consists of many different parts, each providing a specialized function.
Students Can:
- Explain the difference between memory and disk storage, internal and external storage, Random Access Memory (RAM), flash, cloud.
- List and explain the common working parts of a computing device.
- Explain how to maintain safety when working on PCs (e.g., electromagnetic precautions).
- Describe how computing devices are engineered for fault tolerance and reliability, and identify potential sources of weakness (e.g., redundant power supplies, RAID, SAN/NAS connections).
Academic Contexts and Connections:
- Evaluate your computer for possible sources of failure. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Develop a poster describing personal safety when working with computers. (Personal Skills: Adaptability/Flexibility; Perseverance/Resilience)
- Brainstorm ways to improve the performance of an older computer using hardware upgrades. (Civic/Interpersonal Skills: Communication)
- Research professional certifications and identify one that could be completed over the summer. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- At its most basic level, a computer is composed of physical hardware and electrical impulses. A computing system is composed of components such as the central processor (executes commands), memory (for temporary storage of data), hard disk (stores data), mainboard (provides communication between components and peripherals), network interface (communicates with other devices) and power supply (CSTA 3A-CS-02).
keyboard_arrow_down keyboard_arrow_up
- 4. Use systems thinking to describe networks and common software and hardware components.
3. Computer software is written for specific purposes.
Students Can:
- Identify and differentiate between different kinds of software (e.g., operating systems vs. applications) and their purposes.
- Explain what an operating system is, and why it is important for a computer or computing device (e.g., Linux, Windows, iOS).
- Describe how software interacts with hardware to complete tasks.
Academic Contexts and Connections:
- Compare and contrast Linux, Macintosh, and Microsoft operating systems through a cost-benefit analysis. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry Analysis; Informed Risk Taking)
- Compare and contrast user interfaces based on user beliefs and expectations. (Personal Skills: Adaptability/Flexibility; Perseverance/Resilience)
- Discuss the pros and cons for society of open source versus proprietary commercial software. (Civic/Interpersonal Skills: Communication)
- Write a business plan for promoting open source or commercial software. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- System software manages a computing device’s resources (CSTA 3A-CS-02). Students should recognize that there is a variety of software user interfaces and that different software exists for different purposes (e.g., operating system vs. application).
keyboard_arrow_down keyboard_arrow_up
- 4. Use systems thinking to describe networks and common software and hardware components.
4. Systems thinking is a way of holistically examining the various components and use cases that go into a given design.
Students Can:
- Explain the integration of hardware, software and network communications components to create a networked system.
- Summarize security approaches using a systems approach perspective.
Academic Contexts and Connections:
- Using Raspberry Pis, create a network system that will display a software, hardware and network-integrated system. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Create a video demonstrating 10 basic network security habits. (Personal Skills: Adaptability/Flexibility; Perseverance/Resilience)
- Present and suggest the minimum network every household and business should have. (Civic/Interpersonal Skills: Communication)
- Create a website that teaches other students how to practice helpful security habits for a computer system when using the internet. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- By itself, a computer is just a dumb piece of hardware. It is not until an operating system is loaded on to it that the computer becomes useful. The OS handles the operation of the hardware in conjunction with the software applications a user has loaded. System software manages a computing device’s resources so that software can interact with hardware (CSTA 3A-CS-02). Systems thinking utilizes concepts and tools that helps people to understand the makeup of large systems, like computer networks, to meet user needs/requirements, and to make sure computer systems are secure.
keyboard_arrow_down keyboard_arrow_up
- 5. Develop systems solutions from a set of specifications to complete a design process.
5. Client considerations drive system design.
Students Can:
- Identify client’s problems/needs.
- Articulate design requirements back to client.
- Illustrate options for considerations and develop conceptual model.
- Perform system analysis based on client considerations.
Academic Contexts and Connections:
- Interview a computer science project manager to devise an approach to interviewing prospective clients utilizing the diverse efforts of each student in class. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Create a Gantt chart or other schedule for computing project completion. (Personal Skills: Adaptability/Flexibility; Perseverance/Resilience; Initiative/Self-Direction)
- Evaluate group progress on a computing project and provide constructive criticism. (Civic/Interpersonal Skills: Communication)
- Evaluate any piece of software that you think might be ending its software development life cycle (SDLC) and suggest changes. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- Software engineers plan and develop programs for broad audiences using a software life cycle process (CSTA 3B-AP-17). Similarly, systems architects use, plan and develop networks to meet specific client needs.
keyboard_arrow_down keyboard_arrow_up
6. Robust computing systems require multiple methods of recovery.
Students Can:
- Identify different ways that systems might lose data or functionality.
- Describe elements of an effective backup system.
- Compare backup systems for computer users or a network.
- List the various backup methodologies (e.g., full, differential) and why one would pick one over the other, or use all.
- Explain the ways an organization would continue to operate in light of a systems failure.
Academic Contexts and Connections:
- Analyze the possible sources of a hypothetical system crash. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Evaluate your personal data backup sources. (Personal Skills: Adaptability/Flexibility; Perseverance/Resilience)
- Denote data privacy measures citizens in Colorado can adopt. (Civic/Interpersonal Skills: Communication)
- Explain how to prevent your devices from being hacked and offer advice about how to restore data if they have been hacked. (Professional Skills: Information Literacy; Use Information and Communications Technologies)
- The timely and reliable access to data and information services by authorized users, referred to as availability, is ensured through adequate bandwidth, backups and other measures (CSTA 3A-NI-06). Students should understand that an "interruption of service" can come about through disasters, hacking and other deliberate exploitations, power issues and other identifiable problems (e.g., hurricanes). The process of identifying interruptions in services is an important skill for those wanting to work in Information Technology (IT). Backing up a system means that you denote a process in which your computer copies certain data to another safe spot (e.g., another drive, the cloud). Backups are also used in Information Technology (IT) shops in various companies, governmental agencies and educational institutions.
keyboard_arrow_down keyboard_arrow_up
7. Robust computing systems require data protection.
Students Can:
- Identify examples of threats to systems and data.
- Describe the process by which intruders gain entry into a production system (e.g., reconnaissance).
- Describe and compare methods to test/validate how well systems and data are protected.
- Investigate different career pathways relating to systems security.
Academic Contexts and Connections:
- Explain the importance of penetration testing, and for what purpose a company would employ a "pen tester." (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Explain "hardening" of software and data. (Personal Skills: Adaptability/Flexibility; Perseverance/Resilience)
- Describe how hackers use social engineering to gain access to a company's network. (Civic/Interpersonal Skills: Communication; Character; Global/Cultural Awareness)
- Explain what a "SQL injection" is. (Professional Skills: Information Literacy; Use Information and Communications Technologies; Career Awareness)
- Security measures may include physical security tokens, two-factor authentication and biometric verification. Potential security problems, such as denial-of-service attacks, ransomware, viruses, worms, spyware and phishing, exemplify why sensitive data should be securely stored and transmitted. Students should systematically evaluate the feasibility of using computational tools to solve given problems or sub-problems, such as long, complex passwords (CSTA 3A-NI-06. See also CSTA 3B-NI-04 and 3B-AP-18). There are numerous, high-paying jobs in the area of system security. For students interested in pursuing such a career, they should understand that there is a high degree of technical understanding required to be successful.
Computer Science - 2019
High School, Standard 3. Computer Programming
keyboard_arrow_down keyboard_arrow_up
- 7. Design and create programs, individually and collaboratively, for a variety of disciplines.
1. The creation of a computer program requires a design process.
Students Can:
- Analyze and apply a design methodology to identify constraints and requirements of an identified problem.
- Utilize tools and resources such as pseudocode, flowcharts, wireframes, etc., as part of the design process.
- Determine and use graphical or text-based languages.
- Understand and apply core programming concepts.
Academic Contexts and Connections:
- Apply the design process needed to change a computational artifact over several versions. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis)
- Choose from tools and resources to implement the design process. (Personal Skills: Adaptability/Flexibility)
- Use pseudocode and flowcharts to communicate design options with a client. (Civic/Interpersonal Skills: Communication)
- Use design resource to effectively manage tasks and be productive. (Professional Skills: Task/Time Management; Use Information and Communications Technologies)
- Computer programming requires selection of a design methodology (e.g., engineering, software, human-centered) to identify user needs and requirements. Methodologies provide tools for making important design decisions and help programmers manage the iterative process of software design (CSTA 3A-AP-13).
keyboard_arrow_down keyboard_arrow_up
- 7. Design and create programs, individually and collaboratively, for a variety of disciplines.
2. The process of programming involves solving computational problems.
Students Can:
- Write code per selected design.
- Create code comments to communicate to other developers and ensure documentation of code.
- Use various troubleshooting and debugging techniques to improve code.
- Create appropriate variables to store and retrieve data.
Academic Contexts and Connections:
- Create original code that meets specified design requirements. (Entrepreneurial Skills: Creativity/Innovation; Inquiry/Analysis)
- Fix code that is not operational. (Personal Skills: Adaptability/Flexibility; Perseverance/Resilience)
- Collaborate with others through pair programming, commenting code, etc. (no specific language). (Civic/Interpersonal Skills: Communication)
- Software design is a universal approach that can be used irrespective of programming tools (such as a specific language). Effective design utilizes practices such as commenting to record rationale for specific design decisions (CSTA 3A-AP-21).
keyboard_arrow_down keyboard_arrow_up
- 7. Design and create programs, individually and collaboratively, for a variety of disciplines.
3. Collaborative tools, methods and strategies can be used to design, develop and update computational artifacts.
Students Can:
- Integrate collaborative strategies to improve programming outputs.
- Identify and analyze a variety of collaborative tools (e.g., commenting, development repositories) in order to determine the appropriateness for intended use.
- Identify strategies such as peer reviews to test and refine artifacts in development.
- Determine when to use standard software tools like APIs, libraries, version control repositories, etc.
Academic Contexts and Connections:
- Work on a team (product manager, scrum master, analyst, developer, etc.) to improve a computational artifact. (Entrepreneurial Skills: Creativity/Innovation; Inquiry/Analysis; Personal Skills: Adaptability/Flexibility; Perseverance/Resilience)
- Suggest an app for your town/city government that would make your town/neighborhood a nicer place to live. (Civic/Interpersonal Skills: Collaboration/Teamwork; Communication; Global/Cultural Awareness)
- Use positive constructive feedback to help improve a peer's program. (Professional Skills: Task/Time Management; Use Information and Communications Technologies)
- Collaborative strategies such as peer programming and feedback protocols have students optimally revise computational artifacts (e.g., graphical interfaces, program performance, errors) and help foster an inclusive computing culture which produces artifacts that meet the needs of a broad audience (CSTA 3A-AP-22).
keyboard_arrow_down keyboard_arrow_up
- 7. Design and create programs, individually and collaboratively, for a variety of disciplines.
4. Client-based design requirements and feedback are essential to a quality computational product or service.
Students Can:
- Understand and apply principles of client-based design.
- Guide/advise clients on strategies and solutions best suited for their problem (i.e., type of platform).
- Construct effective methods for gathering feedback from client.
- Respond to feedback from clients to improve computing solutions.
- Create and share product support documentation for potential users.
- Articulate lessons learned as a result of the design and creation process.
Academic Contexts and Connections:
- Provide examples of computational artifacts that exemplify client-based and nonclient-based design. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Ask a friend to give you feedback on your communication skills. Be sure to identify specific ways to improve your communication for your friend. (Personal Skills: Initiative/Self-Direction; Personal Responsibility; Adaptability/Flexibility)
- Document technical information about the software you have produced. (Civic/Interpersonal Skills: Communication; Global/Cultural Awareness; Character)
- Produce a computational artifact in accordance with a client's timeline. (Professional Skills: Task/Time Management; Career Awareness; Use Information and Communication Technologies; Leadership)
- By allowing students the opportunity to develop programs at the request of a client or identified real-world situation, students are able to have a more authentic learning experience. Students will pursue learning opportunities that are very similar in nature to experiences they will have in a future computer science career. It is important that students follow protocols and frameworks that they would see in the modern workplace to identify problems, develop a programming solution and bring their artifact to life for review by outside clients (CSTA 3A-AP-19 & 3A-IC-27).
keyboard_arrow_down keyboard_arrow_up
- 8. Create computational artifacts that consider security from tampering, malicious or otherwise.
5. Computing solutions can have impacts (personal, ethical, social, economic and cultural) based on their use.
Students Can:
- Investigate and understand privacy, security and protection laws.
- Articulate the importance of securing personal data information on encrypted storage systems.
- Identify and analyze current events to ensure the safety, security and well-being of all potential clients and end users.
- Identify influential computing innovations, and identify the beneficial and harmful effects they have had, or could have, on society, economy and culture.
- Discuss and explain how diversity of design and issues of accessibility impact a wide-range of users.
- Demonstrate ways to improve the accessibility of computational technologies and artifacts.
Academic Contexts and Connections:
- Incorporate security protocols when developing a computational artifact. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Suggest ways that social media such as Instagram could be made ADA compliant. (Personal Skills: Self-Awareness; Adaptability/Flexibility; Initiative/Self-Direction; Personal Responsibility; Perseverance/Resilience)
- Consider how personal data is vulnerable in both storage and transmission. (Civic/Interpersonal Skills: Collaboration; Communication; Global/Cultural Awareness; Civic Engagement; Character)
- As students engage in computer programming, it is important for them to be highly aware of the many aspects of cyber and information security. Students need to be aware not only of security loopholes that open their programs up to hacking but also to accidental programming errors or choices that can lead to other security issues as well. Students should do their best to be proactive in their programming but be aware they will need to update code and patch as needed when security vulnerabilities arise. Students should understand the importance of keeping their devices and programs up to date through additional updates and patches but that those as well can lead to other problems. Students want to ensure security is included in their feedback cycle for developed solutions (CSTA 3A-NI-06).
keyboard_arrow_down keyboard_arrow_up
- 8. Create computational artifacts that consider security from tampering, malicious or otherwise.
6. Security and software licensing can present constraints and restrictions in computational design and development.
Students Can:
- Describe how software licensing influences program development.
- Investigate and develop solutions that discourage online software piracy.
- Explore and integrate security measures such as encryption, authentication and verification strategies to secure developed computer programs.
- Research and abide by intellectual property laws and patents.
Academic Contexts and Connections:
- Learn about the steps required for protecting intellectual property rights of your computational artifact. (Entrepreneurial Skills: Critical Thinking/Problem Solving; Inquiry/Analysis; Informed Risk Taking)
- Analyze licensing agreements from a software vendor. (Civic/Interpersonal Skills: Collaboration/Teamwork; Communication; Global/Cultural Awareness; Civic Engagement; Character)
- Evaluate the benefits of open source and proprietary software to the developer. (Professional Skills: Career Awareness; Information Literacy; Use Information and Communications Technologies; Self-Advocacy)
- After finishing a computer program, students should consider how they would potentially distribute their product. Whether they determine to sell it at a price on an app store or distribute it for free, a license of some sort is required and a process for which consumers can access the program. Alternatively, students need to be mindful that pirating occurs and should think about ways they can secure their programs to not be unlawfully distributed such as licensing codes, attachment to connected services, methods of software distribution, etc. Students need to be aware of laws and patents that govern/protect intellectual property (CSTA 3A-AP-20 & 3A-IC-28).
Need Help? Submit questions or requests for assistance to bruno_j@cde.state.co.us