-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ajoute les versions finales des TPs pour la session H22
- Loading branch information
1 parent
684a229
commit 3f43ae0
Showing
12 changed files
with
2,385 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
\documentclass{article} | ||
|
||
\usepackage[T1]{fontenc} | ||
\usepackage[utf8]{inputenc} | ||
\usepackage[french]{babel} | ||
|
||
\usepackage[margin=1.25in,top=1in]{geometry} | ||
\usepackage[colorlinks]{hyperref} | ||
|
||
\title{MAT1919 - Outils informatiques} | ||
\author{} | ||
\date{} | ||
|
||
\begin{document} | ||
|
||
\maketitle | ||
|
||
\section{Introduction} | ||
|
||
L'un des buts du cours MAT1919 est de vous fournir les outils informatiques que vous utiliserez tout au long de votre carrière. En tant que chercheur, il n'est pas suffisant que vos programmes fonctionnent correctement. Il est aussi primordial que vos expériences numériques soient facilement accessibles et reproductibles pour vos collègues et l'ensemble de la communauté scientifique. Rappelez vous que votre code informatique fera partie intégrante de vos recherches et qu'une recherche n'est réellement valable que si elle est reproductible! | ||
|
||
\section{Installation d'Anaconda} | ||
|
||
Anaconda est une application aux utilités multiples. C'est d'abord une distribution du langage de programmation Python, mais aussi un système de gestion de paquets et un système de gestion d'environnements. | ||
|
||
Un système de gestion de paquet vous permet d'installer et de désinstaller facilement des librairies. L'application s'occupera elle-même de trouver les dépendances nécessaires pour chaque paquet et de prévenir les incompatibilités potentielles. | ||
|
||
Une système de gestion d'environnements, quant à lui, vous permet de créer un espace virtuel isolé nommé «environnement» où vous pouvez avoir certaines librairies ou versions spécifiques de ces librairies qui n'interférera pas avec l'installation globale de votre langage de programmation ou avec les autres environnements. Avoir un système de gestion d'environnements est très important en recherche. D'abord, cela permet de travailler avec d'autres chercheurs en s'assurant que tout les membres de l'équipe peuvent exécuter le code commun et obtenir le même résultat lors de l'exécution. Cela est d'autant plus important si un projet s'échelonne sur plusieurs années. Dans ce cas, le code écris par le passé n'est pas toujours compatible avec les nouvelles versions des librairies. Avoir un environnement dédié à ce projet vous permettra d'utiliser une version antérieure de la librairie lorsque vous travaillez sur celui-ci tout en ayant la version la plus à jour disponible dans d'autres environnements. | ||
|
||
Une autre raison importante pour utiliser un système de gestion d'environnements est de permettre de partager votre code avec le reste de la communauté scientifique. Lorsque vous publiez un code dans le cadre d'une recherche, vous devriez toujours inclure une liste des librairies nécessaires pour exécuter le code ainsi que la version des librairies utilisées. Un système de gestion d'environnements vous permettre de facilement exporter et partager votre environnement avec vos lecteurs qui voudraient tester ou expérimenter avec votre code. | ||
|
||
Pour installer Anaconda, rendez-vous à l'adresse internet | ||
|
||
\noindent \href{https://www.anaconda.com/products/individual}{https://www.anaconda.com/products/individual} | ||
|
||
\noindent et téléchargez l'installateur pour votre système d'exploitation. | ||
|
||
\section{Configuration d'Anaconda} | ||
|
||
Maintenant que vous avez installé Anaconda, nous allons utiliser cette occasion pour vous entraîner à gérer vos environnements. Suivez les instructions suivantes pour créer l'environnement que nous utiliserons pour le cours. | ||
\begin{enumerate} | ||
\item Allez sur studium et téléchargez le fichier nommé environnement\_MAT1919.yaml | ||
\item Ouvrez Anaconda Navigator; | ||
\item Sélectionnez l'onglet \emph{Environments}; | ||
\item En bas de la fenêtre, cliquez sur \emph{Import}; | ||
\item Dans l'explorateur de fichiers, sélectionnez le fichier yaml que vous venez de télécharger; | ||
\item Créez l'environnement et attendez qu'Anaconda termine d'installer les librairies. | ||
\end{enumerate} | ||
|
||
Vous devriez maintenant pouvoir sélectionner l'environnement MAT1919 sous l'environnement de base. N'oubliez pas de changer d'environnement lorsque vous ouvrirez Anaconda la prochaine fois. | ||
|
||
\section{Utilisation de Jupyter} | ||
|
||
Dans ce cours, nous travaillerons principalement sur l'application JupyterLab. Cette application permet de programmer en python dans un environnement graphique intuitif. | ||
|
||
Si vous avez bien suivi les instructions de la section précédente, JupyterLab devrait déjà être installé dans votre environnement Anaconda. Assurez-vous que vous avez bien sélectionné l'environnement MAT1919 sous l'onglet \emph{Environements}. Vous pouvez maintenant lancer JupyterLab depuis l'onglet \emph{Home}. | ||
|
||
\section{Installation de GitHub Desktop} | ||
|
||
Git est un système de gestion de version. Lorsque vous utilisez Git, votre projet est sauvegardé sur un serveur central et chaque collaborateur possède une copie locale. Git permet à plusieurs collaborateurs de travailler indépendemment sur le même projet et d'ensuite facilement intégrer les différentes modifications dans la version globale. | ||
|
||
Git permet non seulement de partager votre code avec la communauté scientifique, mais elle permet également de garder un historique de votre travail. Lorsque vous partagez un projet Git, quiconque a accès à ce projet a également accès à l'ensemble de ses versions précédentes. Cela permet une plus grande transparence et l'utilisation de Git est ainsi devenu un étalon-or dans plusieurs domaines scientifiques. Sans oublier que l'accès à d'anciennes versions de votre code peut vous tirer de bien des problèmes en cas de bug d'origine mystérieuse. | ||
|
||
Dans ce cours nous utiliserons Git par l'entremise de GitHub. GitHub est un site internet qui permet d'héberger des projets Git. Il offre également un interface graphique d'utilisation facile alors que Git par lui-même fonctionne uniquement en ligne de commande. C'est la façon la plus facile et la plus commune de travailler avec Git. L'application GitHub Desktop est une extension de GitHub qui vous permettra de gérer facilement vos projets GitHub locaux. | ||
|
||
Vous trouverez l'installateur pour GitHub Desktop ici: | ||
|
||
\noindent \href{https://desktop.github.com}{https://desktop.github.com} | ||
|
||
Si ce n'est pas déjà fait, vous devrez également vous créer un compte github à l'adresse | ||
|
||
\noindent \href{https://github.com/signup}{https://github.com/signup} | ||
|
||
Sachez que GitHub met également à la disposition de ses utilisateurs un site internet personnel. C'est l'endroit idéal pour publier un CV. À titre d'exemple, ma propre page personnelle se trouve ici: | ||
|
||
\noindent \href{https://aude-forcione-lambert.github.io}{https://aude-forcione-lambert.github.io} | ||
|
||
La création d'un tel site est en dehors du cadre de ce cours mais si cela vous intéresse il existe de nombreux tutoriels et gabarits en ligne. | ||
|
||
\section{Utilisation de Git} | ||
|
||
Il existe un grand nombre de commandes Git qui permettent de manipuler un projet de toutes les façons possibles. Cependant, seulement quatre commandes sont réellement importantes à connaître pour commencer son utilisation. | ||
|
||
\begin{itemize} | ||
\item Clone: Cette commande vous permet de créer une version locale d'un projet à partir de la version principale sur le serveur central. C'est d'habitude la première étape que vous ferez lorsque vous travaillerez sur un nouveau projet. Dans GitHub Desktop, la commande \emph{clone} se trouve dans le menu \emph{File}. | ||
\item Pull: Cette commande met à jour votre projet local en important les modifications depuis le serveur. C'est une bonne idée d'exécuter cette commande au début de chaque session de travail et avant chaque \emph{commit}. Dans GitHub Desktop, la commande \emph{pull} se trouve dans le menu \emph{Repository}. | ||
\item Commit: Cette commande crée une nouvelle version de votre projet. Pour pouvoir exécuter un \emph{commit}, vous devez écrire un résumé des changements effectués. Ce résumé devrait être court et clair. Au besoin, vous pouvez ajouter une description plus détaillée mais ça ne devrait pas être nécessaire dans la plupart des cas. Vous devriez créer un \emph{commit} dès que vous complétez une tâche et votre travail devrait être subdivisée en tâches les plus courtes possibles. Par convention, le message devrait être écrit à l'impératif; une bonne façon de penser au message est qu'il décrit comment la nouvelle version modifie le projet. De bons exemples de messages de \emph{commit} sont: «Ajoute la méthode foo» ou encore «Répare un bug dans la méthode bar». Dans GitHub Desktop, la commande \emph{commit} se trouve en bas à gauche dans la fenêtre principale. | ||
\item Push: Cette commande permet d'envoyer vos modifications locales au serveur. C'est une bonne idée d'exécuter cette commande après chaque \emph{commit} ou dès que vous avez accès à Internet dans le cas où vous travailleriez hors ligne. Dans GitHub Desktop, la commande \emph{push} se trouve dans le menu \emph{Repository}. | ||
\end{itemize} | ||
|
||
Une session de travail sur un projet Git devrait ressembler à ceci: | ||
|
||
\noindent Pull → [Travail sur une tâche → Pull → Commit → Push →] | ||
|
||
\noindent et répétez le bloc entre crochets. Si possible terminez votre session de travail avec un \emph{push} mais si vous vous retrouvez coincé et que vous ne pouvez terminer une tâche immédiatement il est préférable d'attendre la prochaine session de travail et la complétion de la tâche avant de créer un nouveau \emph{commit}. Complétez toujours une tâche avant d'en commencer une autre, à moins que vous ne soyez familier avec le principe de branches. Nous vous enseignerons comment créer des branches plus tard dans le cours. | ||
|
||
\end{document} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
name: MAT1919 | ||
channels: | ||
- defaults | ||
dependencies: | ||
- anyio=2.2.0=py39haa95532_2 | ||
- argon2-cffi=20.1.0=py39h2bbff1b_1 | ||
- async_generator=1.10=pyhd3eb1b0_0 | ||
- attrs=21.2.0=pyhd3eb1b0_0 | ||
- babel=2.9.1=pyhd3eb1b0_0 | ||
- backcall=0.2.0=pyhd3eb1b0_0 | ||
- blas=1.0=mkl | ||
- bleach=4.1.0=pyhd3eb1b0_0 | ||
- brotli=1.0.9=ha925a31_2 | ||
- brotlipy=0.7.0=py39h2bbff1b_1003 | ||
- ca-certificates=2021.10.26=haa95532_2 | ||
- certifi=2021.10.8=py39haa95532_2 | ||
- cffi=1.15.0=py39h2bbff1b_0 | ||
- charset-normalizer=2.0.4=pyhd3eb1b0_0 | ||
- colorama=0.4.4=pyhd3eb1b0_0 | ||
- cryptography=36.0.0=py39h21b164f_0 | ||
- cycler=0.11.0=pyhd3eb1b0_0 | ||
- debugpy=1.5.1=py39hd77b12b_0 | ||
- decorator=5.1.0=pyhd3eb1b0_0 | ||
- defusedxml=0.7.1=pyhd3eb1b0_0 | ||
- entrypoints=0.3=py39haa95532_0 | ||
- fonttools=4.25.0=pyhd3eb1b0_0 | ||
- freetype=2.10.4=hd328e21_0 | ||
- icc_rt=2019.0.0=h0cc432a_1 | ||
- icu=58.2=ha925a31_3 | ||
- idna=3.3=pyhd3eb1b0_0 | ||
- importlib-metadata=4.8.2=py39haa95532_0 | ||
- importlib_metadata=4.8.2=hd3eb1b0_0 | ||
- intel-openmp=2021.4.0=haa95532_3556 | ||
- ipykernel=6.4.1=py39haa95532_1 | ||
- ipython=7.29.0=py39hd4e2768_0 | ||
- ipython_genutils=0.2.0=pyhd3eb1b0_1 | ||
- jedi=0.18.0=py39haa95532_1 | ||
- jinja2=3.0.2=pyhd3eb1b0_0 | ||
- jpeg=9d=h2bbff1b_0 | ||
- json5=0.9.6=pyhd3eb1b0_0 | ||
- jsonschema=3.2.0=pyhd3eb1b0_2 | ||
- jupyter_client=7.1.0=pyhd3eb1b0_0 | ||
- jupyter_core=4.9.1=py39haa95532_0 | ||
- jupyter_server=1.4.1=py39haa95532_0 | ||
- jupyterlab=3.2.1=pyhd3eb1b0_1 | ||
- jupyterlab_pygments=0.1.2=py_0 | ||
- jupyterlab_server=2.10.2=pyhd3eb1b0_1 | ||
- kiwisolver=1.3.1=py39hd77b12b_0 | ||
- libpng=1.6.37=h2a8f88b_0 | ||
- libtiff=4.2.0=hd0e1b90_0 | ||
- libwebp=1.2.0=h2bbff1b_0 | ||
- lz4-c=1.9.3=h2bbff1b_1 | ||
- m2w64-gcc-libgfortran=5.3.0=6 | ||
- m2w64-gcc-libs=5.3.0=7 | ||
- m2w64-gcc-libs-core=5.3.0=7 | ||
- m2w64-gmp=6.1.0=2 | ||
- m2w64-libwinpthread-git=5.0.0.4634.697f757=2 | ||
- markupsafe=2.0.1=py39h2bbff1b_0 | ||
- matplotlib=3.5.0=py39haa95532_0 | ||
- matplotlib-base=3.5.0=py39h6214cd6_0 | ||
- matplotlib-inline=0.1.2=pyhd3eb1b0_2 | ||
- mistune=0.8.4=py39h2bbff1b_1000 | ||
- mkl=2021.4.0=haa95532_640 | ||
- mkl-service=2.4.0=py39h2bbff1b_0 | ||
- mkl_fft=1.3.1=py39h277e83a_0 | ||
- mkl_random=1.2.2=py39hf11a4ad_0 | ||
- mpmath=1.2.1=py39haa95532_0 | ||
- msys2-conda-epoch=20160418=1 | ||
- munkres=1.1.4=py_0 | ||
- nbclassic=0.2.6=pyhd3eb1b0_0 | ||
- nbclient=0.5.3=pyhd3eb1b0_0 | ||
- nbconvert=6.1.0=py39haa95532_0 | ||
- nbformat=5.1.3=pyhd3eb1b0_0 | ||
- nest-asyncio=1.5.1=pyhd3eb1b0_0 | ||
- notebook=6.4.6=py39haa95532_0 | ||
- numpy=1.21.2=py39hfca59bb_0 | ||
- numpy-base=1.21.2=py39h0829f74_0 | ||
- olefile=0.46=pyhd3eb1b0_0 | ||
- openssl=1.1.1m=h2bbff1b_0 | ||
- packaging=21.3=pyhd3eb1b0_0 | ||
- pandocfilters=1.4.3=py39haa95532_1 | ||
- parso=0.8.3=pyhd3eb1b0_0 | ||
- pickleshare=0.7.5=pyhd3eb1b0_1003 | ||
- pillow=8.4.0=py39hd45dc43_0 | ||
- pip=21.2.4=py39haa95532_0 | ||
- prometheus_client=0.12.0=pyhd3eb1b0_0 | ||
- prompt-toolkit=3.0.20=pyhd3eb1b0_0 | ||
- pycparser=2.21=pyhd3eb1b0_0 | ||
- pygments=2.10.0=pyhd3eb1b0_0 | ||
- pyopenssl=21.0.0=pyhd3eb1b0_1 | ||
- pyparsing=3.0.4=pyhd3eb1b0_0 | ||
- pyqt=5.9.2=py39hd77b12b_6 | ||
- pyrsistent=0.18.0=py39h196d8e1_0 | ||
- pysocks=1.7.1=py39haa95532_0 | ||
- python=3.9.7=h6244533_1 | ||
- python-dateutil=2.8.2=pyhd3eb1b0_0 | ||
- pytz=2021.3=pyhd3eb1b0_0 | ||
- pywin32=302=py39h827c3e9_1 | ||
- pywinpty=0.5.7=py39haa95532_0 | ||
- pyzmq=22.3.0=py39hd77b12b_2 | ||
- qt=5.9.7=vc14h73c81de_0 | ||
- requests=2.27.1=pyhd3eb1b0_0 | ||
- scipy=1.7.3=py39h0a974cb_0 | ||
- send2trash=1.8.0=pyhd3eb1b0_1 | ||
- setuptools=58.0.4=py39haa95532_0 | ||
- sip=4.19.13=py39hd77b12b_0 | ||
- six=1.16.0=pyhd3eb1b0_0 | ||
- sniffio=1.2.0=py39haa95532_1 | ||
- sqlite=3.37.0=h2bbff1b_0 | ||
- sympy=1.9=py39haa95532_0 | ||
- terminado=0.9.4=py39haa95532_0 | ||
- testpath=0.5.0=pyhd3eb1b0_0 | ||
- tk=8.6.11=h2bbff1b_0 | ||
- tornado=6.1=py39h2bbff1b_0 | ||
- traitlets=5.1.1=pyhd3eb1b0_0 | ||
- tzdata=2021e=hda174b7_0 | ||
- urllib3=1.26.7=pyhd3eb1b0_0 | ||
- vc=14.2=h21ff451_1 | ||
- vs2015_runtime=14.27.29016=h5e58377_2 | ||
- wcwidth=0.2.5=pyhd3eb1b0_0 | ||
- webencodings=0.5.1=py39haa95532_1 | ||
- wheel=0.37.1=pyhd3eb1b0_0 | ||
- win_inet_pton=1.1.0=py39haa95532_0 | ||
- wincertstore=0.2=py39haa95532_2 | ||
- winpty=0.4.3=4 | ||
- xz=5.2.5=h62dcd97_0 | ||
- zipp=3.7.0=pyhd3eb1b0_0 | ||
- zlib=1.2.11=h8cc25b3_4 | ||
- zstd=1.4.9=h19a0ad4_0 |
Oops, something went wrong.