nl en

Fundamentals of Modelling and Data Analysis


Admission requirements

This course is obligatory for students of the master’s programme Industrial Ecology.


Industrial ecology relies on mathematical models and involves the processing of potentially large datasets.

Modelling is the art of developing a simplified description of a problem that is complex enough to capture its relevant features and yet simple enough to be manageable and yield measurable predictions. Data analysis is the art of collecting information and processing it to return meaningful visualizations and model results.

The language of modelling is mathematics and the tool of data analysis is programming. Both go hand in hand and are essential skills that will help you in your life as an industrial ecologist.

Throughout the course we will cover various types of models and tools and illustrate their application to problems such as: Will the world run out of oil? How many people can the earth support? Have some countries faked their GHG inventory reports?

A computer language is not only an interface to control the computer, it is also a unambiguous description of the data structures and algorithms applied in the research. In this course, you will learn to use the programming language Python for scientific work, especially for analysing and visualising datasets that are relevant for Industrial Ecology. You will need a laptop and Python, which is available for all operating systems. The Ipython shell is advised, but any Python version will do.

Course objectives

By the end of the course you shoud be able to:

  • Understand basic concepts of arithmetics, calculus, linear algebra and probability theory;

  • Use a programming language to access, convert, query and visualize datasets;

  • Use the above skills to formulate and solve industrial ecology problems, synthesize results in a meaningful conclusion and evaluate data quality.


Classes will take place on Tuesday morning, from 9h30 to 12h30 throughout the first semester.

There will be question hours with the lecturers on Tuesday from 12h30 to 13h00.

The student assistants will organize workshops on Friday morning, from 9h30 to 12h30, in which students can drop by and ask for help to solve programming issues.

Mode of instruction

The course counts for 6 EC, which corresponds to 168 hours of work, corresponding to 12 hours of work per week over 14 weeks. Not counting the time for classes and workshops it means you should expect to spend an additional six hours per week preparing assignments or studying.

Each class will typically start with a review of the previous week’s material and/or assignment, followed by the presentation of the current week’s problem. The bulk of the class will then proceed with the presentation of the new mathematical and programming material, illustrated with a toy model. The class will conclude with the week’s new assignment.

During the exercises two lecturers and two student assistants will move around the room taking questions. Practical exercises in the class and group assignments at home are expected to be performed in groups of three students, defined at the beginning of the course.

Assessment method

50% of the grade will result from a multiple choice test in the last lecture, covering the content of the whole course. To pass the course it is necessary to have a minimum grade of 6/10 in the test.

50% of the grade will come from group assignments. Each group assignment will require the use of a computer and will consist in the design of an algorithm, analyzing a dataset and applying or calibrating a model. To pass the course it is necessary to have a minimum grade of 6/10 in the average of the group assignments.

The students have the opportunity to do a retake of the final test but not of the group assignments. By default, all members in a group have the same grade. However, the group members’ grade may be differentiated based on their contribution.


The lecturer communicates via blackboard TU Delft.

Reading list

The course will use the python3, the Ipython3 shell and will require the installation of the matplotlib, numpy and scipy libraries.

The content of the lectures will be summarized in the course manual but we recommend the following as supplementary reading:

Think Python, how to Think Like a Computer Scientist, by Allen Downey.
Version 1.1.24+Kart [Python 3.2]
Green Tea Press, Needham, Massachusetts. June 2008
The book is freely downloadable as

Following online introductory courses on Python, differential calculus, linear algebra and probability theory are advisable.


Because this course is part of a programme of Leiden University and TU Delft, all students have to be enrolled to both universities.

All students have to enroll for course and exam at the start of the course via uSis, Leiden University. For classnumbers see here.

Students who are not enrolled to the master’s programme Industrial Ecology have to ask permission from the studyadvisor of Industrial Ecology at least one month before start of the course by use of this form.

Exchange students can only enroll for this course if their home university has an Exchange agreement with both Leiden University and TU Delft. Exchange students have to ask permission from the studyadvisor of Industrial Ecology as soon as possible, preferably six months before the start of the course.

Contact information

Dr. Alexandra P. Marques
Dr. J.F. Dias Rodrigues


More information and the description of the course will be published in the e-studyguide of TU Delft.