Novice Java programmers' conceptions of "object" and "class", and variation theory | Synapse