"Shield" is a term coined by the Arudino people to refer to a module that is specifically designed to plug in to the Arduino form-factor connectors. "module" is just any collection or electronics thrown together in a supposedly easier-to-use form.(BeagleBone has "capes", and Raspberry Pi has "hats" for similar purposes. To designate modules specifically designed to work with that particular "main board.")
So if I use a shield for example I just stack it on top and keep my pins available.
And what's with the usb port in the above example. Why would I need it for a WiFi shield if there's one on the Arduino already.
Why would I use a shield over the module alone.
I'm confused because, taking this image for example, you could put an LED on the shield on top and it would be connected to the Arduino through the pins of the shield above.
Arduino communicates with both the Wifi shield's processor and SD card using the SPI bus (through the ICSP header). This is on digital pins 11, 12, and 13 on the Uno and pins 50, 51, and 52 on the Mega. On both boards, pin 10 is used to select the HDG204 and pin 4 for the SD card. These pins cannot be used for general I/O. On the Mega, the hardware SS pin, 53, is not used to select either the HDG204 or the SD card, but it must be kept as an output or the SPI interface won't work.Digital pin 7 is used as a handshake pin between the WiFi shield and the Arduino, and should not be used.
Secondly the shields have a USB port which means they can be programmed on they own, which a module can not. Am I right/wrong?