Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ocaml-sf/learn-ocaml

A Web Application for Learning OCaml
https://github.com/ocaml-sf/learn-ocaml

learn-ocaml ocaml teaching

Last synced: about 2 months ago
JSON representation

A Web Application for Learning OCaml

Awesome Lists containing this project

README

        

Learn-OCaml
===========

This is Learn-OCaml, a platform for learning the OCaml language,
featuring a Web toplevel, an exercise environment, and a directory of
lessons and tutorials.

A demo is available [online](https://ocaml-sf.org/learn-ocaml-public/).

[![CI](https://github.com/ocaml-sf/learn-ocaml/workflows/CI/badge.svg?branch=master)](https://github.com/ocaml-sf/learn-ocaml/actions?query=workflow%3ACI)
[![macOS](https://github.com/ocaml-sf/learn-ocaml/workflows/macOS/badge.svg?branch=master)](https://github.com/ocaml-sf/learn-ocaml/actions?query=workflow%3AmacOS)
[![learn-ocaml](https://img.shields.io/badge/docker-ocamlsf%2Flearn--ocaml-blue.svg)](https://hub.docker.com/r/ocamlsf/learn-ocaml "Docker image of learn-ocaml")
[![learn-ocaml-client](https://img.shields.io/badge/docker-ocamlsf%2Flearn--ocaml--client-blue.svg)](https://hub.docker.com/r/ocamlsf/learn-ocaml-client "Docker image of learn-ocaml-client")

Howtos
------

* [How to set up an environment to develop exercises?](https://github.com/ocaml-sf/learn-ocaml/blob/master/docs/howto-setup-exercise-development-environment.md)
* [How to write exercises?](https://github.com/ocaml-sf/learn-ocaml/blob/master/docs/howto-write-exercises.md)
* [How to submit an exercise to the global corpus?](https://github.com/ocaml-sf/learn-ocaml/blob/master/docs/howto-submit-an-exercise.md)
* [How to deploy an instance of Learn OCaml?](https://github.com/ocaml-sf/learn-ocaml/blob/master/docs/howto-deploy-a-learn-ocaml-instance.md)
* [How to deploy Learn-OCaml statically?](https://github.com/ocaml-sf/learn-ocaml/blob/master/docs/howto-deploy-learn-ocaml-statically.md)
* [How to practice OCaml with Learn-OCaml?](https://github.com/ocaml-sf/learn-ocaml/blob/master/docs/howto-practice-ocaml.md)
* [How to classify students answers?](https://github.com/ocaml-sf/learn-ocaml/blob/master/docs/howto-classify-students-answers.md)

Contacts
--------

To ask any question about how to use Learn-OCaml, subscribe to
the mailing-list [learn-ocaml-club](https://sympa.inria.fr/sympa/subscribe/learn-ocaml-club).

To discuss about the development of Learn-OCaml, subscribe to
the mailing-list [learn-ocaml-dev](https://sympa.inria.fr/sympa/subscribe/learn-ocaml-dev).

License and copyright
---------------------

Unless explicitly written below or in the files themselves, the source
code for the app, images, static files, course content and exercises
are placed under the MIT license.

Lightly modified third party components ACE and ppx_metaquot are
included, under their original licenses (respectively BSD and MIT).

The OCamlPro logo images are (c) OCamlPro. Redistribution is
permitted, alteration requires prior written authorization by
OCamlPro.

The OCaml / ocaml.org logo is released under the very liberal UNLICENSE.
See [https://github.com/ocaml/ocaml.org/blob/master/LICENSE.md](https://github.com/ocaml/ocaml.org/blob/master/LICENSE.md).

The Inconsolata font is released under the Open Font License.
See [http://www.levien.com/type/myfonts/inconsolata.html](http://www.levien.com/type/myfonts/inconsolata.html).

The Biolinum font is licensed under the GNU General Public License with
a 'Font-Exception'.
See [http://www.linuxlibertine.org](http://www.linuxlibertine.org).

The public instance of Learn OCaml uses the Fontin font instead of
Biolinum. This font is licensed under the exljbris Font Foundry Free
Font License Agreement, which, to our understanding, does not allow us
to redistribute it. See [http://www.exljbris.com/eula.html](http://www.exljbris.com/eula.html). You will
optionally have to procure the files by yourself while building the
app. If not, the CSS provides a reasonable fallback font.

Contributions to this repository are placed under the MIT
license. This means that we can merge them with the same license as
the rest of the codebase, while you keep all the rights on your code.
And we will not have to bother you with any future license update.
See [https://opensource.org/licenses/MIT](https://opensource.org/licenses/MIT).

Authors and Acknowledgements
----------------------------

Learn-OCaml is a free software by the [OCaml Software Foundation](https://ocaml-sf.org).

It was written by OCamlPro from 2015 to 2018.

The current main contributors are Érik Martin-Dorel, Yann Régis-Gianas, and Louis Gesbert.

The initial authors were Benjamin Canou, Çağdaş Bozman, Grégoire Henry, and Louis Gesbert.

It builds on the previous experience of Try OCaml, by Çağdaş Bozman and Fabrice Le Fessant.

We heavily use js_of_ocaml, so thanks to the Ocsigen team.

The text editing component is a customized version of ACE.

We also include a derivative of ppx_metaquot by Alain Frisch.