training@yacoda.com
01 / Orientation

Online CasADi advanced training

Become a CasADi power user.

This training is hands-on. Seminars give a view on advanced CasADi techniques; the computer exercises internalize them and leave you well-equipped to apply them to your own applications. Technique, not mathematics.

For
Academic and industrial CasADi users who want a deeper understanding of the tool, to speed up existing applications or build advanced implementations.
Prerequisites
Basic programming skills and familiarity with CasADi. Exercises build on boilerplate in Python/MATLAB, C, C++, Julia or JavaScript.
Software
CasADi 3.8
Format
6 weeks online trajectory with the Jan 2027 cohort · 24 hours of learning time · each week you can choose from two 3-hour live Q&A sessions where we work on exercises.
When
Next cohort starting in 169 days: 19 Jan – 2 Mar 2027

After completion, you will be well-equipped to apply advanced CasADi techniques and technical trade-offs to your own application.

02 / Contents

What we cover.

SX and MX expression graphs – benchmarking and debugging – thread-safety and parallelisation – code generation API and C API – memory/speed trade-offs and algorithmic differentiation.

14 modules of seminar and exercise, each with a pre-recorded solution. Open one to see the depth.

01 CasADi expression graphs and Functions: recap and internals
  • A clear mental model of the fundamental CasADi concepts
  • Consistent terminology for discussing CasADi
02 Debugging CasADi expression graphs and Functions
  • Examining the numerical evaluation of symbolic expression graphs
03 CasADi for-loop equivalents: map and mapaccum
  • Reducing expression-graph dimensions with map and mapaccum
  • Broadcasting CasADi Functions across multiple inputs
  • The variants of the map command
04 Saving and loading CasADi objects
  • Loading and preserving CasADi Functions
  • Managing expression-graph persistence
  • Custom classes containing CasADi members
05 Internals of CasADi expression graphs and Functions
  • MX versus SX, in depth
  • The CasADi virtual-machine architecture
  • How the CasADi codebase is organized
06 Benchmarking: identifying computational bottlenecks
  • Pitfalls in benchmarking methodology
  • Finding performance issues in CasADi expression graphs
07 Representation of sparse matrices in CasADi
  • Compressed column storage
  • CasADi's sparsity encoding
08 Using CasADi-generated code in third-party applications
  • The generated-code API
  • Practical compilation exercises
  • Integrating generated code with external dependencies
09 Calling the CasADi virtual machine from C
  • Code generation versus the C API
  • C API usage through practical examples
10 Parallelization of CasADi computations
  • Running CasADi Functions concurrently
  • Parallelizing expression-graph components
11 Algorithmic differentiation of algorithms
  • Building reverse mode from first principles
  • Forward and reverse sensitivity functions
  • Building Jacobians from sensitivities
  • How CasADi chooses a mode
12 Using CasADi callbacks to embed custom code
  • Integrating incompatible code via callbacks
  • Finite differences for custom implementations
  • Precise derivative specifications
13 Linking CasADi to compiled C code
  • Embedding compiled C within CasADi graphs
  • Extracting library metadata
  • JIT options for performance
14 A synthesis exercise of advanced CasADi concepts
  • Computing map derivatives
  • How the Function hierarchy affects derivative runtime
How a CasADi MX Function is represented internally — a computational graph
A slide from (an older variant of) the course.
03 / Enroll

Pick a flavour.

Same course — on your own, with a live cohort*, or the complete package with one-to-one time.

Self-study

Price — to be set

Guided

standard pick
Price — to be set

Mentored

Price — to be set
Same material release schedule for all tiers.
Recorded in high quality; green screen, tele-prompter setup. There is only one variant for each seminar that should be sufficient to get you started regardless of choice of programming language
You are free to pick any of Matlab/Octave, Python, Julia, or Javascript, and to swap your choice at any time.
The code will be Matlab/Octave, Python, Julia, or Javascript, depending on your choice.
Recorded in high quality; green screen, tele-prompter setup. There is only one variant for each walkthrough that should be sufficient to get you started regardless of choice of programming language
This will mention a typical 24-hour engagement. You do need to consume the material to be entitled to the certificate.
This entails the material listed above. Live sessions are not recorded.
1 year
1 year
2 years
This is your opportunity to network and get motivation.
There will always be a EU-friendly timeslot and a US-friendly timeslot. Streamed in standard conference-call quality.
The forum will stay accessible for the access duration listed above.
We have plans for these, but they may only materialize after the 6 week period.
You can book up to 4 calls over the course of two years; subject to calendar availability by the tutor; you can also spend the hours by giving Yacoda implementation work or study work.
8 hours
This happens during a 1 hour call; separate from the one-to-one consulting
The certificate will give a qualitative description of how you performed during the exam.

* It is well established that participation in a cohort (= group of people who all start at the same time) boosts completion rates for e-courses; most people are wired to feel more motivation when amongst peers.

6 week program, starting 19 January 2027

Join waitlist

6 week program, starting 19 January 2027

Join waitlist

6 week program, starting 19 January 2027

Join waitlist