Teaching Python Programming To Novices: Addressing Misconceptions And Creating A Development Environment