Using Web-CAT to improve the teaching of programming to large university classes