Potentially two very important aspects of a robotic or computing system. These terms are used to describe any input and output data. This includes sensors, device to device communication buses, keyboards, buttons, motors, LCD display etc. Basically any route to get data into or out of a processing unit.

When buying a microcontroller, seriously consider how many IO ports you will need, and what types they are. You may want ports that can perform specific functions like counters, PWM generators, interrupts, serial data buses or analog IO. IO is at least one major factor in the size of an IC.

One of the really great things about using an FPGA is that you can reconfigure the function of many pins (except in the case of analog IO) making the IO special functions effectively free.