Nanocrystal Quantum Dots As Building Blocks For Artificial Solids And Their Applications In Optoelectronic Devices