Welcome to Programming in Engineering

Note: this website is no longer used; we are now using Canvas: https://canvas.utwente.nl/courses/3884.

If you want to participate in PiE, email Thomas Weinhart to enroll you.


Welcome to the website of the course 'Programming in Engineering', given by the Multiscale Mechanics group of the University of Twente. 


Programming in Engineering is taught annually in Block 1A. In addition, the course can be taken throughout the year as a self-study course. For more, see the Lectures/Self-study section below.

Learning Objectives

The goal of this introductory course to MATLAB and C++ is to better understand computer software, to translate everyday problems into computer-language and to develop algorithms for engineering problems. You will learn how to write, compile, and execute small programs in MATLAB and C++. You will also practice reading, understanding, modifying and debugging in these programming languages.

No previous programming knowledge is required. However, a basic understanding of (high-school level) mathematical concepts is expected, such as matrix/vector operations, differentiation and integration.

You will learn how to write, compile, and execute small programs in each language. We teach you how to write structured, reusable code (object-oriented programming in C++) and how to visualize your solutions (in MATLAB). Further, we teach how to better understand, analyze, optimise, and debug code. The course consists of lectures as well as lots of practical exercises. The course is divided into two one-week sections, MATLAB and C++. At the end of each section, you will be asked to solve and present a final assignment, either from our selection or on a topic of your choice.


To participate in this course, email the course coordinator (t.weinhart(at)utwente.nl) and ask him to sign you up. He will give you access to the course page on canvas.utwente.nl.


Programming in Engineering is offered annually in Block 1A (September/October). For the full schedule, look up "Programming in Engineering 191158510" at rooster.utwente.nl.

If you are unable to attend the lectures, you can also follow the course in self-study. To enrol, follow the instructions in the Registration section. Work through the chapters and exercises in the script. When you are finished, complete both Matlab and C++ assignments (work in a small group if possible, alone otherwise). After you complete each assignment, contact the respective course instructor, who will invite you for the exam.


By default, Programming in Engineering (PiE) is worth 3 ECTS. However, we also allow you to take the MATLAB or C++ part separately, for 1.5 ECTS each. Furthermore, you can gain up to 2 extra credits by completing individual exercises from Advanced Programming in Engineering, so you can receive up to 5 ECTS for this course. Your grade is calculated as the weighted average.

For our administration, we would like to know which students participate in which parts of PiE. Therefore, please register now in which parts of PiE you wish to participate if you have not done so yet.

Course materials

For both the Matlab and C++ parts of this course, all necessary material is in the script (available on this website); you do not need any books for this course. Additional lecture materials for this course can be found here (Matlab) and here (C++).

Written exam and assignment

To complete the Matlab or C++ part, respectively, you need to
1.  Participate in a written exam (available on Blackboard) and
2.  Complete a final assignment with accompanying presentation.

The final assignments can be found on this website (Matlab, C++). The assignment should be handed in as a zip file on this website (Matlab, C++).

Missed a lecture?

​If you miss a lecture, work through the chapters in the script.