• Research Software Engineering with Julia

    by Valentin Churavy
  • Welcome

    • Class logistics
    • Software installation
    • Resources
  • Module 1: Introduction

    • 1.1 Research Software Engineering
    • 1.2 Parallelism
    • Exercise 1: Shared-memory parallelism
    • Exercise 2: Introduction to accelerated computing
    • 1.3 Performance Engineering
    • In-depth 1: Matrix multiply
    • Exercise 3: Type-stability
    • 1.4 Automatic Differentiation
    • Exercise 6: Optimization of parameters
    • Exercise 6: Pitfalls of AD
    • Exercise 7: Gradient descent
  • Module 2: Principles of Research Software Engineering

    • 2.1 Software development with Github
    • Exercise 8: Github
    • 2.2 Reproducibility
    • 2.3 Debugging
    • Exercise 9: Debugging
    • Exercise 10: Shared memory parallelism
  • Module 3: Parallelism

    • 3.1 Shared-memory parallelism
    • In-depth 3: Interactive performance tuning with Julia
    • 3.2 GPU Computing
    • 3.3 Distributed
  • Module 4: Automatic Differentiation

    • 4.1 Automatic Differentiation and Machine Learning
    • 4.2 Examples of Automatic Differentiation
  • Module 5: Performance Engineering

    • 5.1 Profiling
    • 5.2 Compilers
    • 5.3 SIMD

  • 2025

Research Software Engineering with Julia

Schedule

Research Software Engineering

2025-04-16

Parallelism

2025-04-23

Performance Engineering

2025-04-30

Automatic Differentiation

2025-04-16

Software development with Github

2025-05-14

Reproducibility

2025-05-21

Debugging

2025-05-28

Shared-memory parallelism

2025-06-04

GPU Computing

2025-06-11
Edit this page on
Website based on the MIT course Computational Thinking, a live online Julia/Pluto textbook and built with Pluto.jl and the Julia programming language.