## C-STEM High School Curriculum

A-G courses fulfill subject requirements for freshman admission to the University of California and California State University systems and are so-called because there are seven general subject areas labeled “A” through “G.” The A-G approved C-STEM courses at the UCOP web site are described below and they can readily be added in a high school’s A-G course list. All these courses can be integrated into the school existing curriculum or offered in a sequence of C-STEM ICT Pathway.

Please see the Adding Program Courses Info Sheet for more information on how to add C-STEM courses through the UCOP’s website.

For information on the materials needed to implement each of these courses, please see our Course Materials Handout.

Course Descriptions can be found below.

High School Math Courses

#### Math Lab with Coding and Robotics

The course guides students through topics related to Science, Technology, Engineering, Art, and Mathematics (STEAM) utilizing Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking with Computer Science standards, NGSS standards, and CTE ICT standards. Students use drag-and-drop visual programming and computing in C to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Math topics covered include arithmetic operations (with whole numbers, fractions, and decimals), ratios, proportions, solving one-variable equations with single and multiple steps, absolute value equations and inequalities, linear equations, systems of linear equations, exponential functions, polynomial functions, step and piecewise functions, geometric transformations (including translations, rotations, and reflections), probability, statistical data analysis, and visualization. Robotics activities allow students to engage with physically derived mathematical problems to visualize situations, associate linear and quadratic graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming.

*** ****UCOP Approved with C Math credit**** as a Computer Science Discipline while focusing on Mathematics.**

#### Algebra 1 with Computing

This course guides students through topics in Algebra 1 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include solving one-variable equations with multiple steps, solving and plotting absolute value equations and inequalities, linear equations, systems of linear equations and inequalities, polynomial functions, exponential functions, and step and piecewise functions, evaluating, multiplying, and factoring polynomial functions, solving quadratic equations with applications, probability, statistical data analysis and visualization, and arithmetic and geometric sequences. Group computing projects allow students to collaborate on critical thinking activities based on algebraic topics while developing their teamwork and communication skills.*** Approved with C math credit.** Teaching resources contain optional robotics activities.

A-G approved course outline

#### Algebra 1 with Computing and Robotics

The course guides students through topics in Algebra 1 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include solving one-variable equations with multiple steps, solving and plotting absolute value equations and inequalities, linear equations, systems of linear equations and inequalities, polynomial functions, exponential functions, and step and piecewise functions, evaluating, multiplying, and factoring polynomial functions, solving quadratic equations with applications, probability, statistical data analysis and visualization, and arithmetic and geometric sequences. Robotics activities allow students to reenact physically derived mathematical problems through robotics technologies to visualize situations, associate linear and quadratic graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming.*** Approved with C math credit**. Teaching resources contain robotics activities.

A-G approved course outline

#### Algebra 1 with Computing and Robotics Honors (C-STEM)

The course guides students through topics in Algebra 1 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include solving one-variable equations with multiple steps, solving and plotting absolute value equations and inequalities, linear equations, systems of linear equations and inequalities, polynomial functions, exponential functions, and step and piecewise functions, evaluating, multiplying, and factoring polynomial functions, solving quadratic equations with applications, probability, statistical data analysis and visualization, and arithmetic and geometric sequences. Robotics activities allow students to reenact physically derived mathematical problems through robotics technologies to visualize situations, associate linear and quadratic graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming. A unit on sensor-based robotics for algebraic applications & measurements and RoboPlay Video Competition will provide students with solid foundation for subsequent advanced math courses.*** Approved with C math credit**. Teaching resources contain robotics activities.

#### Geometry with Computing and Robotics

The course guides students through topics in Geometry in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking.

Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include applications using area and perimeter, parallel and perpendicular lines, transformations, congruent triangles, quadrilaterals and other polygons, similarity, right triangles and trigonometry, coordinate proofs, circles, circumference, area, volume, and probability. Robotics technology will be used to introduce and expand upon the areas of study listed above. Robotics activities allow students to reenact physically derived mathematical problems to visualize situations, associate graphs with physical phenomenon, apply geometric and trigonometric properties and solve, and solve robotics problems through mathematical modeling and programming.*** Approved with C math credit**. Teaching resources contain robotics activities.

#### Geometry with Computing and Robotics Honors (C-STEM)

The course guides students through topics in Geometry in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking.

Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include applications using area and perimeter, parallel and perpendicular lines, transformations, congruent triangles, quadrilaterals and other polygons, similarity, right triangles and trigonometry, coordinate proofs, circles, circumference, area, volume, and probability. Robotics technology will be used to introduce and expand upon the areas of study listed above. Robotics activities allow students to reenact physically derived mathematical problems to visualize situations, associate graphs with physical phenomenon, apply geometric and trigonometric properties and solve, and solve robotics problems through mathematical modeling and programming. A unit on sensor-based robotics for simultaneous localization and lapping (SLAM) and RoboPlay Video Competition will provide students with solid foundation for subsequent advanced math courses.*** Approved with C math credit**. Teaching resources contain robotics activities.

#### Algebra 2 with Computing and Robotics

The course guides students through topics in Algebra 2 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Students focus on applying methods from probability and statistics to draw inferences and conclusions from data, expanding understanding of functions to include square roots, cube roots, absolute values, piecewise, step, polynomial, exponential, rational, radical, logarithmic, and trigonometric functions. Robotics technology will be used to introduce and expand upon the areas of study listed above. Robotics activities allow students to reenact physically derived mathematical problems to visualize situations, associate linear and exponential graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming.*** Approved with C math credit**. Teaching resources contain robotics activities.

#### Integrated Mathematics 1 with Computing

The course guides students through topics in Integrated Mathematics 1 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include solving one-variable equations with multiple steps, solving and plotting absolute value equations and inequalities, linear equations, systems of linear equations and inequalities, exponential functions, statistical data analysis and visualization, arithmetic and geometric sequences, and geometric transformations, including translations, rotations, and reflections, and geometric construction. Group computing projects allow students to collaborate on critical thinking activities based on mathematics topics while developing their teamwork and communication skills.*** Approved with C math credit.** Teaching resources contain optional robotics activities.*A-G approved course outline*

#### Integrated Mathematics 1 with Computing and Robotics

The course guides students through topics in Integrated Mathematics 1 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include solving one-variable equations with multiple steps, solving and plotting absolute value equations and inequalities, linear equations, systems of linear equations and inequalities, exponential functions, statistical data analysis and visualization, arithmetic and geometric sequences, and geometric transformations, including translations, rotations, and reflections, and geometric construction. Robotics activities allow students to reenact physically derived mathematical problems through robotics technologies to visualize situations, associate linear and exponential graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming.*** Approved with C math credit.**Teaching resources contain robotics activities.*A-G approved course outline*

#### Integrated Mathematics 1 with Computing and Robotics Honors (C-STEM)

The course guides students through topics in Integrated Mathematics 1 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include solving one-variable equations with multiple steps, solving and plotting absolute value equations and inequalities, linear equations, systems of linear equations and inequalities, exponential functions, statistical data analysis and visualization, arithmetic and geometric sequences, and geometric transformations, including translations, rotations, and reflections, and geometric construction. Robotics activities allow students to reenact physically derived mathematical problems through robotics technologies to visualize situations, associate linear and exponential graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming. A unit on sensor-based robotics for algebraic applications & measurements and RoboPlay Video Competition will provide students with solid foundation for subsequent advanced math courses.*** Approved with C math credit.**Teaching resources contain robotics activities.

#### Integrated Mathematics 2 with Computing and Robotics

The course guides students through topics in Integrated Mathematics 2 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include recognizing and developing patterns using tables, graphs and equations. Mathematical modeling is stressed as a methodology for approaching the solution to problems. Students will explore operations on algebraic expressions, and apply mathematical properties to algebraic equations. Students will problem solve using equations, graphs and tables and investigate linear relationships, including comparing and contrasting options and decision-making using algebraic models. Reinforcement of topics from two- dimensional geometry is integrated into this curriculum. This includes applications from the areas and perimeters, the Pythagorean Theorem and its applications, as well as geometric proportion. Finally, introductory instruction in the area of mathematical probability is provided to reinforce numerical modeling. Robotics technology will be used to introduce and expand upon the areas of study listed above. Robotics activities allow students to reenact physically derived mathematical problems to visualize situations, associate linear and exponential graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming.*** Approved with C math credit**. Teaching resources contain robotics activities.

#### Integrated Mathematics 2 with Computing and Robotics Honors (C-STEM)

The course guides students through topics in Integrated Mathematics 2 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Topics covered include recognizing and developing patterns using tables, graphs and equations. Mathematical modeling is stressed as a methodology for approaching the solution to problems. Students will explore operations on algebraic expressions, and apply mathematical properties to algebraic equations. Students will problem solve using equations, graphs and tables and investigate linear relationships, including comparing and contrasting options and decision-making using algebraic models. Reinforcement of topics from two- dimensional geometry is integrated into this curriculum. This includes applications from the areas and perimeters, the Pythagorean Theorem and its applications, as well as geometric proportion. Finally, introductory instruction in the area of mathematical probability is provided to reinforce numerical modeling. Robotics technology will be used to introduce and expand upon the areas of study listed above. Robotics activities allow students to reenact physically derived mathematical problems to visualize situations, associate linear and exponential graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming. A unit on sensor-based robotics for simultaneous localization and lapping (SLAM) and RoboPlay Video Competition will provide students with solid foundation for subsequent advanced math courses.*** Approved with C math credit**. Teaching resources contain robotics activities.

#### Integrated Mathematics 3 with Computing and Robotics

The course guides students through topics in Integrated Mathematics 3 in Common Core State Standards for Mathematics while simultaneously teaching students programming and computational thinking. Students use programming in C/C++ interpreter Ch to reinforce and extend their knowledge of mathematical concepts by analyzing real life situations, identifying given information, formulating steps that a computer program could calculate to find a solution, analyzing the results for accuracy, and revising/modifying the programming solutions as necessary. Students focus on applying methods from probability and statistics to draw inferences and conclusions from data, expanding understanding of functions to include square roots, cube roots, absolute values, piecewise, step, polynomial, exponential, rational, radical, logarithmic, and trigonometric functions, expanding right triangle trigonometry to include general triangles, and consolidating functions and geometry to create models and solve contextual problems. Robotics technology will be used to introduce and expand upon the areas of study listed above. Robotics activities allow students to reenact physically derived mathematical problems to visualize situations, associate linear and exponential graphs with physical phenomenon, predict and identify key features of the graphs with robotic systems, and solve robotics problems through mathematical modeling and programming.*** Approved with C math credit**. Teaching resources contain robotics activities.

High School CS and CTE ICT Courses

**Computer Science with Robotics**

Suggested Introductory Course for CTE ICT Pathway

Computer Science with Robotics (CSR) introduces high school students to the working principles and foundations of computer science through robotics. Students learn to control robots using both block-based programming and text-based programming in C. Virtual and hardware robots are used as platforms to engage students in personalized and collaborative learning of computer science integrated with science, technology, engineering, art, and math (STEAM) concepts. The course emphasizes hands-on robotics activities with a focus on human-computer interaction, computational thinking, and data analysis. It prepares students for solving math problems through coding. With creative design and extensive project-based activities, students develop critical thinking, problem solving, effective communication, and teamwork skills.

*** A-G Approved with D science credit.**

**AP Computer Science Principles with Robotics**

Suggested Concentrator Course for CTE ICT Pathway**(Starting in 2022-2023)**

Using virtual robots and *optional *hardware robots, this year-long course introduces students to computer science principles aligned with the College Board’s AP CS Principles course and prepares them for the corresponding AP exam. In the first part of the course students use RoboBlockly, an online integrated learning environment that uses block-based programming to introduce key principles, themes, and structures in computer science and robotics. In the second part of the course students transition from block-based programming to text-based programming using the C/C++ interpreter Ch as a platform. Throughout the course students learn computational thinking and software development for practical applications, including number systems, data types, arrays, lists, iteration, selection, functions, sound, images, animation, and simulations. Students will also explore the working principles of the internet, visualization of data, cyber-security, and the impacts and limits of computing. The course concludes with a final design and development project that satisfies the AP Performance Task requirement.

#### Computer Programming for Solving Applied Problems

Suggested Concentrator Course for CTE ICT Pathway

(CALPADS Course Code 4619)

This course provides students with the fundamental knowledge of computer programming for solving applied problems in C. Students learn how a computer works and structured programming in C for software development. The topics include programming constructs, data types and declaration of variables, expressions and operators, selection statements, repetition, flowcharts for algorithm development, functions for modular programming, arrays for statistical data analysis, plotting for visualizing data (using scatter plot, dot plot, bar graph, histogram, Box-and-Whisker plot, etc.), linear regression and curve fitting, processing data files, animation, robotics applications, and applications in math and science. The emphasis of the course is to introduce the students to software development concepts. This course also focuses on algorithm development and computer programming for solving applied problems in science, technology, engineering and math (STEM), such as solving problems in Algebra and robotics. Considerable attention is devoted to program design, task decomposition, testing, debugging, and software reuse. Students write computer programs with graphical plotting in an integrated development environment. Through problem-based projects, students develop critical thinking, problem solving, computational thinking, effective communication, and teamwork skills.

*** Approved with D science credit.** Teaching resources contain robotics activities.*A-G approved course outline*

**Robotic Technologies**

Suggested Capstone Course for ICT CTE Pathway

(CALPADS Course Code 4647)

This course expands students knowledge of the working principles and foundational knowledge of robotics. Students learn to control a single robot and multiple robots by graphical user interface, pose teaching, and object-oriented programs in C++. Students write robotics programs to perform various tasks based on the sensory information of the robot. Students also learn math and physical sciences with robotics. Through hands-on problem-based projects, students develop critical thinking, problem solving, effective communication, and team work skills. Robots are used as platforms to engage students on collaborative learning of science, technology, engineering, and math. This course emphasizes hands-on robotics activities with a concentration on algorithm development with robot sensors for solving problems in math and science. As term projects, students will participate in regional and statewide C-STEM RoboPlay Video and/or Challenge Competitions, which not only enhance their learning of robotics, math, and engineering, but also allow them to explore their creativity in writing, art, music, choreography, design, video editing, and film production. Through these project-based team activities, students develop critical thinking, problem solving, effective communication, and teamwork skills.

*** Approved with D science credit.**

**Computing with Robotics**

This course introduces students to the working principles and foundational knowledge of robotics. Students learn to control a single robot and multiple robots by graphical user interface and computer programs in RoboBlockly. Students write robotics programs to perform various tasks based on the sensory information of robots. Robots are used as platforms to engage students in both personalized and collaborative learning computing, science, technology, engineering, and math concepts. This course emphasizes hands-on robotics activities with a concentration on mathematical modeling and computer programming for solving problems in math and science. As term projects, students will participate in regional and statewide C-STEM RoboPlay Video and/or Challenge Competitions, which not only enhance their learning of robotics, math, and engineering, but also allow them to explore their creativity in writing, art, music, choreography, design, video editing, and film production. Through these project-based team activities, students develop critical thinking, problem solving, effective communication, and teamwork skills.

*** Approved with D science credit.***A-G approved course outline*

**Physical Computing with Arduino**

This one-semester course provides students with the fundamental knowledge of physical computing and making. Students learn how a computer works and structured programming in C for software development for interfacing electronics and sensors using Arduino, a low cost microcontroller board. The topics include programming constructs, data types and declaration of variables, expressions and operators, selection statements, repetition, plotting for visualizing data, real-world application projects. The emphasis of the course is to introduce the students to software development concepts for interface with hardware using Arduino. Students learn how to program Arduino with a user-friendly graphical user interface (GUI) ChDuino and C/C++ interpreter Ch. Students also learn basics of electronics and how Arduino responds to sensors using enlightening examples. Then, students design and build more fun prototypes based on their imagination as team projects. At the end, student teams present their projects.

*** Approved with D science credit.**

**Physical Computing with Pi and Arduino**

This one-semester course provides students with the fundamental knowledge of physical computing and making. Students learn how a computer works and structured programming in C for software development for interfacing electronics and sensors using ultra-low-cost computers of Arduino and Raspberry Pi (Pi). The topics include programming constructs, data types and declaration of variables, expressions and operators, selection statements, repetition, functions for modular programming, arrays for statistical data analysis, plotting for visualizing data, processing data files, real-world application projects. The emphasis of the course is to introduce the students to software development concepts for interface with hardware using Arduino and Pi. Students learn how to program Arduino and Pi with a user-friendly graphical user interface (GUI) ChDuino and GPIOviewer, and C/C++ interpreter Ch, as well as Arduino IDE. Students also learn basics of electronics and how Arduino responds to sensors using enlightening examples. Then, students design and build more fun prototypes based on their imagination as team projects. At the end, student teams present their projects.

*** Approved with D science credit.**

**Computer-Aided Design in Autodesk Inventor and 3D Printing (Supplementary)**

This curriculum introduces computer-aided design with Autodesk Inventor to create accessories and parts for the Linkbot using a 3D printer. The curriculum can be used stand alone. It is also appropriate for use in conjunction with the C-STEM Computing with Robotics, and other existing engineering curriculum in schools.

**Computer-Aided Design in SolidWorks and 3D Printing (Supplementary)**

This curriculum introduces computer-aided design with SolidWorks to create accessories and parts for the Linkbot using a 3D printer. The curriculum can be used stand alone. It is also appropriate for use in conjunction with the C-STEM Computing with Robotics, and other existing engineering curriculum in schools.

**Introduction to Computer Programming for Engineering Applications (a UC Davis Engineering Course)**

This course introduces students to structured programming in C. Many algorithms for computer-aided problem solving are developed throughout the course to solve practical problems in engineering and science. The topics include number systems with internal representations of binary, octal, decimal, and hexadecimal numbers as well as binary two’s complementary representation; limitations and numerical accuracy of different data types; 32-bit and 64-bit programming models; unary, binary, and ternary operators; selection statements for making decisions; iterative statements for repetitions; modular programming and code reuse; storage classes; arrays for data processing; pointers; dynamical memory allocation and deallocation; ASCII Code; characters and strings; structures and enumerations; top-down and bottom-up design of large-scale software project; file processing; and computational arrays for matrices and linear algebra for engineering applications. Available through McGraw Hill.