This syllabus is the full course, designed as a one-semester college course, with all of the links and resources you need listed here in order. Most of this course will involve videos and Google Colaboratory notebooks. As you go throught each part of this course in sequence, watching each video and working through each Colab notebook, you will gain a full understanding of Algebra and how to write Python code to solve your Algebra problems. Throughout this course, you will also build your own Algebra notebook that you will be able to use as your custom super calculator. This course (and the code you write here) will give you the foundation for deeper math, including data science.
Some videos will reference problems from textbooks, so here are the two textbooks we will use:
- Business Math, a Step-by-Step Handbook (2021) by Jean-Paul Oliver
Link to the online PDF you can download - Algebra and Trigonometry by Jay Abramson
Link to the online PDF you can download
Your journey begins here as you learn the math, learn the code, and build your notebook. After the videos, you will see links to the Google Colab notebooks used in those videos. Copy and use whatever code you need to enhance your notebook. This first video includes an introduction to the course, how it will work, and how to use Google Colaboratory. The math and code content will come next.
Question:
When adding text in Google Colab, what symbol would you use to create a heading that will appear in the table of contents?
__ *
__ #
__ @
__ %
Now we get to the math content. This video will show you how to set up and solve proportions and write code to solve for variables.
Question:
In solving a proportion, if one numerator is zero, does the other numerator have to be zero for the statement to be true?
__ yes
__ no
__ sometimes
This is the Colab notebook to go along with the video. If you have not done it yet, set up your Algebra Colab notebook and add the following code to it.
Run the next Colab notebook to practice solving proportions. As a bonus, take a look at the code that creates these practice problems.
Assignment: practice in Colab notebook
This next video will show you how to use proportions in other applications, such as currency exchange rates and unit conversion. It will also show you more about setting up your notebook and working throught the practice assignment.
video 3 - extra problems and applications
Question:
What is another way to write 0.9999... (repeating decimal)?
__ 99 percent
__ You can't get an exact answer
__ 1
__ almost 1
This unit will focus on how to solve for an unknown number (often referred to as "x") using written Algebra and Python code. This first video will show you the essence of Algebra and then how Python code does the same task in a different way.
Question:
In Python, what is the library you import to solve Algebra problems with variables?
__ symba
__ sympy
__ the sympsons
__ math
Now it's your turn to write code to solve for x. Here is the notebook used in the video. Use this code. Change it if you want. Test it and compare it to paper-and-pencil solving. Remember the equation input needs to be in Python syntax.
Colab notebook to go along with video
Use the following Colab notebook to practice solving one-step algebra problems. As a bonus, look at the code that generates the practice problems.
Assignment: practice in Colab notebook
The next video will go deeper, with more examples of how to use SymPy solve. It will also explain how the practice functions generate the random problems.
Question:
If you import sympy and define x as a variable, what would be the output from the following code?
example = 3*x - 12
equation = Eq(example,0)
solution = solve(equation,x)
print(solution)
__ 3
__ 4
__ [4]
__ x = 4
Here is the Colab notebook to go along with extra problems. Use it to add more to your Algebra Colab notebook that you are building.
This unit will focus on converting decimals to fractions and percents. The first video will show you how to do this on paper, and then show you how to do it with Python code.
Question:
Which of the following correctly represents "three hundreths" as a decimal?
__ 0.3
__ 0.03
__ 0.003
__ 100.3
Here is the Colab notebook used in the video. Use this code as a model, and write your own code to convert fractions and decimals.
fractions and decimals notebook
Run the code in the following notebook to get practice converting fractions and decimals. As a bonus, look at the code used to generate the practice problems.
Assignment: practice notebook
The following video will show you one way to set up your Google Colaboratory notebook, so that you can continue to build your personalized Algebra calculator.
Question:
Which of the following languages can you not use in Google Colaboratory?
__ HTML
__ LaTex
__ English
__ Sanskrit
Here is the Colab notebook used in the video, so you can use it as a model.
This unit will teach you about math functions. The first video will show you what it means to be a function, and then it will show you how math functions and Python functions are similar.
Question:
After defining a function in Python, indent each line of the function how many spaces?
__ 2
__ 3
__ 4
__ 5
Now it's time to practice making your own functions in your Colab notebook.
Assignment: Create Python functions for the decimal-to-fraction conversions from Week 3
This next video will show you the connection between functions and graphing. Notice how the graph is a way to represent the inputs and outputs of a function. Then the video will show you how to graph a function with Python.
Question:
Which of the following would put a solid blue line on a graph?
__ plt.plot([0,0],[10,10],'b-')
__ plt.plot([0,0],[10,10],'bo')
__ plt.plot([0,10],[0,10],'b')
__ plt.plot([10,10],[10,10],'b^')
Here is the Colab notebook with the function code and basic graphing code, so you can start making your own graphs.
function and graphing notebook
This video will give you a deeper dive and show you more about how to customize graphs in Python.
Question:
What Python library would you import to create arrays that you can graph?
__ nimby
__ numpy
__ math
__ graph
Here is the Colab notebook from the last video, so you can copy the little details.
This unit will show you how to develop linear equations from two points. You will also learn how to graph linear functions and see how an equation, a graph, and a table of (x,y) values are all connected. The first video will focus on the slope of a line and how to calculate it.
Question:
If you have already defined these variables, which of the follwing is the correct slope formula?
__ slope = (x1 - x2) / (y1 - y2)
__ slope = (x2 - x1) / (y2 - y1)
__ slope = (x1 - y1) / (x2 - y2)
__ slope = (y2 - y1) / (x2 - x1)
Here is a video to show you the math behind finding the y-intercept in a linear function, so you can develop the whole equation. Then the video will show you how to graph the whole function. You will also see how to do the whole process with Python code.
Question:
If you know the slope ("m") and you have one (x,y) coordinate point, which of the following equations could you use to find "b," representing the y-intercept in Python?
__ y = mx +b
__ b = y - m*x
__ ax + by = c
__ (y2-y1)/(x2-x1)=m
Here is the Colab notebook to to along with the videos, so you can see the formulas again.
Assignment: Create your own Colab notebook to graph a function from points or from equation input
This video will give you a deeper look into developing equations from word problems (so then you can write the code to solve or graph those equations). The video will also begin to look at data points as (x,y) coordinates. With this, you will begin to see the connection between Algebra and data science.
Question:
Which of the following would you not use when displaying a graph?
__ ax.set_xlabel("x values")
__ ax.set_ylabel("y values")
__ ax.grid(True)
__ ax.set_table()
Here is the Colab notebook to go along with the previous video. The code in it should be familiar to you.
In this unit, you will learn how to find common factors and divide them out. This will be useful when simplifying fractions and factoring square roots. The first video will show you how to do this - in writing, then in code using loops and modulus operations. The larger assignment in this unit is first Foundational Math notebook.
Question:
What does the modulus (%) operator do in Python?
__ returns the percent
__ divides
__ returns the remainder when dividing
__ creates a space
Since that video included many little details, here is the Colab notebook so that you can copy and modify some of the code
Now you are ready to complete the first Foundational Math Certification notebook.
Assignment: Foundational Math Certification 1
Your calculator should take input and do the following:
- Solve proportions
- Solve for x in equations
- Factor square roots
- Convert decimals to fractions and percents
- Convert fractions to decimals and percents
- Convert percents to decimals and fractions
Work through the certifation assignment first. If you are really stuck or need more guidance, this video is a walkthrough of the whole certification.
video 15 - Certification 1 walkthrough
Question:
What is a number that only has one and itself as factors?
__ prime
__ composite
__ rare
__ natural
This unit will focus on graphing two equations on the same coordinate plane, so that you can see where the lines intersect. The first video, like usual, will show you how do do this with written math, then how to do this with code
Question:
The numpy linspace() function takes three arguments to create an array. Which of the following arguments does it not take?
__ Minimum value
__ Maximum value
__ Number of items in the array
__ Formula to generate each item
Here is the Colab notebook to go along with the video
Assignment: Add that code to the Algebra notebook you are building, and test it with different functions
This next video will give you a deeper dive into what you can do with graphing systems of equations, graphing inequalities, and shading above or below the line. You will also see how to download the graph to your computer or your Google Drive.
Question:
If you want to create an interactive plot with a slider to zoom in and out, where does most of the graphing code appear?
__ Within the interactive() function
__ In the slider
__ Within the function that the interactive() calls
__ Before all of the functions
So that you can go back and reference the code, here is the notebook used in the previous video
In this unit, you will first learn how to solve a system of two equations (with two variables) without graphing. You will then see how you can factor an equation and solve for a certain variable in Python. By the end of this video, you will be able to solve and graph a system of equations with one block of code. This video will show you the math behind this process, and then how to do it all with Python code.
Question:
Which of the following can SymPy do that matplotlib can't do?
__ Solve for a variable
__ Display an x-y axis
__ Graph an equation or two
__ Show tic marks on the graph
Becuae that might be a lot, and the little details matter, here is the Colab notebook to go along with the video. Use this code as a reference. SymPy Solve notebook
Here is where you will continue to build your Algebra Colab calculator.
Assignment: Create your own Colab notebook to solve and graph systems of equations
This video will show you one way to create your super calculator that solves and graphs. It will also show you how to zoom in or zoom out on the graph and write the code to build that feature.
Question:
Which of the following is not true?
__ When graphing, you can adjust your tic marks on each axis
__ The nonlinsolve() function can solve linear equations
__ The linsolve() function can solve nonlinear equations
__ To zoom in or out on a graph, an interactive slider is useful
Here is a sample Colab notebook to go along with the video. This will give you an example of what your notebook could look like so far, as you have some functions in there and create headings for the next few functions.
In this unit, you will see how you can use the Algebra you learned so far to solve real world problems. The first video will look at key words that tell you what math operation to use. Then you will see how to apply some of your code to different problems.
Question:
Which of the following key words indicate subtraction?
__ plus, more, increase, up
__ difference, less, decrease, down
__ of, by, factor, area, times
__ out of, per, divided, quotient
This unit does not have an extra Colab notebook because it's all about how to use your existing notebook code to solve new problems.
For additional practice, use the Colab calculator you are building to solve application problems.
Assignment: problems from textbook 1 pages 63, 75, 85, 118, problems from textbook 2 pages 304, 308, 321
The next video contains more examples of how to set up equations and use your Colab notebook to solve them.
Question:
How can you make use of a Colab notebook to solve practical business problems?
__ Modify the equations in the code you already wrote
__ Copy your existing code and then modify it as necessary
__ Write new code based on the functions you already know
__ All of the above
This unit will go beyond linear equations, to work with exponents and graph parabolas. You will learn how to find key points in parabolas and how to solve quadratic equations. This video will also explain the coefficients ("A," "B," and "C") in the standard form and how to use them to find the roots and vertex.
Question:
In Python code, what is the formula for the x value of the vertex?
__ x = -b/2a
__ x = -b/(2 * a)
__ x = b/2a
__ x = -b/2*a
Here is the Colab notebook to go along with video:
Now you are ready to complete the second Foundational Math certification.
Assignment: Foundational Math Certification 2
Your calculator should do the following:
- Graph one or more functions
- Create a table of (x,y) values
- Shade above or below the line
- Solve and graph a system of equations
- Zoom in or out on a graph
- Solve quadratic equations
Work through the certification notebook first, then if you are stuck the following video is a walkthrough of that assignment.
video 23 - Certification 2 walkthrough
Question:
Have you completed Project 2?
__ Yes
__ No
This unit will show you many different types of "parent" graphs, the basic patterns that make up more complicated graphs. Polynomials are mathematical expressions with "multiple things" - the more complicated equations that are built with basic patterns. You will see what these graphs look like, how to modify them, and how to do this all with Python code.
Question:
In numpy, what is the cube root of x?
__ cbrt(x)
__ cube_root(x)
__ root3(x)
__ root(x,3)
Here is the Colab notebook to go along with the video:
This next video will show you how to add sliders to your graphs, to see them change in real time. You will also see ways to use loops to find the roots of a graph, and how this method is different from factoring.
Question:
How many sliders would you add to change the coefficients in a quadratic graph?
__ 1
__ 2
__ 3
__ 4
So that you can copy the code for sliders and things here is the Colab notebook to go along with the last video:
- Scatter plot game
- Randomly generate points on a graph and the player has to input the (x,y) coordinates
- For added difficulty, make the graph larger - Algebra practice game
- Generate one-step and two-step problems with random integer values and the player has to input the answer
- Use positive and negative values. For added difficulty, make the numbers larger - Projectile game
- Display a "wall" with random height and location. Player has to move sliders to adjust a parabolic path to clear the wall
- For added difficulty, make a second level where players enter a, b, and c without sliders
This unit will show you how to apply your solving and graphing skills to find cost, revenue, and profit. You will write code to develop a demand function from two points. You will see how price affects the profit graph and how all of these equations relate to each other.
Question:
Which of the following business equations is not correct?
__ Profit = Revenue - Cost
__ Revenue = Price * Demand
__ Cost = Fixed Expenses + Variable Expenses
__ Marginal Revenue = Margins + Revenue
Colab notebook to go along with video
Assignment: practice problems from textbook 1 pages 155 and 163
Here is a video showing you some economics applications, creating graphs and formulas:
Question:
Which of the following is not true of supply and demand graphs?
__ The supply curve has a positive slope
__ The demand curve has a negative slope
__ The supply curve and demand curve will intersect
__ The supply curve and demand curve will always be straight lines
This unit will show you how to calculate interest, loan payments, and the estimated value of investments. You will see the math formula and turn that into code. Because these formulas tend to get complicated, you will appreciate having the code where you can just modify a few values. First, you will get to understand the equations and what it all means.
Question:
In percent increase formulas, what does the "principle" refer to?
__ the main amount
__ the ending amount
__ the starting amount
__ the (1 + rate) multiplier
Colab notebook to go along with video
Here is a Colab notebook that shows you one way to put many of these interest and payment forumals into Python functions. Also you will see an example of using some formulas to output results, notice a trend, and follow up with other formulas to analyze patterns:
interest formulas with sliders
Here is a detour from the Python code, as this video shows you how to create mortgage payment amortization tables in Google Sheets. You will also learn about how to use a very similar setup to estimate retirement account investment returns. This is the video that shows you where your money is going.
Question:
What marker do you use to attach a formula to a cell in a spreadsheet?
__ ()
__ =
__ ==
__ formula()
This unit will show you how exponents and logarithms are inverse functions, and how you can use these functions in various applications
Question:
What is log5(25)?
__ 0
__ 1
__ 2
__ 5
Here is the notebook so that you can reference the code from the video:
Colab notebook to go along with video
Now you are ready for the Foundational Math Certification 3
Assignment: Foundational Math Certification 3
Your calculator should do the following:
- Calculate annuity with monthly or continuous growth
- Calculate monthly mortgage payment
- Estimate retirement investment balance
- Determine how long until an amount doubles, given the rate
- Solve logarithmic equations
- Convert to (and from) scientific notation
If you had any questions or if you wanted some deeper insight into everything in the Certification 3 notebook, here is a video of a complete walkthrough with additional comments and explanations:
video 31 - Certification 3 walkthrough
Question:
Have you completed building your financial calculator?
__ Yes
__ No
This will be the last unit in this course. Let's look at how you can connect your Math and Python knowledge with external data. This video will show you how to get data from other sources, then transform it so that you can graph it and interpret it:
video 32 - graphing external data
Question:
What library helps you to read data from a .csv and store it as a dataframe where you can select columns?
__ Math
__ Pandas
__ Data
__ Matplotlib
One more thing... This brief video will show you some of the resources available to you in Google Colab notebooks.
Question:
Which code snippets are available in the Google Colaboratory?
__ Camera capture
__ Adding form fields
__ Importing data from Google Sheets
__ All of the above
Your script should do the following:
- Get a .csv file in three ways
- uploading it from the local computer
- getting a url from user input
- putting the url in the code
- Use the Pandas library to save the .csv as a dataframe
- Print headings and the first two rows
- Store the column names as a list
- Choose one or two columns and convert the data to Numpy arrays
- Display data as a scatter plot or a line graph
- Be able to do this for different column combinations, and interpret the graphs
Put all of your projects, and any other functions or formulas you want, into one Colab notebook. Be sure to make sections with headings so that you have a table of contents. Now you understand the math and the code, and you have a resource that you built. Use it to solve problems, graph data, and calculate anything you want.
The next course will build upon the skills you learned here. You will learn more ways to get data and more mathematical operations to transform and analyze that data in different ways. Continue to build your personal Colab notebook, adding new formulas and functions.
The course will be on the freeCodeCamp website soon. The video course (all of the videos here, merged into one long video) will be on the freeCodeCamp YouTube channel soon. Please contact me if you have any questions or comments about this course or the materials. Thank you
-Ed Pratowski
ed@freeCodeCamp.org