UCCI Course Description

Abstract to Visual: Algebra 1 with Programming

Overview Course Content Course Materials
Length of Course
Full Year (2 semesters; 3 trimesters; 4 quarters)
Subject Area - Discipline
Mathematics (C) - Algebra I
UC Honors Designation
CTE Sector
Information and Communication Technologies
CTE Pathway
Software and Systems Development
Grade Level(s)
9 - 10


In this course, students make the abstract concrete by learning Algebra 1 in a software and systems development context. Through programming and designing multimedia projects, students are able to visualize the algebra 1 topics examined: linear functions, exponential functions, quadratic functions, and beginning statistical analysis. Students design, develop, implement, maintain, and manage software programs using a variety of platforms: Scratch, Bootstrap, Alice, Pencil Code, Squeak,  and/or Python and apply a Systems Development Process (either Systems Development Life Cycle or the Agile Computing Method) to projects throughout the course. By doing so, students develop the effective habits of mind stressed in Common Core algebra -- making sense of problems and persevere in solving them, reasoning abstractly and quantitatively, constructing viable arguments and critiquing the reasoning of others, modeling with mathematics, using appropriate tools strategically, attending to precision, looking for and making use of structure, and looking for and expressing regularity in repeated reasoning.  Students develop college and career readiness skills via collaboration, communication, critical thinking, constructing new knowledge, and creativity by transforming abstract thinking into concrete products using Algebra 1 within the context of software and systems development.

Course Content

Unit 1 : “Get to the Head of the Line”

Unit 1 Description

This first unit introduces students to the ICT standards of the Software and Systems Development Pathway as students explore, create and develop problem solving procedures focusing on linear functions and linear systems of equations.  Students begin to explore the use of Algebra as a tool to find multiple solution paths and model real situations through programming. Students develop code using a programming language to create, explore, and graph functions, including recursive and explicit linear functions.  Students also create a multimedia project that uses Algebra concepts to advertise a product. Students utilize the Systems Development Process as a problem solving tool throughout the unit.

Major Topics:

  • Write and solve equations
  • Equations of lines, slope and intercept
  • Write and graph functions
  • Create and extend arithmetic sequences
  • Setup and solve a system of equations
  • The Software/Systems Development Process
  • Use a programming language to create a program
  • Use spreadsheets, create animations and utilize multimedia to present a case

Assignment A:  Software development - “Algebra Building”

In this assignment, students learn the importance of following order in both math and programming by researching different methods of systems development process, such as Systems Development Life Cycle or the Agile Computing Method, to create code to extend their Algebra learning. After students have a general understanding of the development process, in groups, they begin by writing a program to solve a single step equation. As a group they also choose a systems development process and choose the steps of the development process they need in order to carry out revisions and add more complexity to the equation to be solved. Students continuously enhance their code as they move from solving x+b = c to a(x+b)-cx+d = e by adjusting/adding lines of code to address more complex equations.

Assignment B:  Animations - “Do x Again”

Using the same model of systems development they chose in Assignment A, students design, build and test arithmetic sequences. Students brainstorm real world math problems, such as travel time from point a to point b, simple interest, cost over time, that can be solved using arithmetic sequences and find the nth term to solve the problem. They then choose a 2-D modeling software (such as desmos, google sheets) or write their own program to visually represent the sequence using animation. Another option is to build their sequence with any manipulative or draw each term in the pattern then create a time lapse video to produce the animation. Students include a brief written explanation of how the visual representation is an example of an arithmetic sequence.
Visual Patterns example/website 

Assignment  C: Graphical representations - “What goes up (or down), must go right”

In this assignment, students begin by brainstorming and discussing possible examples of linear relationships, such as monthly membership plans or distance traveled over time. Based on real life examples of linear functions, students model functions graphically using an online graphing calculator (such as desmos.com) and/or write their own code for linear graphing and should again use their systems development process for this work. Students examine and explain in writing how the vertical change (up/down) and the horizontal change (movement to the right/left) are related to the y-values and x-values on the coordinate plane.  Students then use this concept to model for y=mx+b and explore and explain how changes in the slope, m, and y-intercept, b, will impact their lines using desmos or write their own code for linear graphing.

Assignment  D: Multimedia advertisement - “Let’s Find a Deal!”

Cycling through the systems development process, students individually research various memberships that have monthly fees (i.e, gym memberships, cell phone plans, cable/internet TV plans). Students input their data into the linear functions they created in Assignment C. Students that researched similar products then pair up and compare their data and create a program that determines  which membership/company has the best cost using a system of equations. Groups each create a multimedia project using screenshots of their results in google slides (or Prezi, Powerpoint, Screencast), to advertise the most cost effective membership/company. By completing this assignment, students are ready to solve linear systems of equations and write input/output programs. Additionally, in order to prepare for the course culminating project, students complete an electronic journal prompt after each unit and maintain an electronic portfolio, Algebra 1/ICT. Students create a google doc for this electronic journal and answer the following prompt.

Electronic Journal prompt:

How are equations of linear functions evident in programming? How does coding help you understand linear functions?

Unit 2 : Exponential Functions

Exponential Functions:

This unit introduces students to the idea that not all math is linear. They will compare and contrast linear and exponential functions through visual and computer models. Though not explicitly stated in each assignment, students should continue to use Software Development Lifecycle (SDLC) or Agile re-iterative process now applied to exponential contexts.  Students explore linear and nonlinear systems of equations as a method for finding solutions. Using appropriate tools strategically, students explore mathematical modeling through programming as part of the ICT pathway. Furthermore, students use the previously created code along with mathematical exponential modeling to solve relevant community problems.

Major Topics:

  • Compare and contrast linear and exponential functions.
  • Apply technology to enhance productivity.
  • Understand translations of exponential functions.
  • Demonstrate creativity and innovation.
  • Appropriate models for exponential contexts.

Assignment A:  Slideshow of Two Functions and a Constant “How I want to Be Paid!”

Comparing linear and exponential functions, students decide which method to choose within different situations by comparing different types of functions and the days they worked. For example, students compare three different models for daily wages: a constant of  $100.00 per day, a linear model representing $5.00 per day times the number of days worked, and an exponential model representing starting with 2 pennies the first day and double the pay each day of work. Additionally, students decide which pay method they would choose.  Students justify their decisions for which method of pay they would choose for the first day, second day, third day, …100th day? In groups, student apply the appropriate digital tools strategically, such as GeoGebra and spreadsheets, to represent each pay-type using a graphing representation.  Students prepare and present their evidence of prefered payment using justification.

Assignment B:  Dynamic Visuals - “How Fast Is Fast?”

Students create dynamic visual representations that illustrates an exponential growth or decay model. This can be done with a simple video game, an automated graphing program or some other form of dynamic display.  Students start first with a storyboard to explain the situation they will model and how they plan to visualize the exponential growth or decay from their model. The storyboard should include the sequence of events, the mathematical model (equation), the characters that represent growth or decay, and the component (catalyst) in the game that causes the growth or decay.   

Each dynamic display must allow a user the ability to modify the values of a, b, h and k of the function f(x)=ab^(x+h)+k to see how a population grows or shrinks. The dynamic output will identify and describe the effect of the variables used in their visual model as part of their story. Through this dynamic project, the user will be able visualize variations of an exponential model through technology to illustrate the translation of an exponential function.

Assignment C.  Programming Solutions to a Community Problem  “Flu Outbreak”

Everyone gets ill. Students research various outbreak models from websites such as Centers for Disease Control(CDC) and World Health Organization(WHO) to see how exponential models can illustrate the spread of disease.  Building on the previous assignment of the exponential growth and decay functions, students collaborate and use mathematical modeling and computer programing to create an exponential model for a flu outbreak. The teacher creates various outbreak models with multiple data points. Beginning with only a few of teacher provided points for a model, students create a code to find when patient zero was infected (i.e. the first day of the outbreak).  Students explain how their code found the first day of infection. After the students’ programs are created, the teacher then provides additional data points from the teacher created model. Students incorporate the new data and explain if those additions change the timing of “patient zero’s” infection or the rate the infection spread. Students then discuss how their program to find patient zero could be used by medical professionals and/or drug companies to solve an epidemic.  

Electronic Journal Prompt:

How are exponential functions used as modeling in programming? How has programming with exponential models helped you learn how exponential models work. How does coding help you understand exponential functions? When programs add more features how does that affect the coding?


Unit 3 : Quadratic Functions

Students compare key features of quadratic functions to those of linear and exponential functions they’ve learned in previous units. They learn and apply programming concepts including properties, methods, procedures, functions, parameters, and variables to deepen and extend  students’ understanding of quadratic functions. Students create programs and multimedia animations that explore characteristics and solutions of quadratic functions graphically and connect algebraic representations. Students use proper programming language syntax to create functions, tables, graphs, and a physics modeling tool to visualize quadratic growth and projectile motion. As students strengthen their ability to see structure in and create quadratic expressions, they continue to use the SDL/ Agile re-iterative process to evaluate results against initial requirements.

Major Topics:

  • Vertex Form of Quadratics
  • Solving Quadratics
  • Factoring Quadratics
  • Completing the Square
  • Graphing Quadratics
  • Develop Software programs using programming language, such as WeScheme.
  • Document development work for various audience, such as comments for other programmers, and manuals for users.
  • Use strategies to optimize code for improved performance
  • Apply concepts of embedded programming, machine-level representation of data
  • Implement mathematical modeling

Assignment A: Computer Program “Blast Off with Coding Quadratics”  

Extending their work in previous units with linear equations, students write two separate programs that model a rocket’s speed using, linear and quadratic functions. The emphasis is on exploring quadratic functions and comparing and contrasting them to linear models. Utilizing the WeScheme, Scratch, or another programming environment, students write a program using appropriate syntax to get a rocket to blast off and escape the orbit of the earth. This function/procedure should take in the number of seconds that have passed as an input variable that then outputs the height of the rocket. Students write the program initially with given information that the rocket is traveling at fixed speed: for example, 7 meters per second, which represents a linear model. Students then explore and test what happens when the input is squared and discuss how this is a quadratic function and how the speed increases faster when compared and contrasted to the inputs of the speed of the rocket’s linear model. Students create graphs, input/output tables, and write the equation of the two models using Desmos, Google Sheets and/or other tools, to explain how the quadratic models a faster rocket.

Assignment B: Screencasting “Exploring Parabola Sliders”

In order to understand and  interpret expressions for various quadratic functions in vertex form, f(x) = a(x-h)2 + k, students create an interactive graph with animation sliders. Students use the parameter “a” to demonstrate the “vertical stretch/compression” on a parabola. They also code animation sliders for parameters ”h” and “k”(vertex) to demonstrate the translation of a graph from the parent function f(x) = x2  to other quadratics. Students label points, including any intercepts, on the function to help demonstrate the transformations using vertex form of a quadratic function.  Students draw conclusions and present their findings by creating a screencast to summarize orally and demonstrate understanding of the key features they discovered while exploring the graphs of a quadratic functions.

Assignment C: Code Breaking Poly

Building upon the key features of quadratic functions, students focus on the strategic thinking and procedural understanding of factoring and completing the square.  Utilizing a coding platform, students design an algorithmic program that will go through a procedure to discover the best method of solving a quadratic equation in standard form,  f(x) = ax2 + bx + c, when “a” is non-zero integer.  The program inputs are only a, b, and c. The output is the original equation, the method used, and the solutions. In addition, students check to see if the solutions are real using the discriminant, then subsequent checks will determine the best approach.  Finally, students need to order the different checks for each method in such a way so that each method can be used without user specification.

Assignment D: Projectile Motion Modeling - Research & Multimedia Presentation

Students collaborate in teams and use the Physics Modeling tool, Tracker, to research their own quadratic equation using projectile motion. Teams will create a video of a situation where they are “tossing” an object up in the air in different contexts (shooting basketball at a hoop, soccer ball to a goal, etc..) and import the video(s) into the Tracker program to find their quadratic equation that models their projectile motion. Students explore and research different forms of a quadratic equation (standard, vertex form) to make connections and identify key features and points(vertex, intercepts, max/min, concavity). They will also create models of their quadratic equation using spreadsheet software and the Desmos calculator to show multiple representations. Students will document and present their findings using any presentation software.

Assignment E: Powerful Vision of Law of Exponents

In this project students extend their investigation of x2  by exploring what happens for xn.  Students adapt previous code code to graph y=xn. Their code should allow for decimal and negative exponents (fractions will be input as a decimal), understanding that they may need to develop a procedure to deal with 1/0 for negative exponents. Students will then go deeper and show how various laws of exponents work, such as (ab)x = axbx and common misconceptions, such as (a+b)x is not ax+bx by graphing all three exponential models at the same time and comparing the data values generated from the graphs.

Electronic Journal Prompt:

How do digital tools improve our understanding of mathematics models?

Unit 4 : Interpreting Categorical and Quantitative Data

In this unit, students build on the computer science skills learned exploring linear, exponential and quadratic functions, to explore statistical models. Students create surveys to gather both quantitative and qualitative data sets to analyze throughout this unit and explore various data distributions based on their data, including multi-variable relationships and measures of central tendency.

Students continue to apply variables, conditionals, loops and arrays/lists to further apply and extend their programming skills. Central to the assignments in this unit is a student-created survey designed to gather data about the students in the class.  Students use a computer to visualize and analyze the results from their survey questions in order to arrive at conclusions about the class as a whole, then present their findings to their classmates. In summary, students utilize the computer as a tool for displaying, analyzing and deriving conclusions from data.

Major Topics:

  • Numerical Summaries of Data - Measures of Center and Spread
  • Graphical Summaries of Data - Histograms, Dotplots, Stemplots, Boxplots
  • Construct Two-Way Tables from Categorical Data
  • Scatterplots and Linear Regression from Two Quantitative Variables
  • Create effective interfaces between humans and technology
  • Develop software using programming languages
  • Integrate a variety of media into development projects
  • Variables - Particularly counters and accumulators
  • Selection Structures - If-Then, If-Then Else
  • Repetition Structures - Repeat/For Loops
  • Data Structures - Arrays/Lists

Assignment A: Survey Says!

In this assignment, students work in small groups of 2 or 3 to develop questions for a digital survey.  Students will gather/import data using Google Forms or other applications to be analyzed and displayed in order to assist with decision making using methods like cross tabulations, graphs, and charts in later assignments. In order to collect appropriate data for these assignments, each group must provide at least four survey questions - two quantitative and two categorical. The quantitative question should generate a numerical response that is in a reasonably small domain such as the typical number of hours they sleep each night or the number of members in their family. The categorical question must be one of a binary nature (two choices). Examples include “Do you prefer Coke or Pepsi?” or “Are you left-handed or right-handed?” The teacher will clear all questions for appropriateness and uniqueness.  Students then use a Google Form (or similar vehicle) to create an anonymous survey from all questions generated by the class so that the entire class (or school) can efficiently respond to the set of questions and easily obtain the survey data. The end product of this assignment is a spreadsheet containing the data gathered from the student surveys that have been administered. This data will then be analyzed in the subsequent assignments of this unit. Through analyzing and displaying data through a variety of digital tools, students are able to recognize the limitations and challenges inherent with the survey process.

Sample Google documents to facilitate the unit survey:

Assignment B: Results May Vary - Summarizing Univariate Data Sets 

Based on the collected and organized survey data of the previous assignment, each group analyzes and visualizes the data from one of their quantitative variables. In order to analyze the data, students write a computer program or use another digital tool such as a spreadsheet or website to create a dot plot, histogram or box plot of the data. Additionally, students use technology to provide a calculation of measures of center, such as median and mean as well as spread, including interquartile range and standard deviation of the data set. This analysis enables the students to learn the importance of graphical and numerical techniques in summarizing data. The goal is to observe patterns and deviations from patterns in the distribution of their chosen variables. The sample program linked below takes a list of data finding the minimum, maximum and mean and then displays the numerical data in a histogram. Scratch Project titled One-Var Stats Example 

Sample Online tools for Numerical Summaries of data:

Sample Online tools for Graphical Summaries of data:

Assignment C: By Comparison - Organizing Categorical Data into Two-Way Tables

After analyzing the collected quantitative data in previous assignments, students pair the categorical data from their categorical questions or, compare data with another group, and organize the resulting relationship into a two-way frequency table. The expected outcome is to compare and contrast the two categorical variables studied. For example, “Is there a difference in preference for Coke/Pepsi between left-handed and right-handed people?” Identifying and using the basic structures of databases, the data organization can be accomplished using a student-written computer program or by way of another digital tool such as a spreadsheet or document with a table. The sample program linked below takes a list of responses from two categorical survey questions and summarize them in a two way table; specifically, it compares gender vs dominant hand and breaks it into the four different groups that result. Two-Way Table generator sample from Scratch 

Assignment D: Making Connections - Analyzing Linear Relationships for Two Variables

In this assignment, students pair the data from their quantitative question with that of another group and use a handheld calculator, spreadsheet or web-based statistical tool to generate a scatterplot and a linear regression model. The expected outcome is that each group determines an approximate linear relationship between the two variables using least-squares regression: for example, “How are student’s hours of sleep related to grade point average?” Sample websites that can be used to perform the scatterplot and regression operations are listed below.

Electronic Journal Prompt:

How does technology improve our ability to understand data?

Assignment E: Culminating Project - Symposium on Visual to Abstract

In order to draw conclusions on students’ findings on how programming is related to Algebra 1, students invite community members, such as local ICT entrepreneurs), city council members, potential employers, students, administrators, parents, and teachers and present their findings to the following prompt: How is programming related to Algebra One, Visual to Abstract? Within the context of college and career readiness, students present their findings on how programming is related to Algebra 1 and beyond by discussing findings from their electronic journals and projects from the year that represent their learning.

Course Materials

Primary Texts:

Title: Algebra 1 (or district approved text)
Edition: Eighth
Publication Date: 2008
Publishers: McDougal Littell
Authors: Larson, Boswell, Kanold, & Still

Title: Scratch Programming for Teens
Publication Date: 2009
Publishers: Course Technology, Cengage Learning
Authors: Jerry Lee Ford, Jr.

Title: Scratch 1. 4, Beginners
Publication Date: 2009
Publishers: Publishing, Birmingham-Mumbai
Authors: Michael Badger


Supplemental Instructional Materials:


Pencilcode Manual 

Pencil Code Primer 

Pencil Code Quick Reference 




Visual Patterns 

Visual Patterns tribute in Desmos 



Stay informed with key updates from UC High School Articulation!
Sign up for our monthly e-newsletter!