This is a companion discussion topic for the original entry at


What has worked for me in the past is to show and explain all the representations of functions. Some students prefer tables, some prefer graphs. By the time we have gone through all the representations, many students start to truly understand what a function represents. Relating to real world examples also makes a huge difference. Computer programming will be another way to introduce functions to students.


It has worked for me to start early- in 7th grade math. For whatever reason- input/output tables seem to really click with my students- so they naturally understand that a “rule” can be sued to generate any number of input/output pairs. SO we make lots of tables (or t charts) - then I always have a student who askes if we can graph those points. YAY! “You bet we can. Let’s look at that! Is the input/output graph for this rule different than the one for that rule? What if we made up our own rule and then graphed the input/output pairs… how does that look?” Someone always asks- does it matter which we place on the input/output axis- and then we can naturally begin a discussion of domain and range dependent variable/independent variable, etc. My biggest struggle with all of this? It is never the concepts! It is how much time I am given to explore them. I have (on the best day of our schedule) 43 minutes in a math class. That is never enough time to explore and discover. SO drustrating!


Real world situations seem to make algebra a little easier for my students, but the concept of having varying inputs and outputs a lot of them still struggle with that concept. They don’t understand why if I use -2, 0 and 2 as an input value for a linear function, it would yield the same line as when they use -1, 1 and 3 as input values. I also agree that computer programming may help with this concept.


Think about the tricks and techniques that you use to help students transition from concrete arithmetic to abstract algebra. Post some thoughts to the forum, considering:

What’s worked for you in the past?
I usually start the students off with manipulative so that they can get a better understanding of the process, once the have master using manipulative then I show the the process using just the operations with paper and pencil.

What do your students find the most difficult?
I believe the students find it most difficult connect concrete to abstract, they usually think of the two in isolation

How do you think programming can help with this transition?
I think program will help them understand that everything is connect and unless you understand abstract algebra the program will not run. It will close the gap of connected concrete to abstract.



Moving students from concrete to abstract is something that is core to the foundation of Montessori education. I teach at a Montessori campus in HISD.

Hands on manipulatives are present throughout the mathematics curriculum. For introduction to basic algebra I use manipulatives called hands on equations that initially represents x as a blue pawn and negative x as a white pawn. This leads students through the process of defining a variable up through solving variable expressions and equations. I find this to be a pretty effective tool and it gives students a way to visually model equations if they need to use it as an extra tool.

I think what they find the most difficult is dealing with negatives, which requires more repitition.

I think programming will help my students with these concepts because it is a tool for improving logic and provides concrete building blocks to understand ideas. As students move from these blocks to writing code without the blocks it is a similar transition as between concrete and abstract materials.


I always compare functions with a factory.I tell them a small story.There is a car factory in Alabama. At the beginning of the tour you will see all the materials required for the car. At the end of the tour you will see a car. So, input is the material and output is the car.
I will take my students to the vending machine. As I put the change, I get a water bottle. So, my money is the input, vending machine is a function, and output is the water bottle.
After that introduce a function f(x) = 2x +3 and if we give an input one it will give an output 5.
I think we can write a program to demonstrate this.