Wednesday, March 24, 2010

The Dragon Book(s)

This post was motivated by the following picture (taken from Pearson's website) of the Red Dragon book's cover.
The Red Dragon book (taken from http://www.pearsonhighered.com/educator/product/Compilers/9780201100884.page)
Some of my students recently used this image as their profile picture during the time of this midterm test. It turns out that there were 11 students (ferdi, budi, denvil, hari, gilang mentari, ken, nurul, raufan, glenn, agung wibowo and erwin)  attending the compiler course taught by Prof. Heru Suhartanto this semester. I found that was funny since they called themselves the knights and lady of compiler .. :-D. And yeah, by the way, 'the lady' here is singular because there is only one girl attending the course... :-)

You may guess that the course was not very popular which is true. Since my time as an undergraduate, this course was already viewed as one of the most difficult besides Prof. Chan's linear numerical algebra. It might be caused by the highly technical content of the course, making it challenging to most students who usually tends to prefer "easier" courses. Of course, there is no such easier course, but they always consider those courses where they can just sit and sleepily listen to the lecturer without pushing their brain with mathematical and technical details.

What makes it funny is that the textbook's cover fits the impression that the course is difficult. Picturing a knight facing a dragon whose head comes out of the computer's monitor really emphasize the metaphor of conquering complexity (at least this is what the Wikipedia entry of this book says). In fact, this famous textbook on compiler design and technique by Aho, Sethi and Ullman has been actually published three times, all of which depicting a battle between a knight and a dragon. The original edition was actually titled Principles of Compiler Design (published in 1977) and called the Green Dragon book. This was then followed in 1986 with the first edition of Compilers: Principles, Techniques and Tools which is called the Red Dragon book, and its second edition called the Purple Dragon book, published in 2006 (see the book's website here). The newest edition covers many modern issues in compiler technology, including  just-in-time (JIT) compilation, and garbage collection.

Such is the book's reputation, it is now considered the classic reference for compiler technology. Like Cormen's or Knuth's books in algorithm, this book is absolutely mandatory for those whom are interested with the technology. I also view this course as a must for CS students because  it underlies many advances in software technology. Don't be afraid with the dragon, it is not too frightening once you jump in the course yourself... :-)

Tuesday, March 23, 2010

Short note on CSUI’s curricula

I used to have a blog at blogspot. Sadly, it was neglected for a very long time. In fact, my real last post was when I was still living in the student dorm while I was studying in Dresden, Germany. This is partly because we didn't have internet cable connection after we moved away from the student dorm as we didn't get a place for a family, but also mainly due to my laziness.

My wife often remarks that I can and should write more. Considering that I do have a quite extensive personal library, she is obviously not far off the mark. What remains is the motivation to do that. Let's hope that it does not diminish over time....

Move on to today's issues. In the last two days, all (well, actually not all, as some are missing due to other commitments) academic staff, i.e., lecturer met in campus to discuss the forthcoming change to our bachelor programs in computer science and information systems. This change is actually periodical, once for every four years, to anticipate new developments and challenges, both internal and external.

Actually, after twice doing this 'rapat kerja' (yesteryear and the year before that), I expected that there will be a quite major change to the curricula, especially since many of us view that the separation between CS and IS program is rather unclear. Even I have hinted some of my students with the forthcoming changes, e.g., compiler techniques course is mandatory, data structure course is offered in the 2nd semester, etc.

However, the faculty also received some external inputs which imply that the level of programming skill of our graduates tends to decrease. This forced us to rethink again about the changes. In the end, we still arrive to the programming courses arrangement similar to what we do in the 2006-Curricula, namely starting from Dasar-Dasar Pemrograman (in C), followed by Desain & Pemrograman Berorientasi Objek (in Java) and then in the 3rd semester, followed with Struktur Data & Algoritma (in Java).

Some expected changes were retained though. This is mainly about the strengthening of separation between CS and IS stream. Some architecture & hardware-related courses for IS will be redesigned, while overall, there will be many more new, exciting, elective courses to be offered, including Semantic Web... :-).

Some works still need to be done to finalize the curricula, but it is expected to be used starting from the next semester. Hopefully this will lead to better direction for Fasilkom UI in the future... :-)

Moved to wordpress...

Please visit krisnadhi.wordpress.com for my newly started over blog...