Should I complain to higher authorities about the incompetence of this teacher?

This is more of an extended comment, placing some guesses as to what's actually happened here. As an answer to the question it is the advice to consider which parts of the following applies to your situation, and adjusting any actions you may take accordingly.


Keep in mind that computer science is not programming. This instructor likely doesn't code much Python in their main job (CS research presumably), nor did they necessarily ask to teach Python. Rather, the departement decided to teach Python as a beginner language, and somebody needs to do that teaching – somebody who knows enough about programming to help actual beginners, which will be helpful to the course's intended audience, but not necessarily an actual Python expert.

You, apparently, are a Python expert, which is great – relax, this course is going to be easy for you, and if you can even contribute to making it better for your fellow students, awesome.

But don't let your superiority in Python fool you into thinking the instructor is inferior as a teacher of a beginner's programming course. You think their introduction to the language was bad... why?

  • Was it hard to understand? Well, that could mean they explained stuff badly, but surely you as an already-expert wouldn't have had problems regardless?
    Maybe they actually explained some aspects that really are more tricky than you ever considered.
  • Was it too shallow? Well, that may be exactly what's right for your fellows without earlier Python background.
  • Did it use outdated or unidiomatic code? This happens a lot in university courses, but it's not necessarily such a bad thing. Keep in mind that anyway today's up-to-date is just tomorrows outdated and one language's unidiomatic is another's bread&butter. General concepts are more important in a beginner's course than language-specific details.

Regarding your concrete statements,

doesn't know what a return statement does

I plainly refuse to believe that. I mean, if it's really that bad then forget all I wrote above... but almost sure there has just been a misunderstanding here.

or how to iterate over elements of a sequence

That too should certainly not be a problem to anybody teaching anything programming-related, however I would still remark that Python's iterators are somewhat idiosyncratic. It's true that for a Python course, they should have read up on this properly, but again make sure you're actually interpreting this properly. First teaching loops with indices before going to range- / iteratee based ones is a valid pedagogic decision, even if it doesn't make much sense as far as Python programming in particular is concerned.


Having been a teaching assistant in an "Introduction to Python" (which is quite popular now, seems only a few years ago everyone had to learn Java...) for 1st year students some years ago, I hope I can offer you a few perspectives. This is not to try and convince you that your opinion is wrong, only that there may be reasons for you to find this course incompetent, which are outside both your and the teachers' control.

First consider the wildly different starting point beginning students come to this course with. You have been programming in Python since high school. But you certainly also have fellow students who have never written a line of code in their life before. This course is most likely meant to bring everyone to a certain minimum level of proficiency, such that they can understand future course material. For someone with little experience, the best way to get to that point, is through practice. For someone with lots of experience, this means going back to basics.

Secondly, most university courses will not teach you to write code using elaborate techniques or sophisticated libraries, even though this is something that self-taught programmers entering university are used to. They will rather teach you why things are done the way they are, but very much starting from scratch. This is because the skills learned in these courses, should hopefully be transferable from, say, one programming language to another. Iterating over elements in a sequence is a good example. I have had students with reasonable Python proficiency who completely stumbled on that task when changing language to C, simply because they had not understood that the way they did loops in Python is an abstraction.

But all that aside, it is of course very possible that your instructor is, in fact, wildly incompetent. As a general rule of thumb, before making a complaint, ask yourself a) What good will it do me?, and b) What good may it do to others?

Yourself: If you can anyway pass the course without too many efforts, freeing up time to read up on other subjects perhaps, the only thing you will gain from complaining is extra work on your part + perhaps getting a reputation as a person who complains a lot. Given that the course is meant to bring everyone "up to speed", the syllabus itself will likely not change, only the presentation.

Others: In a perfect world, a complaint would do good to future students, who will get more competent teaching. Gauge whether your fellow students - also those with no prior experience - actually get something out of the course or not, and remember that introductions to Python is also something you can do by yourself, mostly online, if everything else fails. So in a realistic world, a complaint might not really improve matters a lot.

So my direct answer to your question is: probably not. If I guess roughly correct, your best strategy will be to keep following the course, get a top grade, and wait for your next course which will be more advanced.


First, talk to your classmates and find out if they feel the same. It could be that you are simply ahead of them and that the others actually appreciate the class.

If many fellow students have the same impression, you can try to do something about it. First, you can talk to the teacher and indicate that many of you think that the level of the class is too low. If that doesn't help, you (as a group) can go to the head of department, study coordinator, or whomever is in a position to change something. It may help to approach a person you know well (who may refer you to someone else if necessary).

If your university is any good, they are probably very much interested in critical (and constructive) feedback from the students. But it may be hard for them to make those changes instantly.

I have been in a similar situation as a student and the entire course was changed after the feedback we gave with (almost) the entire class. But it only helped the students of the following years. They could not do much to fix our class while it was already running unfortunately.

Of course, nothing stops you to learn more advanced subjects on your own (useful for later) and ace the exam.

Tags:

Instructor