Welcome to Programming in Engineering

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 twice annually, in Block 1A and during the summer selfstudy for resits period. 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, 
1.  Make an account to access this webpage, 
2.  Register in which parts of Programming in Engineering you wish to participate.

In addition to this, you should sign up for the course on osirisif you attend the lectures in block 1A and 3A. For students taking the course in self-study outside the regular semester, it is not possible (and thus not necessary) to sign up on osiris.


Programming in Engineering is offered annually in Block 1A (September/October) and in summer (during the selfstudy for resits period in July). 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 enroll, 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.