You are missing the term corresponding to:
i.e.
L = f*v*dx + (alpha/h)*g*v*ds - dot(grad(v), g*n)*ds
which gives you the following errors:
nx=4.00 error_L2=1.2074E-02 error_H1=2.0286E-01
nx=8.00 error_L2=3.0379E-03 error_H1=1.0135E-01
nx=16.00 error_L2=7.6216E-04 error_H1=5.0673E-02
nx=32.00 error_L2=1.9089E-04 error_H1=2.5338E-02
nx=64.00 error_L2=4.7768E-05 error_H1=1.2669E-02