I created a set of four iPython notebooks that ran as an introduction to Python lab. Each notebook takes students about three hours to work through and complete the exercises. They don’t require any particular programming experience and the aim is to get student at least familiar with Python and some of the scientific computation modules that are available. We used the Anaconda distribution for iPython and the scientific Python modules.
📄Lab1-IntroductionToPython.ipynb- a basic introduction to the Python programming language finishing with how to plot using the module matplotlib. 📄Lab2-VectorsAndMatrices.ipynb- using arrays for numerical computation. 📄Lab3-SymbolicComputation.ipynb- symbolic computation. 📄Lab4-Randomness.ipynb- exploring random numbers.
Generally the labs went well, the notebook interface is great for providing a self-documented lab workbook, and being able to mix in LaTeX expressions for the math is just awesome. Exercises can be completed in-situ and the entire notebook submitted for assessment at the end. Some things that could be improved on are better formating controls like being able to define an exercise cell with nice visual formatting (this would have to be done withing the notebook as there is no guarantee the student will have all the style files in place, especially if running the notebook from home), and a way of rapidly printing off a notebook (ideally just pressing an in-notebook button that generated a pdf for instance).