diff --git a/00-syllabus slides.pdf b/00-syllabus slides.pdf
deleted file mode 100644
index d974704ee0da405adee54e1dfc91d196de733e4f..0000000000000000000000000000000000000000
Binary files a/00-syllabus slides.pdf and /dev/null differ
diff --git a/00-syllabus.ipynb b/00-syllabus.ipynb
deleted file mode 100644
index 42cf265d888c26fbc08a0807fab94dcaac6d0cd3..0000000000000000000000000000000000000000
--- a/00-syllabus.ipynb
+++ /dev/null
@@ -1,187 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "id": "9d0330d6",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "slide"
-    }
-   },
-   "source": [
-    "# UE5 Fundamentals of Algorithms\n",
-    "## Syllabus\n",
-    "### Ecole Centrale de Lyon, Bachelor of Science in Data Science for Responsible Business\n",
-    "#### Romain Vuillemot\n",
-    "<center><img  src=\"figures/Logo_ECL.png\" style=\"width:300px\"></center>\n"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "d655ed46",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "skip"
-    }
-   },
-   "source": [
-    "---"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "905ddfde",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "subslide"
-    }
-   },
-   "source": [
-    "## Course Description\n",
-    "\n",
-    "- Basis of algorithms (sorting, search) and data structure (arrays, lists)\n",
-    "- Justification of the choice of data structures\n",
-    "- Calculate the complexity of an algorithm\n",
-    "- Optimize algorithms\n",
-    "- Writing programs using algorithms"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "0e4c3653",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "subslide"
-    }
-   },
-   "source": [
-    "## Outline\n",
-    "\n",
-    "1. [Data structures and complexity](01-introduction.ipynb)\n",
-    "\n",
-    "2. Recursion\n",
-    "\n",
-    "3. Lists, search, sort\n",
-    "\n",
-    "4. Stacks and Queues\n",
-    "\n",
-    "5. Sorting\n",
-    "\n",
-    "6. Hashing\n",
-    "\n",
-    "7. Trees\n",
-    "\n",
-    "8. Trees and their representation\n",
-    "\n",
-    "9. Tree Algorithms\n",
-    "\n",
-    "(..)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "b88aa26d",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "subslide"
-    }
-   },
-   "source": [
-    "## Outline (cont.)\n",
-    "\n",
-    "(..)\n",
-    "\n",
-    "10. Binary and n-trees\n",
-    "\n",
-    "11. Graphs\n",
-    "\n",
-    "12. Divide and conquer Programming\n",
-    "\n",
-    "13. Dynamic Programming\n",
-    "\n",
-    "14. Greedy Algorithms\n",
-    "\n",
-    "15. Graphs shortest path algorithm"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "b71dbd2b",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "subslide"
-    }
-   },
-   "source": [
-    "## Assignments\n",
-    "\n",
-    "_For all the assignments you need to: explain your solution, give the complexity and justify it, and implement it in Python using server test cases._\n",
-    "\n",
-    "- Assignment 1\n",
-    "\n",
-    "- Assignment 2\n",
-    "\n",
-    "- Assignment 3\n",
-    "\n",
-    "- Assignment 4\n",
-    "\n",
-    "- Assignment 5\n"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "f7624374",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "subslide"
-    }
-   },
-   "source": [
-    "## Quizz\n",
-    "\n",
-    "1.  Quizz 1\n",
-    "2.  Quizz 2\n",
-    "3.  Quizz 3\n",
-    "4.  Quizz 4\n",
-    "5.  Quizz 5\n",
-    "6.  Quizz 6"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "5e41c72c",
-   "metadata": {
-    "slideshow": {
-     "slide_type": "subslide"
-    }
-   },
-   "source": [
-    "## Readings\n",
-    "\n",
-    "TBD"
-   ]
-  }
- ],
- "metadata": {
-  "celltoolbar": "Slideshow",
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.10.9"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/01-introduction slides.pdf b/01-introduction-slides.pdf
similarity index 100%
rename from 01-introduction slides.pdf
rename to 01-introduction-slides.pdf
diff --git a/README.md b/README.md
index ceec02409fa5e3f1ad665141ce9ea8879a5f1227..a4e6401b86eaeb13a9897a933925db8fb416846b 100644
--- a/README.md
+++ b/README.md
@@ -11,39 +11,47 @@ Instructor: [Romain Vuillemot](romain.vuillemot@ec-lyon.fr)
 - Writing programs using algorithms
 
 
-
 ## Outline
 
-📖 == expected reading beforet the class day
+### Lecture 1 - **Data structures and complexity** | [notebook](01-introduction.ipynb) | [slides](01-introduction-slides.pdf)
+
+📖 [Python for Everybody](pdf/pythonlearn.pdf) chapter 9 (dictionnaries), chapter 10 (tuples)
+
+### Lecture 2 - **Recursion** | [notebook](02-recursion.ipynb) | [slides](02-recursion-slides.ipynb) | [exercices](02-recursion-exercices.ipynb)
+
+📖 [Think Python](pdf/thinkpython2.pdf) chapter 5 (Conditionals and recursion)
+
+### Lecture 3 - **Lists, search, sort** 
 
-1. **Data structures and complexity** - [notebook](01-introduction.ipynb), [slides (pdf)](01-introduction.ipynb)
+📖 [Think Python](pdf/thinkpython2.pdf) chapter 11 (lists), chapter 12 (tuples)
 
-- 📖 [Python for Everybody](pdf/pythonlearn.pdf) chapter 8 (lists), 9 (dictionnaries), 10 (tuples)
+📖 [Python for Everybody](pdf/pythonlearn.pdf) chapter 8 (lists)
 
-2. **Recursion** - [notebook](02-recursion.ipynb), [slides (pdf)](02-recursion.ipynb)
+Next topics:
 
-- 📖 [Think Python](pdf/thinkpython2.pdf) chapter 5 (Conditionals and recursion))
+1. **Advanced sorting**
 
-3. **Stacks and Queues**
+2. **Hashing**
 
-4. **Sorting**
+3. **Trees**
 
-5. **Hashing**
+4. **Trees and their representation**
 
-6. **Trees**
+5. **Tree Algorithms**
 
-7. **Trees and their representation**
+6. **Binary and n-trees**
 
-8. **Tree Algorithms**
+7.  **Graphs**
 
-9. **Binary and n-trees**
+8.  **Divide and conquer Programming**
 
-10. **Graphs**
+9.  **Dynamic Programming**
 
-11. **Divide and conquer Programming**
+10. **Greedy Algorithms**
 
-12. **Dynamic Programming**
+11. **Graphs shortest path algorithm**
 
-13. **Greedy Algorithms**
+## Books
 
-14. **Graphs shortest path algorithm**
\ No newline at end of file
+- [Think Python](pdf/thinkpython2.pdf), 2nd edition, by Allen B. Downey
+- [Python for Everybody](pdf/pythonlearn.pdf), by Charles Severance
\ No newline at end of file
diff --git a/course_id/outbound/01-listes.ipynb/testgrade.ipynb b/course_id/outbound/01-listes.ipynb/testgrade.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..c75bc9afc44f5f374587d51cfe73e5f48a2f207c
--- /dev/null
+++ b/course_id/outbound/01-listes.ipynb/testgrade.ipynb
@@ -0,0 +1,80 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "ff85f1e7",
+   "metadata": {
+    "deletable": false,
+    "nbgrader": {
+     "cell_type": "code",
+     "checksum": "274f66a6493e86253b22688664dd1a6b",
+     "grade": false,
+     "grade_id": "cell-3cc0f00c3678cddb",
+     "locked": false,
+     "schema_version": 3,
+     "solution": true,
+     "task": false
+    }
+   },
+   "outputs": [],
+   "source": [
+    "a=1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "de920222",
+   "metadata": {
+    "deletable": false,
+    "editable": false,
+    "nbgrader": {
+     "cell_type": "code",
+     "checksum": "662a5f86ec714facc3a4fa54f5440e9b",
+     "grade": true,
+     "grade_id": "cell-013c5c6e09af8284",
+     "locked": true,
+     "points": 1,
+     "schema_version": 3,
+     "solution": false,
+     "task": false
+    }
+   },
+   "outputs": [],
+   "source": [
+    "\n",
+    "assert isinstance(a, int)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "2a5c3cfe",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.10.9"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}