Algorithms

algorithms icon
Algorithms – step-by-step processes to complete a task involving computation – are a fundamental part of CS, and understanding them is foundational for further work in computing. In this Topic Area, students are exposed to high-level concepts related to algorithms.

FOUNDATIONAL CONTENT

Level Learning Outcome
Remember AL.1 – Define algorithm and explain what algorithms are used forCT
AL.2 – Recognize that computational solutions take in information, store and process it, and produce a result
Understand AL.3 – Describe the difference between traditional algorithms and artificial intelligence/machine learning (AI/ML) algorithms and, at a high level, describe how AI/ML algorithms workCT
AL.4 – Explain why/how sequence matters in an algorithmCT
AL.5 – Interpret algorithmsCT
Apply AL.6 – Modify algorithms (e.g., to add functionality)CT
AL.7 – Investigate what is inside of an opaque system (i.e., a system whose operation is not transparent) when it is necessary to do so
AL.8 – Apply principles of inclusive collaboration to a project involving the use of algorithmsIC
Analyze AL.9 – Compare (at a high level) the trade-offs (e.g., speed, memory) of different algorithmsCT
Evaluate AL.10 – Evaluate the appropriateness, reasonableness, and/or effectiveness of an algorithm for a specific task, including via algorithmic auditingCT
AL.11 – Assess societal impacts of algorithms and related ethical issues (e.g., use of AI algorithms to choose job candidates, use of abstraction to obscure important context)IE
Create AL.12 – Compose algorithms using sequence, selection, and iterationCT
AL.13 – Design algorithms using principles of human-centered designHCD

In the topic area tables, we use a system of superscripts to indicate which Pillars relate to which learning outcome: 

  • Computational Thinking → CT
  • Human-Centered Design → HCD
  • Inclusive Collaboration → IC
  • Impacts and Ethics → IE

EXAMPLES OF INTEGRATING THE PILLARS AND DISPOSITIONS

Impacts and Ethics Inclusive Collaboration Computational Thinking Human-Centered Design Dispositions
  • Create an algorithm that designs congressional districts fairly
  • Design algorithms for a chat room, considering content moderation policies
  • Swap algorithms across project groups to debug
  • Design algorithms that support diverse identities (e.g., entering names in a form with various characters)
  • Decompose an algorithm
  • Analyze how abstractions can lead to biased results from algorithms
  • Create algorithms that solve problems relevant to the student’s local context
  • Test algorithm prototypes to ensure they meet users’ needs
  • Take an iterative approach to algorithm design – persist despite mistakes
  • Reflect on personal experiences making trade-offs between privacy and transparency in a system’s design
Reimagining CS Pathways: High School and Beyond