Befriending computer programming: a proposed approach to teaching introductory programming