This tutorial will give participants an introduction to the use of IPython notebooks in teaching numerical methods or scientific computing, at the level of an undergraduate or graduate university course. Prior familiarity with notebooks is not necessary. Participants will create an interactive notebook that explains and helps students to implement and explore a numerical algorithm.
This tutorial is targeted to those who are or soon will be teaching numerical methods or scientific computing and are interested in using Python as the programming language for their course. The tutorial will be useful both to academics teaching university courses and those in industry who run training sessions. No prior knowledge of the IPython notebook is necessary, but participants should have some familiarity with Python, Numpy, and Matplotlib.
IPython notebooks are an excellent medium for teaching nuemrical methods since they can include both mathematical explanations and executable code in a single document. The tutorial will begin with an introduction to the IPython notebook, emphasizing how to overcome aspects that can be confusing to students. Next we will go over available free resources for
- ensuring that students have a suitable computing environment, using either a cloud platform or a packaged distribution
- distributing and collecting notebooks
- converting notebooks to other formats that may be useful in a course
We will also review a number of excellent existing resources containing IPython notebooks for numerical methods courses. Using these notebooks as examples, we will discuss how to design effective notebooks for teaching, including
- typesetting mathematical equations and expressions using LaTeX
- Formatting, referencing, and layout using Markdown
- inserting complete or partial code snippets
- embedding figures and other media
- embedding interactive widgets
We will briefly discuss different approaches to using IPython notebooks in a course, including their use as the basis for
- homework assignments
- short activities during a class session
- longer laboratory sessions
Finally, participants will be asked to develop, individually or in small groups, a notebook of their own that could be used as an assignment, classroom exercise, or lecture.