diff --git a/README.md b/README.md
index 30ef07e810cd85c7f774e5ee991eca1ca1ec0df9..b7787252e9ecfc16d4c35059247df2e0251209fb 100644
--- a/README.md
+++ b/README.md
@@ -28,15 +28,26 @@ Materials
 
 The top-level directory contains materials for the following lessons:
 
-1. Welcome ([slides](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/01%20-%20Welcome.ipynb))
-2. Introduction to Python ([slides 1](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/02%20-%20Introduction%20to%20Python%20(1).ipynb), [slides 2](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/02%20-%20Introduction%20to%20Python%20(2).ipynb), [slides 3](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/02%20-%20Introduction%20to%20Python%20(3).ipynb))
-3. More Python Goodness ([notebook 1](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/03%20-%20More%20Python%20goodness%20(1).ipynb), [notebook 2](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/03%20-%20More%20Python%20goodness%20(2).ipynb))
+1. Welcome ([slides][lesson_01])
+2. Introduction to Python ([slides 1][lesson_02_01], [slides 2][lesson_02_02],
+   [slides 3][lesson_02_03])
+3. More Python Goodness ([notebook 1][lesson_03_01], [notebook 2][lesson_03_02])
 4. Working with NumPy arrays
-5. IPython Notebook ([notebook](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/05%20-%20IPython%20Notebook.ipynb))
+5. IPython Notebook ([notebook][lesson_05])
 6. Plotting with matplotlib
 7. Python for data analysis
 8. Object-oriented programming
-9. A sip of Biopython ([notebook 1](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/09%20-%20A%20sip%20of%20Biopython%20(1).ipynb), [notebook 2](http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/09%20-%20A%20sip%20of%20Biopython%20(2).ipynb))
+9. A sip of Biopython ([notebook 1][lesson_09_01], [notebook 2][lesson_09_02])
+
+[lesson_01]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/01%20-%20Welcome.ipynb
+[lesson_02_01]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/02%20-%20Introduction%20to%20Python%20(1).ipynb
+[lesson_02_02]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/02%20-%20Introduction%20to%20Python%20(2).ipynb
+[lesson_02_03]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/02%20-%20Introduction%20to%20Python%20(3).ipynb
+[lesson_03_01]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/03%20-%20More%20Python%20goodness%20(1).ipynb
+[lesson_03_02]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/03%20-%20More%20Python%20goodness%20(2).ipynb
+[lesson_05]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/05%20-%20IPython%20Notebook.ipynb
+[lesson_09_01]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/09%20-%20A%20sip%20of%20Biopython%20(1).ipynb
+[lesson_09_02]: http://nbviewer.ipython.org/urls/git.lumc.nl/humgen/programming-course/raw/master/09%20-%20A%20sip%20of%20Biopython%20(2).ipynb
 
 As indicated, some of the lessons are slideshows, whereas others are just
 notebooks we scroll through during class. The links above are all one-page