This semester, like 2020, 2021, and 2022, the exam for this course will be oral. Except for some modifications, a few additions, restructuring, and polishing etc., material is the same as in previous years. It years before 2020, the exam was often written.

Some emailed me and asked how to prepare and learn for an oral exam. Perhaps oral exams are less common here, so it feels more unclear what to expect from this form of exam.

Written exam, which may be more common, seems called ``skoleeksam’’ officially, which, at least in my ears, sounds strange: we are at a University, and we are in a master level course, so an oral exam is a valid form of examination, in my eyes. I would also not see it just a nodløsning. Zoom is a nodløsning, Silurveien is closed and home exams are a nodløsning, but oral exams are not; some may disagree. Anyway, even for the same content, preparing for an oral exam and preparing for a written one is slightly different

About this text

This post tries to give information about the oral exam, what to expect and how to prepare. It’s my personal view based on my personal experience. Experience from the time when I was a student and of course also from the time I was examiner resp. assisting oral exams, like taking notes, doing the protocol, or being a sensor. In the Norwegian system, there exists the role of the sensor, some extra person who is able to understand what’s being asked and answered, and who plays a more influential role than just a silent protocol taker.

Anyway, I have been part of many oral exams, both as student as well as on the other side of the table. At earlier universities were I have been, outside Norway, oral exams for courses later in the computer science and physics curriculum seemed more common than here (at least at that time; I don’t know if that changed). Basically, at master level, oral was the norm, below that, there were written ones often, but even there, and even with large lectures, orals where not uncommon, besides other exam forms like project work, (pro-)seminar presentations etc.. Large lectures meaning, the first semesters had something like 500 students, that’s a lot of orals…

That means, I’ve been to more than a handful oral exams as student, and must have been to literally hundreds or thousands of individual oral exams for quite a number of lectures or other courses of various sorts and sitting with examiners of various sorts. So starting from PhD times, at exam time, one had to sit through many exams as protocol taker, sometimes 2 weeks in a stretch from morning till evening, one individual exam after the other. Later, as post-doc, as scientific assistant, professor etc. still assisting, but also being oral examiner for my own lectures. Also for different kinds of lectures, for instance helping out for lectures of colleague on some topics I did not teach myself).

The lecture here is compiler construction with quite a number of technical content (like automata, and grammars, different representations, etc.), but there are other kinds of lectures as well (less technical perhaps sometimes or also more mathematical etc.). The kind of content influences to some extent the style of questioning.

Another influence is the examiner. I witnessed quite a number of examiners, with different styles how to ask questions and how to structure the exam. Some give big freedom to the candidate, some favor precisely and narrowly formulated questions (maybe even written down) and expect a quite quick, narrow (and hopefully correct) answer. Below I will say a bit how I structure the exam.

What to expect from the exam?

Goal of the exam

The topic is compiler construction resp. the aspects of compiler construction covered by the lecture. The intent is to try to check breadth and depth of knowledge about that, the understanding of the concepts. Both goals influence the design of the exam (see below). Generally, we stress the understanding aspect. To make an extreme example: if during an exam there’s the question ``what’s a context-free grammar’’, an answer like

Oh, that’s “G-equals-left-parenthesis-N-comma ….

in isolation is worth basically nothing. If someone miraculously manages to memorize that ``formula’’ but cannot say more about it, maybe not even what it is used for, what role CFG plays etc. it does not count for anything.

It does not mean one cannot give the tuple as part of a larger answer, it may be part of a good answer, but there are others. One can also say ``a grammar is consists of the following ingredients: terminals, non-terminals … The terminals in this context refer to….’’ So the formula in isolation is nothing, but on the other hand can be used. One should not ignore details like that when learning, but one has first of all to understand them.

Design of the exam

The oral exam is a form of dialogue or interview with a fixed time. It’s also ``guided’’: the examiner asks and the candidate answers. It’s not 100% rigid, also the way the answers are given shapes the dialogue, leading to follow a up question, or resulting that the examiner gives help or hints etc.

Some do oral exams like this: at the beginning of the exam, the candidate is given one or maybe more than one question, and then having some minutes to think out or work out an answer or solution. During those minutes, perhaps the student is left alone to think undisturbed, before called back to present the solution.

We don’t do that, the questions won’t be of the nature that requires 10 minutes working out or solving something, resp. if it’s a question that refers to working out something, it will be like ``how does one solve this-or-that’’, and the intention is to see if the candidate knows how to approach the problems, which steps one would go through if one had the time, perhaps starting to sketch some steps, but not carrying them through. There is simply not enough time to do that in many cases.

Covering different areas

As said, one goal is to check the breadth (to a certain extent). Of course we cannot ask everything, so there will be a selection. We do that by having, say 3 main sections during the exam of roughly equal duration (plus maybe a shorter general questioning section or side issues). Each of the section is dedicated to one topic, maybe corresponding to a chapter or a part of chapter.

Once the time for that slot is up, we shift to the next part: ``ok, let’s move on to a different topic, say context-free grammars. For a start, tell me ….’’

Inside an topical area.

Inside some topical area, we typically try to steer the question from high-level to more low-level or more detailed ones. That’s to check the depth, how deep can we go.

Starting from the top is done partly also for psychological reasons. If one starts right away with a specific one, the chances are higher that maybe the candidates does not know the answer; that increases the nervousness, and one tries a littler simpler, but still the answer not really going smooth, so in the end, the candidate cannot focus on anything else than thinking that already some early question were not done well, and that also influences the rest of the topic negatively.

So, better is top-down, I guess. Probably the first question will be answerable to some degree. Of course, even a simple, general question can be answered good or less good, quickly to-the-point, or in a wishy-washy manner etc. If one proceeds this way, starting easy and seeing how deep one can go, if then already the first question can be answered only very hesitatingly is not a good sign and may mean, there is more reason to panic than if one cannot answer an opening deep question… But one has to start somehow, and we go top-down.

That does not mean, there might not be bottom-up moves sometimes. It can happen that I ask a question, and perhaps it turns out difficult to answer, so one backs off, making a more high-level or more general formulation instead. That’s no immediate reason to worry either. To partly back off is meant to have something else to talk about, partly as assisting, because one can come back to the original question afterwards. When backing off a bit and talking about something a bit less specific, that often brings back ideas what is meant by the original question which then one can answer. It’s not uncommon, and as long as questions are answered it does not matter in which order.

What questions to expect?

I always say: The questions that will be asked are actually known! Maybe not the exact wording of them. If one asks ``look at this expression and tell me…’’, the exact expression may not be known. But apart from that the pensum (the slides, the script, exercises…) should give a comprehensive picture what will be asked.

Like: there is a section called ``top-down parsing’’, so there can be a question ``Please explain top-down parsing’’. The section contains subsection ``recursive descend parsing’’, there might be in the exam the follow-up to top-down parsing like ``thanks for the explanation of top-down parsing (and mentioning the bottom-up parsing on the way), but let’s stick for top-down for now: can you explain also recursive descent?’’

Being asked the original question about top-down parsing, a good way of answering it is, maybe after say what top-down generally is, to proceed by explaining recursive descent. So to say ``volunteering’‘ this further elaboration instead of waiting until resp. if that follow-up will be asked. Remember: for most questions we don’t expect one-liners as answer, there is basically always meaningful further elaborations to add, and offering that (by continuing adding relevant related information) is ok. If we think, that’s enough, let’s move on, we say so. Volunteering in this way for relevant elaboration does not only show that you know what is additionally relevant for the questions, but (hopefully) represent also that additional material correctly.

Of course, if one vaguely remembers, recursive descent was mentioned in the section about top-down, but one really cannot say much about it except that it is somehow recursive, one would probably not volunteeringly go there, but rather hope the line of question stops there, or offering LL(1)-tables instead (because one remembers them). Or not elaborating on anything, waiting for whatever questions will be posed as follow-up (hopefully not recursive descent…).

Offering additional relevant information is also good in connection with examples. For instance saying ``Let me illustrate this or that with a small example’’, that’s often a good way to demonstrate knowledge. And in this way, you have control over the example. That may be preferable over waiting until or if the examiner ask ``look at this small example, can you explain the concept with it?’’ Already choosing a relevant example (and not to big) shows understanding. Of course, explaining a concept on a non-self-chosen example shows also understanding.

Now, back to the original point: what questions will there be?. I said, basically the questions known, and I mean it like that. In an earlier University where I have been, there was a professor in some other group, who was known for publishing the list of questions before the exam (on the internet and/or on the blackboard of his research group, so the students could print them or make a copy). That sounds weirder than it is.

When I was a student myself, the student organization had lists of questions having been asked by this or that professor for this or that course. After surviving an exam, the student could note down the questions to the extent remembered (that’s not always easy) to help next year’s students. Perhaps also noting down remarks like ``that professor wants details, be careful, I had to solve things like XXX from the exercises in detail’’ or ``the exam focused for me mostly on general stuff, I was over-prepared remembering tiny details and notation, but I was not even asked, but it went still ok’’. After noting that down, one dropped that in the post-box of the student organization (nowadays via email or an ``app’’ or a digital ``løsning’’ no doubt…). So, when preparing for the oral exam, one could go there, make a copy of the collected and compiled questions of the last years.

So, the questions were known. Those lists where both helpful and not so helpful. They were not so helpful insofar that in principle, what’s being asked was clear resp. should have been clear anyway. That’s why the public list of possible questions of the other professor was not such a big deal. On the other hand, the lists were helpful. Not only because they contained (sometimes pieces of) information what kind of questions would typically occur and the style of exam, but giving the feeling one knows what to expect. Especially for the early semesters, if it’s one of the first oral exams, one could perhaps avoid loosing sleep speculating wildly what on earth could happen. Seeing a (long) list of possible question don’t cut down the pensum as such, or make it easier to understand, but still it may feel more manageable.

How to answer?

I mean, how to answer, beyond giving correct answers…

There are two points to keep in mind, one is the fact that the exam is time-limited. The second one is, that the questions expect almost never a one-liner. For illustration, assume a question ``what’s top-down parsing’’ and an answer ``that’s when the parser works top-down. End of message’’. That’s a correct one-line answer, or at least a not incorrect, but in this particular case is of course not very insightful either, almost an empty answer. Probably, there will be a follow up, like ``can you elaborate?’’ If the response to that is ``Elaborate in which way, can you ask more precise?’’ then the next question may be among other directions ``What’s a token in the context of parsing?’’

This way of prodding interaction is not ideal. For once it makes a better impression, if one elaborates relevant aspects in a structured manner oneself. Furthermore, it wastes time. Even if in the prodding-style, every single answer would correct, not much ground may be covered. One may never reach more advanced or detailed aspects of the topic at hand: before asking something more detailed there, the time for the part is over, and we start with a new line of asking.

Scratching only at the surface, even if all answers are correct, influences the outcome negative.

For the same reason (avoiding waste of time), one should not repeat information already given. Once answered, it’s done , and normally one gets signaled, that it’s answered (``ok, thanks about this, but what about that’’ and then one should not say things about “this” again, maybe in different words.

Of course not all follow-up questions by the examiners are prodding in a negative way, in fact most are not, so being asked an additional question as follow up is not a sign of having not volunteered enough elaboration. But if the time of the exam is more consumed by questions rather than answers, it’s imbalanced.

What if I (as candidate) don’t understand what’s being asked or unsure what’s expected?

In such a case, just respond by ``can you repeat/reformulate the question?’’ Or better ``Do you expect me that I do or explain the following?’’ ``Does that question refer to ….?’’

What to do if I don’t know the answer?

Well, it can happen. One should avoid to panic, of course. I think it’s seldom that one is completely blank. One could either volunteer for information about (mildly) alternative and related topic. Or putting it into more general context. Maybe that is accepted by the questioner, however, the original question will probably not be forgotten (``ok, thanks, that’s correct, let’s come back to the original question…’’) But as long as correct and related (and not already covered) information is given, it’s not bad, better than saying nothing probably and waiting for the follow-up question which may be in the same direction.

Also, it may feel better than plainly saying ``I don’t know’’ avoiding panic, and it may be the case, that while talking about on slight background- or side-issues in connection of the original question, in the back of the brain, the original question resp. the answer to it becomes more clear, and one can answer it. That’s a good answering tactic, saying something relevant, but slightly off first, delaying slightly thereby and while talking the real answer comes to one’s mind. It can work. Of course, one should use it with care (maybe the examiner wants at that point no further delay, or the digression is too far off, but there is always a bit wiggling room)

What will not be asked?

No trick questions.

From time to time, one has the impression, a candidate hesitates to answer a question, not because the answer is unknown but because a trap is suspected, a trick question. If the question is ``explain determinizarion of an NFA’’, then one could get a dialogue like that (exaggerating for the purpose of argument):

  • A: ``what you mean!?! You mean just how to determinize the NFA’’.
  • Q: Yes sure.

  • A: ``You mean like just giving the construction? Or explaining, or just making example?’’

  • Q: ``Yes, sure, whatever you prefer’’

  • A: ``Just an example, like from the lecture?’’
  • Q: ``Yes, sure, if you remember that, fine, or a different one, but don’t make it too complex’’.

  • A: ``A small example would be enough?’’

In such situations that sometimes occur, one has the impression, the candidate fears ``there must be more to it, I understand what what’s being said, but that’s too obvious, I wonder what they really mean with this question’’.

But there is never a trick question. It’s said, that some companies in IT use fancy questions. Microsoft especially is said to employ those as part of their recruiting (there are whole books collecting question preparing for interviews in Microsoft or companies that use that technique, like ``how many ping-pong balls fit into a oil tanker’’ or strange puzzles and brain teasers). Those are supposed to require imagination, improvisation, thinking on the spot and, an all time favorite ``thinking out of the box’’. There’s no such thing as thinking out of the box at a university ;-) So questions posed are meant the most obvious way. The task is not to guess or detect the hidden meaning behind a question, it’s to answer it.

At least that’s the intention: a question is intended to be obvious and we don’t intend to speak in riddles. Whether the question is factually obvious, however, depends also on the one being asked. But if in a question like ``how does one determinize an automaton’’ the word “automaton” remains unclear as well as “determinization”, that would be a sign of not having studied that part. The question is still not a riddle, and the normal reaction in that case would not be the above dialogue, it’s more like ``I don’t know the answer, I skipped that section’’, or ``I can’t remember details, I just remember that…’’.

No long blind alleys (and maybe no too long thoroughfares either)

When we see that a question is misunderstood or the answer goes into the wrong direction, we ``intervene’’. So, it will not happen that a answer runs for minutes down a blind alley, and after the answer is given, we say, thanks and remember it as wrong (and having wasted precious time). So we try to correct the course, and put it the answer back on track.

That does not mean, that the millisecond the answer goes wrong, we shout “stop”. I believe, being interrupted abruptly a few times in mid-sentence can cost nerves as well. So, we wait until the answering sentence is finished or similar and only then interfere in some way. Note that if the answer is slightly off, we might let it pass and let the explanation take its course slightly longer, even if it does not 100% fit to the question asked. In that case, since we are ok with the answer anyway, this would not counted negatively or as ``answer not given’’. We might afterwards try to come back to the original question, or maybe not.

In case the answer is correct and well-formulated, on track, and proceeds smoothly, more interesting information is added etc., then we normally let it run for a short while. Still we may pose additional questions, or also try to redirect or stop the argument. Sometimes that is because we have seen enough, it’s all good, the candidate sure knows the answer. Or if the argument, while still ok, has run it’s course, and the answer starts going in circles or covering ground that is more or less explored, so does not add much new information and it becomes a bit a waste of time. So we move on.

Finally, it sometimes happens that the argumentation goes too slow. For instance, one could see that sometimes when asking for an example or being offered one: ``let me sketch it with a table or graph’’. In principle, that’s all good. But then, line by line, letter by letter, subscript by subscript, a graph slowly unfolds on the whiteboard. It sometimes becomes a bad use of the time, a low information transmission rate, so to say, especially, if someone draws a picture silently, without additionally sharing information on what is being done and why.

Anyway, being ``interrupted’’ in one way or the other or having the course of an answer re-directed is not necessarily a sign of a wrong answer, indeed, it’s quite common.

Can I answer with stuff I know outside the pensum?

That’s tricky, resp. it depends. You are not expected to know things outside the pensum, so we don’t pose corresponding questions.

If you know material outside the pensum, that you are sure is relevant for the question, and if you are sure that the examiners can understand what you are offering or at least get the impression that you know what are talking about and get the impression that your answer is relevant for the question, then one can do that. If you happen to impress the examiners with relevant extra things outside the curriculum that nonetheless fit to a question, that counts in your favor.

Having said that: this is of course not (!) an advice to read up on all kinds of extra-curriculum stuff planning for a shock-and-awe strategy, dazzle the examiners with all kinds of additional related stuff. That has a very low return-on-investment ratio and may backfire… If one happens to know such extra stuff for one particular question or other for whatever reason, why not.

What one should definitely avoid is to offer alternate material instead of pensum material.

This quite seldomly happens, but still one sees it happening. Like ``I don’t know what a deterministic automaton is according to the lecture, but I stumbled upon an interesting article on determinism on Wikipedia/on some paper’’. Sometimes, it might not be a problem; if one finds deterministic automata defined in a different source, they are all similar anyway. Like in our lecture we called the states Q, and in some other book they write S. We want to find out if you understand things and can explain them. If you use S instead of Q and say ``there is a finite set of states called S’’, then that’s something one can easily follow, and we want to know if you know what an automaton is and what states are, not whether you remember whether it’s written S or Q. However, the more the answer deviates from halfway conventional notation or using other terminology, that may slow down communication, may lead to misunderstanding and all that is not good.

It’s mostly unproblematic; though very seldomly people seem to use ``alternative’’ explanations or definitions as evasive tactic claiming ``but in some other book, they use the concept different’’. Argumentation like that is normally ill-advised especially during the exam (it happens now and then), to the very least it wastes time. And as examiner it’s normally easy to see through that, if it’s used as evasive tactics. If there is really a significantly different definition from somewhere, maybe outside compiler construction or computer science and you really know that material, it’s not even relevant, and trying to explain what the alternative definition means may be successful, but also that wastes time (and is still probably irrelevant).

How fast should I answer, how long should I think before the answer?

One should not feel obliged to blurt out an answer. Sometimes one sees candidate, they start talking before a question is even formulated, there is not much gained by that. Better carefully listed to what’s being asked till the end of the question. And perhaps taking a breath while collecting one’s thoughts.

However, there is not much gained in remaining silent for a long time, until one has found the best way to say or start things. There is seldomly a best formulation, so no need to try to formulate one silently in one’s head, and start speaking only after it’s mentally chiseled out. The only situation where I can imagine a `best’’ answer exists is for very precise and narrow questions: ``How many states does this automaton has?’’ ``5’’, ‘nuff said. But those questions are basically never asked. Already for a question like “is this grammar ambiguous or not”, one could of course say yes or no. But what is better is the following (unless ambiguity has been asked in the previous question and this one is a follow up): ``Ambiguity in a grammar means, that there exits derivable words such that… For this grammar it seems to me that it’s ambiguous (or not), because if you look here….’’. If the question is answered by a short “yes” or “no”, the follow up will anyway be ``why you think it’s (un)-ambiguous, can you elaborate, maybe start by saying what ambiguity is…’’.

How precise should my answer be, resp. how ``evasive’’ should I answer?

Well, the more concise, the more to the point etc. the better. However, it depends also on the question. Some questions are more ``loose’’. So the precision of the answer should somehow fit to the precision of the question. To respond to a question ``explain the concept of static link in run-time environment’’ with ``let me start by illustrating the difference between front end and back end of a compiler, so that I can more clearly position the role of static links afterwards…’’ is probably not a good move. The reaction will probably be, ``wait a second, could you stick more closely to static links’’. Especially, since most series of questions go from more general to more detailed, which means at a point where static links are asked, one has left for the time being the very broad or general level and one wants to dig a bit deeper. So, offering to start by shedding light on a super-broad context feels like evading the question. And maybe hoping the question will be forgotten. Even if somehow I would let it slip, like allowing to starting with a broader context, the question will typically not be forgotten (except that in the end, time’s up, like ``saved by the bell’’). For instance, for the static link question, an answer starting like ``let me first short explain what a stack frame is, before I clarify the static link’’ is probably ok, maybe even good because it shows that one knows that static links are a concept in the context for stack frames etc. Shedding light on the even broader context of front-end vs. back-end on the other hand would more than stretch it. Also starting by ``let me explain first dynamic links before I come to static links’’ is evasive. Starting by explaining static links, and then offering ``this is in contrast do dynamic links, namely in the following way’’, that’s not too bad, so one might be lucky to take that course.

In general, I would say, one should not ponder the best answer for long. Note that in many question, there is no such thing than the best answer. Starting to say meaningful and related things in the direction of a useful answer is preferable over remaining silent for long stretches. Silence counts for not much, saying something correct and in response to a question counts positively, even though one could have said it better or shorter or more understandable, given enough time to polish the answer. Therefore, also doing an mistake during an answer (``can you tell me which variables here are live and which are dead’) don’t actually count negative, everyone makes errors, provided you are able to either spot the error, resp. if the examiner points to it, (re-)explain the status. It’s checking that you know liveness, not if you can calculate it fast in a stressful situation. In such a question, is better to start explaining

``ok, liveness means blablaba [if that has not been discussed before] here we are doing global liveness it seems, and to check liveness, I will start here, let’s see, well, x obviously is dead, but…., oh wait a second, there is a loop….’’.

Saying things like that allows to see that you in principle understand what needs to be done (or allows to see the the extent of that knowledge), and that’s better than trying to solve such a question in the head being silent for a while. Everyone can do silence….

What kind of reactions to expect from the examiner?

I don’t have recordings of what I am saying or how I behave during the exam. So it’s just an ``introspective’’ statement here of what I intend to do and what I think I do. During an exam, I (and the sensor) must focus on the questions and answers, on what exactly is said, all concentration is on that. That’s also the reason why doing oral exams is actually pretty exhausting (being questioned in an exam of course as well). Anyway, one has no mental capacity to exactly observe oneself. Afterwards, one can try to reflect on it, or the sensor remarks things (``I think your second question was not very clearly formulated’’ or ``you should give the students more (or less) time to answer’’ or whatever). But not during one exam.

Anyway, as examiner one gives feedback. Of course, when a candidate asks something like ``can I illustrate it with an example?’’, one says yes or no, that’s obvious.

But also without being asked there is feedback, an exam is also a dialogue, not a iterated monologue. There’s a couple of things I try to keep in mind. First, I don’t want to be too negative. I don’t want to communicate by body language, facial expressions, or words that it’s going bad. Of course, if a question is misunderstood or an answer goes in the wrong direction, I need to try to put the answering process back on track (see the paragraph called ``no dead alleys’’). That’s done by words (``ok, I understand, before you continue, let me repeat and reformulate the question’’), not by frowning or a face palm…

Actually, I have the impression, that some candidates try to ``read’’ the examiner, consciously or probably unconsciously. That may divert mental capacity from answering the question to the attempt to getting a feeling if the examiner is ``happy with the answer’’. But maybe some people have antennas for that and it’s natural and comes easy for them, I don’t know. Sometimes one sees people tentatively saying a partial answer, hesitatingly, without committing themselves, as if fishing for hints in which way to continue. I don’t know how successful it is, especially when it becomes too obvious…

One the other hand, doing a complete robot-like poker-face during the exam to prevent fishing for answers is probably not possible. On top, it can create an uneasy atmosphere. It’s hard to talk to someone without receiving a slight nod here and there or a “Hmhm, ok, I see”. One can make people feel uncomfortable even stressful when showing no reaction at all; it’s called silent treatment

So we don’t do it. The above reactions like “ok, fine” or “Hmhm, I see” are not meant as ``that’s correct’’ or “that is what I want to hear” as answer. As bottom line, “ok” simply means, I am still following, I have heard and understood what’s being said, and if I don’t intervene beyond “ok”, then I see not immediate need for ending that line of answering.

If I say ``ok, that was correct’’, or ``ok, very good’’, that is confirmation that the answer was correct. Actually, people mostly don’t need this confirmation to know themselves that their answer is correct; but there’s no harm in saying it anyway. On the other hand, most people are also aware while answering when the answer is not correct or evasive, or wishy-washy or delaying the real answer, or when unsure about the answer. So one does not have to explicitly state ``ok, you were swimming here’’, people mostly are aware of that, I think (I know I am for myself). One could say ``ok, let’s look more concretely at…’’. The latter could also be asked as follow up for a concise answer, it does not necessarily communicate ``I think you’re swimming’’.

Are these hints useful in any way?

Perhaps they are, perhaps you think ``ok, good to know’’. On the other hand, if you think about those pieces of observations, they are actually not really useful for preparing, like giving actionable advice. They just describe behavior that one sees repeatedly during oral exams, some with positive effects some with negative. But there is anyway not just one proper way of answering, different people handle it differently. For instance, when saying, it’s better to not blurt out an answer before even the question is finished, but it’s also not good to remain silently for five minute before coming up with a crisp and to-the point one-liner, well, sure. But it does not give guidance like ``during exam, I should collect my thought for 10 seconds, that’s the best and recommended’’.

That advice makes no sense, and one is not directly graded for how many seconds it takes to start an answer, for instance. The smoothness, structuredness and, of course, correctness of an answer counts. And of course, if every answer takes 10 minutes, not much ground is covered, and that’s also negative. The fact that answers come super-slow is mostly a symptom of not being familiar enough with the material. So it can’t be addressed (during preparation) by learning how to speak quicker, it’s addressed by learning the material better.

That answers come slow (or hesitatingly or only with a lot of help and hints etc) may have also a slightly different reason, like ``I know the answer, but I don’t know how to say it’’. That’s slightly different and that can be addressed, and I talk about it in the ``How to prepare for the exam’’.

How to prepare for the exam?

Now having discussed what to expect, the question is how to prepare for the exam. To some degree, it’s the same as would be for a written exam. The usual general advise, start-in-time, follow the material to some extent during the semester etcetc. Nothing new there. Also the first point below is the same: the exam is about the content of the lecture, so one needs to be familiar with it. But there are also differences.

First things first: know your stuff!

That’s clear and generally not different from other forms of exam. There are, however differences what it means to know one’s stuff.

Drawing a parallel to written exam preparation

The exam for the compile construction lecture, when written, was “open book”, at least to the extent I know. In this form of exam, certain questions make no sense. For instance a question like `what are typical phases of a compiler’’ might be asked in a closed book written exam, maybe as easy, early general question. It’s not a deep question and not very interesting, giving a few points, but not many. Still, someone having visited a compiler course should definitely know about the phases of a compiler and what they generally do etc. But for open book exam, it obviously makes no sense to ask that question. In a written exam, one is mostly requested to solve problems, similar to the ones from the exercises. A collection of the written exams of previous years is also available, so one can look at the kind of questions that have being asked.

Those questions or problems are intended for a 4 hour exam. The question are estimated to be solvable well within 4 hours, provided one has solved or tried at least similar problems before, as preparation. Just ``knowing the concepts’’ (the definitions, the terminology etc) from the lecture without ever having done exercises oneself will probably not good enough for a super-smooth sailing through the 4 hours. One can look it up, of course, one can bring along earlier exams including their solutions, one brings exercises including their solutions, one brings the script which contains definitions of concept etc. One sure can look that up, and tries to transfer the information to the current exam’s question. That will give some results, but most people would run into serious time problems, I would estimate.

Sticking to the LL-illustration. Of course, if someone would give a solution in a flipped manner, like swapping the x- and y-axis compared to how it was done in the lecture, that would be perfectly fine. Still, I think, some time is wasted during a written exam deciding on how to proceed, even small stuff like ``where should I write the non-terminals, on the x- or the y-axis’’ (though that does not matter actually). Of course, ``learning’’ details like that is unproductive. In that situation, one is better off to quickly look it up, and then do the steps (which hopefully one understands in principle and is not doing them for the very first time). That’s better of wondering ``should I do the non-terminals in the x- or the y-axis? Will it matter, do they deduce points if I don’t follow the format? Maybe I should wait, and ask in the trøsterunde?’’ Maybe the example is a bit artificial, but “pondering” and trying to decide what steps to take costs time. Of course, understanding the task and thinking about what to do is not a waste of time (in case if it’s a not 100% routine question. Things like, say, “determinize the following automaton” should not lead to trying to understand what is asked and pondering to what steps should be done first. That’s what I mean in the “discussions” in the exercises as battle plan

It is not to say, in an open-book written exam, the bring-along material is useless, because it takes too much time. Most questions in such an exam are so routine, that with a proper preparation, and with battle-plans principally half-way clear, they are routinely solvable, without much looking it stuff, though a quick check from time to time can’t hurt, like reassuring whether one is doing it the right way, or to refresh some step. Like, if the question is ``give the LL(1)-parsing table’’, it can’t hurt so refresh how we have written it up in the exercises or in the solutions of previous semester. Just to feel more safe or to double-check (``Oh, ya, I should not forget the epsilons…’’).

So, looking things up in this is thus fine, especially if it’s done quickly. That involves that one does not need to search tediously through the material. There is a lot of material, one can even bring extra books (just in case), though that is basically useless. So, one might, in way of preparing, even cut down the material, not bring all the slides and all the script, just the part you expect to need. Make a colored index scheme (yellow tabs or the automata part, orange for top-down, whatever), so you quickly find it, without thumbing through the pages). Maybe even arrange the relevant small pieces of information yourself. At any rate, prepare yourself for the concrete situation. Sure, know the stuff useful in the required form (solving problem), know the battle plans and even organize the support material.

Anticipating the exam and planning the battle

Why talking about preparing written exams, when it’s about an oral one. Because the principles of how to prepare are same. Details vary. Knowing the stuff is still the basics. Also clarity about the problem-solving battle-plans mentioned as useful for a written exam are useful here. As mentioned, time is too short to solve a complete construction, but still, there may be questions about ``how to do this or that?’’. Then one could described how it work, or sketch and explain required steps, without having the time to go through some or all steps.

Not all or not even the majority of questions in the oral will be explicitly problem solving, There are also conceptual questions. Like: ``what’s an automaton? What’s the difference between and NFA and DFA?’’ The may lead to constructions like ``you said an NFA can be turned to a DFA, can you sketch that?’’. But anyway, there are conceptual questions that won’t show up in this form an open-book exam.

Also those need (additionally) a battle-plan of a slightly different kind than the problem-solving battle plans. But the purpose is the same, be prepared for exam situation, anticipating it. Like anticipating the fact that one wants to avoid wasting time when looking up stuff in case of need in a written exam, one adds colored tabs to the pages of material or make a organized selection of material.

That particular form of anticipation is not needed for an oral. But one should anticipate the oral exam situation, planning also for that kind of battle. One might not solve complete problem like in the exercises, one will be asked question. As said, in a certain way, the potential questions are basically all known. If there is a section LR(0)-DFA, there can be a question for some ``Explain LR(0)-DFAs’’.

Then, when preparing, one has to ask oneself ``can I speak meaningful, relevant (and correct) things, for some time answering that question?’’. Ideally maybe even in some structured form, like starting with DFA, saying what LR means, saying what the 0 means, sketching an example etc. This is not the only way one structures such an answer, there can be other, but in general some structure is better than no structure, like hopping from one small piece of concept to another one, just in the order they pop up in the mind.

Not only ask yourself if you could give such an answer. Give that answer, best speaking the answer loud. It’s like the difference of thinking whether you believe that you could solve some problem in a written exam vs. doing an exercise and see that you can or see the extent you can (and perhaps investing time in exercising until you are pretty sure you can). Same thing here.

It’s normally not ideal for most, even if they know the stuff, that the actual exam is the very first time the words for the verbal answer come out of the mouth. I guess, some are naturals, knowing the stuff means directly being able to impressively explain it. But not everyone. Sometimes one hears (not just in the context of exams) ``I know it basically very well, I just cannot say it’’. I mostly don’t believe in that. I really believe: if one really knows something, one can to some extent explain it. It may not be elegantly formulated, one may stutter or the answer is rather unstructured, but still, one can communicate it.

Even if one does not believe in that, it does not matter. Even if a candidate really knows stuff but cannot say what he knows, how would one know.

Therefore, anticipation and preparation would ideally include doing such verbal explanations, best loud. It’s not meant that one should learn small mini-lectures it by heart, of course. It’s not guaranteed that, in the exam situation, you have the chance to present a prepared ``mini-talk’’: Even if you could give a meaningful and interesting monologue for 25 minutes about some question, we will intervene after a while (even if what you say make sense), to give it a new direction, or start with a new line.

That form of preparation helps in more than one way. Firstly, as said, it’s typically not a good idea if the actual exam is the first time one searches for words to express something. Secondly, if one is critical to oneself, the attempt to really say things can show where one perhaps should read up a bit more. Finally, just the fact that one forces oneself to verbalize stuff in an clear way helps actually learning the stuff itself. It’s not the only way to learn it, but it contributes.

Same can be the case writing it up in one’s own words. If course that takes time, it’s not clear if that would be an efficient use of preparation time. If you write all answering arguments for all questions, you may be well prepared, but only for the exam 2023…

One could also try to compromise: not writing up everything, but condensing a topical area into a number of items, keywords or memorizable cues. That requires focusing on the important stuff, organizing and structuring it, distilling it, perhaps writing it up with tiny handwriting to a small memo paper or sticky note. That’s of course the good old cheat-sheet technique. Organizing material in such a way is a good way of memorizing it, and one can go through the cheat-sheet memos before the exam.

Of course, using cheat-sheets in the exam is not allowed. Maybe even the attempt is not allowed, like walking with cheat-sheets in the backpack to the exam. But writing cheat-sheets and using them to learn, I think is still allowed…

I stressed that verbalizing answers is, in my eyes, a good thing. Additionally, I think, a very good way of verbalizing it is not for oneself, but with one or more fellow students.

Explaining concepts to others in a good way of preparing. One can even play examiner and examinee. Both profit from that. The examinee is forced to give answers, and what is being asked is controlled by someone else (the “examiner”). Also for the examiner, already listening to the answers repeats the material, and one can learn from it (``That’s a good way for answering, I should remember that for my self’’). The examiner can give constructive criticism, but already a ``Frankly, that was pretty confusing, I did not get it’’ may be helpful.

I think everyone profits from such a thing. Already going through the material (speaking or hearing) is a repetition. This form is not a replacement of first-time learning. One must have a certain level of learning progress and understanding before explaining things to each other or doing a mock exam. That’s clear, if no one has read chapter 5, one cannot explain it to each other. Also if only one has read it but not the other, it may feel a bit unfair, so everyone should have at least some understanding.