sdpython / ensae_teaching_cs

Teaching materials in python at the @ENSAE
http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx3/index.html
MIT License
68 stars 59 forks source link
algorithms data-science distributed-computing ensae machine-learning python3 teaching-materials

.. image:: https://github.com/sdpython/ensae_teaching_cs/blob/master/_doc/sphinxdoc/source/_static/project_ico.png?raw=true :target: https://github.com/sdpython/ensae_teaching_cs/

.. _l-README:

ensae_teaching_cs: teaching materials, algorithmic, machine learning

.. image:: https://travis-ci.com/sdpython/ensae_teaching_cs.svg?branch=master :target: https://app.travis-ci.com/github/sdpython/ensae_teaching_cs :alt: Build status

.. image:: https://ci.appveyor.com/api/projects/status/ko5g064idp5srm74?svg=true :target: https://ci.appveyor.com/project/sdpython/ensae-teaching-cs :alt: Build Status Windows

.. image:: https://circleci.com/gh/sdpython/ensae_teaching_cs/tree/master.svg?style=svg :target: https://circleci.com/gh/sdpython/ensae_teaching_cs/tree/master

.. image:: https://badge.fury.io/py/ensae-teaching-cs.svg :target: https://pypi.org/project/ensae-teaching-cs/

.. image:: https://img.shields.io/badge/license-MIT-blue.svg :alt: MIT License :target: http://opensource.org/licenses/MIT

.. image:: https://codecov.io/github/sdpython/ensae_teaching_cs/coverage.svg?branch=master :target: https://codecov.io/github/sdpython/ensae_teaching_cs?branch=master

.. image:: http://img.shields.io/github/issues/sdpython/ensae_teaching_cs.png :alt: GitHub Issues :target: https://github.com/sdpython/ensae_teaching_cs/issues

.. image:: https://api.codacy.com/project/badge/Grade/80a874c0eafd4ea68f3493d73b43f0c5 :target: https://www.codacy.com/app/sdpython/ensae_teaching_cs?utm_source=github.com&utm_medium=referral&utm_content=sdpython/ensae_teaching_cs&utm_campaign=Badge_Grade :alt: Codacy Badge

.. image:: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/_images/nbcov.png :target: http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/all_notebooks_coverage.html :alt: Notebook Coverage

.. image:: https://pepy.tech/badge/ensae_teaching_cs :target: https://pypi.org/project/ensae_teaching_cs/ :alt: Downloads

.. image:: https://img.shields.io/github/forks/sdpython/ensae_teaching_cs.svg :target: https://github.com/sdpython/ensae_teaching_cs/ :alt: Forks

.. image:: https://img.shields.io/github/stars/sdpython/ensae_teaching_cs.svg :target: https://github.com/sdpython/ensae_teaching_cs/ :alt: Stars

.. image:: https://img.shields.io/github/repo-size/sdpython/ensae_teaching_cs :target: https://github.com/sdpython/ensae_teaching_cs/ :alt: size

This page gives access to the content of practical sessions I give at the ENSAE <http://www.ensae.fr/>_. They are based on Python. The project is hosted on GitHub can be modified by sending me pull requests:

Contributions

Started in 2014/04. Contributors: Xavier Dupré <http://www.xavierdupre.fr/>_, Anne Muller, Elodie Royant, Matthieu Bizien, Nicolas Rousset, Jérémie Jakubowicz, Gilles Drigout, Gaël Varoquaux, Xavier Dupré, ENSAE's students.

Setup

See travis.yml <https://github.com/sdpython/ensae_teaching_cs/blob/master/.travis.yml>_ or appveyor.yml <https://github.com/sdpython/ensae_teaching_cs/blob/master/appveyor.yml>_ give indications on how to setup a machine to run most of the notebooks. All notebooks do not run on regular CI due to the excessive amount of time it requires. They are being run a debian machine every month. A coverage page <http://www.xavierdupre.fr/app/ensae_teaching_cs/helpsphinx/all_notebooks_coverage.html>_ reports on which ones run and the last time it was run.

Local Continuous Integration

Some of the tools used to modify and run all the notebooks but they are not optional in most of the cases.

7zip <http://www.7-zip.org/>, Chrome <https://www.google.fr/chrome/browser/desktop/>, CMake <https://cmake.org/>, Graphviz <http://www.graphviz.org/>, Git <https://git-scm.com/>, GitHub <https://desktop.github.com/>, Java 64 bit <https://www.java.com/fr/download/manual.jsp> (for Spark), Jenkins <https://jenkins.io/> (CI), Miktex Basic Installer 64 bit <https://miktex.org/download> (formula in the documentation) (check the option to silently install new packages), Pandoc <http://pandoc.org/> (documentation), Python <https://www.python.org/> 3.9, 64 bit (do not add the interpreter on the default PATH on Windows), Scite <http://www.scintilla.org/SciTE.html> (Windows), Visual Studio 2022 Community Edition <https://www.visualstudio.com/fr/vs/community/>_ (Windows) (check C++, C#, Python, CLang) (Cython, pybind11).

A Jenkins server was installed on a debian machine to run all the notebooks every week. Jenkins requires a few extensions: Last Console Output <https://wiki.jenkins.io/display/JENKINS/Display+Console+Output+Plugin>, Next Executions <https://wiki.jenkins.io/display/JENKINS/Next+Executions>, Text File <https://wiki.jenkins-ci.org/display/JENKINS/Text+File+Operations+Plugin>_.

A local PyPi server needs to be installed:

::

pypi-server.exe -u -p 8067 --disable-fallback ..\..\local_pypi\local_pypi_server

The following command line tells how to automatically add Jenkins jobs to a local Jenkins server:

::

python setup.py local_jenkins --help