Bases de la programmation et de l’algorithmique

Session 0

  • Qu’est-ce qu’un algorithme ?
  • Qu’est-ce qu’un programme ?

Algorithme

Qu’est-ce qu’un algorithme ?

  • Un algorithme permet de traduire un problème en une série d’instructions qui peuvent être exécutées par un ordinateur.
  • Il est utilisé pour résoudre des problèmes spécifiques en appliquant des opérations sur des données d’entrée.
  • Les algorithmes sont omniprésents dans la programmation, de la simple addition à des tâches complexes comme le tri de données ou la recherche d’informations.
  • Ils sont essentiels pour automatiser des tâches, optimiser des processus, prendre des décisions basées sur des données, etc.

Algorithme

Analogie avec la cuisine

  • Un algorithme peut être comparé à une recette de cuisine, où l’on suit des étapes précises pour obtenir un plat final.

  • Les ingrédients représentent les données d’entrée, tandis que les étapes de la recette correspondent aux instructions algorithmiques.

  • Tout comme une recette peut être modifiée pour créer des variantes d’un plat, un algorithme peut être ajusté pour résoudre des problèmes similaires.

Algorithme

Eléments d’un algorithme

  • Des variables stockent des valeurs
  • Des opérateurs permettant de manipuler ces valeurs
  • Des conditions permettent de prendre des décisions
  • Des boucles permettent de répéter des instructions

Algorithme

Exemple d’algorithme

Algorithme pour trouver le maximum dans une liste

ALGORITHME TrouverMax
VARIABLES
  liste : Liste de nombres
  max : Nombre
  
DEBUT
  max = -infinity
  POUR chaque élément x dans liste FAIRE
    SI x > max ALORS
      max = x
    FIN SI
  FIN POUR
  RETOURNER max
FIN

Programmation

De l’algorithme au programme

Programme informatique

  • Une traduction d’un algorithme dans un langage de programmation
  • Possède une syntaxe et une sémantique valides
  • Est un ensemble d’instructions qu’un ordinateur suit pour réaliser une tâche

Langage de programmation

  • Un langage de programmation est un système de notations pour écrire des programmes informatiques

  • Il est décrit en termes de syntaxe et de sémantique (Wikipedia)

Qu’est-ce qu’un programme ?

Exemples de langages de programmation

Python

  • Langage interprété de haut niveau
  • Facile à apprendre et à utiliser
  • Très populaire et largement utilisé pour l’IA
  • Communauté forte

$\rightarrow$ Langage principal pour ce semestre

Java

  • Langage compilé de haut niveau
  • Plus verbeux et rigoureux syntaxiquement
  • Très présent dans l’industrie
  • Communauté forte

$\rightarrow$ Étudié au S6

Le choix du langage pertinent dépend de plusieurs facteurs, par exemple, adaptabilité, performance, facilité d’utilisation, communauté, etc.

Qu’est-ce qu’un programme ?

De l’humain à l’ordinateur

Étapes principales

  1. Écriture – Le programmeur écrit le code
  2. Lexing – Le code est transformé en tokens
  3. Parsing – Les tokens sont transformés en arbre syntaxique abstrait
  4. Compilation – L’arbre syntaxique abstrait est transformé en code machine
  5. Exécution – Le code machine est exécuté par l’ordinateur

Qu’est-ce qu’un programme ?

Exemple de programme

Implémentation de l’algorithme précédent en Python

def trouver_max(liste):
    max_val = float('-inf')
    for x in liste:
        if x > max_val:
            max_val = x
    return max_val

L’appel de la fonction se fait comme suit :

liste = [3, 5, 2, 8, 1]
max_val = trouver_max(liste)
print("Le maximum est :", max_val)

Récapitulatif de la session

Éléments principaux à retenir

Un algorithme est une solution à un problème spécifique qui prend un ensemble de valeurs en entrée et produit une valeur en résultat


  • Les algorithmes sont des séries d’opérations sur des variables, des conditions et des boucles

Un programme est une traduction d’un algorithme dans un langage de programmation


  • Les langages de programmation ont leurs spécificités et déterminent la syntaxe valide des programmes

  • Un langage de programmation peut être interprété ou compilé

Bases de la programmation et de l’algorithmique

Session 0