The affair starts again

The title of my posting on Friday was not meant to imply that the course I am teaching is over. It merely indicated that the work for the week, for the first days, was over and that the weekend signaled a merciful break in the proceedings. Tomorrow, like so many affairs that go in starts and fits, it starts again. I teach on Monday and Tuesday and then it is all over. For good. For 2011.

I have already told a colleague that I shall not be teaching the course again next year. But this is not because I do not want to: I quite enjoy it. However, I make a tidy sum from the course and I think it is only fair that we rotate it among the staff. Truthfully, it is hard work and I won’t do it for nothing, but I hope to stay involved.

I have to think of something to tell the students tomorrow. I’m not sure whether the weekend gave them new hope or completely shattered their egos. The previous practical session on Friday was hard. I could tell that the students were tired. They had, as I said then, reached that limit where understanding breaks down. Too many new ideas. Tomorrow they need a pep talk. I want to buoy them up and convince them that it might seem strange now, but that they will get used to the work. The important thing is to carry on. Many new concepts seem strange at first, but after a little exposure one internalizes them and they come to be familiar and ordinary.

Yesterday and today I was working on a cute little programming problem which I’ll explain tomorrow.


The end of the affair

On Wednesday and Thursday I was feeling very positive toward the students. I was still under the impression that my teaching was going well and that I was “manipulating” the students towards a deep understanding of the basics of programming. Today, that illusion was shattered.

The lecture went fairly well, except that there were a few more puzzled looks, perhaps. Maybe a few answers that were a little more wide of the mark than before. But the rot had begun. At the core, in the deepest innards of the beast, a festering sore was ready to burst upon an unsuspecting world. In this afternoon’s practical session the students’ lack of knowledge reached levels that the world has never seen before.

The first hour was distressing, but I think I have now come to terms with what has happened. We crossed that magical barrier between just enough confusion (to be excited by the new work) and just too much confusion (to become totally lost and almost incoherent). Students that answered intelligently yesterday, today spouted complete nonsense.

Of course I don’t blame them. Or myself. One can only absorb new work at a certain rate and too much novelty can scramble your brains. Your mind needs time to adjust and process the new concepts. I hope the weekend will be enough for the students.

After all, they started Wednesday morning with zero knowledge and today were writing nested for-loops. I think that is impressive, given that we try to make them really understand the work. Any monkey can bandy about for-loop until something sticks.


On the second day God created the earth

OK, down to earth in the Bridging Course. Yesterday’s first practical session was a triumph and all of the students completed all of the exercises. The majority did so in record time and went home early. Ideally we would like them to stay the full three hours in order to get as much exercise as they possibly can. But I believe that the first prac was a terrific morale booster and I hope that we can repeat it next year.

Today things went a little differently. We talked about selection (if statements) in class, and that went fine. But come the practical, everyone struggled and few students completed all three exercises. To be honest I do not think it was the if statements per se that floored them so completely. Rather, the exercises involved a lot of “Computer Science” thinking of breaking a large, daunting problem down into smaller steps, and doing that over and over until you reach the point where you can write down the code. I don’t mind at all that they struggled: it is the only way to learn. But tomorrow we’ll have to do a serious post-match analysis to make sure that they understand why they struggled and why it is not the end of the world.

Like many other skills, learning to program the very first time is an emotional experience. It is easy for veterans to look at a problem and to see the solution, and to be unable to conceive how anyone could possibly find it difficult. Remember, these students are learning basic programming. The trick, of course, is to give them the right kind of guidance. Often I find myself not telling the student anything factual whatsoever; instead, it is merely encouragement to not give up, consider the problem again, what is the important part, can you think of a way we could do that, that seems fine and what’s next, etc. When I do give advice (and I hope this is true for all or our teaching assistants), it is important not to give the answer, but rather ask the pertinent questions that will make the students realize exactly what they are doing, or exactly how to overcome the next obstacle.

There is no air conditioning in the lecture halls  we are using, and today was 33+ degrees outside. So not the greatest comfort. At least there was air conditioning in the computer labs, but I was on my feet all three hours. I should be exhausted, and I am, but it is the good kind of exhaustion. Tonight I can sleep soundly.


Round 1 of 5

The first day of the Bridging Course is behind us. What is the course all about? The idea is to provide a five-day crash course in programming for those new Computer Science or Engineering students who have never programmed before. This makes life a little easier for the teachers of first-year programming courses. It also benefits the students, since the work is at least not entirely new to them when they start these first-year courses. We have some evidence that they fare better than average if they do the Bridging Course. We had about 220 registrastions, and about 195 students turned up this morning. Of those, 35 are BSc and the other 160 are BEng.

The first task is to split off the BSc students (who learn Java), and divide the rest (who learn C) into two approximately equal groups. One group is taught in English (by me) and the other in Afrikaans (by McElory Hoffmann). He is at a slight disadvantage, because the notes are all in English. I had hoped to translate them when I started writing them, but we decided that it is clear enough and that it is better to keep one consistent version, instead of two that would inevitably diverge. On the other hand, the disadvantage that I have to deal with is that while most of my class is English-speaking, there are some who speak Afrikaans and who are not familiar with terms like “expression”, “operator”, “operand”, “reciprocal”, mostly mathematical terms. Of course, there is a real chance that the English-speaking students may not know those terms either.

So, where does one start when the students know nothing? In some ways it is easier to teach, than to write notes for such students. At least one can get some feedback on-the-fly while teaching. I ask a lot of questions and reward correct answers with small chocolates. Bread and circuses. Oddly, although I’m quite proud of the notes (I’ll publish this as a technical report soon), we don’t follow them exactly in class. Learning in class and learning on your own by reading the notes are two very different ways of absorbing new material. I suspect that not many students realize this.

There are five days of lectures that cover (1) assignments, (2) selection (if statements), (3) repetition (while loops), (4) arrays, and (5) functions. I think it is quite an achievement to get this far given that the students know nothing when they start. But it works well: there are lots of examples in the notes, we take things slow and quite mechanically in class, and there are many exercises that guide the students step-by-step with more and more challenging questions.

In truth, I’m sure that students forget much of what we teach them. But if they only retain the very basics — programming is not hard, all we do is write a list of instructions, it is easy to “simulate” what the computer is doing — in other words, a basic idea of how to think and a little self-confidence, then we can call the whole story a success.


More WC movies

You’ve seen the webcam, now watch the movie!

Here are the two other webcam movies I was gathering images for over the weekend. It was a pure coincidence that I thought of this on Saturday. In hindsight it was exactly the right time to do so, since during the week these two places are kind of boring, but over the weekend there are lots of people to see.  The first is the beach at Vishoek along the Cape coast. I added some upbeat music that I stole from somewhere. To be precise, it is “Tico-tico no fubá”, a Brazilian song that I learned to play on the organ many years ago. It was also recorded by Carmen Miranda and by the Andrew sisters, and this is a recording by some German electric organist whose name escapes me. Once again, the snapshots were taken every ten minutes from Saturday 8 Jan 10:57 to Monday 10 Jan 8:33. (There is some clock drift caused by the time taken to download a snapshot, which explains why the last snapshot is not 8:37, in case you were wondering.)  Right at the end the camera is out of focus (spray from the sea?). It is also a little out of focus during the night: I guess it uses autofocus which does not work in the dark. But something happens during the second night, so watch out.

And here is a movie of the webcam at Himos, a ski resort about 100km north west of Tampere. During the second night there is a snowstorm and ice on the camera, but the rest of the time it is pretty clear. I wanted to slow the movie down (i.e., take more regular snapshots) on Monday morning, which is when I realized that it is quite deserted and that most people go on Saturday and Sunday.  Perhaps this coming weekend I can fix that.

Tomorrow is the start of the Bridging Course (or Programming Bootcamp, as I think of it). We present it to new students who have not done any programming at school. There are good indications that it helps them in their first-year programming course. Of course, one can prove anything with the right statistics. There are also good indications that it is detrimental to their maths courses. Finer analysis required. Anyway, I teach one half of it: about 200 students show up and I take the English half, my teaching partner takes the Afrikaans half. It is hard work: six hours of teaching (one three-hour lecture in the morning, one three-hour tutorial session in the afternoon), but it is rewarding and pays good. I intend to finance part of my trip to Finland with this money. And it only lasts 5 working days, so in one week’s time it will all be over. Expect reports from the battlefield in the coming days.


WC movies

In this case, WC stands for webcam. After my Tampere Christmas day webcam experiment, I thought it would be interesting to repeat this for other webcams.  Several problems arise: (1) there are not many nice webcams available, (2) I have no direct control over the webcams, so I cannot update more frequently than the webcam takes the pictures, (3) it takes a long time.  Well, (3) is a problem caused by the structure of space-time and, although there is a solution (webcam archives), is not easy to solve in the future direction.

So here are two more attemps. The first is a beautiful webcam in Milnerton near Cape Town. I like the images, but unfortunately it shuts down at 23:00 and only restarts at 5:30, which explains why the image is static during the middle of the night. I also tried to “slow it down” for the second sunset, but it didn’t work very well: the webcam does not update frequently enough. The movie spans the period from Saturday 8 Jan 10:52 to Monday 10 Jan 9:01, updated every ten minutes (except around sunset on Sunday, but you probably won’t notice it). The sun’s disk is replaced by a black dot, probably because it is over-exposed. Also, this period was exceptional weatherwise: some  of the few non-sunny days of the last month. But that makes it slightly more interesting I think.

The second example is from Tampere. The webcam belongs to TeliaSonera MediaLab, and looks (I think) from the building across from the bus station (near Ratina) south towards Ilvesjärvi, or perhaps more towards the city university. I’m not exactly sure. It covers the same period as the previous movie.

Neither of these movies is going to win a prize at Cannes, but they are probably worth watching once. I also made two others, slightly more interesting I think, and I’ll put them up tomorrow. Not the greatest genre ever conceived, but I like the way the snapshots come in and then actually make sense once I put them together.

Real art, of course, would be to jumble the images up and put them in a random sequence. I have toyed with this idea before: I wanted to make many recordings of my trip to work and back, throughout the year, and then compose them to show how the seasons change as I travel to the office and home again. I don’t think I’d need too many such videos, but unfortunately I encountered another problem. There is not enough room between the windshield and the dashboard to fit my smallest tripod, and the camera won’t stay upright on its own. Moreover, the reflection from the windshield spoils the images. So, this project requires a little more thought. Getting back to the webcams, I had considered taking one webcam snapshot throughout the year and composing those, but I’m still trying to figure out how best to set up the scripts for that.

One last note: I have been off caffeine for 9 days now. I still drink decaffeinated coffee, and that might contain some, but I cannot believe that it is much. Until now there have been no side-effects, or at least none that I’ve noticed. Even in the heat I consumed about 8 cups of coffee per day, and a lot of juice. I guess I’m just not caffeine-sensitive.


Sunrise, Sunset, Swiftly flow the days

Today I did absolutely nothing. Except. For various nefarious purposes I want to know the time of sunrise and sunset. I tried to find the formulas and write a small python program to calculate the times, but it turned out to be too complicated. Or at least, I didn’t get the right results the first time around, and there is no need in this case to reinvent any wheels. So I downloaded a couple of C programs that calculate the times, but it turns out that none of them agree on the exact times. They are only off by a couple of minutes, but that is quite significant in this case. So, I chose one which is closest to the times I can find with online calculators (they also do not agree exactly) and went with that. Interesting that something that is supposedly scientific can be so tricky to implement accurately.


This time next year we shall be laughing together

I have finally decided (roughly) to go to Finland at the start of April and stay until the end of May (or longer if I can manage it). This is a little tricky because there is also a rough plan for my to go to the USA in June, so I’ll have to be careful about the visa application.

It has been three years since I visited Finland, and I am really looking forward to the trip. Tampere and Hervanta in particular are still fresh in my memory, but I suspect that many things have changed. In fact, each time I visited there were a lot of changes. It is easy to keep up to date with Finnish news (http://areena.yle.fi/), but more tricky to keep track of the more mundane aspects: new streets, new buildings, trees that have grown, etc. Every time I have been away, these things have changed, partly because the centre of Hervanta is in the midst of a long-term development. The university itself has changed dramatically since my first visit.  The biggest change, however, will probably be in the people. Old faces that have disappeared, new faces that have joined the department. In the last three years, the university structure has changed drastically: it is now a semi-private university (as I understand it) with a lot more bureaucracy.  But that is always the way it goes.

I spent the Christmas weekend at my parents, but I set my computer at home to retrieve webcam images, which I have compiled into a short movie. It shows Hämeensilta, a bridge over the Tammerkoski rapids that connect the upper lake (Näsijärvi) to the lower lake (Pyhäjärvi).  (If you maps.google for “Tampere Finland”, this is where the marker is placed.)  It covers the period from 24 December 12:29 to 26 December 22:55 in ten minute increments. The movie runs for 14.6 seconds.


Monkey music

Apparently primates respond to music specially composed for them (based on primate calls).  They are indifferent to Nine Inch Nails, The Grudge, and respond only a little to Metallica.  But they like to relax when they hear monkey-calming music (high octaves, rising intonations, sample 1), and get excited when they hear monkey-arousing music (sample 2).

I am at the moment in a deflationary mood: I have quit Facebook and am thinking about deleting my LinkedIn profile, too. I spend too much time connected to the internet. It is difficult not to be alarmist, but I’m not a big fan of social networking and think it is a bad thing. The world may not be going to hell in a handbasket, but perhaps some other kind of container nonetheless. (Perhaps that is simply a reflection of my own lack of face-to-face interaction, which is something I am trying to address.) But I still believe that there is at least some value is actual human contact and that the net makes us much too vulnerable to our own kind of monkey music. It seems that the net is being taken over by advertising, which is, some respects, just another form of spam. I’m growing a little tired of it all.

I don’t think advertisers have even scratched the surface of the net’s potential to lure consumers. There are more and more interactive ads, and such overt mechanisms might work, but I’m much more afraid of insidious, subconscious techniques. I was listening to a radio program yesterday that explained how casinos draw in their customers. Lots of flashing lights on the ceiling, busy carpets, sounds, free drinks to impair judgement, anything that builds anticipation. I’m sure that it won’t be long before the whole of the is like one big casino.  With monkey music.


In cervesio felicitas

Today I did something that I have not done for the longest time: I bought alcohol. Usually, I drink beer and wine at parties, in pubs, and with meals at my parents, and I have a box of wine that is ageing in the corner, but I almost never buy beer or wine for the house. I have no particular stance against it, I’m just too stingy and lazy to go to more than one shop. (Although I must admit that Pick’n'Pay sells wine.) (In fact, now that I think about it, perhaps it is time to make a trip to the European shop — a kind of Lidl — down at the mall, just to see what foods they stock.)

My decision to buy a sixpack is probably influenced by the heat and some marteting seed planted somewhere that a cold beer on a hot day is pleasurable. My low alcohol consumption means that the one bottle I had this afternoon produced a very light buzz, but nothing to get excited about. I’m definitely not going to get wasted, although I have a policy that it is a good idea to do that once a year. But I think that, as in the case of smoking, the effect is mostly psychological.

The heat means that I did not accomplish much today, although I have proofread another big chunk of a thesis I am examinating. I want to finish that tonight, so that is another reason to not plunk down and have another beer. I’ll save the beverages for another day. Also had a nice lunch with Willem and Amanda, and we had a good conversation about his Web-based Applications course. My contribution was limited to suggesting heavily that the students our VirtualBox, of which I am semi-enamoured. It makes life a lot easier for experimental work, and on the Mac it works perfectly. Come to think of it, I had better to do some work on the CS website in VB tonight.