This is the programme for the Computational Mathematics with Jupyter workshop.
We will hold presentations and tutorials during morning sessions, and concurrent coding and documentation sprints during afternoon sessions (except swapping them places on Thursday). Actitivies that will take place in the afternoons and their schedule will be decided at the beginning of the workshop depending on how many people will sign up to the proposed coding and documentation sprints. At the end of each day we will hear brief reports from group activities.
- 9.30 - morning sessions begin
- 11.00 - coffee break
- 13.00 - lunch
- 15.30 - coffee break
- 16.45 - reports from groups
- 17.00 - ICMS is closed for visitors
Monday, 16th January
- Welcoming and introductions
Presentations and tutorials (morning)
-
Mike Croucher : Is your research software correct?
-
Raniere Silva: Software Sustainability on Computational Mathematics
-
Olexandr Konovalov: Reproducible computational experiments using GAP Docker containers [pdf]
Sprints
-
Finalising the schedule of concurrent coding and documentation sprints
-
Installation and setup: if you haven’t installed all relevant software prior to the workshop, we will help you with this (for example, install Jupyter to follow the forthcoming Jupyter tutorial; install releases or development versions of GAP, SageMath, etc.)
- Hans Fangohr and Marijan Beg: A case study of computational science in Jupyter notebooks - JOOMMF
-
Integrate Semigroups++ into Sage: we will attempt to
incorporate
Coding and documentation sprints
Semigroups++ into Sage.
-
How to contribute to GAP and make a GAP package (lead: Olexandr Konovalov)
-
Jupyter Interactions Develop this skeletal repo into a community project. Aim is to have a range of peer reviewed interactive pieces of code for use in teaching and research. https://github.com/mikecroucher/jupyter-interactions (lead: Mike Croucher)
- Developing Software Carpentry lesson on SageMath (leads: Olexandr Konovalov, Raniere Silva): we would like to make progress with establishing the Software Carpentry lesson on SageMath, which is being at the early development stage in this repository. If there will be an interest, we can also look at the Software Carpentry lesson on GAP
Tuesday, 17th January
Presentations and tutorials (morning)
-
Thomas Kluyver: Introduction to Jupyter
-
Vidar T. Fauske: Notebooks in Version Control - diffing and merging with nbdime [pdf]
-
Hans Fangohr: Introduction to NBVAL (a
py.test
plugin to validate Jupyter Notebooks) [pdf]
Sprints (afternoon)
-
Lecture notes hackathon (lead: Mike Croucher): bring your lecture notes, and we will help to convert them to Jupyter notebooks
-
Further practicalities of Jupyter, nbdime, JupyterHub and other tools
-
Integrate Semigroups++ into Sage: we will attempt to incorporate Semigroups++ into Sage.
Wednesday, 18th January
Presentations and tutorials (morning)
-
Jeroen Demeyer: IPywidgets: unraveling the magic behind @interact
-
Mike Croucher: An introduction to SageMathCloud for lecturers
-
Christian Lawson-Perfect: Numbas - free web-based e-assessment system for mathematics [pdf]
Sprints (afternoon)
-
Contributing to STACK (lead: Chris Sangwin): STACK is a computer aided assessment package for mathematics, which provides a new question type for the Moodle quiz. Using it, one could use the computer algebra system Maxima to validate answers
-
Improving documentation for An introduction to SageMathCloud for lecturers (lead: Mike Croucher): follow-up activity for the morning talk
-
Integrate Semigroups++ into Sage: we will attempt to incorporate Semigroups++ into Sage.
-
Tannakian symbols (leads: Torstein Vik, Andreas Holmstrom): Sage code for Tannakian symbols, a tool for computations in certain algebraic structures called lambda-rings and Adams algebras, which appear naturally in number theory and representation theory.
Workshop dinner: Wednesday, 18th January, 18.30-21.00, Vittoria on the Bridge (19 George IV Bridge, Edinburgh, Scotland, EH1 1EN)
Thursday, 19th January
Remark: in the morning, all OpenDreamKit Steering Committee members will be at the meeting here, so we will have coding sprints first, and then presentations and tutorials in the afternoon.
Sprints (morning)
- To be selected.
Presentations and tutorials (afternoon)
-
Sylvain Corlay: Custom widget libraries and extending JupyterLab, see GitHub repo
-
Martin Renou: SciviJS - The extensible scientific 3D mesh visualization library [pdf]
-
Markus Pfeiffer and Manuel Martins: Interactive computational discrete mathematics with GAP Jupyter interface
Friday, 20th January
Presentations and tutorials (morning)
-
Hans Fangohr and Marijan Beg: A case study of computational science in Jupyter notebooks: JOOMMF [slides and notebooks]
-
Mark Quinn: Using SageMathCloud for teaching undergraduate physics
Sprints (afternoon)
- To be selected.
Coding and documentation sprints yet to be scheduled
We will schedule these sprints during our planning session on Monday, dependently on how many participants will be interested to join them. Some of these sprints may be recurring for several days.
-
Introduction to Symbolic Computation Software Composability Protocol (SCSCP) (lead: Olexandr Konovalov): SCSCP is a remote procedure call protocol supported by several computer algebra systems and another software tools. I could demonstrate how to use it, and provide further guidelines for using it in your code. This could cover the new Python packages
scscp
andopenmath
(see their repositories at [py-scscp
(https://github.com/OpenMath/py-scscp/) andpy-openmath
). -
NumericalSgps (lead: Pedro A. Garcaa Sanchez): NumericalSgps is a gap package for numerical semigroups. It benefits from other gap packages and software. The development version can be found in bitbucket.
-
Extending and integrating nbval and nbdime features Developers of nbval and nbdime and others interested in contributing should meet to extend nbval and possibly nbdime.
Desirable tutorials
Please get in touch if you’re able to cover this in your talk/tutorial/sprint:
-
Using nbgrader to create and grade assigments
-
Deploying JupyterHub in various ways
As an option, we may just have sprints where we will try to make use of these tools, following their documentation, and report our experiences.