Noob help for apm 2.5m a/c 3.1 rc2

I am thinking about purchasing on of the ardupilot boards. I am the programmer for my high School vex robotics team and am frustrated by the limited amount of hardware and the limits of programing in the Robot C or Vex PROSe programing languages. I am looking to use one of these boards to do all kinds of cool things like tracking objects or searching for certain things. I think it is great that it has preprogramed functions for using vehicles without programing them yourselves but I want to know if you can make custom programs using any sensors or devices you may attach. If you can make custom programs what language does it use?
thanks for any help

Here is a link to all you have ever wanted to know about Arduino mcus:
Here is a link to the modified Arduino IDE used to compile the APM source code:

thanks, I get that you can program an arduino to do whatever you want can you program an ardupilot in the same way?