Pedagogy of introductory computer programming : a people-first approach