Block 5: Advanced Scientific Python

May 27, 2026·
Ludovic Charleux
Ludovic Charleux
Christian Elmo
Christian Elmo
· 2 min read
It is better if you have attended blocks 1 to 4 before starting this one.

Introduction

Already comfortable with the basics from block 3 ? In Part 2 (Advanced), we go beyond syntax and focus on writing reliable, reusable code for real research projects.

What you’ll learn in Part 2 (Advanced):

  • Organizing code with functions, classes, modules, and simple packaging
  • Using virtual environments and dependency management for reproducibility
  • Working effectively with Jupyter/Marimo notebooks (structure, pitfalls, exports)
  • Data wrangling with pandas/polars and scientific workflows with SciPy
  • Plotting at scale and saving publication‑ready figures
  • Share devcontainer setups for consistent environments across team members
  • Time will be spent answering your specific questions and applying concepts to your research

By the end, you’ll have a robust, efficient workflow that scales from exploratory notebooks to reusable research code.

Program Outline

  • Code Organization and Reusability
    • Functions and classes
    • Modules and simple packaging
  • Environment and Dependency Management
    • Virtual environments (conda/mamba)
    • Managing dependencies with pip and YAML files.
  • Advanced Jupyter/Marimo Usage
    • Notebook structure and best practices
    • Exporting notebooks to scripts and reports
  • Data Wrangling with pandas/polars
    • DataFrames and Series
    • Data cleaning and transformation
  • Scientific Computing with SciPy
    • Optimization
    • ODE integration
    • … and more
  • Plotting and Visualization
    • Plotting with Matplotlib and Seaborn
    • Saving publication‑ready figures
  • Collaborative Development with Devcontainers
    • Setting up devcontainers for consistent environments
    • Sharing setups with team members

Prerequisites

See block 3 for details on the prerequisites.