Giter VIP home page Giter VIP logo

gap-lesson's Introduction

Build Status DOI

This is the Carpentries-style lesson on the computational algebra system GAP.

Its development was started by Olexandr Konovalov for the Software Carpentry workshop organised as a part of the First CoDiMa Training School in Computational Discrete Mathematics in 2015. Since then, it has had several releases, produced in collaboration with further contributors, and has been taught by different instructors at more than ten different events, the full list of which is available on the GAP lesson wiki here.

This lesson is made available under the Creative Commons Attribution license. A human-readable summary of (and not a substitute for) the full legal text of the CC BY 4.0 license can be found in the LICENSE.md file here.

If you use this lesson to teach GAP users, we would appreciate information about the event where it was taught and the number of learners attending, so that we can add it to the list at the GAP lesson wiki here. You can submit it to the issue tracker or send by email to [email protected]. We also encourage you to collect and share the feedback using sticky notes as minute cards (in full or in the form of a summary). This will help us in further lesson development, to which you are welcome to contribute following the guidelines here.

This lesson is published on Zenodo here. To cite it, please use the format suggested there.

We acknowledge financial support from CCP-CoDiMa (Collaborative Computational Project in the area of Computational Discrete Mathematics EP/M022641/1) and from OpenDreamKit Horizon 2020 European Research Infrastructures project (#676541).

gap-lesson's People

Contributors

aaren avatar abbycabs avatar abought avatar alee avatar alex-konovalov avatar anacost avatar erinbecker avatar evanwill avatar fmichonneau avatar jdblischak avatar jduckles avatar jpallen avatar jsta avatar katrinleinweber avatar mawds avatar maxim-belkin avatar mr-c avatar mtorpey avatar neon-ninja avatar olexandr-konovalov avatar pbanaszkiewicz avatar pipitone avatar raynamharris avatar rgaiacs avatar synesthesiam avatar tbekolay avatar tracykteal avatar twitwi avatar wclose avatar wking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gap-lesson's Issues

Including this lesson on the new community lessons page

@fmichonneau has updated the lesson template to enable support of Incubator lessons!

This update:

  • Creates a top-of-page banner to indicate that this lesson is in the incubator (and not an official Carpentries lesson). This banner is in addition to the existing "lesson life cycle" banner that appears on some official Carpentries lessons (for example the geospatial lessons) to indicate whether lessons are pre-alpha, alpha, beta, or stable.

  • Changes the license information to make it clear the copyright is not held by The Carpentries or any of its lesson programs.

  • Replaces The Carpentries (or SWC/DC/LC) logo in the upper left hand corner of the template with The Carpentries Incubator logo.

@fmichonneau and I are happy to do the heavy lifting of bringing this template into your lesson repository (or helping you with the logistics if you'd like to try it yourself). Once this has been done, your lesson will appear on a "Community Contributed Lessons" page on The Carpentries website!

Please respond to this issue to let us know if you approve these changes. Please also indicate whether you would prefer to pull in the template update yourself, or would prefer @fmichonneau and I to take the lead on that. Looking forward to posting your lesson publically and getting the word out about this awesome resource!

Finish the switch to the new lesson template

  • Fix markup of some lesson elements and check that their content matches their logical meaning (e.g. challenges which now have hidden elements)
  • Check questions, objectives and key points for each episode
  • Check supplementary files
  • Fix timings
  • Publish the lesson on Zenodo

Explain equal and identical objects

This example may be confusing for new users, important we cover it:

gap> a:=[1,2,3];
[ 1, 2, 3 ]
gap> b:=a;
[ 1, 2, 3 ]
gap> a[3]:=35345345;
35345345
gap> a;
[ 1, 2, 35345345 ]
gap> b;
[ 1, 2, 35345345 ]

Using SetHelpViewer on Linux

From the Framapad at PGTC 2018 Tutorial:

If you had an issue with SetHelpViewer("browser"), you will have to specify what browser specifically you want to use (Linux users especially). So for example if you have firefox installed and want to use that the command will be SetHelpViewer("firefox");.

All browser names should not be capitalised. (If you're unsure, check the help page for SetHelpViewer, it gives you nearly all options, but does not mention that there is no default browser for Linux).

Adding GAP syntax highlight

Currently the GAP input is labeled using {.gap} but this is rather something for the future - at the moment, this is not supported (can't find the link to confirm this, but I think to make this working, one should have GAP syntax support for pandoc).

Make "Getting ready" easier

At the moment "Getting ready" requires not only just to start GAP, but also to create a directory and make it a current directory for GAP.

This requires:

  • some actions with the file system, which may not be clear to the reader (especially when there were no UNIX shell lesson preceding GAP lesson)
  • calling functions from the GAP command line way before we explained how to use it (case-sensitivity, tab completion, commands history are not yet explained, so that may be very painful and time consuming.

Hence we should change the "Getting Ready" part so that it is enough just to start GAP at any location for the first episode. In particular:

  • it should be explained how to start it in different operating system in more details ("Run bin/gap.sh script to start GAP" in GAP installation instructions is not clear to those who had never used the terminal).
    It should be explained how to check that installation has been successful.

This will allow more smooth start of the lesson, without losing pace to solve technical problems, and making part of the audience waiting for another part of the audience.

We will need file operations later - we can explain paths and directories in the episode on functions before introducing the Read command, and then introduce LogTo in the episode on regression tests (agree with @ChrisJefferson in #14).

Before creating a file with the GAP code and trying to load it using Read, the reader should be able to create a directory and a file with the GAP code in that directory, understand the concept of the current directory, and know how specify path to a file dependently on the operating system.

Using ChangeDirectoryCurrent

ChangeDirectoryCurrent from the IO package may be used to navigate between directories without leaving GAP. This is very helpful to ensure that users of all three major OS would have the same experience.

The lesson should be updated to use this from the IO package (requires compilation, but if the setup instructions are followed, it should work). There will be no need in the IO package after gap-system/gap#364 will be implemented.

Could not find document 'aio.md'

Could you add https://raw.githubusercontent.com/swcarpentry/lesson-example/gh-pages/aio.md to this repository?

$ make serve
jekyll serve
Configuration file: /tmp/gap-lesson/_config.yml
            Source: /tmp/gap-lesson
       Destination: /tmp/gap-lesson/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
  Liquid Exception: Could not find document 'aio.md' in tag 'link'. Make sure the document exists and the path is correct. in /_layouts/base.html
jekyll 3.7.3 | Error:  Could not find document 'aio.md' in tag 'link'.

Make sure the document exists and the path is correct.

make: *** [Makefile:21: serve] Error 1

broken links

Some links in the Reference and Instructor Guide seem broken:

 ● Resource: `01-command-line.html`
    Message: ‘File referenced by URL doesn't exist.’
    Found in:
    - ./gap-lesson/_site/guide/index.html
    - ./gap-lesson/_site/reference/index.html
  ● Resource: `02-some-objects.html`
    Message: ‘File referenced by URL doesn't exist.’
    Found in:
    - ./gap-lesson/_site/guide/index.html
    - ./gap-lesson/_site/reference/index.html
  ● Resource: `03-func.html`
    Message: ‘File referenced by URL doesn't exist.’
    Found in:
    - ./gap-lesson/_site/guide/index.html
    - ./gap-lesson/_site/reference/index.html
  ● Resource: `04-testing.html`
    Message: ‘File referenced by URL doesn't exist.’
    Found in:
    - ./gap-lesson/_site/guide/index.html
    - ./gap-lesson/_site/reference/index.html
  ● Resource: `05-small-groups.html`
    Message: ‘File referenced by URL doesn't exist.’
    Found in:
    - ./gap-lesson/_site/guide/index.html
    - ./gap-lesson/_site/reference/index.html
  ● Resource: `06-attributes.html`
    Message: ‘File referenced by URL doesn't exist.’
    Found in:
    - ./gap-lesson/_site/guide/index.html
    - ./gap-lesson/_site/reference/index.html
  ● Resource: `http://www.gap-system.org/Manuals/doc/ref/chap27.htmlGAPDoc`
    Message: ‘HTTP status code: 404’
    Found in:
    - ./gap-lesson/_site/discuss/index.html
  ● Resource: `http://www.gap-system.org/Manuals/doc/tut/chap3.htm`
    Message: ‘HTTP status code: 404’
    Found in:
    - ./gap-lesson/_site/reference/index.html

How to read data from files

A question that is periodically asked in Forum/Support is how to read some data files, for example, comma or space separated values. It would be useful to give some hints/pointers.

Simplify TestOneOrderVariadic

TestOneOrderVariadic should be made simpler. It is useful to introduce Info classes and variadic functions, but the code should be shortened to reduce cognitive load.

Adding an example of parallel small groups search

As the first Software Carpentry workshop that included GAP lesson was part of the largee event (http://www.codima.ac.uk/school2015/), this was covered by subsequent program that week. But the small groups search would fit very well into the SCSCP master-worker skeleton, so an example of parallel small group search may be nice (and it will avoid diving into OpenMath internals, not suitable for the introductory lesson).

Revise regression tests

This may be slightly hard to follow for the reader because they may not know in the beginning what a test file is. One should explain this better and add more motivation in the lesson starter. Also, instructor's guide should have a pointer to various extra options of Test.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.