ensae_teaching_cs: teaching materials, algorithmic, machine learning#

Build status Build Status Windows MIT License GitHub Issues Codacy Badge Notebook Coverage Downloads Forks Stars size

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


Started in 2014/04. Contributors: Xavier Dupré, Anne Muller, Elodie Royant, Matthieu Bizien, Nicolas Rousset, Jérémie Jakubowicz, Gilles Drigout, Gaël Varoquaux, Xavier Dupré, ENSAE’s students.


Continuous files travis.yml or appveyor.yml give indications on how to setup a machine to run most of the notebooks. All notebooks do not run on travis or appveyor due to the excessive amount of times it requires. They are being run a debian machine every week. A coverage page 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, Chrome, CMake, Graphviz, Git, GitHub, Java 64 bit (for Spark), Jenkins (CI), Miktex Basic Installer 64 bit (formula in the documentation) (check the option to silently install new packages), Pandoc (documentation), Python 3.7, 64 bit (do not add the interpreter on the default PATH on Windows), Scite (Windows), Visual Studio 2017 Community Edition (Windows) (check C++, C#, Python, CLang) (Cython).

A Jenkins server was installed on a debian machine to run all the notebooks every week. Jenkins requires a few extensions: Last Console Output, Next Executions, Text File. Extension for Jupyter notebooks can be installed with the following instructions but this is really optional.

pip install widgetsnbextension
jupyter nbextension enable --py --sys-prefix widgetsnbextension

A local PyPi server needs to be installed:

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

Some Python scripts and notebooks use keyring to retrieve passwords, usually to access private data. You would have to set them to point to your own data. The following command line tells how to automatically add Jenkins jobs to a local Jenkins server:

python local_jenkins --help