Sunday, August 21, 2005

Books, sofa, and coffee

This is the second time I went to that coffee shop in Riau street, Bandung. (I won't name the place, since it might be considered advertising.) As usual, I brought a book (usually a couple of books) with me. The place was nice and cozy. I wen straight to the middle room, turned right to a room which has three nice sofa-like chairs. I ordered a hot latte, slouched and started to read my book. This was just perfect.

And then, it happened again. I just couldn't continue reading. My imagination ran wild. This time I was thinking about writing a book on the art of programming. Or, a book on the real life of programmers. I am teaching a course on programming this term. Actually, the first class is going to be this coming Tuesday. I just want to teach the real thing, not just the theory. Okay, I will do that.

I tried to cotinue reading. Again, I just couldn't do it. Now, I was thinking about something else. I was thinking about (advanced) physics, about Fermi-Pasta-Ulam problem. No, I don't understand the problem. In fact, that was exactly what I was thinking; how (what should I do) if I want to learn all of these advanced topics? This topic came about after reading (parts of) John Brockman (ed.), "The Next Fifty Years: Science in the first half of the twenty-first century." Boy, I was so lost.

Then another topic came, and another, and another ...

Thirty (or more) minutes later, I finished my latte without actually making progress reading the book. Paid the bill and went back home. I have to take train(s) to finish the book. Sofa and coffee are just too much. [Read my "trains and books" rant in my other blog. It's in Bahasa Indonesia, though.]

Thursday, August 11, 2005

Teaching programming to EE students

It's that time again. Time to teach second year EE on programming. This is their first formal course on programming. Perhaps, this is also their last time? I had only one formal course on programming and that was FORTRAN. Anyway, what should I teach?

We already decided that it's object oriented and C++ is going to be used as the language. Walter Savitch's "Problem Solving in C++" is the textbook. There were a lot of discussion before we came to that decision. Unfortunately, I didn't make notes (and am to lazy to write them down). Every year I re-think about it. (Perhaps, it's time to write the arguments down?) Here's an issue that came my mind recently.

High vs low-level programming

UML or higher level "coding." This is great, but I am afraid that my students would not understand low level coding. Remember that they are EE, engineers. They are not computer scientists. They may have to work with devices with low level programming, such as (micro)controllers and stuff. That's why we picked C++. It's not the best language to teach programming, but it can go to low level or high level.

I was looking at Michael Lynn's presentation (on Cisco IOS shellcode) the other day. (It was a huge fiasco.) Many parts of the description have codes in assembly language. Do I have to teach assembly language to my students? (Perhaps in a "core ware-like" game? Suggestion?) How many of you still play (work) with assembly language? Should I even bother? They'll learn it themselves. (Then, what's the purpose of me teaching them programming if they can learn it themselves?)

The most important thing is I have to teach them the logic of programming. BTW, how do I test logic? I want to know if they have the "foundation of programming," but not language-specific (or even paradigm-specific). Should I test them with pseudo code? Flow chart? Stories?

Anyway ... I wish I am allowed to teach programming with perl :)

Saturday, August 06, 2005

Scrapbook: Kingston, Ontario, Canada

I found an old picture, taken in 1987 (or 1988?) when I visited friends in Kingston, Ontario, Canada. At that time, I was living in Winnipeg, Manitoba, Canada. We were part of Indonesian students sent away to get post graduate degrees. They were in Computer Science (CS), while I was in Electrical Engineering (EE).

From left to right: Fahren (IPB), Budi (ITB), Yugo (UI). Posted by Picasa

Monday, August 01, 2005