diff --git a/0-getting_started_with_tutorial.ipynb b/0-getting_started_with_tutorial.ipynb
index 3e414c5d72799c1c6575de09b84144d54b7fac06..2a54da63f78735d86a5230b15df262c043575c78 100644
--- a/0-getting_started_with_tutorial.ipynb
+++ b/0-getting_started_with_tutorial.ipynb
@@ -161,7 +161,7 @@
     "\n",
     "You may have notices the braces `{` and `}` in the examples above. They are here a technicality to make cling interpreter work better in a Jupyter environment, but that is also useful in a real C++ code.\n",
     "\n",
-    "What is between both braces constitute a **block**; variables that are initialized inside are destroyed once the closing brace is past (don't worry - we will come back to that [later](/notebooks/1-ProceduralProgramming/6-DynamicAllocation.ipynb#Stack)).\n",
+    "What is between both braces constitute a **block**; variables that are initialized inside are destroyed once the closing brace is past (don't worry - we will come back to that [later](/notebooks/1-ProceduralProgramming/5-DynamicAllocation.ipynb#Stack)).\n",
     "\n",
     "This is an incredibly useful feature: you may ensure this way that a variable is not kept any longer than necessary. We will come back to this feature (called the **locality of reference** later); let's see why they are useful in a notebook environment.\n",
     "\n",
@@ -308,7 +308,7 @@
     "\n",
     "The operator `<<` is used to indicate what you direct toward the stream; here std::cout << \"Hello world!\" tells to redirect the string toward the standard output.\n",
     "\n",
-    "We will see that a bit more in detail in [a later chapter](/notebooks/1-ProceduralProgramming/7-Streams.ipynb), but printing something is really helpful early on hence this brief introduction here.\n"
+    "We will see that a bit more in detail in [a later chapter](/notebooks/1-ProceduralProgramming/6-Streams.ipynb), but printing something is really helpful early on hence this brief introduction here.\n"
    ]
   },
   {
diff --git a/1-ProceduralProgramming/0-main.ipynb b/1-ProceduralProgramming/0-main.ipynb
index ee56b34b1ba6f3acce2206b4da7c2e976ba7a339..11ab21e5a0f7830971bd874f8628fca0f78b5d32 100644
--- a/1-ProceduralProgramming/0-main.ipynb
+++ b/1-ProceduralProgramming/0-main.ipynb
@@ -15,9 +15,10 @@
     "* [Condition and loops](/notebooks/1-ProceduralProgramming/2-Conditions-and-loops.ipynb)\n",
     "* [Predefined types](/notebooks/1-ProceduralProgramming/3-Types.ipynb)\n",
     "* [Functions](/notebooks/1-ProceduralProgramming/4-Functions.ipynb)\n",
-    "* [TP 1](/notebooks/1-ProceduralProgramming/5-TP-1.ipynb)\n",
-    "* [Dynamic allocation](/notebooks/1-ProceduralProgramming/6-DynamicAllocation.ipynb)\n",
-    "* [Input/output](/notebooks/1-ProceduralProgramming/7-Streams.ipynb)"
+    "    * [TP 1](/notebooks/1-ProceduralProgramming/4b-TP.ipynb)\n",
+    "* [Dynamic allocation](/notebooks/1-ProceduralProgramming/5-DynamicAllocation.ipynb)\n",
+    "* [Input/output](/notebooks/1-ProceduralProgramming/6-Streams.ipynb)\n",
+    "    * [TP 2](/notebooks/1-ProceduralProgramming/6b-TP.ipynb)"
    ]
   },
   {
diff --git a/1-ProceduralProgramming/1-Variables.ipynb b/1-ProceduralProgramming/1-Variables.ipynb
index 793e724ecf97478d73dc34bf6a39a0cfb7a3c7e3..1fbfc05933b88811a8f4ad8e7125d13a6c3232ad 100644
--- a/1-ProceduralProgramming/1-Variables.ipynb
+++ b/1-ProceduralProgramming/1-Variables.ipynb
@@ -877,7 +877,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "**IMPORTANT**: so far we have considered only the case of _static_ arrays, for which the size is already known at compilation. We will deal with dynamic ones [later in this tutorial](/notebooks/1-ProceduralProgramming/6-DynamicAllocation.ipynb#Arrays-on-heap) (and also with the standard libraries [alternatives](/notebooks/5-UsefulConceptsAndSTL/3-Containers.ipynb) such as std::vector or std::array which are actually much more compelling)."
+    "**IMPORTANT**: so far we have considered only the case of _static_ arrays, for which the size is already known at compilation. We will deal with dynamic ones [later in this tutorial](/notebooks/1-ProceduralProgramming/5-DynamicAllocation.ipynb#Arrays-on-heap) (and also with the standard libraries [alternatives](/notebooks/5-UsefulConceptsAndSTL/3-Containers.ipynb) such as std::vector or std::array which are actually much more compelling)."
    ]
   },
   {
diff --git a/1-ProceduralProgramming/5-TP-1.ipynb b/1-ProceduralProgramming/4b-TP.ipynb
similarity index 99%
rename from 1-ProceduralProgramming/5-TP-1.ipynb
rename to 1-ProceduralProgramming/4b-TP.ipynb
index c115c65e12bcb08f631a4ad5e0545f90ef589aac..600894ef7a0b73b3f00dbf4373790e6ce691a743 100644
--- a/1-ProceduralProgramming/5-TP-1.ipynb
+++ b/1-ProceduralProgramming/4b-TP.ipynb
@@ -4,7 +4,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# [Getting started in C++](/) - [Procedural programming](/notebooks/1-ProceduralProgramming/0-main.ipynb) - [TP 1](/notebooks/1-ProceduralProgramming/5-TP1.ipynb)"
+    "# [Getting started in C++](/) - [Procedural programming](/notebooks/1-ProceduralProgramming/0-main.ipynb) - [TP 1](/notebooks/1-ProceduralProgramming/4b-TP.ipynb)"
    ]
   },
   {
@@ -23,7 +23,7 @@
    "source": [
     "## How to do this TP\n",
     "\n",
-    "There are basically three ways to do the exercices proposed in this TP:\n",
+    "There are basically three ways to do the exercices proposed in this TP; using Jupyter is not one of them!\n",
     "\n",
     "### Through a dedicated Web site\n",
     "\n",
diff --git a/1-ProceduralProgramming/6-DynamicAllocation.ipynb b/1-ProceduralProgramming/5-DynamicAllocation.ipynb
similarity index 99%
rename from 1-ProceduralProgramming/6-DynamicAllocation.ipynb
rename to 1-ProceduralProgramming/5-DynamicAllocation.ipynb
index 8bcbbfdbe2404de1207b9bc791f2358895ff6fd5..e72278fe122e4859bde79679e81c31b0f9f62e3b 100644
--- a/1-ProceduralProgramming/6-DynamicAllocation.ipynb
+++ b/1-ProceduralProgramming/5-DynamicAllocation.ipynb
@@ -4,7 +4,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# [Getting started in C++](/) - [Procedural programming](/notebooks/1-ProceduralProgramming/0-main.ipynb) - [Dynamic allocations](/notebooks/1-ProceduralProgramming/6-DynamicAllocation.ipynb)"
+    "# [Getting started in C++](/) - [Procedural programming](/notebooks/1-ProceduralProgramming/0-main.ipynb) - [Dynamic allocations](/notebooks/1-ProceduralProgramming/5-DynamicAllocation.ipynb)"
    ]
   },
   {
diff --git a/1-ProceduralProgramming/7-Streams.ipynb b/1-ProceduralProgramming/6-Streams.ipynb
similarity index 99%
rename from 1-ProceduralProgramming/7-Streams.ipynb
rename to 1-ProceduralProgramming/6-Streams.ipynb
index 4f19d16f5d5ac3c76c2bc6d05381df540e6080b5..a1fc5831a1822e6c2fceb1f2e6eb511a33ed7a7c 100644
--- a/1-ProceduralProgramming/7-Streams.ipynb
+++ b/1-ProceduralProgramming/6-Streams.ipynb
@@ -4,7 +4,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "# [Getting started in C++](/) - [Procedural programming](/notebooks/1-ProceduralProgramming/0-main.ipynb) - [Input and output streams](/notebooks/1-ProceduralProgramming/7-Streams.ipynb)"
+    "# [Getting started in C++](/) - [Procedural programming](/notebooks/1-ProceduralProgramming/0-main.ipynb) - [Input and output streams](/notebooks/1-ProceduralProgramming/6-Streams.ipynb)"
    ]
   },
   {
diff --git a/1-ProceduralProgramming/7b-TP.ipynb b/1-ProceduralProgramming/6b-TP.ipynb
similarity index 100%
rename from 1-ProceduralProgramming/7b-TP.ipynb
rename to 1-ProceduralProgramming/6b-TP.ipynb