California Coding Studies — Grade 11
Comprehensive Course Syllabus
Course Overview
The California Grade 11 Coding Studies course is designed as an advanced computer science enrichment program based on California’s Computer Science Standards for Grades 9–12. Students develop advanced programming, algorithm design, data analysis, software engineering, cybersecurity, artificial intelligence, and computational problem-solving skills. The course emphasizes building practical software, evaluating algorithms, working with data, developing secure and responsible technology solutions, and understanding the broader impact of computing.
Advanced Algorithms & Computational Thinking
Computational Problem Decomposition
Break complex real-world problems into smaller, manageable computational problems that can be solved systematically.
Advanced Algorithm Design
Design algorithms using logical steps, conditions, repetition, abstraction, and appropriate data structures.
Algorithm Analysis
Compare different algorithms and examine their efficiency, scalability, and suitability for different problems.
Searching & Sorting Algorithms
Explore common searching and sorting approaches and understand how they organize and retrieve information.
Recursion & Problem Solving
Understand how a problem can be solved by breaking it into smaller versions of itself using recursive approaches.
Abstraction & Generalization
Create reusable computational solutions by identifying common patterns and separating essential ideas from unnecessary details.
Advanced Programming & Software Design
Advanced Variables & Data Structures
Work with structured data using arrays, lists, dictionaries, objects, and other appropriate data structures.
Control Structures
Use conditions, loops, nested structures, and compound logic to control program behavior.
Functions & Modular Programming
Design reusable functions and divide large programs into logical modules that are easier to understand and maintain.
Object-Oriented Programming
Explore classes, objects, properties, methods, inheritance, and encapsulation as approaches to organizing larger software systems.
APIs & Software Integration
Understand how programs communicate with external services and use APIs to integrate additional functionality and information.
Software Architecture
Plan the structure and interaction of different software components before implementing a larger application.
Data, Databases & Computational Analysis
Data Representation
Understand how computers represent, store, process, and communicate different forms of information.
Data Collection & Preparation
Collect, organize, clean, and prepare data so it can be analyzed or used by computational systems.
Databases & Structured Data
Understand how databases organize information and learn the fundamentals of storing, retrieving, and updating structured data.
Data Analysis & Visualization
Use computational tools to analyze datasets, identify patterns, and communicate findings through charts and visualizations.
Data-Driven Decision Making
Use evidence from datasets to identify trends, compare alternatives, and support informed decisions.
Data Privacy & Responsible Data Use
Understand the importance of protecting personal information and using collected data responsibly.
Debugging, Testing & Software Engineering
Advanced Debugging
Use systematic techniques to identify the source of complex programming errors and develop reliable solutions.
Software Testing
Create test cases and testing strategies to determine whether software behaves correctly under different conditions.
Error Handling & Reliability
Design programs that respond appropriately to unexpected inputs, failures, and runtime problems.
Code Review & Quality
Evaluate code for readability, efficiency, maintainability, correctness, and potential weaknesses.
Documentation & Technical Communication
Create clear documentation that explains program functionality, design decisions, usage instructions, and important limitations.
Software Development Lifecycle
Explore planning, requirements, design, development, testing, deployment, maintenance, and improvement throughout a software project.
Cybersecurity, Networks & Ethical Computing
Computer Networks
Understand how devices communicate through networks and how information moves between connected systems.
Internet & Web Technologies
Explore fundamental technologies that support websites, web applications, online services, and Internet-based communication.
Cybersecurity Threats
Identify common security threats such as malicious software, phishing, unauthorized access, and other attacks.
Secure Programming
Apply security-conscious programming practices to reduce vulnerabilities and protect software and data.
Authentication, Privacy & Access Control
Understand concepts such as authentication, authorization, permissions, and responsible management of digital identities.
Ethics & Social Responsibility
Examine privacy, security, intellectual property, digital responsibility, algorithmic decisions, and the social consequences of computing.
Artificial Intelligence & Emerging Technologies
Artificial Intelligence Fundamentals
Understand the basic ideas behind artificial intelligence and how computational systems can perform tasks that require intelligent decision-making.
Machine Learning Concepts
Explore how computers can learn patterns from data and use those patterns to make predictions or classifications.
Data & AI Models
Understand the relationship between training data, computational models, predictions, and the quality of AI-generated results.
AI Applications
Explore applications of AI in areas such as healthcare, education, business, transportation, entertainment, and scientific research.
Bias, Fairness & Responsible AI
Analyze how data and algorithmic choices can introduce bias and examine principles for developing more responsible AI systems.
Emerging Computing Technologies
Explore developments such as cloud computing, automation, intelligent systems, connected devices, and other emerging technologies.
Advanced Software Projects & Computational Problem Solving
Software Project Planning
Identify a problem, understand user requirements, define project goals, and create a development plan.
Application Development
Design and build a practical software application that combines programming, data, algorithms, and user interaction.
Collaborative Software Development
Work in teams using project roles, shared development practices, code review, communication, and task management.
Version Control & Project Management
Understand the fundamentals of tracking code changes, managing versions, organizing tasks, and coordinating software development.
User Testing & Iterative Improvement
Collect user feedback, identify problems, test solutions, and continuously improve the software product.
Final Capstone Project
Design, develop, test, document, and present a complete computational project that demonstrates advanced programming and problem-solving skills.
Project Presentation & Reflection
Present the final project, explain technical and design decisions, demonstrate functionality, and evaluate opportunities for future improvement.
Teaching Methodology
Learning Outcomes
By the end of the course, students will be able to: