United States · Common Core State Standards
12th Grade Computer Science
This course prepares students for university level computer science through rigorous software development and system analysis. Students explore complex data structures, network architecture, and the ethical implications of emerging technologies like artificial intelligence.

Complex Algorithms and Optimization
Students analyze the efficiency of various algorithms and implement advanced sorting and searching techniques. Focus is placed on Big O notation and the trade-offs between time and space complexity.
Understanding how to mathematically evaluate the performance of code as input size grows. Students compare linear, logarithmic, and quadratic growth patterns.
Mastering the concept of self-referential functions to solve complex problems like tree traversals and the Towers of Hanoi. Students learn to identify base cases and recursive steps.
Implementation of sophisticated algorithms such as QuickSort, MergeSort, and Binary Search. Students evaluate stability and in-place sorting requirements.

Object-Oriented Design and Data Structures
Exploration of abstract data types and the principles of object-oriented programming. Students build custom data structures like linked lists, stacks, and queues.
Designing class hierarchies that promote code reuse and flexibility. Students implement interfaces and abstract classes to manage complex software systems.
Building and manipulating linked lists, stacks, and queues from scratch. Students learn about dynamic memory allocation and pointer management.
Introduction to binary trees and hash maps. Students explore how these structures enable rapid data retrieval and hierarchical organization.

Data Science and Intelligent Systems
Students use computational tools to process large datasets and explore the fundamentals of machine learning. The unit covers data cleaning, visualization, and pattern recognition.
Analyzing massive datasets to find hidden trends. Students use statistical libraries to process and visualize complex information sets.
Introduction to supervised and unsupervised learning. Students explore how neural networks are structured and how they learn from experience.
Examining the methods used to protect sensitive information in large databases. Students study encryption standards and data anonymization techniques.

Network Architecture and Cryptography
A deep dive into how the internet functions at a hardware and protocol level. Students explore cybersecurity threats and the mathematical foundations of encryption.
Detailed study of TCP/IP, DNS, and HTTP. Students simulate how packets move across a distributed network to reach their destination.
Analyzing common attack vectors like SQL injection, man-in-the-middle, and social engineering. Students design defensive strategies for software applications.
Understanding the mathematics behind RSA and ECC. Students explore how asymmetric encryption allows for secure communication over insecure channels.

Social Impacts and Professional Ethics
This unit examines the profound effect of computing on global culture, economy, and equity. Students debate the responsibilities of technologists in a digital society.
Investigating how unequal access to technology creates social and economic disparities. Students evaluate software for universal design and accessibility standards.
Analyzing how robotics and AI are transforming the labor market. Students research which industries are most susceptible to automation and how the workforce might adapt.
Exploring the legal frameworks of software licensing. Students compare proprietary models with open-source movements and creative commons.

Software Engineering Capstone
Students work in teams to design, develop, and test a full-scale software solution for a real-world problem. The unit emphasizes the software development life cycle (SDLC).
Implementing scrum and sprint methodologies to manage a project. Students learn to use version control systems like Git for collaborative coding.
Applying design thinking principles to create intuitive user interfaces. Students conduct usability testing and iterate based on user feedback.
Writing comprehensive test plans and technical documentation. Students perform unit testing and integration testing to ensure software reliability.