GithubHelp home page GithubHelp logo

carpentries-incubator / sage-lesson Goto Github PK

View Code? Open in Web Editor NEW
7.0 13.0 3.0 1.53 MB

SageMath Software Carpentry Lesson

Home Page: https://carpentries-incubator.github.io/sage-lesson/

License: Other

Makefile 0.22% HTML 2.22% CSS 0.53% JavaScript 0.06% R 0.25% Python 3.41% Shell 0.01% Ruby 0.01% Jupyter Notebook 93.18% Smarty 0.10%
lesson english carpentries-incubator pre-alpha sagemath computational-algebra

sage-lesson's Introduction

This is the lesson on SageMath.

It is being developed for the Software Carpentry workshop at the CoDiMa Training School in Computational Discrete Mathematics.

If you would like to contribute to the development of this lesson, please follow the instructions bellow.

Setup

  1. Install SageMath.

Access the lesson locally

  1. Run

    $ make lesson-ipynb serve
    

    If you don't have SageMath on you PATH you must run

    $ make lesson-ipynb serve SAGE=/full/path/to/sage
    
  2. Open http:localhost:4000 on your web browser.

Change the lesson

  1. Launch SageMath by running

    $ sage --notebook=jupyter
    
  2. Open http://localhost:8888/ on your web browser.

  3. Select the directory _episodes_ipynb.

  4. Edit the file as you want.

  5. To preview the lesson, follow the instructions on "Access the lesson locally".

Sharing your changes

Send a pull request with only the changes on _episodes_ipynb to https://github.com/alex-konovalov/sage-lesson/.

Acknowledgements

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).

sage-lesson's People

Contributors

aaren avatar abbycabs avatar abought avatar alex-konovalov avatar andrewsanchez avatar bkatiemills avatar brandoncurtis avatar erinbecker avatar evanwill avatar fmichonneau avatar gdevenyi avatar ianlee1521 avatar jdblischak avatar jduckles avatar jnothman avatar jpallen avatar jsta avatar katrinleinweber avatar mawds avatar maxim-belkin avatar neon-ninja avatar olexandr-konovalov avatar pbanaszkiewicz avatar pipitone avatar rgaiacs avatar synesthesiam avatar tbekolay avatar twitwi avatar wclose avatar wking avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sage-lesson's Issues

Contributors welcome

We're assembling a team to develop SageMath software carpentry lesson. Please leave a brief comment here if you're interested in contributing to this project.

Use Sage Notebooks for write the lessons

We can patch https://github.com/swcarpentry/lesson-example to have a _episodes_sage directory where we store the Sage Notebooks and use some scripts to convert the Sage Notebook into Markdown suitable for the Software Carpentry template. The workflow should be more or less the same that the R instructors are using for their lessons. We will have to keep the Sage Notebooks and the generated Markdown on the repository.

Instructions for SageMath installation

It is a Software Carpentry custom that attendees of the workshop are supplied with installation instructions for the software that they are asked to install prior to the workshop (see e.g. "Setup" section at http://kkwakwa.github.io/2015-11-16-manchester-codima/).

We need to discuss what is the recommended way to use SageMath during the workshop. As I've mentioned in #2, SMC (SageMathCloud, https://cloud.sagemath.com/) is good to ensure that all users have same experience independently on their operating system, and "installation" is trivial because it works in the browser.

On the other hand, this makes teaching very dependent on the network connection (workshop for 40 people in the same room will require extra care). Also, it's good if the workshop gives a hands-on tutorial after which learners are able to continuing on their own machines (as a usual condition of the workshop is to bring your own laptop). With a cloud based solution this may not be the case (though of course, they will be able to continue "in the cloud" when they have network connectivity).

So each choice has its own benefits and downsides.

The lesson needs a story (research-like problem)

To start with, I suggest to pick up some research-like problem, around which the lesson could centred.

We may look at some other Software Carpentry lessons at http://software-carpentry.org/lessons/ to see some examples of this approach. The GAP lesson (http://alex-konovalov.github.io/gap-lesson/) also followed this practice and used a "toy problem" of calculating the average order of an element of a group. It assumed that the learner is familiar with the group theory course at least at the undergraduate level, and walked the learner from exploring properties of groups and their elements interactively using the command line and writing simple scripts to organising code into modular programs, improving implementations and checking them with regression tests and searching in the small group library for interesting examples of groups, exposing thus a diverse variety of techniques.

If you have a suggestion for a problem or several problems which may be put into the "lesson story", please leave your comments under this issue.

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.