United States · Common Core State Standards
9th Grade Computer Science
This course introduces students to the fundamental principles of computing through hands on experiences in programming, data analysis, and system architecture. Students develop computational thinking skills to solve complex problems and evaluate the ethical implications of emerging technologies in a global society.

01Computational Thinking and Problem Solving
Students learn to decompose complex problems and design algorithmic solutions that are efficient and scalable.
Students will practice breaking down large problems into manageable sub-problems using various techniques.
Students will identify recurring themes across different scenarios and apply known solutions.
Students will create step-by-step instructions using flowcharts and pseudocode to solve logical puzzles.
Students will analyze different algorithmic approaches to the same problem, focusing on efficiency and correctness.
Students will learn to identify and correct logic errors in algorithms before writing code.
Students will explore how abstraction reduces complexity by hiding unnecessary details in computing systems.
Students will identify and explain how abstraction is used in everyday technology and simple programming constructs.
Students will explore how user interfaces abstract away complex operations, making software easier to use.
Students will learn how computers represent information using binary digits and other number systems.
Students will explore the principles of Boolean algebra and how logic gates form the basis of digital circuits.
Students will investigate how limited computational resources (time, memory) influence algorithm design.
Students will set up and navigate a basic programming environment, understanding its components.
Students will discuss the ethical implications of designing solutions and the potential for bias.

02The Architecture of the Internet
An exploration of how data travels across the globe through hardware, protocols, and security layers.
Students will understand how IP addresses and routers manage the flow of packets across a decentralized network.
Students will investigate the necessity of standardized protocols for global communication.
Students will explore the physical limitations of sending data across the world at high speeds.
Students will investigate methods for protecting data integrity and privacy through encryption.
Students will identify common cybersecurity threats and explore various defense mechanisms.
Students will debate the balance between individual privacy and national security in encryption policy.
Students will examine how human factors contribute more to security breaches than technical failures.
Students will examine how remote servers provide scalable resources and the impact of centralized data storage.
Students will analyze the risks of relying on a small number of companies for cloud infrastructure.
Students will understand the basic client-server model and how it enables many internet applications.
Students will investigate how cloud computing affects the energy consumption of our digital lives.
Students will explore the concept of interconnected devices and their impact on daily life and privacy.
Students will discuss the principles of net neutrality and the ongoing debates about internet governance.

03Programming with Purpose
Students apply fundamental programming constructs to build interactive applications and solve real world challenges.
Students will learn to use different data types and variables to store and manipulate information in a program.
Students will use conditional statements to control the execution flow of a program based on specific criteria.
Students will implement loops to repeat blocks of code, improving efficiency and reducing redundancy.
Students will design reusable code blocks to improve readability and maintainability.
Students will focus on designing functions that are truly reusable across different projects.
Students will learn the importance of documentation in improving the usability of a code library.
Students will learn to test functions with various inputs to ensure they produce expected outputs.
Students will create interfaces that respond to user inputs like clicks and key presses.
Students will learn to sequence multiple events in a program to create a desired flow of interaction.
Students will design software that is accessible to users with different physical abilities.
Students will be introduced to the basic concepts of OOP, including classes and objects.
Students will learn to store and manipulate collections of data using arrays or lists.
Students will create programs that take input from users and display output.

04Data Intelligence and Visualization
Analyzing large datasets to uncover trends, make predictions, and communicate findings through visual media.
Students will explore techniques for gathering data and analyze how bias in data collection can lead to inaccurate conclusions.
Students will discuss the ethical considerations of scraping data from public websites and privacy implications.
Students will learn the necessity of cleaning data to ensure accuracy and handle missing or corrupted data.
Students will analyze why correlation does not necessarily imply a causal relationship.
Students will use computational tools to identify patterns and trends within datasets.
Students will learn to critically evaluate conclusions drawn from data, considering limitations and potential biases.
Students will discuss the dangers of over-relying on algorithmic predictions for social issues.
Students will learn to create charts and infographics that make data understandable and persuasive.
Students will analyze how visual choices like scale and color can be used to mislead an audience.
Students will explore effective ways to represent multidimensional data on a 2D screen.
Students will investigate how interactive visualization enhances a user's understanding of data.

05The Impact of Artificial Intelligence
Evaluating the technical foundations and the societal consequences of machine learning and automation.
Students will understand how machine learning differs from traditional rule-based programming.
Students will understand how computers learn from examples through supervised and unsupervised learning.
Students will analyze the role of training data quality in the success of an AI model.
Students will discuss whether a computer can truly be creative or if it is just mimicking patterns.
Students will analyze how human prejudices can be encoded into software and the resulting social impact.
Students will discuss ethical dilemmas faced by AI systems and the importance of human oversight.
Students will learn to identify and analyze instances of bias in the outputs of AI systems.
Students will analyze how AI exacerbates existing inequalities in society.
Students will predict how AI will transform various industries.
Students will identify the skills required for the future workforce in an AI-driven world.
Students will evaluate the economic implications of widespread industrial automation.

06Collaborative Software Development
A capstone experience where students work in teams to design, build, and pitch a software solution.
Students will learn about iterative processes and feedback loops in software project management.
Students will understand why it is beneficial to release a minimum viable product early in the development cycle.
Students will explore how constant user feedback changes the direction of a project.
Students will learn how teams manage conflicting priorities during a development sprint.
Students will learn to use tools like Git to track changes and manage code versions.
Students will practice sharing code and integrating contributions from team members using basic version control concepts.
Students will explore how open source software development relies on version control tools.
Students will learn to translate technical specifications into benefits for a non-technical user.
Students will develop skills in creating engaging and effective software demonstrations.
Students will learn to define clear and measurable criteria for what makes a software project successful.