Summary and Schedule

GAP — система дискретної обчислювальної алгебри з особливим акцентом на теорії обчислювальних груп. GAP надає мову програмування, бібліотеку тисяч функцій, що реалізують алгебраїчні алгоритми, написані мовою GAP, а також великі бібліотеки даних алгебраїчних об’єктів, наприклад, Бібліотека малих груп, яка містить, серед іншого, усі 423 164 062 групи порядку не більше 2000, крім 1024.

У цьому уроці представлено введення в GAP. Він зосереджений навколо спільного завдання пошуку в бібліотеці малих груп цікавих прикладів і контрприкладів, а конкретна дослідницька проблема, в якій ми будемо зацікавлені, полягає в тому, щоб знайти приклади нетривіальних груп, таких, що середній порядок їх елементів є цілим числом.

Урок проведе студента по шляху від роботи в командному рядку GAP та вивчення алгебраїчних об’єктів в інтерактивному режимі до збереження коду GAP у файли, створення функцій і регресійних тестів, а також до виконання всебічного пошуку та розширення системи шляхом додавання нових атрибутів.

На цьому шляху студент ознайомиться з:

    • основні конструкції мови програмування GAP,
    • способи пошуку необхідної інформації в системі GAP і
    • хороші практики проектування для організації коду GAP у складні програми.
Prerequisite

Передумови

Урок орієнтований на студентів, які володіють мінімальною теоретичною підготовкою (принаймні на рівні бакалаврського курсу теорії груп) і бажають дізнатися, як поняття з абстрактної алгебри можна досліджувати за допомогою обчислювальних інструментів. Попередній досвід роботи з GAP не потрібен.

Студентам потрібно лише розуміти поняття файлів і каталогів (включаючи домашні та робочі каталоги) і знати, як запустити GAP.

Checklist

Підготовка

  1. У Вашому домашньому каталозі створіть новий каталог під назвою avgord.
  2. Запустіть GAP:
  • в Linux і macOS викличте path-to-your-gap-installation/gap-4.X.Y/gap (за потреби відредагуйте шлях);
  • у Windows, викликайте його через меню Пуск чи ярлик на робочому столі, створений після встановлення GAP.
  1. Установіть поточний каталог на avgord:
  • у Linux та macOS, виконайте команду ChangeDirectoryCurrent("/Users/username/avgord"); (за потреби відредагуйте шлях; не забудьте ввести повний шлях до вашого домашнього каталогу замість ~).
  • у Windows, викличте ChangeDirectoryCurrent("C:/Users/username/avgord"); (за потреби відредагуйте шлях; не забудьте використовувати / замість \);
  1. Переконайтеся, що ваш поточний каталог налаштовано належним чином: викличте DirectoryCurrent(); та перевірте, що виведений шлях вказує на каталог avgord.

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.

Windows


На сторінці завантажень GAP, завантажте інсталятор .exe і двічі клацніть файл, щоб запустити його. Коли вас запитають про шлях інсталяції, зверніть увагу, що він не повинен містити пробілів. Наприклад, ви можете встановити GAP 4.X.Y у C:\gap-4.X.Y (за замовчуванням), D:\gap-4.X.Y чи C:\Math\GAP\gap-4.X.Y, але ви не повинні інсталювати його в такий каталог, як C:\Program Files\gap-4.X.Y чи C:\Users\alice\My Documents\gap-4.X.Y.

macOS


В OS X Вам потрібно інсталювати GAP із джерела, як описано на сторінці завантажень GAP. Завантажте один із архівів, наданих там, розпакуйте його та запустіть ./configure && make у розпакованому каталозі. Потім перейдіть до підкаталогу pkg і викличте ../bin/BuildPackages.sh, щоб запустити сценарій, який створить більшість пакетів, які потребують компіляції (за умови наявності достатньої кількості бібліотек, заголовків і інструментів).

Крім того, ви також можете встановити GAP за допомогою Homebrew. Після встановлення Homebrew дотримуйтесь інструкцій для GAP Homebrew tap.

Linux


У Linux вам потрібно встановити GAP із джерела, як описано на сторінці завантажень GAP. Завантажте один із наданих там архівів, розпакуйте його та запустіть ./configure && make у розпакованому каталозі. Потім перейдіть до підкаталогу pkg і викличте ../bin/BuildPackages.sh, щоб запустити сценарій, який створить більшість пакетів, які потребують компіляції (за умови наявності достатньої кількості бібліотек, заголовків і інструментів).