I witnessed yet another public defense of PhD Thesis: Formal and Informal Software Specifications by Kristofer Johannisson. Let me digress for a moment to tell you how a PhD goes:
A PhD in Sweden takes 5 years to complete (unlike UK where it's 3 years). Perhaps, it has to do with the civilingenjör degree awarded after 4 years of university education with a thesis - it's considered equivalent to MS. Usually, a PhD student publishes 4 papers that get combined as his/her PhD thesis. During these five years, the student is expected to teach, grade assignments, etc. for 20% of his/her time as well. Sweden is also famous for paying high stipends to PhD students (approximately $2000 per month).
On completion, the papers are published as a booklet and the student is supposed to defend his thesis in the presence of a jury. What's interesting is that there is an opponent as well. While the defendent is young (around 28 years old), the opponent is a middle-aged person with some experience in the respective field.
So, I was telling you about "Formal and Informal Software Specifications." The guy's work is related to translating software specifications from OCL to natural language (multiple languages are supported) and vice versa. Moreover, this provides a "single source" document for editing; that is, you can edit any of these and they will all remain consistent. The work is part of the KeY project.
The public defense is mandatory for award of a PhD degree. The jury sits and the opponent has the opening move. The opponent usually begins with a general introduction to the field of work, which is followed by the defendent describing how his/her work contributes to the area - a very brief overview of the research papers. The opponent takes over again and starts asking questions.
Quite interestingly, the defendent tries to move to his specific area of work - perhaps, to code level discussion, while the opponent approaches the boundaries only. The opponent talks about the context, the motivation and the alternatives. While the defendent talks about what he has done. Also, there are some common pitfalls where fresh people have problems and an experienced person already knows that. Both of the proceedings that I attended had to do with OCL in one way or another. The two different opponents asked the same question:
"How do you specify in OCL that a function doesn't change any variable except one particular attribute of the class?"
In OCL, you will have to enumerate all variables in the system to do this and for each variable x, you will have to state: x = x@pre.
Wisdom beats intelligence, that's for sure. Somehow, wisdom, experience and time are tied to each other. When I attended the first defense a few months ago, I thought the candidate would be failed because there were many questions for which the defendent was just saying, "I've never thought about that." But somebody later told me that it's almost impossible to fail a final defense.
While I have tried to motivate other students to attend such events, it seems that I am the only Masters' student who "enjoys" this kind of discussion.