4

I'm a Chinese freshman majoring in statistics. It's not me, but my classmates who are suffering from poor teaching in their Python course. They have no prior programming experience, so they aren't aware of their instructor's mistakes, but I think this must be stopped.

Let me show you this instructor's unprofessionalism:

  • She teaches the students Python by playing videos to them, which show her giving lessons to the seniors. Actually, she didn't say more than several sentences during a four-hour class. If one can learn Python simply by watching videos, why should one bother to come to the classroom? Students need face-to-face teaching! Also, I guess her video tutorial can't be the best one among all those online resources.

  • The students don't have time to practice in class, because their precious class time is used to watch pre-recorded videos.

  • Here is some of her code:

    s=input("s:")
    patten="0123456789"
    for x in s:
        if x not in patten:
            print('非全数字')
    

    While it's merely an incomplete code snippet, I suppose the misspelling of "pattern", the existence of "0123456789" instead of string.digits, and the mix using of ' and " is enough to demonstrate her ignorance of good coding.

    s=[11,22,33,44,55,26,47,88,12,19]
    a=[]
    for i in s:
        if i%2 != 0:
            a.append(i)
        else:
            continue
    print(a)
    

    Yes, this works, but it's definitely not pythonic, and my classmates are learning Python, not "C/C++/Java programming in Python". If I were the instructor, I would teach them list comprehension.

    In fact, she is the chief editor of the textbook being used, and that textbook is also unprofessional in my opinion. For example, it opens a file using f=open(...), rather than with open(...) as f:.

  • She never ends the class on time. The class is scheduled to end at 11:30AM, but usually the "hardworking" instructor ends the class at around 12:00pm. Probably this is because her videos can't convey much information in 3.5 hours.

My question is: what can I do to help the students? I think Python programming skills are very important to statistics students, and my classmates deserve a better instructor. I didn't take that class, so I don't mind it if I do something that may anger their instructor, because she can't give me a failing grade.

My fellow students think this instructor is "not that bad", presumably due to their lack of programming experience, and thus are reluctant to make a change.

  • 20
    Don't have time to write a full answer, but two comments: (1) in an introductory class, teaching basic programming principles is way more important than whether code is "pythonic"; (2) it seems a little "off" to me that you don't even take the class, recognize that the students that do take the class are reasonably satisfied, but still feel that you need to make a change happen. – xLeitix Mar 15 '17 at 7:21
  • 3
    Also, you will have an easier time making your voice be heard if you distinguish between disagreements w.r.t. the content the tutor is teaching, and perceived unprofessionalism. Don't get me wrong, a few things you tell us do sound fairly unprofessional, but that the tutor does not use "using" or list comprehension is not among them. – xLeitix Mar 15 '17 at 7:24
  • 1
    @xLeitix Yes, this is an introductory class. My classmates don't know SE and its rules, and I think it may be too late to introduce SE to them now. And to me, only teaching by video-playing is horrible enough. – nalzok Mar 15 '17 at 8:14
  • 2
    I agree that the video teaching thing is weird, and probably rather unprofessional. I would definitely focus on that more than his choice of language constructs to teach. – xLeitix Mar 15 '17 at 8:46
  • 3
    Many of these criticisms can be irrelevant considering neither op nor us knows the context or other details. There can be several good reasons why one chooses specific programming style or delivery in an introductory lecture, which may be beyond the swift judgement of a freshman who never actually visited the class. – Greg Mar 15 '17 at 11:27
2

Well, my answer is twofold:

First, the teaching method ssems like a misunderstood version of inverted classroom teaching - maybe an explanation how the teacher could support the students better might help. But it would be best if this comes from the course members or some students organization and not from an "outsider" not involved in the class.

Second, the "bad coding style" - it's hard to tell what is good or bad without context. Some problems are obvious (e.g. "unpythonic" using of space characters, typos) and you could point to the official coding guidelines which are worth reading for any programmer anyway. Maybe you can suggest those as course material.

All other "probelms" you identified could be part of the teaching concept and there are rationales for each:

  • I would not introduce string.digits (and any other library method) to beginners unless they see a need for it. The task given could be a step towards generating such a need.
  • The mix of ' and " could have educational purposes as well (even though I would have used an example like my_string = "let's say 'Hello'").
  • List comprehension is hard to understand for beginners. It is a powerful concept for intermediate or advanced programmers, but usually beginners are having trouble understanding the nature of a loop.

Maybe you can offer to support the course as tutor / student teaching assistant or else, with this you could influence the course content and improve the overall situation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.