- Start: Thursday August 15th 2019 at 09:30
- Finish: Friday August 23th 2019 at noon
The school is meant for beginners in computer algebra, to learn about the capabilities of the CAS GAP and Singular. It consists of six sessions, each three hours long, consisting of a lecture about the topic and a long hands-on session, in which participants can exercise their newly gained knowledge. It is envised that after this school, participants should be able to work with the developers in the succeding workshops. The sessions are:
Thursday: Best practices software development (Max Horn)In this course, you will learn about some best practices in (mathematical) software development: We will discuss the importance of, and how to do, source code version control and issue tracking. There will be practical demonstrations using the git version control system, and GitHub for collaborative work, and a set of exercises to train these skills.
Thursday: GAP for beginners (Michael Torpey)This lesson gives an introduction to GAP. It is centered around a common task of searching in the Small Groups Library for interesting examples and counterexamples, and a particular research problem in which we will be interested is to
- basic constructions of the GAP programming language,
- ways to find necessary information in the GAP system, and
- good design practices to organize GAP code into complex programs.
Friday: Advanced Topics in GAP (Thomas Breuer)Motivated by a mathematical question, we will develop GAP functions for answering questions from various areas (combinatorics, group theory, representation theory). We will combine them with available functionality, create new kinds of objects, and extend GAP's capabilities in special situations.
Friday: Singular for beginners (Christian Eder, Andreas Steenpaß, Isabel Stenger)We will give an introduction to Singular starting from the very first line of code, and show how it can be used for theoretical research. On the practical side, the participants are encouraged to write their own Singular code, ranging from basic polynomial computations to more advanced projects such as writing a Singular library for their own research.
Saturday: CAP: Categories, algorithms, programming (Sebastian Posur)The CAP Days school provides a gentle introduction to the basic notions of category theory and their realization in CAP (categories, algorithms, programming), a software project for constructive category theory written in GAP. We learn how to compute with finite dimensional vector spaces and finitely presented modules using the unifying language of abelian categories, and write generic algorithms that work in arbitrary abelian categories, e.g., for the intersection of subobjects. You may test and play with CAP's categorical language by running Jupyter notebooks interactively in Binder: click here to launch Binder.
Saturday: Parallel modular algorithms in Singular (Christian Eder, Andreas Steenpaß, Isabel Stenger)Modular algorithms are an important tool for tackling research problems in computational algebra whenever coefficient swell is an issue. At the same time, they offer a relatively easy way for parallelization. The basic idea is to make use of the Chinese remainder theorem for decomposing the original computation over some given ring into several computations over different rings for which the arithmetic is computationally easier, and to recombine the results. In the simplest case, a computation over the rational numbers is decomposed into computations over fields of order p for several primes p, but modular methods can also be applied to, for example, number fields and function fields.
We will give an introduction to several applications of this principle as well as to the existing implementations of modular algorithms in Singular. We will also discuss both technical and theoretical problems which arise from this approach. For more complex applications such as Gröbner basis computations for example, we often face the problems how the modular results can be recombined and how correctness of the final result can be ensured.
Participants are welcome to give talks about problems they have tackled or want to tackle using computer algebra systems. Furthermore, developers of CAS who want to present their work are welcome to present it. Please note that each talk should contain either a research question to tackle with CAS, or a demo of CAS features.
From Wednesday to Friday participants are encouraged to work in several workshops on specific problems they are interested in or facing in computer algebra. If you want to definitely participate in a certain workshop, please mention it in the registration.
The workshops (and their specific organizers) are: