Issues, Opportunities And Concepts In The Teaching Of Programming To Novice Programmers At The University Of Lincoln : Three Approaches