TheRealRedd wrote
Nand (a=a, b=b, out=aAndb);
This makes an internal wire named "aAndB", but does not connect anything to the And chip's "out" pin.
That's why the And's out is always 0.
You might want to read the
survival guide, particularly the "what's the meaning of a=a?" section.
--Mark