Teaching undergraduate students in programming is interesting and challenging at the same time, because one has to deal mostly with two types: Those who have already experience and those who have not. I will present two models from Bonn University for Physics students with now much more responsibility for the tutors and would like to initiate discussions about different systems all over the world.
Teaching undergraduate students in programming languages like Python is interesting and challenging at the same time. You have to deal mostly with two types of students: Those who have already some experience in programming (not neccessarily Python), e.g. from high school, and those who have not. At Bonn University we have recently changed the structure of such a course for Bachelor of Science in Physics students. First, we include the Python tutorial in a lecture in the first term instead of a voluntary course in the lecture-free time before the fourth semester, where the "Numerical Methods for Physicists" course takes place. Second, instead of a weekly lecture, in which the topics are explained in detail, and a 2 hours exercise class, the new system provides only one introduction lecture per topic but a 3 hours exercise class per week. So especially the tutors are much more responsible for the success of the students in the final report of this course. Furthermore, as a student representative and also tutor for both courses, I have been heavily involved in this process.
I like to initiate a larger discussion about how to teach programming to undergraduate students, especially because in the last decades programming got more and more important in science and due to e.g. the Bologna reform in Europe, it should be easier to change between universities after e.g. the Bachelor program.