Teaching Theory and Practice in Cryptography: The Wonderful Jupyter Notebooks
You should never stick to what you know, and should always push yourself in innovate and change something about your work. In this way you learn, and when you learn, new ideas happen. I love how the rock band REM were close to giving up on their music, but where on Out of Time, they changed over the instruments, and it ended up being a massive hit. Something thus happens when you push yourself.
So, I’m looking forward to the new semester, and need to teach students about the fundamentals of cryptography. But, just to give them theory is not quite enough, as doing something is practice is the way you re-enforce learning. So can I teach students theory, along with learning some Python code? The answer, is perhaps to use the wonderful Jupyter notebooks. With this we can integrate markup (or any other markup languages, such as HTML and LaTeX) and code.
So, I’ve pushed myself to re-write a range of my cryptography labs, and integrate with a Jupyter notebook server. One of the best ways to create these notebooks is to use Microsoft Code. With this, we create a file with an extension of ipynb: