United States · Common Core State Standards
11th Grade Computer Science
This course explores the bridge between mathematical logic and physical computing systems. Students master advanced programming structures, analyze algorithmic complexity, and evaluate the societal implications of emerging technologies through hands-on development.

01Algorithmic Thinking and Complexity
Students move beyond basic coding to evaluate the efficiency and scalability of different problem-solving approaches.
Students will analyze simple problems and propose multiple algorithmic solutions, discussing initial efficiency.
Analysis of runtime and memory usage to determine the most effective algorithm for large datasets.
Students will analyze how different algorithms use varying amounts of time and memory resources.
Students will implement and compare linear and binary search, understanding their efficiency differences.
Students will implement and analyze simple sorting algorithms, understanding their basic mechanics.
Understanding the divide and conquer paradigm through the implementation of Merge Sort.
Exploring another efficient sorting algorithm, Quick Sort, and its pivot selection strategies.
Understanding how to break down complex problems into smaller, self-referential sub-problems.
Comparing recursive and iterative solutions for the same problem, focusing on trade-offs.
Exploring straightforward, exhaustive approaches to problem-solving and their limitations.
Understanding how to break down complex problems into smaller, more manageable sub-problems.
Exploring practical, approximate methods for solving problems when exact solutions are too complex or time-consuming.
Basic concepts of graphs as a data structure and their real-world applications.

02Data Structures and Management
An exploration of how data is organized, stored, and retrieved efficiently in modern software.
Students will compare and contrast static arrays with dynamic linked lists, focusing on memory and access patterns.
Implementing and utilizing linear data structures to manage program flow and state.
Implementing and utilizing linear data structures to manage program flow and state.
Exploring efficient key-value storage and the challenges of collision resolution.
Introduction to non-linear data structures, focusing on efficient searching and ordering.
Designing schemas and querying data using structured language to find meaningful patterns.
Students will learn to write basic SQL queries to retrieve, insert, update, and delete data.
Understanding how to structure databases to minimize duplicate data and improve consistency.
Exploring alternative database models like document, key-value, and graph databases.
Transforming raw data into visual narratives that drive decision making.
Students will use tools to create interactive dashboards that allow users to explore data.
Examining the privacy, consent, and bias issues inherent in collecting and storing large datasets.
Understanding practical measures and policies for protecting data from unauthorized access and misuse.

03Networking and Cyber Defense
Investigating how information travels across the globe and the protocols that keep it secure.
Students will explore the fundamental components and types of computer networks.
Understanding the protocols that enable communication between diverse hardware systems.
Exploring how devices are identified on a network and how data finds its destination.
Understanding how human-readable domain names are translated into IP addresses.
The mathematics of securing information through public and private key exchange.
Understanding how digital certificates help verify identity and ensure secure communication online.
Analyzing vulnerabilities in software and the human factors that lead to security breaches.
Exploring techniques and policies to prevent, detect, and respond to cyberattacks.
Understanding how human psychology is exploited in cyberattacks and how to build resilience.
Examining legal frameworks like GDPR and CCPA and their impact on data handling.
Exploring various roles in cybersecurity and the ethical responsibilities of security professionals.
Predicting emerging threats and advancements in cybersecurity technologies.
Understanding the basic steps involved in identifying, containing, and recovering from a cyberattack.

04Object-Oriented Programming
Shifting from procedural code to modular, reusable software design using classes and objects.
Students will learn the core principles of Object-Oriented Programming (OOP) and its benefits.
Defining custom data types (classes) and creating instances (objects) with attributes and behaviors.
Hiding complexity by grouping data and behavior into manageable objects.
Building hierarchies of code to promote reuse and flexible system design.
Enabling objects of different classes to be treated as objects of a common type.
Defining contracts for classes and providing partial implementations for common behavior.
Implementing robust code that gracefully handles unexpected situations and errors.
Writing automated tests for individual components (classes/methods) to ensure correctness.
Exploring the concept of modularity in software design for better organization and maintainability.
Understanding how to organize code so that different functionalities are handled by distinct, independent parts.
Improving the internal structure of existing code without changing its external behavior.
Using Git to manage code changes, collaborate with others, and track project history.
Exploring features of IDEs that enhance developer productivity and code quality.

05Artificial Intelligence and Ethics
Examining the mechanics of machine learning and the moral dilemmas posed by automated systems.
Students will define AI, explore its history, and differentiate between strong and weak AI.
Introduction to how computers learn from data through supervised and unsupervised learning.
Exploring algorithms that learn from labeled data to make predictions.
Discovering patterns and structures in unlabeled data using algorithms like K-Means.
Exploring how AI is used in practical applications like recognizing images and understanding speech.
Understanding the importance of data quality, feature engineering, and metrics for model performance.
Investigating how human prejudices can be encoded into automated decision-making tools.
Discussing the importance of understanding how AI makes decisions and holding AI systems accountable.
Predicting the impact of AI on the workforce, privacy, and human autonomy.
Examining how AI systems collect, process, and potentially compromise personal data.
Discussing the moral challenges posed by self-driving cars, drones, and other autonomous agents.

06Capstone Software Development
A collaborative project where students apply the full software development lifecycle to solve a real-world problem.
Students will learn about the phases of software development from conception to deployment.
Managing a project using iterative cycles and constant feedback loops.
Defining what the software needs to do by understanding user needs and project goals.
Prototyping and testing software from the perspective of the end user.
Creating wireframes and mockups to visualize the software's interface.
Implementing various testing strategies to ensure software reliability and functionality.
Learning systematic approaches to identify and resolve software defects.
Preparing a final product for release and ensuring it is maintainable for the future.
Creating user manuals, API documentation, and internal developer guides.
Understanding the ongoing process of keeping software functional and up-to-date.
Students will present their capstone projects and reflect on their learning journey.