I got stuck on the first assignment because Nand always gives me 1. Here's the code:
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// File name: projects/01/And.hdl
/**
* And gate: out = 1 if {a == 1 and b == 1}, 0 otherwise
*/
CHIP And {
IN a, b;
OUT out;
PARTS:
// The N in Nand is for Not, so Not(Nand()) == And()
Nand(a=a, b=b, out=out);