Aller au contenu principal

#Slides — Pensée computationnelle

#Plan de la présentation

  1. Décomposition de problèmes
  2. Abstraction
  3. Algorithmes de base
  4. Évaluer la complexité
  5. Recommandations pour raisonner pas-à-pas

#Décomposition de problèmes

#Qu'est-ce que la décomposition ?

  • Diviser un problème complexe en sous-problèmes plus simples
  • Chaque sous-problème peut être résolu indépendamment
  • Facilite la compréhension et la résolution

#Avantages

  • Réduction de la complexité
  • Meilleure organisation du code
  • Facilité de maintenance
  • Collaboration facilitée

#Exemple

Problème: Compter la fréquence des mots dans un texte

Sous-problèmes:

  1. Lire le texte
  2. Nettoyer le texte
  3. Tokeniser (séparer en mots)
  4. Compter les occurrences
  5. Trier par fréquence

#Abstraction

#Qu'est-ce que l'abstraction ?

  • Masquer les détails complexes
  • Se concentrer sur l'essentiel
  • Créer des modèles simplifiés

#Niveaux d'abstraction

  • Données : Types abstraits
  • Procédures : Fonctions
  • Contrôle : Flot d'exécution

#Exemple

Au lieu de manipuler des bits, on utilise des types comme int, string, list.

#Algorithmes de base

#Définition

Un algorithme est une séquence finie d'instructions précises permettant de résoudre un problème.

#Propriétés

  • Finitude : Se termine en un nombre fini d'étapes
  • Précision : Instructions claires et non ambiguës
  • Entrées : Zéro ou plusieurs valeurs en entrée
  • Sorties : Une ou plusieurs valeurs en sortie
  • Efficacité : Chaque instruction est réalisable

#Algorithmes classiques

  • Recherche linéaire : O(n)
  • Recherche dichotomique : O(log n)
  • Tri à bulles : O(n²)
  • Tri rapide : O(n log n) en moyenne

#Évaluer la complexité

#Notation Big-O

  • O(1) : Temps constant
  • O(log n) : Logarithmique
  • O(n) : Linéaire
  • O(n log n) : Log-linéaire
  • O(n²) : Quadratique
  • O(2ⁿ) : Exponentiel

#Complexité en temps vs espace

  • Temps : Nombre d'opérations
  • Espace : Quantité de mémoire utilisée

#Recommandations pour raisonner pas-à-pas

#Méthodologie

  1. Comprendre le problème : Analyser les entrées/sorties
  2. Décomposer : Diviser en sous-problèmes
  3. Abstraire : Identifier les concepts essentiels
  4. Concevoir : Créer l'algorithme
  5. Implémenter : Coder la solution
  6. Tester : Vérifier la correction
  7. Optimiser : Améliorer l'efficacité

#Bonnes pratiques

  • Toujours commencer par des exemples simples
  • Utiliser des visualisations quand possible
  • Tester les cas limites
  • Mesurer la complexité
  • Documenter le code