Block 5: Advanced Scientific Python
May 27, 2026·
·
2 min read
Ludovic Charleux
Christian Elmo

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.