Last Thursday (24th November, 2005), there was a FOSS Day at PESIT, my alma mater.
Typically, I managed to leave office and reach PESIT at 4.10 when I was supposed to be there at 4. The venue had shifted from the hall in the "new" building to the MCA seminar hall, because of confusion on who had booked the original hall or rather who gets to use it.
When I entered the MCA hall, there were quite less number of students, but they slowly started trickling in and finally filled up the place. I met one of my teachers (after 2 years) and he still remembers me by name. That was cool.
The first talk was by Tejas on 'Why FOSS?' where he gave the "free as in freedom, not free as in beer" speech. I don't think there has ever been a FOSS introductory talk without that phrase. Then, he dispelled some FUD on FOSS. Yes, open source software does not necessarily mean free software but the vice versa is true.
Next was Anush talking on FOSS development.
Then, it was my turn to give my usual 'Slither Away with Python' talk. This must be my fifth or sixth Python intro talk that I have given :-).
I was worried that my coughing would affect the talk, but Vicks VapoRub came to the rescue. Man, that stuff is powerful. Anyway, I digress...
It's fun to introduce a language like python to students who know only C/C++. The first thing that amazes them is that you can type at the interpreter prompt and gives back results immediately, no edit-compile-run cycles. One of the evergreen examples is the swapping. I asked them on the algorithm we learn on how to swap variables in C and they promptly gave me the function that uses pointers to achieve the same and I said 'This is how you do it in Python' and typed
b, a = a, b. Of course, you can do that in almost any modern interpreted language these days, but they didn't know that, heh. One of the cool things that is specific in python is the slicing such as
a[:4] to get the first 4 characters of a string and the
for..in loop, which the audience was impressed with.
He did talk about the importance of real world skills and how learning to read code is one of the most important skills that a programmer needs to learn. He gave some examples from his own experience. One of the examples was how he was working on some OpenOffice bug along with Michael Meeks and Miguel de Icaza. He started working on the problem while these guys went out for a break and when they returned, they solved the problem in a jiffy. He asked "How did you guys solve this so fast?" assuming he was pretty smart compared to them (no comments there from me). They said "I had seen the code before." There you go. Simple and straightforward answer, but a lot to understand from that. The students were quite inspired by his talk.
This was followed by Praveen speaking on the education software initiative.Atul was late for his slot. Unfortunately, quite a few students left during this gap. Well, it was their loss, because Atul's talk was thought-provoking and he really made the students feel that they can do something innovative and they can do it now. He gave many examples of students such as Kalyan, Shreyas and even me (okay, I admit it, I was surprised to be part of that list).
Two of his slides said "There are two times you can innovate. One is when you are a student. The other is when you retire." .... I hope that's not an absolute statement, because that means there's no hope left for me! However, it is true that I have not been able to do so many things that I wanted to do, compared to my college days when I had done a lot more.
Overall, the day was successful and it seems quite a number of students have got enthu to do stuff now.