California Coding Studies — Grade 12
Comprehensive Course Syllabus
Course Overview
The California Grade 12 Coding Studies course is designed as an advanced computer science and programming enrichment program aligned with California Computer Science Standards for Grades 9–12. Students develop advanced skills in algorithms, programming, data structures, software design, debugging, cybersecurity, artificial intelligence, and computational problem solving. The course emphasizes creating meaningful computational artifacts, evaluating solutions, working with data, and developing larger software projects.
Advanced Computational Thinking & Algorithm Design
Computational Problem Solving
Learn to break complex real-world problems into smaller computational problems that can be solved systematically.
Advanced Algorithm Design
Design algorithms that combine original ideas with existing algorithms to solve computational problems efficiently.
Searching & Sorting Algorithms
Implement and compare common searching and sorting techniques for organizing, retrieving, and processing information.
Algorithm Efficiency
Explore how algorithms differ in execution time and resource requirements and develop an introductory understanding of algorithm efficiency.
Abstraction & Generalization
Use abstraction to identify common patterns and create reusable solutions that can solve multiple related problems.
Algorithmic Problem Solving
Apply algorithmic thinking to games, simulations, data-processing tasks, and other real-world computational challenges.
Advanced Programming & Software Design
Programming Structures
Strengthen programming skills using variables, expressions, conditionals, loops, functions, and other fundamental programming structures.
Collections & Data Structures
Use arrays, lists, sets, dictionaries, and other collections to organize and process larger amounts of information.
Functions & Reusable Code
Create reusable functions and procedures that make programs easier to understand, maintain, and extend.
Modular Programming
Design programs as interacting modules so that complex software can be divided into manageable components.
Libraries & Existing Code
Use existing libraries, APIs, and computational resources to extend program functionality while understanding appropriate attribution and reuse.
Software Architecture & Design
Plan the structure of larger software applications by identifying components, relationships, responsibilities, and data flow.
Data, Databases & Computational Analysis
Data Representation
Explore how computers represent, store, process, and communicate different types of information.
Data Structures & Organization
Select appropriate data structures for organizing information and solving computational problems.
Data Processing & Analysis
Write programs that collect, transform, analyze, and summarize datasets to identify useful patterns and information.
Databases & Data Management
Understand how databases organize information and practice retrieving, updating, and managing structured data.
Data Visualization
Use charts, graphs, and other visual representations to communicate patterns and insights from data.
Computational Models & Simulations
Use computational models and simulations to explore complex systems and investigate possible outcomes.
Debugging, Testing & Software Engineering
Systematic Debugging
Develop systematic techniques for identifying, isolating, and correcting errors in programs.
Testing & Validation
Create test cases and evaluate whether programs produce correct and reliable results across different inputs.
Program Performance & Reliability
Analyze program behavior and improve software reliability, readability, maintainability, and performance.
Versioning & Code Management
Understand software versioning concepts and learn practices for managing changes in larger programming projects.
Documentation & Technical Communication
Document program decisions, algorithms, code structure, and development processes so that others can understand and maintain the software.
Software Development Practices
Apply planning, implementation, testing, review, refinement, and documentation practices throughout the software development process.
Cybersecurity, Networks & Ethical Computing
Computer Networks & Internet Systems
Explore how computers communicate through networks and how information moves between connected systems.
Cybersecurity Fundamentals
Understand common security threats and the basic principles used to protect systems, networks, applications, and information.
Secure Communication & Cryptography
Explore cryptographic techniques used to protect information during communication, including hashing and encryption concepts.
Security Threats & Risk Management
Identify common vulnerabilities and evaluate potential risks associated with software, hardware, networks, and human behavior.
Privacy & Data Protection
Examine how personal and organizational information can be protected and understand the importance of responsible data handling.
Ethical & Responsible Computing
Analyze ethical issues involving cybersecurity, privacy, intellectual property, artificial intelligence, data, and emerging technologies.
Artificial Intelligence & Emerging Technologies
Introduction to Artificial Intelligence
Explore how artificial intelligence enables computer systems to perform tasks involving perception, decision-making, pattern recognition, and problem solving.
AI Algorithms & Computational Problem Solving
Understand how algorithms can use data and computational techniques to address problems that traditionally require human intelligence.
Machine Learning Concepts
Develop an introductory understanding of how systems can learn patterns from data and use those patterns to make predictions or decisions.
AI Applications
Explore applications of artificial intelligence in areas such as search, recommendation systems, computer vision, language technologies, robotics, and automation.
AI Ethics, Bias & Social Impact
Analyze issues involving algorithmic bias, privacy, fairness, transparency, employment, and the responsible use of AI.
Emerging Computing Technologies
Explore how developments such as cloud computing, automation, robotics, and intelligent systems are changing technology and society.
Advanced Software Projects & Computational Problem Solving
Project Planning & Requirements
Define a software problem, identify user needs, establish requirements, and create a structured plan for development.
Collaborative Software Development
Work collaboratively by dividing responsibilities, coordinating tasks, reviewing code, and managing project timelines.
Full-Scale Programming Project
Develop a substantial computational artifact such as a web application, data application, game, simulation, automation tool, or other software solution.
Algorithm & Architecture Integration
Combine algorithms, data structures, functions, modules, libraries, and user interfaces into a complete software solution.
Testing, Refinement & Optimization
Test the completed project, identify weaknesses, improve functionality, and refine the solution based on evidence and feedback.
Project Documentation & Presentation
Document development decisions and communicate the project's purpose, design, implementation, results, and future improvements.
Capstone Problem Solving
Complete an advanced capstone project that demonstrates computational thinking, programming, debugging, data handling, and software development skills.
Teaching Methodology
Learning Outcomes
By the end of the course, students will be able to: