Teaching programming: An evidence based and reflective approach | IEEE Conference Publication | IEEE Xplore