Vous rêvez de découvrir la programmation tout en réalisant des projets ludiques, vous souhaitez connaître les astuces du langage Python devenu incontournable cette décennie, alors ce support, rédigé par un expert, vous permettra d'atteindre ces objectifs.
Tout d'abord, vous êtes guidé pour choisir et mettre en place votre environnement Python sur PC et sur Mac. Après cela, l'auteur vous propose de vous enseigner de...
Niveau Initié à Confirmé
Parution novembre 2021
Vous rêvez de découvrir la programmation tout en réalisant des projets ludiques, vous souhaitez connaître les astuces du langage Python devenu incontournable cette décennie, alors ce support, rédigé par un expert, vous permettra d'atteindre ces objectifs.
Tout d'abord, vous êtes guidé pour choisir et mettre en place votre environnement Python sur PC et sur Mac. Après cela, l'auteur vous propose de vous enseigner de façon ludique et pédagogique ce langage accessible à tous et très puissant grâce à une centaine d'exercices corrigés de difficulté progressive. Ainsi, quatre chapitres permettent d'assimiler les bases de la programmation : variables, types, conditions, boucles, listes et fonctions et d'anticiper les pièges à éviter. Cette nouvelle édition s’enrichit d’un chapitre qui présente les meilleures techniques pour concevoir tous vos programmes, même les plus complexes.
Puis l'auteur vous propose de tester la facilité d'approche de Python et la créativité offerte par ses librairies en dépassant vos limites grâce à quarante projets guidés. Leur niveau de difficulté indiqué par des symboles vous permet de faire évoluer rapidement vos compétences. Un chapitre dédié à la spécialité Numérique et Sciences Informatiques des classes de lycée propose des cours complets et des projets en adéquation avec le programme officiel du Ministère de l'Education Nationale.
Dans les deux derniers chapitres, vous pourrez aller plus loin dans la mise en pratique de vos apprentissages avec la création de plusieurs jeux d'arcade avec Pygame et dans la découverte d'algorithmes d'Intelligence Artificielle orientés images et jeu de stratégie. Les codes sources complets des projets sont téléchargeables sur le site www.editions-eni.fr.
2.1 Les trois grands principes : Identifier/Structurer/Améliorer
2.2 Gérer les dépendances entre fonctions
3. Les variables
3.1 Identifier les variables
3.1.1 Règle : 1 notion = 1 variable
3.1.2 Identifier une variable par la présence de code répétitif
3.2 Structurer les variables globales
3.2.1 Conséquence de l'absence de structuration
3.2.2 La bonne attitude
3.3 Isoler les variables globales des autres variables
4. Les fonctions
4.1 Identifier une fonction
4.1.1 Prérequis
4.1.2 Analyser ou restructurer le code
4.1.3 La mauvaise approche
4.1.4 Règle : 1 fonction = 1 action/traitement/thématique
4.1.5 Identifier une fonction par la présence de code répétitif
4.2 Améliorer les fonctions
4.2.1 Premier exemple
4.2.2 Second exemple
5. Structure hiérarchique d'un programme
5.1 La problématique
5.2 Schéma d'une hiérarchie d'appels de fonctions
5.3 Identifier une hiérarchie d'appels de fonctions
5.3.1 Les mauvais critères
5.3.2 Principe 1 : les sous-fonctions traitent des sous-thématiques
5.3.3 Principe 2 : périmètres similaires pour des fonctions voisines
5.4 Entraînement
5.4.1 Exercice n°1
5.4.2 Exercice n°2
6. Cas pratique - Le jeu du labyrinthe et des momies
6.1 Présentation
6.1.1 Du point de vue du débutant
6.1.2 Du point de vue du formateur/enseignant
6.1.3 Les ressources graphiques ?
6.2 Le scénario
6.2.1 Présentation
6.2.2 Compléments d'informations
6.2.3 Les ambiguïtés du scénario
6.3 Écriture du niveau principal
6.4 Comment représenter les données du jeu
6.4.1 Représenter le labyrinthe
6.4.2 Comment représenter les éléments du jeu
6.4.3 Les variables d'état du jeu
6.5 La gestion de la partie
6.6 Déplacement du héros
6.6.1 Déplacement sur la grille du jeu
6.6.2 Déplacement fluide à l'écran
6.7 IA des momies
6.7.1 Faire des allers-retours
6.7.2 Déplacement aléatoire - version 1
6.7.3 Déplacement aléatoire - version 2
6.8 Zone d'attaque des momies
6.9 Bilan du projet
6.10 Bilan pour Tom
6.11 Conclusion
Le programme du lycée
1. Le programme officiel de spécialité NSI
2. L'interaction homme-machine
2.1 Le nerf de la guerre : les IHM
2.2 Créer la fenêtre principale
2.3 La boucle d'évènements mainloop()
2.4 Créer un bouton
2.5 Lier des composants à des évènements
2.6 Créer un label
2.7 Créer une zone de texte
2.8 Créer une case à cocher
2.9 Créer des boutons radio
2.10 Créer un sélecteur de valeurs
2.11 Créer une liste de choix
2.12 Créer une boîte de sélection
2.13 Créer une zone de dessin
2.14 Tracés dynamiques dans un canvas
2.15 Positionner des composants
2.16 Grouper des composants
2.17 Panneaux redimensionnables
2.18 Consulter la documentation
2.19 Tirage de dés
2.20 Application de dessin
2.21 Gestionnaire de listes
3. Les tracés scientifiques
3.1 Tracer des fonctions
3.2 Tracer des ensembles de points
3.3 Tracer des lignes polygonales
3.4 Tracer des plages de niveaux d'intensité
4. La complexité des algorithmes
4.1 La notion de complexité
4.2 Les classes de complexité
4.3 Les règles de calcul
4.4 Calcul du minimum
4.5 Comptage des doublons
4.6 Ferme de rendu
4.7 Recherche dichotomique
4.8 Réduction de la complexité d'un algorithme
4.9 Fusion de deux listes triées
5. Les méthodes de tri
5.1 Le tri par sélection
5.2 Tri par insertion
5.3 La preuve par invariant de boucle
5.4 Le tri par insertion
5.5 Le tri par fusion
5.6 Le tri à bulles
5.7 Le tri rapide
6. Projets
6.1 Apprentissage et k plus proches voisins
6.2 Algorithme glouton pour le problème du sac à dos
6.3 Algorithme glouton et simplification géométrique
Créer des jeux vidéo avec Pygame
1. Introduction
1.1 Contexte
1.2 La structure d'un jeu interactif
1.3 Séparation de la logique et de l'affichage
2. Projet balle rebondissante
2.1 Présentation du code
2.2 Modification du jeu actuel
2.3 Conseils pour compléter le code
3. Le projet Pong
3.1 Historique
3.2 Premier lancement
3.3 Présentation du code
3.4 Amélioration du jeu existant
3.5 Conseils pour compléter le code
4. Le projet Snake
4.1 Historique
4.2 Premier lancement
4.3 Présentation du code
4.4 Contrôle du serpent
4.5 Gestion des collisions
4.6 Conseils pour compléter le code
4.7 Rendu final
5. La documentation en ligne de Pygame
5.1 La liste des termes techniques
5.2 L'accès à la documentation en ligne
6. Le projet Gauntlet
6.1 Historique
6.2 Gestion du labyrinthe
6.3 Gestion du personnage à l'écran
6.4 Conseils pour compléter le code
7. Le projet 1943
7.1 Historique
7.2 Premier lancement
7.3 Gestion de la mer
7.4 Gestion des tirs depuis un navire
7.5 Gestion des tirs depuis l’avion
7.6 Gestion des collisions
7.7 Gestion de la flotte de navires
7.8 Rendu final
8. Le projet Illumination
8.1 Contexte
8.2 Rappels mathématiques
8.3 Conseils pour compléter le code
9. Le projet Tetris
9.1 Historique
9.2 Premier lancement
9.3 Présentation du code
9.4 Conseils pour compléter le code
9.5 Rendu final
Python et l'intelligence artificielle
1. Présentation
1.1 Historique
1.2 Principe de fonctionnement d’un neurone
1.3 Neurone et apprentissage
1.4 Le surapprentissage
1.5 Les réseaux de neurones multicouches
2. Le problème de la classification d'images
2.1 Présentation
2.2 Image et données
2.3 Les banques d'images
2.4 La fonction d'erreur
2.5 Installation de l'environnement Keras
2.6 Utilisation de MNIST
2.7 Premier apprentissage
2.8 Amélioration de l'efficacité
3. L'intelligence artificielle pour les jeux
3.1 Les fonctions disponibles
3.2 L'idée générale
3.3 Mise en place
3.4 Derniers conseils
3.5 Comportement irrationnel de l’IA
Index
Lilian BUZER
Professeur et docteur-ingénieur, Lilian BUZER enseigne la programmation et l’algorithmique à l’ESIEE-Paris en cycle préparatoire et en cycle ingénieur depuis plus de 20 ans. Animateur de plus de 150 projets d’élèves autour du jeu, du graphisme, de l’algorithmique et de l’Intelligence Artificielle, il introduit très tôt la pédagogie par projet dans ses enseignements et fait partager sa passion au travers de sa chaîne Youtube Codin’Fun.