This is a companion discussion topic for the original entry at http://studio.code.org/s/algebraPD1/stage/3/puzzle/1
I don’t know if I’m answering this question in the right place but…
My students have trouble with all the vocabulary that goes also with functions. I have them fill out graphic organizers to help them sort through all the vocabulary. Then it is easier for them to see which words are alike and which are different. Students also have trouble when graphing coordinates after learning slope (rise over run). We practice quite a bit with graphing before, during and after lessons on slope and functions. Also, students have a hard time relating slope and yintercept to real life so we spend time discussing many real world examples that they come up with.
I am also struggling to figure out where to post my answers! I will hope this is the correct place!
I think that the biggest struggle my students encounter is their desire to know WHY calling something a Function (as opposed to just a relation) is so important. We discuss different families of functions  the different ways to represent functions (rules, tables, graphs) as well as the applications of the families of functions we learn about and they (understandably) express that those representations exist with just a relation. SO we discuss it again. We talk about how mathemtaticians need to categorize different topics so we can understand them better categorizing functions/relations is a good example of this.
I teach 7th grade regular and advance classes. My students only touch on functions. I do see how it can become very confusing to the students as the content is being presented. Especially when the students don’t understand ratios, proportions and rate of change. My students work with word problems often, but they do not spend as much time writing functions.
My students find the concept of letters representing numbers so confusing.

Operation with Integers
Introduce I introduce operations with integers using counter
Response the student love it and understand it, for addition and subtraction. Once I introduce multiplication and division student start to forget when to apply what rule. 
Volume (geometry)
Introduce I introduce this concept using actually 3D figures.
Response The students have a concrete understand, but they when it comes to solve the problem using a formula abstractly they struggle. 
Dimensional Analysis I try to connect my students with things they already know, like a ruler I have them look at the inches and compare it to a centimeter
Response Students have no problem if I am using manipulative, but the minute I show them how to compute it using abstract algebra they are loss.
3 Concepts or Habits my students find difficult
1.I have found that students often struggle with persistence. There seems to be a tendency to want to give up when they find a concept or problem to be of a high difficulty level. I approach this habit using examples from history and through positive affirmation and encouragement. This is one of the most important skills for middle school students to develop.

Mathematically my 6th graders have struggled with creating variable equations from word problems. I begin by helping them turn lower level problems into variable expressions, but with the more complex problems at a 6th grade level they seem to struggle when there are a high number of steps to a given problem.

A third idea that students struggle with that correlates to both math and habits is the idea of simplification. Mathematically this is simplifying expressions be combining like terms. In terms of habits, students need to realize that focusing on the simple elements of a concept are key to understanding a larger or more complex problem. Without a strong base in the building blocks of a topic, it is difficult to grasp the larger construct. I think sometimes students get caught up wanting to get to that larger idea before they are ready to do so.
3 concepts my students find difficult:
 When identifying functions in the ordered pair form the first set of
values repeat it is a function, where as second set of values can
repeat. However, some students think even the second set of values
repeat it is not a function.  To find the domain if the range is given.
 To find the domain and range from the graph