nl en

Sustainability Analysis in Python


Admission requirements

This course is for students of the MSc Industrial Ecology (joint degree TU Delft and Leiden University).

This course is an elective module for the joint degree MSc Programme on Industrial Ecology, and also open to students from the MSc Governance of Sustainability. Students must demonstrate basic skills in Python programming, for example, through the successful completion of the course “Earth System Science and Analysis”. Where Python skills are limited to those gained in the course “Governance of Climate Change and Energy Transition", additional preparation will be necessary and material can be provided.


Industrial ecology relies on the analysis of potentially large datasets from various sources. This course will help students to choose, explore, process, and share datasets. These datasets are often integrated into models, which are a very simplified representation of our world to allow its operationalization for large scales, due to global supply chains, etc. Therefore, it is important to validate models to test their applicability in other contexts (e.g., time or location), and to assess model uncertainties (e.g., due to model choices or uncertainties in the input data).

All these types of analysis will be carried out in Python, a general-purpose and very popular programming language. A programming language like Python can more easily handle large datasets than many other software tools and spreadsheet programmes. It is also highly flexible and can be customized to integrate different industrial ecology methods which otherwise would have to be performed each using a different software tool. In addition, tasks can easily be repeated which saves time, and every step is well documented. This course builds upon and goes beyond the Python skills gained in Earth System Science and Analysis. It includes code optimization, the creation of simple GUIs, and best practices, such as version control, standardized code documentation, and code sharing.

The skills taught in this course are generic and do not focus on a specific type of “sustainability analysis” but will be applied to sustainability-related topics. The analytical, problem-solving, critical-thinking, and programming skills gained in this course are transferable skills, which are in high demand in the job market of industrial ecology and beyond.

Course objectives

The main learning goal is to gain more practice with Python programming. Sustainability analysis is not a learning goal but serves as the application of Python. More specifically, after completing this course, students are able to…

  • process unclean data, describe datasets with metadata, and apply fair data principles

  • validate and assess uncertainties of models

  • test hypotheses and verify the underlying assumptions

  • develop clear and efficient code in Python, integrate user interaction, and keep track of versions


You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudyMap will automatically be displayed in MyTimeTable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Please note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

Lectures and workshops

Assessment method


The performance in this course will be assessed through one big assignment composed of three take-home sub-assignments and one oral presentation, each with different due dates.


The final mark for the course is established by (i) determination of the weighted average combined with (ii) additional requirements. (i) The weights are 70% for writing code, 10% for giving peer feedback, 10% for presenting results, and 10% for writing a short reflection. Students pass the course if the average grade is sufficient. (ii) Another smaller assignment will not be graded but needs to be completed to obtain a grade for this course.


If a retake is needed, the student will get more time for the same assignment but can at most score a 6.0.

Inspection and feedback

Each assignment part will be graded based on multiple criteria. These sub-grades will also be reported. Some general feedback will be given for all. For more detailed and individual feedback, students can ask for a time slot within a dedicated review session after all examinations and grading are completed.

Reading list

Course materials


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudyMap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.

Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.

Extensive FAQ's on MyStudymap can be found here.


  • For substantive questions, contact the course coordinator listed in the right information bar.


MSc Industrial Ecology students can register for the course and exam via MystudyMap. Other students need to contact the study advisors of the programme via