Name: Prof. dr. Jan van Eijck

Position at UvA: Lecturer

'In broad terms, software testing means checking whether software does
what it’s supposed to. Since it’s a rather vague process, it’s generally
regarded as the most complex aspect of software engineering. In most cases,
software testers don’t get to check whether everything is working properly until
after the development phase. By that stage, however, it’s generally too late to
make any significant changes. If you want to get a handle on the process, you
need a specification outlining what the software is supposed to do. Logicians
can develop these specifications by representing them in a logical
language.'

'The type of logic I teach here differs from the curriculum for
Philosophy students. Philosophy students start with classes on Aristotle, but
that’s not really of much use at Software Engineering. Here, we start by asking:
is there software out there that can verify the consistency of logical formulas?
Unlike software, our knowledge of logic doesn’t become outdated over time. A
twenty year old book on logic is still relevant today, whereas books on software
tend to have a very short shelf life.'

'When it comes to logic, most students have absolutely no prior
knowledge. However, students from universities of applied sciences do tend to
have more experience when it comes to project-based working methods. Bachelor’s
students from a research university need to get used to the level of work
pressure involved and the degree of autonomy. However, we’re well aware of these
adjustment problems, and we’re quick to take action if things go wrong. Working
in groups is also very helpful in that regard. Students with work experience are
already accustomed to working under pressure and functioning in a team, which
has a very positive effect on the rest of the group.'

'The Master's programme Software Engineering is much more streamlined
than other academic Master’s programmes and offers a mix of theory and practice.
Even though I specialise in the theoretical aspects, I make sure there’s always
a link with the practical side of things.'

'A computer in itself is an object that can be used for many purposes.
Once you install software, however, it takes on a very specific form. Software
engineers have the freedom to determine exactly what the computer does, which is
really thrilling. You develop something, and the computer does what you tell it
to. You could compare it to building a house or composing music. An architect
needs someone else to build the house he’s designed and a composer needs an
ensemble to perform the piece he’s composed. As a software engineer, on the
other hand, you complete a project and it’s finished. It’s like being an
omnipotent architect, with the ability to build the house you’ve designed all by
yourself.'

'For Software Engineering students a desire to learn and a good work
ethic are absolutely essential. You have to be willing to learn new things, and
you need an inquisitive attitude. If you have those qualities, you can do
anything. Software engineering is appealing because it’s so multifaceted. You
don’t need a huge amount of technical knowledge. Unfortunately, the course still
has somewhat of a ‘nerdy’ image, which means we don’t get that many female
students. After all, women don’t really want to be seen as nerds.'

'It might seem a bit strange coming from a software testing lecturer, but
I think it’s important to spend time doing things in the ‘real world’. Software
is also ‘real’, but computers can be dangerous. It’s all about attention:
computers tend to suck you in. You need to get out and do something else every
now and then: spending too much time behind the screen isn’t good for your mind.
That’s why it’s important to teach our students that the software engineering
process isn’t just about programming. A big part of the profession revolves
around interacting and cooperating with others. Working in the commercial sector
means dealing with other people, and it’s important to focus on that aspect
during the course.'

'The business world is currently lagging behind in a major way when it
comes to software. So many things still go wrong in practice, and there’s a lot
of room for improvement. A lot of money still tends to get wasted on ineffective
projects. This may be due to the fact that software is a much more difficult
subject to communicate on than more tangible issues. That’s why it’s so
important that Software Engineering students figure out what sort of company
they really want to work for. There are lots of potential positions out there
that would drive me crazy, while others can be a great deal of fun.'