L'objectif de ce cours est l'apprentissage de l'algorithmique afin de résoudre des problèmes grâce à l'outil informatique. La mise en application est réalisée au travers du langage Python qui dispose de nombreuses bibliothèques et permet de réaliser rapidement des programmes afin de pouvoir les tester.
En ce qui concerne Python, c'est un langage assez récent puisque la première version date de 1991.
Il a été créé par Guido van Rossum et le nom Python fait référence au Monty Python's Flying Circus.
Voici rapidement quelques spécificités du langage :
On distingue les langages interprétés (PHP, Python) des langages compilés (C, C++).
Pour un langage compilé, un programme appelé compilateur transforme le code en instructions exécutables par le microprocesseur de l'ordinateur.
Pour un langage interprété, un programme appelé interpréteur lit une instruction, l'exécute, puis passe à la suivante.
Le constat est qu'un langage compilé génère du code qui s'exécute beaucoup plus rapidement qu'un langage interprété (cf fractales de Mandelbrot, facteur d'amélioration de 420 / 6 = 70).
On peut, pour mieux appréhender ce concept, utiliser une analogie : imaginons que vous ne parliez que français et que vous soyez amené à consulter un livre en russe. Deux possibilités s'offrent à vous :
En informatique, on distingue le typage dynamique du typage statique.
Le typage consiste à attribuer un type (booléen, entier, chaîne, réel, ...) à une variable afin de savoir comment traiter la variable.
1 + 2 => 3
"bonjour " + "Jean-Michel" => "bonjour Jean-Michel" (concaténation)
1 + "bonjour" => ?
"bonjour" + 1 =?> "bonjour1"
"bonjour" + str(1) => "bonjour1"
x = 1 (entier)
y = 3.14 (réel)
s = "bonjour" (chaine)
Notons que le typage dynamique est une notion qui est associée aux langages interprétés.
Par exemple en Python :
>>> x = 10
>>> type(x)
<class 'int'>
>>> x = 3.14
>>> type(x)
<class 'float'>
>>> x = "coucou"
>>> type(x)
<class 'str'>
Python est un bon langage dans le sens ou il permet rapidement de mettre au point des programmes complexes même si on est pas un informaticien chevronné grâce à ses nombreuses bibliothèques.
Cependant c'est un mauvais langage en raison de certaines subtilités : cf. programme
Je recommande l'utilisation d'Anaconda une distribution libre et open source de Python dont l'objectif est de simplifier la gestion des paquets et leur déploiement (cf installation).
En ce qui concerne les éditeurs :
Pour en savoir plus sur le langage algorithmique que nous utiliserons, on consultera cette page.
Pour la mise en pratique, on consultera ces pages :
Vous pouvez utiliser la console python afin d'exécuter du code.
Biliothèques Python :