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.” C-STEM joins a distinguished group of programs with UC A-G Program Status. 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

## 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.

## Computer Programming for Solving Applied Problems

(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 G elective credit as a College-Preparatory Elective in Math and Computer Science.** Teaching resources contain robotics activities.

*A-G approved course outline*

## 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 C/C++. 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.

The online version of the course, suitable for distance learning, can be found here.

*** Approved with G elective credit as a College-Preparatory Elective in Math and Computer Science.
**

*A-G approved course outline*

## AP Computer Science Principles

**(Stating in 2020-2021)**

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.

## Robotic Technologies

(CALPADS Course Code 4647)

This course introduces students 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.

*** To-be-Approved with G elective credit as a College-Preparatory Elective in Math and Computer Science.**

## 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 G elective credit as a College-Preparatory Elective in Math and Computer Science.**

## 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 G elective credit as a College-Preparatory Elective in Math and Computer Science.**

## Principles and Design of Cyber-Physical Systems

(Pilot in 2015-2016)

Cyber-physical systems (CPS) are engineered systems that are built from, and depend upon, the seamless integration of computational algorithms and physical components. This course gives students an introduction to Cyber-Physical Systems using CPSkit. CPSkit is a versatile robot kit, specially designed to teach principles and design of cyber-physical systems. Students can build a two-wheel robot and other cyber-physical systems with CPSkit using off-the-shelf components and 3D printed parts. The system is controlled by a Raspberry Pi microcomputer and an Arduino microcontroller with a breadboard for connecting electronic parts without soldering. All mechanical components of the CPSkit can be 3D printed. The system can also be connected with other robotics components such as Linkbot and Lego Mindstorms NXT or EV3 robots for various applications. CPSkit can be controlled conveniently through a user-friendly C/C++ interpreter Ch. 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 learn design thinking by using the CPSkit to build their own CPS. The hands-on CPS curriculum will excite students’ imagination and foster their interest in computing and cyber-physical systems, as well as allow them to join the Maker Movement. The course includes the following eight units: Computer Programming in Raspberry Pi in RoboBlockly and Ch/C/C++, Electronics in Arduino and Raspberry Pi, Mathematical Modeling, Engineering Design, Programming CPSbot, Communication, optional 3D Modeling and 3D Printing, and RoboPlay Video Competition with CPS.

*** Approved with G elective credit as a College-Preparatory Elective in Math and Computer Science.
**

## 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.