30+ days ago - req14545

Graduation assignment: Explore Julia and Python as an algorithm development language

Computer science & software engineering


In a nutshell


Veldhoven, Netherlands


No experience (Student)



Job Category

Computer science & software engineering, Physics


Are you a Master graduate student with both a background in Computer Science as Physics? Then this graduation assignment is interesting for you.

Job Mission

The Metrology department at ASML develops algorithms that are driving most of the parts within lithography scanners.These algorithms are performing a number of heavy computational tasks, involving linear least squares problems, solving linear equations etc. While it is quite important to optimize these algorithms, the interface with C/C++ libraries becomes more and more crucial. Python is already well – known and followed by NumPy and SciPy it can achieve very nice results in several aspects and fulfils the above requirements. Another language that can nicely provide the above is Julia. Julia has lots of commonalities with MATLAB and offers an easy way to interface a C/C++ library.

This assignment has two openings; one to explore Julia and one to explore Python.

Job Description

1) Migrate algorithms from MATLAB to Julia and/or Python
2) Measure and compare the CPU performance
3) Measure and compare the memory footprint
4) Investigate the interface with C/C++
5) Investigate the resources for data transferring
6) Write thesis


You are a Master student in Computer Science with affinity with Physics or the other way around. For the Julia assignment MATLAB, C, C++ and (some) experience with Eclipse modeling framework (emf) is required. For the Python assignment experience with NumPy or SciPy is required. You have an interest performance testing. Furthermore, you have good analytical skills and are driven to produce a new API to the highest quality standards. The English language is required, both written as verbally.

This is a Master graduation assignment with a duration of minimum 6 months and 4 days a week. The start date is in September 2020.

Please keep in mind that we can only consider students (who are enrolled at a school during the whole internship period) for our internships and graduation assignments.

Other information

What ASML offers
Your internship will be in one of the leading Dutch corporations, gaining valuable experience in a highly dynamic environment. You will receive a monthly internship allowance of 500 euro (maximum), plus a possible housing or travel allowance. In addition, you’ll get expert, practical guidance and the chance to work in and experience a dynamic, innovative team environment.

ASML: Be part of progress
We make machines that make chips – the hearts of the devices that keep us informed, entertained and safe; that improve our quality of life and help to tackle the world’s toughest problems.

We build some of the most amazing machines that you will ever see, and the software to run them. Never satisfied, we measure our performance in units that begin with pico or nano.

We believe we can always do better. We believe the winning idea can come from anyone. We love what we do – not because it’s easy, but because it’s hard.

Students: Getting ready for real-world R&D
Pushing technology further is teamwork, and our R&D team is more than 5,500 people strong, with major sites on three continents. Dozens of diverse, interdisciplinary teams work in parallel to meet a challenging development schedule.

In such an environment, your colleagues may be sitting next door, or they could be thousands of kilometers away in a different country, or even working for a different company.

An internship at ASML is your opportunity to get to know this world of industrial-strength R&D and get a feel for that excites you most. Will you design a part of the machine, or make sure it gets built to the tightest possible specifications? Will you write software that drives the system to its best performance, or work side-by-side with the engineers of our customers in a fab, optimizing a system to the requirements of the customer?

How will you be part of progress?