Voor de beste ervaring schakelt u JavaScript in en gebruikt u een moderne browser!
EN
Software Engineering

Academic staff

Software Engineering (MSc)

Jan van Eijck IvI

Name: Prof. dr. Jan van Eijck

Education: PhD degree in Philosophy and Dutch Language and Literature (Utrecht University)

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.'