Internet Programming

This website is meant for the Internet Programming course. It has been updated for the course year 2009/2010. The course will start on February 8, 2010.

The people involved

In 2009/2010, the teacher (and person responsible for this course) is Lennart Herlaar with practical assistance during 2009/2010 from

The philoshopy behind this course

This course is a practical course. That means: the assignments form the core of this course and the lectures are mainly there to support the assignments by teaching you the necessary concepts and technologies.

Even a practical course such as this is allowed to have its philoshopy. One of the first realizations when following this course is that the World Wide Web is big and it evolves fast. Thought you knew a programming language? Well, there are many programming languages for the web and some of them are constantly changing, outdating your knowledge in months. The same (more even) holds for browsers.

However, stripped of all the technology, there is not really much left beside maybe a number of concepts. Hence, we concentrate on a number of concepts and established technologies that implement these (I reserve the right to omit some of them; it is impossible to be complete) and also look at how they relate to each other. The course exists to inform you what these concepts and technologies look like, what you can do with them and when to apply them.

The world moving as fast as it does on this subject, it is likely that during the course you will find some material and 'facts' that have become outdated since it was written down and published. This is something you (and I) will have to get used to.

This course should actually be called Web Programming, which is a restricted form of Internet Programming. Simply said, this means we mainly concern ourselves with the hypertext transfer protocol (http) and not with low level technologies such as sockets. If this is what you are after, it may be wiser to follow the courses Netwerken and Gedistribueerd Programmeren. We do consider protocols like TCP/IP and the like on which the Internet is based.

I have decided not to spend too much time on large high-level software packages that enable people to build websites quickly. With the background this course provides you should be able to master these packages by yourself. Instead we take a more low-level approach, with the additional advantage that you do not have to spend months learning a single software package.

The course opens with a number of lectures to give the students the material they need for doing the practical assignments. During the final weeks the frequency of lectures drops notably, also to give the student more time to work on the assignments.

Contents, size and form

The course is at this moment part of our bachelor program. It is also part of the Software Engineering minor offered by the Instituut voor Informatica en Informatiekunde. If you followed this course in a earlier form and want to complete it this year, remember that grades obtained in earlier versions of this course are no longer valid, as is common in the Bachelor Master programme.

I expect students to have a working knowledge of an imperative programming language (like Java), basic HTML, and relational databases and SQL. If you do not have this knowledge, make sure you read up on the subject before coming to the course. You may always contact the lecturer for pointers to material on these subjects.

Since the course is part of the bachelor program, the lectures will be given in Dutch. However, most of the study material is in English as are these web pages. It should be possible for non-Dutch speakers to pass this course. Use the (English) slides to get an impression of what I find important.

The course is worth 7.5 ects.

The course consists of both lectures and a number of programming assignments. As said before, the lectures are mainly meant as support for the programming assignments. The programming assignments are used to practice working with some of the many technologies available for the Web. All material treated in the lectures is important and has to be learned for the final examination.

It is important to look at the various pages of which this website consists. It does contain quite a bit of information, concerning for example the assignments and links to existing technology.


For a list of subjects, take a look at the lecture schedule.