Welcome to Optimization with Julia!

University of Hamburg - Fall 2026

Description

This small workshop will introduce you to the basics of mathematical optimization using Julia. Throughout the workshop, you will learn the basics of Julia and JuMP, the de facto standard for mathematical optimization in Julia. We will work with simple, practical examples to help you understand the core concepts. You will learn how to formulate basic optimization problems and translate them into code. The workshop was originally part of the course Applied Optimization but it is now also offered as a standalone small workshop.

Learning Outcomes

My goal is to introduce you to the Julia programming language and the JuMP package for mathematical optimization. Both are widely used in academia and industry and are great tools to know. Julia is a fast, flexible, and powerful programming language that is becoming more and more popular in academia and industry. JuMP is a package that allows you to formulate and solve optimization problems in Julia, it is an alternative to other popular optimization software such as GAMS, AMPL, Pyomo, etc.

Upon completion of the workshop, you will be able to:

  • Apply the basics of the Julia programming language
  • Implement basic optimization problems in Julia
  • Understand the core concepts of optimization
  • Apply optimization techniques to practical problems

Please note that this workshop is designed to be accessible to everyone, including complete beginners. No advanced knowledge or experience in programming is required to follow along, although knowledge of programming is helpful! The teaching format accommodates different levels of programming skills, ensuring that every participant can get the most out of the workshop.

Course Blocks

The core content of the workshop is organized in four blocks:

  1. Introduction
  2. Part I: Variables and Types
  3. Part II: Functions, Data Frames and Plots
  4. Part III: Optimization with JuMP

Tutorials

The workshop is organized in a series of tutorials. Each tutorial is a self-contained document that you can download and run locally.

  • You can find the content for each part in the corresponding folder
  • To run the code, download the tutorial as a .jl file (the Julia link on each page) and work through it cell by cell in Zed; the introduction walks you through installing Julia and Zed, and the first tutorial through the workshop’s package environment and the Jupyter kernel
  • Each tutorial is also available as a Jupyter notebook (the Jupyter link on each page), if you prefer to work with .ipynb files
  • If you cannot install anything on your machine, you can still read every tutorial here on the website: all results are already executed on the pages

AI Policy

Course chatbot. A course chatbot is available on this website for exploratory study. It is designed to guide your problem-solving process rather than hand out answers: expect hints and questions back, not finished solutions. It runs on EU-hosted infrastructure (Mistral models, servers in Germany), and your conversations are not used to train models. Details are on the privacy page.

External AI tools. You may use external AI tools (e.g., ChatGPT, Claude, Mistral, Gemini). You are responsible for every line of code you rely on: understand what the AI produced before you build on it. Letting AI solve the exercises for you defeats their purpose.

No graded submissions. This workshop has no graded hand-ins and no exam; the exercises and self-checks are for you. The only person an AI shortcut cheats here is yourself.

Questions

If you have any questions regarding the workshop, please contact me under tobias.vlcek@uni-hamburg.de.