<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Christian Elmo | Digital Skills for the Modern PhD</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/author/christian-elmo/</link><atom:link href="https://lcharleux.github.io/SIE_SCRIPT_tutorial/author/christian-elmo/index.xml" rel="self" type="application/rss+xml"/><description>Christian Elmo</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-us</language><image><url>https://lcharleux.github.io/SIE_SCRIPT_tutorial/author/christian-elmo/avatar_hu_7368939b2a43fc5.jpeg</url><title>Christian Elmo</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/author/christian-elmo/</link></image><item><title>Block 5: Advanced Scientific Python</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/python2/</link><pubDate>Wed, 27 May 2026 00:00:00 +0000</pubDate><guid>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/python2/</guid><description>&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900"&gt;
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;span class="dark:text-neutral-300"&gt;It is better if you have attended blocks 1 to 4 before starting this one.&lt;/span&gt;
&lt;/div&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;What you’ll learn in Part 2 (Advanced):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Organizing code with functions, classes, modules, and simple packaging&lt;/li&gt;
&lt;li&gt;Using virtual environments and dependency management for reproducibility&lt;/li&gt;
&lt;li&gt;Working effectively with Jupyter/Marimo notebooks (structure, pitfalls, exports)&lt;/li&gt;
&lt;li&gt;Data wrangling with pandas/polars and scientific workflows with SciPy&lt;/li&gt;
&lt;li&gt;Plotting at scale and saving publication‑ready figures&lt;/li&gt;
&lt;li&gt;Share devcontainer setups for consistent environments across team members&lt;/li&gt;
&lt;li&gt;Time will be spent answering your specific questions and applying concepts to your research&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By the end, you’ll have a robust, efficient workflow that scales from exploratory notebooks to reusable research code.&lt;/p&gt;
&lt;h2 id="program-outline"&gt;Program Outline&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;strong&gt;Code Organization and Reusability&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Functions and classes&lt;/li&gt;
&lt;li&gt;Modules and simple packaging&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;strong&gt;Environment and Dependency Management&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Virtual environments (conda/mamba)&lt;/li&gt;
&lt;li&gt;Managing dependencies with pip and YAML files.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;strong&gt;Advanced Jupyter/Marimo Usage&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Notebook structure and best practices&lt;/li&gt;
&lt;li&gt;Exporting notebooks to scripts and reports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;strong&gt;Data Wrangling with pandas/polars&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;DataFrames and Series&lt;/li&gt;
&lt;li&gt;Data cleaning and transformation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;strong&gt;Scientific Computing with SciPy&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Optimization&lt;/li&gt;
&lt;li&gt;ODE integration&lt;/li&gt;
&lt;li&gt;&amp;hellip; and more&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;strong&gt;Plotting and Visualization&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Plotting with Matplotlib and Seaborn&lt;/li&gt;
&lt;li&gt;Saving publication‑ready figures&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; &lt;strong&gt;Collaborative Development with Devcontainers&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Setting up devcontainers for consistent environments&lt;/li&gt;
&lt;li&gt;Sharing setups with team members&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;See block 3 for details on the prerequisites.&lt;/p&gt;</description></item><item><title>Block 4: Docker for Reproducible Research Environments</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/docker/</link><pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate><guid>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/docker/</guid><description>&lt;p&gt;Containerization enables portable, isolated computational environments that improve the reproducibility, transparency, and longevity of research. This module introduces Docker for constructing, executing, and sharing environments that consistently reproduce analyses across machines and over time.&lt;/p&gt;
&lt;h2 id="learning-outcomes"&gt;Learning outcomes&lt;/h2&gt;
&lt;p&gt;By the end of the session, participants will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explain core concepts (images, containers, registries) and distinguish containers from virtual machines.&lt;/li&gt;
&lt;li&gt;Author reproducible images with &lt;code&gt;Dockerfile&lt;/code&gt;, including pinning versions and managing build context and caching.&lt;/li&gt;
&lt;li&gt;Run containers with appropriate configuration (volumes, environment variables, ports, resource limits).&lt;/li&gt;
&lt;li&gt;Package notebooks, command‑line tools, and dependencies for consistent execution and sharing.&lt;/li&gt;
&lt;li&gt;Use Docker Compose for simple multi‑service setups where appropriate.&lt;/li&gt;
&lt;li&gt;Publish and retrieve images from container registries (e.g., Docker Hub, GHCR) with tagged versions.&lt;/li&gt;
&lt;li&gt;Apply containerization to research workflows for archiving, review, and publication.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="topics"&gt;Topics&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Reproducible environments: motivation and principles&lt;/li&gt;
&lt;li&gt;Images and layers; &lt;code&gt;Dockerfile&lt;/code&gt; patterns (base images, multi‑stage builds, minimal images)&lt;/li&gt;
&lt;li&gt;Data and state: bind mounts vs. volumes; handling large data&lt;/li&gt;
&lt;li&gt;Interactive workflows: Jupyter in containers; connecting to GPUs/accelerators when available&lt;/li&gt;
&lt;li&gt;Sharing and provenance: tags, digests, and registries&lt;/li&gt;
&lt;li&gt;Good practices for research projects: directory structure, &lt;code&gt;.dockerignore&lt;/code&gt;, licensing and metadata&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Basic command‑line familiarity; Git recommended for version control.&lt;/li&gt;
&lt;li&gt;Administrative install permissions on your computer (Windows, macOS, or Linux).&lt;/li&gt;
&lt;li&gt;Ability to install Docker Desktop or Docker Engine and run: &lt;code&gt;docker --version&lt;/code&gt; and &lt;code&gt;docker run hello-world&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="installation-instructions"&gt;Installation Instructions&lt;/h2&gt;
&lt;p&gt;A. Hardware requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;64-bit processor&lt;/li&gt;
&lt;li&gt;8 GB system RAM recommended&lt;/li&gt;
&lt;li&gt;At least 20 GB of free disk space&lt;/li&gt;
&lt;li&gt;Enable hardware virtualization in BIOS/UEFI. For more information, see
.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;B. Software requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Git,
.&lt;/li&gt;
&lt;li&gt;VS Code. Windows users should choose the System Installer version from the
.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Make sure your computer meets these requirements before the session.&lt;/p&gt;
&lt;p&gt;C. Docker Desktop&lt;/p&gt;
&lt;p&gt;For this training session, we will install Docker through Docker Desktop. It provides both the Docker command-line tools and a graphical interface, which can be useful when learning.&lt;/p&gt;
&lt;details class="spoiler " id="spoiler-0"&gt;
&lt;summary class="cursor-pointer"&gt;Windows&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;We strongly recommend enabling the WSL 2 backend first.&lt;/strong&gt; You can follow the official Microsoft guide
.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Open PowerShell with administrator rights: right-click PowerShell and select &amp;ldquo;Run as administrator&amp;rdquo;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Set WSL 2 as default:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-set-default-version&lt;/span&gt; &lt;span class="mf"&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install a version of Ubuntu (by default)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;wsl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;exe&lt;/span&gt; &lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="n"&gt;-install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;During installation, you will be asked to provide a username and password for this virtual machine.
Once installation is complete, you should be logged in to your Ubuntu virtual machine.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Download and install Docker Desktop for Windows from the
.
During the installation, make sure &amp;ldquo;Use WSL 2 instead of Hyper-V&amp;rdquo; is selected.
At the end of the installation, you may need to restart your computer or sign out and sign back in.
You do not need a Docker Hub account for this session, so you can skip the sign-in step.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;details class="spoiler " id="spoiler-1"&gt;
&lt;summary class="cursor-pointer"&gt;macOS&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
Follow the official Docker Desktop for macOS installation instructions
.
&lt;/div&gt;
&lt;/details&gt;
&lt;details class="spoiler " id="spoiler-2"&gt;
&lt;summary class="cursor-pointer"&gt;Linux (Ubuntu/Debian-based)&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
&lt;ul&gt;
&lt;li&gt;On Ubuntu, you can install Docker Desktop by following the official instructions
.&lt;/li&gt;
&lt;li&gt;If you install Docker Engine instead of Docker Desktop, follow the Linux post-installation steps
so that you can run &lt;code&gt;docker&lt;/code&gt; commands without &lt;code&gt;sudo&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;p&gt;Whatever your operating system, you can check that Docker is installed by typing the following command into your terminal (PowerShell for Windows users):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run hello-world
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Normally, you should see the following output:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Unable&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;find&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;hello-world:latest&amp;#39;&lt;/span&gt; &lt;span class="n"&gt;locally&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;latest&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Pulling&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;library&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;hello&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="mi"&gt;58&lt;/span&gt;&lt;span class="n"&gt;dee6a49ef1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Pull&lt;/span&gt; &lt;span class="n"&gt;complete&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;c3bdf82c34d1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Download&lt;/span&gt; &lt;span class="n"&gt;complete&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Digest&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;sha256&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;f9078146db2e05e794366b1bfe584a14ea6317f44027d10ef7dad65279026885&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Downloaded&lt;/span&gt; &lt;span class="n"&gt;newer&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;hello&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;latest&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Hello&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;Docker&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;This&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="n"&gt;shows&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="n"&gt;your&lt;/span&gt; &lt;span class="n"&gt;installation&lt;/span&gt; &lt;span class="n"&gt;appears&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;working&lt;/span&gt; &lt;span class="n"&gt;correctly&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="format"&gt;Format&lt;/h2&gt;
&lt;p&gt;The session combines a concise conceptual overview with guided, hands‑on exercises using research‑relevant examples. Templates are provided to facilitate adaptation to participants’ projects.&lt;/p&gt;</description></item><item><title>Block 3: Introduction to Scientific Python</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/python1/</link><pubDate>Thu, 07 May 2026 00:00:00 +0000</pubDate><guid>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/python1/</guid><description>&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900"&gt;
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;span class="dark:text-neutral-300"&gt;It is better if you have attended blocks 1 and 2 before starting this one.&lt;/span&gt;
&lt;/div&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;You didn’t start a PhD to spend your days copying-pasting in Excel or manually renaming 200 files. You started it to do science — and Python is the tool that lets you focus on thinking, not clicking.&lt;/p&gt;
&lt;p&gt;What you’ll learn in Block 3 is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Core Python syntax: variables, types, and control flow&lt;/li&gt;
&lt;li&gt;Essential data structures: lists, dicts, sets, and arrays&lt;/li&gt;
&lt;li&gt;Working in notebooks and scripts (Jupyter vs. &lt;code&gt;.py&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Reading/writing files and simple automation&lt;/li&gt;
&lt;li&gt;Plotting basics with Matplotlib&lt;/li&gt;
&lt;li&gt;First steps with NumPy and pandas/polars for data tasks&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No coding background? No problem. We start from zero and build up the skills every researcher wishes they’d learned earlier.&lt;/p&gt;
&lt;p&gt;Python isn’t just for programmers — it’s the Swiss army knife of modern research. Let’s make it your secret weapon.&lt;/p&gt;
&lt;h3 id="a-quick-dive-into-python"&gt;A quick dive into Python&lt;/h3&gt;
&lt;p&gt;Python is a high-level, interpreted programming language known for its readability and versatility. It’s widely used in scientific computing, data analysis, machine learning, web development, and automation.
Is is easy to learn for beginners yet powerful enough for experts, making it a popular choice across various domains.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Variables and types&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Researcher&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;is_student&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;1.75&lt;/span&gt; &lt;span class="c1"&gt;# in meters&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Control flow&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Minor&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;status&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Adult&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Data structures&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;scores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;85&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;90&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;78&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;92&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="c1"&gt;# List&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;profile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;age&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;status&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;# Dict&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;unique_ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;102&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;103&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="c1"&gt;# Set&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;np&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;array&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Functions&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello, &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;greet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Many interactive examples are available as Jupyter Notebooks on our teaching website
.&lt;/p&gt;
&lt;h2 id="tutorial-program"&gt;Tutorial program&lt;/h2&gt;
&lt;p&gt;By the end of the session, participants will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write basic Python scripts and Jupyter notebooks for data analysis.&lt;/li&gt;
&lt;li&gt;Use core Python data structures and control flow to manipulate data.&lt;/li&gt;
&lt;li&gt;Create basic plots using Matplotlib to visualize data.&lt;/li&gt;
&lt;li&gt;Perform data manipulation tasks using NumPy and pandas/polars.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Students &lt;strong&gt;must come with a laptop with administrative install permissions&lt;/strong&gt; and a compatible OS (Windows, macOS, or Linux).&lt;/li&gt;
&lt;li&gt;Install MiniForge, VSCode and GIT using our site
instructions.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Block 2: Managing projects with Git</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/git/</link><pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate><guid>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/git/</guid><description>&lt;h2 id="training-scope-4h"&gt;Training Scope (4h)&lt;/h2&gt;
&lt;p&gt;Using Git is essential for modern scientific work because it provides a reliable, transparent, and collaborative way to manage research code, data processing scripts, experiments, and even manuscripts. For doctoral students, Git ensures full traceability of every change, making it easy to reproduce results, compare different versions of an analysis, and avoid accidental data or code loss. It also enables seamless collaboration with supervisors and co-authors, allowing multiple people to work on the same project without conflicts. Beyond version tracking, Git supports open science practices by making it straightforward to publish research code on platforms like GitHub or GitLab, improving the credibility, reproducibility, and long-term impact of scientific work.&lt;/p&gt;
&lt;h3 id="learning-objectives"&gt;Learning Objectives&lt;/h3&gt;
&lt;p&gt;Understand versioning principles and adopt Git as the central tool for tracking code, data, and research documents.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Disclaimer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This course focuses on practical Git usage for researchers. It does not cover advanced Git internals or server administration.&lt;/li&gt;
&lt;li&gt;We will use VS Code&amp;rsquo;s integrated Git features for ease of use, but command-line equivalents will be provided.&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;
&lt;h3 id="target-skills"&gt;Target Skills&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Understand foundational concepts&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is version control ?&lt;/li&gt;
&lt;li&gt;Local vs remote repositories&lt;/li&gt;
&lt;li&gt;Commits, branches, merges&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Master essential Git commands using VS Code&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Initialize a repository&lt;/li&gt;
&lt;li&gt;Stage and commit changes&lt;/li&gt;
&lt;li&gt;Create and switch branches&lt;/li&gt;
&lt;li&gt;Push and pull from remote repositories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Collaborate on a project (GitHub, GitLab)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Define remotes and clone repositories&lt;/li&gt;
&lt;li&gt;Define working strategies&lt;/li&gt;
&lt;li&gt;handle merge and conflicts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Track a scientific document&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set up &lt;code&gt;.gitignore&lt;/code&gt; for research files&lt;/li&gt;
&lt;li&gt;Revert to earlier states&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Notion of advances features&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tags and releases&lt;/li&gt;
&lt;li&gt;Pull requests&lt;/li&gt;
&lt;li&gt;GitHub/Gitlab CI/CD basics&lt;/li&gt;
&lt;li&gt;Git LFS for large files&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Best practices&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Commit message conventions&lt;/li&gt;
&lt;li&gt;Structuring repositories properly&lt;/li&gt;
&lt;li&gt;Branching strategies (main/dev/feature)&lt;/li&gt;
&lt;li&gt;Backup and recovery strategies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prerequisites-installation-and-configuration"&gt;Prerequisites, installation and configuration&lt;/h2&gt;
&lt;h3 id="prerequisites"&gt;Prerequisites&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;IMPORTANT: You need to be administrator on your computer to install Git and to run the configuration commands.&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;VS Code:&lt;/strong&gt; Install Visual Studio Code (VS Code) as the IDE (
.
Make sure to install the &lt;code&gt;system installer&lt;/code&gt; version and not the &lt;del&gt;&lt;code&gt;user installer&lt;/code&gt;&lt;/del&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GitHub account:&lt;/strong&gt; Create an account on a Git hosting provider (GitHub, GitLab, Bitbucket)
In this course, we will use GitHub as the remote hosting provider. If you don&amp;rsquo;t have an account yet, please sign up at
and follow the instructions provided there.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="installation-instructions"&gt;Installation Instructions&lt;/h3&gt;
&lt;details class="spoiler " id="spoiler-0"&gt;
&lt;summary class="cursor-pointer"&gt;Windows&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
Download and install Git for Windows from
. Use Git Bash for command-line operations.
&lt;/div&gt;
&lt;/details&gt;
&lt;details class="spoiler " id="spoiler-1"&gt;
&lt;summary class="cursor-pointer"&gt;MacOS&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
In modern macOS versions, Git is included with the Xcode Command Line Tools. Install them by running &lt;code&gt;xcode-select --install&lt;/code&gt; in the terminal. Alternatively, install Git via Homebrew with &lt;code&gt;brew install git&lt;/code&gt;.
&lt;/div&gt;
&lt;/details&gt;
&lt;details class="spoiler " id="spoiler-2"&gt;
&lt;summary class="cursor-pointer"&gt;Linux(Debian based)&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
&lt;p&gt;Open a terminal and run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h3 id="configuration-steps"&gt;Configuration Steps&lt;/h3&gt;
&lt;h4 id="initial-git-setup"&gt;Initial Git Setup&lt;/h4&gt;
&lt;p&gt;In order to set up Git for the first time, you need to configure your user name and email address. Open a terminal (git-bash on Windows) and run the following commands, replacing the placeholders with your actual information:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.name &lt;span class="s2"&gt;&amp;#34;Your Name&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.email &lt;span class="s2"&gt;&amp;#34;my-email@mail.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Fill in your GitHub email address to link your commits to your GitHub account.&lt;/p&gt;
&lt;h4 id="ssh-key-generation-and-github-configuration-optional"&gt;SSH Key Generation and GitHub Configuration (Optional)&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: If you use VS Code&amp;rsquo;s built-in Git authentication, you may skip this step.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;If you plan to use SSH for authentication with GitHub (recommended for security and convenience), follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Get your public rsa key by running the following command in your terminal (git-bash on Windows):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat ~/.ssh/id_rsa.pub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If the file does not exist, generate a new SSH key pair with:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ssh-keygen -o
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Follow the prompts to save the key (default location is fine) and set a passphrase if desired.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the contents of the &lt;code&gt;id_rsa.pub&lt;/code&gt; file to your clipboard.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Go to your GitHub account settings, navigate to &amp;ldquo;SSH and GPG keys&amp;rdquo;, and click &amp;ldquo;New SSH key&amp;rdquo;. Paste the contents of your public key into the &amp;ldquo;Key&amp;rdquo; field and give it a descriptive title.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &amp;ldquo;Add SSH key&amp;rdquo; to save.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="my-first-commit"&gt;My First Commit&lt;/h2&gt;
&lt;p&gt;To make your first commit using Git in VS Code, follow these steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open VS Code and navigate to the folder where you want to create your Git repository.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open the integrated terminal in VS Code (&lt;code&gt;View&lt;/code&gt; &amp;gt; &lt;code&gt;Terminal&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Initialize a new Git repository by running:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new file (e.g., &lt;code&gt;README.md&lt;/code&gt;) and add some content to it.&lt;/p&gt;
&lt;details class="spoiler " id="spoiler-3"&gt;
&lt;summary class="cursor-pointer"&gt;Example: Creating README.md&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
&lt;p&gt;In the terminal, run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;# My First Git Repository&amp;#34;&lt;/span&gt; &amp;gt; README.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the Source Control panel (click the Source Control icon on the left sidebar), you should see the new file listed under &amp;ldquo;Changes&amp;rdquo;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Stage the file by clicking the &lt;code&gt;+&lt;/code&gt; icon next to it or by running:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add README.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter a commit message in the input box at the top of the Source Control panel (e.g., &amp;ldquo;Initial commit&amp;rdquo;) and click the checkmark icon to commit the changes, or run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;Initial commit&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Congratulations! You have made your first commit using Git in VS Code.&lt;/p&gt;</description></item><item><title>Block 1: An introduction to LaTeX for Academic Writing</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/latex/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://lcharleux.github.io/SIE_SCRIPT_tutorial/courses/latex/</guid><description>&lt;!--
&lt;details class="print:hidden " open&gt;
&lt;summary&gt;Table of Contents&lt;/summary&gt;
&lt;div class="text-sm"&gt;
&lt;nav id="TableOfContents"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#introduction"&gt;Introduction&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#latex-vs-word-in-scientific-writing"&gt;LaTeX vs. Word in Scientific Writing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#a-simple-latex-document"&gt;A Simple LaTeX Document&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#beautiful-mathematics"&gt;Beautiful Mathematics&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#tutorial-program"&gt;Tutorial Program&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#prerequisites"&gt;Prerequisites&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#platform-notes"&gt;Platform notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#verifications"&gt;Verifications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/details&gt;
--&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;LaTeX is a robust typesetting system widely used for scholarly communication in the sciences, engineering, and the humanities.
This session introduces the principles and disciplined practices that enable clear, consistent, and reproducible academic writing across theses, articles, and technical reports.&lt;/p&gt;
&lt;h3 id="latex-vs-word-in-scientific-writing"&gt;LaTeX vs. Word in Scientific Writing&lt;/h3&gt;
&lt;p&gt;LaTeX is a markup-based system designed for long, structured, and mathematically intensive documents. It separates content from formatting, ensuring stable layout, consistent references, and excellent typography—qualities that are especially valuable in PhD theses and scientific articles.&lt;/p&gt;
&lt;p&gt;Word offers intuitive visual editing but can become fragile as documents grow, particularly when handling equations, figures, or complex formatting. While it remains convenient for quick drafting and broad collaboration, it lacks the reproducibility and structural reliability that LaTeX provides for large scientific manuscripts.&lt;/p&gt;
&lt;p&gt;LaTeX separates content from presentation, allowing authors to focus on writing while ensuring consistent formatting.
It excels at handling complex documents with features like automatic numbering, cross-referencing, bibliographies, and high-quality typesetting of mathematics.&lt;/p&gt;
&lt;h3 id="a-simple-latex-document"&gt;A Simple LaTeX Document&lt;/h3&gt;
&lt;p&gt;A basic LaTeX document looks like this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\documentclass&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;article&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;amsmath&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\title&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;An Introduction to LaTeX&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\author&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;Random PhD Student&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\date&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;&lt;span class="k"&gt;\today&lt;/span&gt;&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\maketitle&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\section&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;Introduction&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Wow &lt;span class="k"&gt;\LaTeX&lt;/span&gt; is great for typesetting mathematics!
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Here is an example of Einstein&amp;#39;s famous equation:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;equation&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;E = mc&lt;span class="nb"&gt;^&lt;/span&gt;2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;equation&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="beautiful-mathematics"&gt;Beautiful Mathematics&lt;/h3&gt;
&lt;p&gt;LaTeX was originally developed for high-quality typesetting of mathematical content, and it remains the gold standard in this area.
Its math mode allows authors to create complex equations with ease, ensuring clarity and precision in scientific communication&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-latex" data-lang="latex"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\documentclass&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;article&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\usepackage&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;amsmath&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\begin&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;equation&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\int&lt;/span&gt;&lt;span class="nb"&gt;_{&lt;/span&gt;a&lt;span class="nb"&gt;}^{&lt;/span&gt;b&lt;span class="nb"&gt;}&lt;/span&gt; f(x) &lt;span class="k"&gt;\,&lt;/span&gt; dx = F(b) - F(a)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;equation&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;\end&lt;/span&gt;&lt;span class="nb"&gt;{&lt;/span&gt;document&lt;span class="nb"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Renders as:&lt;/p&gt;
$$
\int_{a}^{b} f(x) \, dx = F(b) - F(a)
$$
&lt;h2 id="tutorial-program"&gt;Tutorial Program&lt;/h2&gt;
&lt;p&gt;By the end of the session, participants will be able to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Write basic documents using LaTeX and compile them to PDF.&lt;/li&gt;
&lt;li&gt;Structure documents using classes, packages, and a well‑defined preamble.&lt;/li&gt;
&lt;li&gt;Compose mathematics, use figures, create tables, and use accurate cross‑referencing.&lt;/li&gt;
&lt;li&gt;Manage bibliographies with BibTeX and apply journal or institutional citation styles.&lt;/li&gt;
&lt;li&gt;Organize long projects using modular files and coherent directory layouts.&lt;/li&gt;
&lt;li&gt;Compile reliably with modern engines and tools (e.g., &lt;code&gt;latexmk&lt;/code&gt;) and diagnose common errors.&lt;/li&gt;
&lt;li&gt;Manage your supervisors.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Emphasis is placed on reproducibility, separation of content and presentation, and maintainable project structure rather than ad‑hoc formatting.
Basic command‑line familiarity is helpful but not required.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Students &lt;strong&gt;must come with a laptop with administrative install permissions&lt;/strong&gt; and a compatible OS (Windows, macOS, or Linux).
These are required to install the LaTeX toolchain and editor extensions used in the session.&lt;/li&gt;
&lt;li&gt;A LaTeX distribution that provides &lt;code&gt;pdflatex&lt;/code&gt; and &lt;code&gt;latexmk&lt;/code&gt; (e.g.,
,
, or
).&lt;/li&gt;
&lt;li&gt;Visual Studio Code (VS Code) as the IDE (
); install the LaTeX Workshop extension (
).&lt;/li&gt;
&lt;li&gt;Git installed is recommended for version control examples (
).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="platform-notes"&gt;Platform notes&lt;/h3&gt;
&lt;details class="spoiler " id="spoiler-2"&gt;
&lt;summary class="cursor-pointer"&gt;Windows&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Install
or
and ensure &lt;code&gt;pdflatex&lt;/code&gt; is available.&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Install
to enable &lt;code&gt;latexmk&lt;/code&gt; and confirm &lt;code&gt;perl&lt;/code&gt; is on your &lt;code&gt;PATH&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;details class="spoiler " id="spoiler-3"&gt;
&lt;summary class="cursor-pointer"&gt;MacOS&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Install
(or
) and ensure &lt;code&gt;pdflatex&lt;/code&gt;/&lt;code&gt;latexmk&lt;/code&gt; are available.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;details class="spoiler " id="spoiler-4"&gt;
&lt;summary class="cursor-pointer"&gt;Linux&lt;/summary&gt;
&lt;div class="rounded-lg bg-neutral-50 dark:bg-neutral-800 p-2"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; Install TeX Live from your package manager (see
) and ensure &lt;code&gt;pdflatex&lt;/code&gt;/&lt;code&gt;latexmk&lt;/code&gt; are available.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;h3 id="verifications"&gt;Verifications&lt;/h3&gt;
&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900"&gt;
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;span class="dark:text-neutral-300"&gt;To check PDFLaTeX installation, run the following commands in a terminal or command prompt: &lt;code&gt;pdflatex -v&lt;/code&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900"&gt;
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;span class="dark:text-neutral-300"&gt;To check LaTeXmk installation, run the following commands in a terminal or command prompt: &lt;code&gt;latexmk -v&lt;/code&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900"&gt;
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300"&gt;
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"&gt;&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/&gt;&lt;/svg&gt;
&lt;/span&gt;
&lt;span class="dark:text-neutral-300"&gt;On Windows, to check Perl installation (from Strawberry Perl), run the following commands in a terminal or command prompt: &lt;code&gt;perl -v&lt;/code&gt;&lt;/span&gt;
&lt;/div&gt;</description></item><item><title>Workflow</title><link>https://lcharleux.github.io/SIE_SCRIPT_tutorial/workflow/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://lcharleux.github.io/SIE_SCRIPT_tutorial/workflow/</guid><description>&lt;p&gt;These workshops help PhD students build a simple, repeatable research workflow. You can follow the full sequence or pick only the modules you need.&lt;/p&gt;
&lt;p&gt;We cover:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LaTeX for writing&lt;/li&gt;
&lt;li&gt;Git for version control&lt;/li&gt;
&lt;li&gt;Python for scripting and analysis&lt;/li&gt;
&lt;li&gt;Docker for running projects the same way on any machine&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="recommended-sequence"&gt;Recommended sequence&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Block 1:
&lt;/li&gt;
&lt;li&gt;Block 2:
&lt;/li&gt;
&lt;li&gt;Block 3:
&lt;/li&gt;
&lt;li&gt;Block 4:
&lt;/li&gt;
&lt;li&gt;Block 5:
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can enroll in any subset. This order works well because Python 2/2 assumes you’ve seen Python 1/2.&lt;/p&gt;
&lt;h2 id="pathways"&gt;Pathways&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt=""
srcset="https://lcharleux.github.io/SIE_SCRIPT_tutorial/workflow/workflow_hu_4da1c5c8ed0d0b85.webp 219w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://lcharleux.github.io/SIE_SCRIPT_tutorial/workflow/workflow_hu_4da1c5c8ed0d0b85.webp"
width="219"
height="760"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;You can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Take only the sessions you need right now&lt;/li&gt;
&lt;li&gt;Do the full sequence for a complete toolkit&lt;/li&gt;
&lt;li&gt;Go step by step at your own pace&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="intended-audience"&gt;Intended audience&lt;/h2&gt;
&lt;p&gt;This series is for doctoral candidates who:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Are new to research computing tools&lt;/li&gt;
&lt;li&gt;Want good habits early in the PhD&lt;/li&gt;
&lt;li&gt;Want smoother writing, coding, collaboration, and reproducibility&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="format-and-requirements"&gt;Format and requirements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Format: Hands-on workshops with research-friendly examples&lt;/li&gt;
&lt;li&gt;Level: Introductory (no prior experience required)&lt;/li&gt;
&lt;li&gt;Requirements: A laptop with admin install permissions (Windows, macOS, or Linux). We’ll guide the setup during the sessions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not sure where to start? Contact &lt;a href="https://lcharleux.github.io/SIE_SCRIPT_tutorial/author/ludovic-charleux/"&gt;Ludovic Charleux&lt;/a&gt; &lt;a href="https://lcharleux.github.io/SIE_SCRIPT_tutorial/author/christian-elmo/"&gt;Christian Elmo&lt;/a&gt; and we’ll help you pick a path that fits your needs.&lt;/p&gt;</description></item></channel></rss>