The Arduino Uno board looks like the following −
As you can see, the pins are broadly divided into 3 sections. Two sections at the bottom of the image, and one at the top.
Let us look at the bottom sections.
The first section contains power pins.
The Vin pin can be used if you are using an external power source (and not the USB) to power the board. The recommended voltage range is 7-12 V.
The 3.3V and 5V pins provide 3.3V and 5V outputs respectively, and should be used to power other components using the Arduino board. The maximum current from the 3.3V pin is 50 mA.
The reset pin is used to reset the Arduino. Set this pin to LOW to reset the microcontroller.
The GND pins, as evident, are connected to the GND of the microcontroller.
The IOREF pin provides the voltage reference at which the board operates.
The second section contains the six analog pins (A0 to A5). These pins can take in analog input voltage in the range of 0-5 V. If not used for analog input, these can also serve as digital I/O pins.
Note that the A4 pin also serves as the SDA pin, and A5 pin also serves as the SCL pin. SDA and SCL pins are used for I2C communication (also known as TWI or Wire communication)
This contains the digital I/O pins (pins 0-13), one GND pin, one AREF pin, which can be used to provide reference voltage for Analog inputs using the analogReference() function, and two I2C pins. The default analog reference is 5V on Uno.
Of the digital pins, the ones marked with ~ support PWM. Thus, pins 3,5,6,9,10,11 support PWM.
Pins 0 and 1 are Serial RX and TX respectively. They are connected to the chip that translates the USB data to TTL serial data and vice versa.
Pins 2 and 3 can be used to provide external interrupts to the board, on a low value, change in value, or rising or falling edge.
Finally, pins 10 (SS), 11 (MOSI), 12 (MISO) and 13 (SCK) can be used for SPI communication, say, with an SD Card.