We've just completed the first week of our new programming class, Applied Programming. We started last Thursday with a two-hour lecture, then the students had lab exercises with the TAs Friday and Monday, and Tuesday we had a follow-up lecture. Now, this whole thing repeats.
I wrote down my thoughts on teaching programming while planning the course, see
Now, after the first week, I have some additional thoughts on the class...
We don't really know our students
We are two lecturers and three TAs, and all of us have a computer science and bioinformatics background. Personally, I've taught classes in computer science, bioinformatics and statistics, but almost exclusively to students on the computer science or the bioinformatics masters or bachelor program. The background for the other teachers is roughly the same.
We have modelled this class loosely on a similar class we used to teach on the bioinformatics program, but removed all the advanced material and instead added a few weeks on very basic programming. On the bioinformatics course, all students had already had a seven week introduction to programming, but on this class we are not making that assumption.
About half the programs at our faculty of science require the basic programming class, that is an introduction to Java taught at the department of computer science. The bioinformatics and computer science students will have this class, of course.
Personally, I don't think an introduction to Java programming is much use for bioinformatics, where script languages are more often used, and in any case I think Python is a better first language.
Anyway, now that the students we get have not had any introduction to programming, obviously we cannot expect as much from them when we teach them in this class. Obviously, in the old class, we still had to teach the students Python, but at least we could expect them to know about control structures, functions, variables, etc. Now we cannot, so we try to teach them about it as we teach them Python.
This is new to us, but we will have to see how it goes, and try to correct the course as we go along.
A more serious issue is that the students are no longer computer science or bioinformatics students. They still take the class at computer science, so they don't need this one.
Instead, 90%+ are from a new study program in molecular medicine, where this class is a mandatory class. We also have a few exchange students and PhD students from other backgrounds, who've found that they need to learn programming and decided to take this class to learn it, but it is only a few compared to the molecular medicine students.
We don't really know anything about molecular medicine and certainly nothing about the backgrounds or academic interests of the students following the program.
Motivating the students is pretty hard
So when they ask us, "why do we need to learn to program" or "are we ever going to need what we learn here", it is hard to answer.
Personally, I cannot imagine doing science in the 21st century without at least some computer skills, and I think the need for computer skills for scientists will only increase. You can do a lot with a spreadsheet, but there is a limit, and some basic programming skills for manipulating your data or simulating models will be needed.
That is just my opinion, though, and it is biased since I have a computer science background, so I am not particularly convincing when I tell the students this.
The students do not really want to follow this course. Most of them, anyway. If they study molecular medicine, the have to, and they don't see the point.
I can totally relate to this. I felt the same way when I had statistics classes while studying computer science. I couldn't for the death of me imagine how I would ever need to know this stuff. Ironic, considering that I am doing more statistics than computer science these days.
To motivate students, you need to convince them either that the material is fun or that it is relevant. I am getting the clear impression that the "fun" strategy is not going to work here, and I know too little about the future skills needed by these people to be able to pull off the "relevance" strategy.
I hope I can get some help from their other teachers. If the teachers in the classes that they really do find interesting tells them that they, themselves, need programming in their daily work -- to varying degree, of course -- then maybe that will convince the students of the relevance.
Installing Python is much harder than we ever imagined
We have told the students that they need to spend a lot of time programming on their own. It really is the only way they are going to learn it. There is no way of learning it by listening to lectures.
So, we suggested that they all installed Python on their own machines. The do have access the the Dept. of Computer Science's machines, but it is probably a lot nicer to have Python on their own machines.
We told them that they could bring their laptops to the lab sessions with their TAs and get help with this, and we didn't expect anyone could have an problems with this.
Boy were we wrong!
Apparently, installing Python on Vista is a major problem. Something to do with Administrator access, I don't known, I've never run Vista.
We never expected that installing Python could be a problem. On all machines I have ever used, it has been extremely easy. On Linux "yum" or "apt-get" just does it, if it isn't installed by default. On OS X or XP you click the installer icon and then you are on your way.
On Vista, it would be just as easy, if you have the right permissions, but apparently by default you do not. I don't know the details, so I cannot tell exactly what the problem is.
Anyway, the focus for the first week completely shifted from learning Python to problems with installing it, and leaving everyone frustrated.
If you wanted to run a marathon, would you train every day for three years, then rest completely for two, and then run the marathon?
No? It wouldn't be my training strategy either, but when it comes to speaking English, it apparently is Aarhus University's strategy.
Oh, and a preemptive apology if any of the below turns sarcastic or a bit ranting...
The situation is this: Aarhus University wants to attract more foreign students. Exchange students and especially PhD students. At the Faculty of Sciences, they want to double the number of PhD students but without lowering the "quality" of the students, so we have to recruit abroad.
The uni has introduced a number of policies to do this, such as the ECTS point system and, important for this post, a politic on the language used for teaching.
If at all possible, we are to teach in English on all non-mandatory classes, if there is at least one non-Danish speaker in class.
A little anecdote: a guy teaching in the German department told me that he had been asked to teach in English because there was a German student in his class. Everyone there were better at German than English, but the uni's policy is clear...
I don't know how true the story is, but I honestly have no problem believing it. It sounds exactly like how my university would react in a situation like this.
With that in mind, notice that it is only the non-mandatory classes that we are asked to teach in English. And usually do, as we actually do get all those exchange students the university is trying to get.
See, the mandatory classes are to be taught in Danish.
This means that when the students show up at the university -- with the English skills they have from high school classes -- they are kept safe from English the first two years and then almost certainly will be taught in English for the majority of the rest of their classes.
It is a great mystery to me how the students, who apparently do not have then language skills to be taught in English for the first two years of their studies, will magically obtain the skills at their third year.
To me, it seems that not practising would have the opposite effect.
The Studies Office does not share that view.
Why is this rant relevant to my programming class, you ask?
Well, this particular class is an optional class for people with statistics or biology as their main subject and mandatory for molecular medicine. So obviously we have to teach in English if there are any non-Danish speakers (which there are) and just as obviously we must teach in Danish because it is a mandatory class.
This is pure doublethink and so doubleplusungood.
Since it will be impossible for non-Danish speakers to follow the class if it is in Danish, while at worst it will be an annoyance for the Danes to follow the class in English, we have to teach in English.
Still, we are getting complains about this, so we have to find a solution.
The easy solution is to stick with English, which I am sure we can get away with. When we gave the Studies Office all the details of the class, we made clear that the language could be English, and when they signed up foreign students the wrote to us that we had to teach in English.
It is the same people who now tells us that we must teach in Danish, but that is because the fucked up when accepting the course description then, and not my problem. It can be fixed next time the class is taught, but we cannot switch to Danish when we have already accepted foreign students into the class.
Our problem now is that the molecular medicine students really do see it as a problem that the teaching is in English. That we have to deal with, but I don't exactly know how.
We will have a talk with them today at the lecture and see what we can work out...