Skip to content

loic-yvonnet/algo-appliquee

Repository files navigation

Course: Introduction to Applied Algorithms with Python (in French)

This is the source code of the website for the Applied Algorithms with Python course targetting undergraduate students with a computer networks major. This course is written in French and targets more specifically BTS SIO SISR "Algorithme Appliquée".

The source code may be used as a template for creating other open source courses.

Technologies

The course uses Markdown extensively in the following areas:

  • Website: 11ty (Eleventy) and Nunjucks are used to generate the website, with Bootstrap 5 for the layout.
  • Slides: Marp is used to generate the slides and PDFs.
  • Exercises: Jupyter Notebook is used to generate the notebooks for the exercises and homework.

The website is deployed to GitHub Pages.

The source code was initially generated and adapted from the yhatt/marp-cli-example template.

Build

On a system with bash, the following script may be used to install the dependencies and setup the work environment:

bin/bootstrap.sh

Please note that npm is required. If not available, the bootstrap.sh script will try to install it with nvm, if found.

To build a local development version of the website that may be run on a local webserver, the following script is available:

bin/compile.sh

A local webserver that serves the local website and watches for changes may be run with:

bin/run.sh

Deploy

The yhatt/marp-cli-example template uses Continuous Integration and Continuous Deployment thanks to GitHub Actions. Whenever a Pull Request is merged to the main branch, the CI runs and deploys the website to the gh-pages branch. In turn, the GitHub Pages are automatically updaded with the content of this branch.

Known bugs

The following minor bugs are known and may be fixed later:

  • The run.sh script uses eleventy --serve and therefore does not watch for changes in CSS, assets or slides. You need to execute the compile.sh script to work around this limitation.
  • When the Eleventy local webserver is running, the Marp PDF generation from Markdown fails (apparently) due to some obscure puppeteer issue. This issue has not been investigated (yet). Rebooting allows working around the issue.

Contributions

If you speak both Python and French, and if you are willing to improve the course, please feel free to submit Pull Requests.