C'est le chapitre 1 sur le langage Python qui est une introduction à ce langage.
Si vous avez des remarques ou des suggestions pour l’améliorer n’hésitez pas à m’écrire via ce courriel:
pr.azizdarouichi@gmail.com
Bonne lecture.
Objectif général : Développer en orienté objet avec Python
Objectifs opérationnels :
- Organiser le code grâce aux classes
- Sécuriser une classe avec l’encapsulation
- Réutiliser et factoriser du code avec l’héritage
- Invoquer des méthodes de même nom, quel que soit le type d'objet sur lequel elles opèrent, sans avoir à effectuer au préalable une vérification de type grâce au polymorphisme
Objectif général : Acquérir les connaissances nécessaires à la programmation avec le langage Python
Objectifs opérationnels :
- Mémoriser des données primitives
- Traiter des données
- Communiquer avec l’extérieur
- Contrôler le flux d’exécution des instructions
- Mémoriser des données composites
- Découper et réutiliser du code
This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis.
Ce cours présente comment définir de nouveaux objets en définissant des classes. Un objet est une instance d'une classe qui définit les variables d'instances (attributs) et méthodes (fonctionnalités) que les objets créés à partir de la classe auront.
C'est le chapitre 1 sur le langage Python qui est une introduction à ce langage.
Si vous avez des remarques ou des suggestions pour l’améliorer n’hésitez pas à m’écrire via ce courriel:
pr.azizdarouichi@gmail.com
Bonne lecture.
Objectif général : Développer en orienté objet avec Python
Objectifs opérationnels :
- Organiser le code grâce aux classes
- Sécuriser une classe avec l’encapsulation
- Réutiliser et factoriser du code avec l’héritage
- Invoquer des méthodes de même nom, quel que soit le type d'objet sur lequel elles opèrent, sans avoir à effectuer au préalable une vérification de type grâce au polymorphisme
Objectif général : Acquérir les connaissances nécessaires à la programmation avec le langage Python
Objectifs opérationnels :
- Mémoriser des données primitives
- Traiter des données
- Communiquer avec l’extérieur
- Contrôler le flux d’exécution des instructions
- Mémoriser des données composites
- Découper et réutiliser du code
This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis.
Ce cours présente comment définir de nouveaux objets en définissant des classes. Un objet est une instance d'une classe qui définit les variables d'instances (attributs) et méthodes (fonctionnalités) que les objets créés à partir de la classe auront.
Ce cours aborde la gestion d'erreurs en programmation, c'est-à-dire comment gérer les situations où une erreur se produit. Après avoir présenté le principe des spécifications et de la programmation défensive avec l'instruction assert, ce cours présente l'instruction try/except qui permet de capturer des erreurs. Enfin, le cours termine en présentant comment définir ses propres erreurs et les générer avec l'instruction raise.
Ce premier cours avancé sur Python concerne les deux structures de données avancées que sont les ensembles et les dictionnaires. Ces derniers sont notamment utilisés pour construire des bases de données orientées document.
cours d'initiation à la programmation modulaire sous Python en utilisant des fonctions et des procédures pour décomposer un problème en sous-problème plus facile à traiter en utilisant des fonctions et des procédures.
Ce deuxième cours concerne les tuples, séquences non modifiables d'éléments. On peut les étendre en tuples nommés en ajoutant un nom à chacune des entrées du tuple, appelées alors champs. Enfin, on peut aller plus loin et définir des objets en associant des fonctions à des données. Cette seconde partie introduit à la programmation orientée objet.
Théorie des langages - 03 - Principes et paradigmesYann Caron
Cours de théorie des langages, théorie de la compilation, techniques de compilations et paradigmes de programmation que je dispense aux Ingé 2 et 3 à l’École National des Sciences Géographiques de Paris.
Ce cours aborde la gestion d'erreurs en programmation, c'est-à-dire comment gérer les situations où une erreur se produit. Après avoir présenté le principe des spécifications et de la programmation défensive avec l'instruction assert, ce cours présente l'instruction try/except qui permet de capturer des erreurs. Enfin, le cours termine en présentant comment définir ses propres erreurs et les générer avec l'instruction raise.
Ce premier cours avancé sur Python concerne les deux structures de données avancées que sont les ensembles et les dictionnaires. Ces derniers sont notamment utilisés pour construire des bases de données orientées document.
cours d'initiation à la programmation modulaire sous Python en utilisant des fonctions et des procédures pour décomposer un problème en sous-problème plus facile à traiter en utilisant des fonctions et des procédures.
Ce deuxième cours concerne les tuples, séquences non modifiables d'éléments. On peut les étendre en tuples nommés en ajoutant un nom à chacune des entrées du tuple, appelées alors champs. Enfin, on peut aller plus loin et définir des objets en associant des fonctions à des données. Cette seconde partie introduit à la programmation orientée objet.
Théorie des langages - 03 - Principes et paradigmesYann Caron
Cours de théorie des langages, théorie de la compilation, techniques de compilations et paradigmes de programmation que je dispense aux Ingé 2 et 3 à l’École National des Sciences Géographiques de Paris.
Apprenez à écrire vos macros pour le tableur Excel en Visual Basic. Cette formation couvre les rudiments de programmation ainsi que la découverte de l'API Excel
Ma critique de cette technologie sur http://olegoaer.developpez.com/cours/vba/
Chapitre 3 - Généralités sur le langage C.pdfShiniGami0o0
In mathematics and computer science, an algorithm is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing calculations and data processing.
Pour mieux comprendre l'offre mobile, les possibilités des devices, les perspectives, et les différents choix technologiques lors d'un lancement de projet mobile
Développement d'applications mobiles hybrides avec IONIC 2 et Angular 2. Depuis l'installation jusqu'à l'utilisation de plugins natifs tels que stockage de données, géolocalisation, liaison serveur API Rest...
L’agilité a profondément changé la façon d’aborder les projets en entreprise. Mais cette lame de fond en amène peut être une deuxième : l’entreprise libérée. Au delà des clichés et des à-prioris, voyage au pays de l’holacratie, de la sociocratie, et d’une façon radicalement différente de vivre l’entreprise
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
2. INTRODUCTION
PYTHON : SIMPLE MAIS ÉVOLUÉ
▸ Langage très pratique pour débuter
▸ Pas de problème de compilateur
▸ Pas de typage de données
▸ Mais plutôt évolué
▸ Modèle objet possible
▸ Utilisé dans de nombreux secteurs (en particulier
FinTech) pour son efficacité
3. INTRODUCTION
NOTIONS DE BASE DE PROGRAMMATION
▸ Quelques notions suffisent pour pouvoir mettre en place
des algorithmes relativement évolués
▸ Variables
▸ Tests
▸ Fonctions
▸ Boucles
4. INTRODUCTION
VARIABLES
▸ Concept : stocker dans la mémoire de l'ordinateur des
données afin de les réutiliser dans le cadre du programme
▸ Contrairement à des données en base, une variable est
volatile : elle se perd une fois le programme arrêté
▸ Un programme informatique n'est finalement qu'un
traitement de données
▸ Cette notion est donc fondamentale
5. LES VARIABLES
TYPAGE DE VARIABLES
▸ Les variables suivent les grands types de données utilisées dans
la vie courante :
▸ phrases (on dit "chaînes de caractères")
▸ nombres entiers
▸ nombres à virgule
▸ L'informatique rajoute le type 'booléen' : oui/non, vrai/faux
▸ En Python, ces types ne sont pas explicites, mais sont bien
présents
6. LES VARIABLES
DÉFINIR UNE VARIABLE EN PYTHON
▸ Il suffit de la nommer et de lui définir un contenu
▸ Le contenu va permettre à Python d'en deviner son type
▸ Une chaîne de caractères se caractérise par des guillemets
a=12
s="Bonjour"
7. LES VARIABLES
NOMMER UNE VARIABLE
▸ Mieux vaut utiliser des noms explicites
▸ Attention :
▸ pas d'espace
▸ pas de caractère spécial
▸ pas d'accent
s="Bob" mon prénom="Bob"
monPrenom="Bob"✔
𐄂𐄂 mon_prenom="Bob"✔
mon-prenom="Bob"𐄂
8. LES VARIABLES
MON PREMIER PROGRAMME
▸ Un programme est un fichier texte qui contient diverses
instructions qui se succèdent
▸ Une instruction par ligne
▸ Pas de séparateur style point-virgule
▸ Python peut s'installer sur un poste de travail relativement
facilement
▸ Mais on peut également utiliser des outils en ligne tels que repl.it
qui propose d'éditer et exécuter ses programmes dans un
navigateur, sans aucune exécution
9. LES VARIABLES
ENTRÉES ET SORTIES
▸ Un programme n'a de sens que s'il interagit avec son
environnement
▸ Avec l'utilisateur, on peut parler d'entrées/sorties :
▸ En entrée, l'utilisateur tape des données au clavier
▸ En sortie, le programme affiche des résultats à l'écran
10. LES VARIABLES
ENTRÉES ET SORTIES
▸ L'instruction input permet de saisir une donnée au clavier
et de la stocker dans une variable
▸ L'instruction print permet d'afficher une variable, ou un
texte, à l'écran
prenom=input()
print("Bonjour")
print(prenom)
print("Bonjour",prenom)
11. LES VARIABLES
MON PREMIER PROGRAMME
age=12
print(age)
▸ On peut bien sûr faire des calculs lors des affectations
calcul=10*2+1
print(calcul)
▸ Utiliser plusieurs variables permet de découper son
traitement
prixHT=12
prixTTC=prixHT*1.2
print(prixTTC)
12. LES VARIABLES
MON PREMIER PROGRAMME, SUITE ET FIN
print("Quel est ton prénom ?")
prenom=input()
print("Bonjour",prenom)
# saisie d'une donnée en entrée
print("Quel est ton prénom ?")
prenom=input()
# affichage du résultat
print("Bonjour",prenom)
▸ Le caractère # va permettre de commenter son programme, ce
qui est toujours une bonne idée
13. LES TESTS
SI...ALORS...SINON... TRAITER UNE DONNÉE PAR LES TESTS
▸ Un programme n'a de sens que s'il effectue des
raisonnements
▸ Il va reproduire à grande vitesse des raisonnements
humains qui doivent être précis et sans ambiguïté
▸ La base d'un algorithme s'effectue par le triptyque
"Si...alors...sinon..."
14. LES TESTS
SI...ALORS...SINON... EN ORGANIGRAMME
QUEL EST TON ÂGE ?
si age>=18
TU PEUX PASSER LE
PERMIS DE CONDUIRE
VOICI UNE
MAGNIFIQUE VOITURE
À PÉDALES
sinon
15. LES TESTS
ON PEUT ENCHAÎNER LES TESTS EN CASCADE
QUEL EST TON ÂGE ?
si age>=18
TU PEUX PASSER LE
PERMIS DE CONDUIRE
VOICI UNE
MAGNIFIQUE VOITURE
À PÉDALES
sinon
QUEL EST TON ÂGE ?
si age>=14 sinon
LE SCOOTER EST TON
AMI
16. LES TESTS
LES TESTS EN PYTHON
▸ La syntaxe est la suivante
▸ Attention au caractère "tabulation" qui va permettre de
regrouper les instructions dans un if ou dans un else
if TEST:
➡# traitement effectué 'si'...
➡.....
else:
➡# traitement alternatif
➡.....
# suite du programme
17. LES TESTS
LES TESTS EN PYTHON
▸ Exemple complet :
# Saisie au clavier
age=input()
# test d'âge
if age>18:
➡print("Tu peux passer le permis")
else:
➡print("Voiture à pédales")
# sera exécuté quoi qu'il arrive
print("Content ?")
18. LES TESTS
DIFFÉRENTS TYPES DE TEST
▸ Tous les tests de comparaison sont possibles
▸ Attention, le test d'égalité se fait avec deux signes "=="
pour le distinguer du simple "=" d'affectation
▸ "Différent de" s'écrit de la manière suivante :
if a>b: if a>=b: if a<=b: if a<b:
age=12
if age==12:
if a!=b:
19. TEXTE
TESTS DE CHAÎNES DE CARACTÈRES
▸ On peut uniquement testé l'égalité ou l'inégalité
▸ En revanche, de nombreuses fonctions permettent de
manipuler une chaîne de caractères
▸ Exemple : len() permet d'obtenir la taille en nombre de
caractères d'une chaîne
nom="Bob"
if nom=="Bob":
nom="Bob"
if nom!="Bob":
nom="Bob"
if len(nom)>3:
20. TEXTE
TESTS MULTIPLES
▸ On peut cumuler les tests avec les opérateurs AND et OR
if a==b AND a!=12:
if prenom=="Bob" AND age>=18:
if age<14 OR age>=18:
21. LES FONCTIONS
FONCTIONS
▸ But : factoriser du code pour pouvoir le réutiliser
▸ Sorte de “boîte noire” avec des entrées et sorties
▸ Principe de modularité :
▸ On découpe un gros problème en petits problèmes
▸ Une fois qu’un problème est résolu dans une fonction,
on ne s’occupe plus que des entrées et sorties
22. LES FONCTIONS
STRUCTURE D'UNE FONCTION
# Définition de la fonction
def ma_fonction(entree):
➡# traitement
➡...
➡return sortie
...
# appel de la fonction
retour=ma_fonction(12)
23. LES FONCTIONS
EXEMPLE CONCRET DE FONCTION
# Définition de la fonction
def calculePrixTTC(prixHT,tauxTVA):
➡prixTTC=prixHT*(1+(tauxTVA/100)
➡return prixTTC
...
# appel de la fonction
print("Saisissez un prix HT")
prixHT_saisi=input()
prixTTC_recu=calculePrixTTC(prixHT_saisi,20)
print("Prix TTC calculé : ",prixTTC_recu)
24. prixHT_saisi
LES FONCTIONS
UNE BOITE NOIRE
def calculePrixTTC(prixHT,tauxTVA):
➡.... # un traitement
➡return prixTTC
...
# appel de la fonction
prixTTC_recu=calculePrixTTC(prixHT_saisi,20)
FONCTION
calculePrixTTC()
prixTTC_recu
25. LES BOUCLES
BOUCLES
▸ Une boucle va permettre d'effectuer un traitement
plusieurs fois
▸ Premier type de boucle : "while", ou "tant que"
▸ Syntaxe similaire au if, mais va effectuer le test plusieurs
fois
curseur=0
while curseur<5:
➡print(curseur)
➡curseur=curseur+1
# après la boucle
print("c'est fini !")
0
1
2
3
4
C'est fini !
26. LES BOUCLES
BOUCLE FOR
▸ Dans certains cas, on peut s'éviter d'avoir à gérer le
curseur
▸ la boucle for intègre cette notion
for curseur in range(5):
➡print(curseur)
# après la boucle
print("c'est fini !")
0
1
2
3
4
C'est fini !
27. DESSINER AVEC TURTLE
LE LANGAGE TURTLE
▸ A l'origine, un langage pour enfants
▸ Permet de visualiser le résultat de vos algorithmes de
manière graphique
Effacer reset()
Avancer forward(distance)
Reculer backward(distance)
Couleur color(couleur)
Tourner à gauche left(angle)
Tourner à droite right(angle)
28. DESSINER AVEC TURTLE
EXEMPLE DE CODE TURTLE
# dessin d'un carré
from turtle import *
color('red')
for i in range(4):
forward(50)
right(90)
# dessin d'une étoile
from turtle import *
a=0
while a < 12:
a=a+1
forward(150)
left(150)
▸ Sur repl.it, lancer un projet "Python (with Turtle)"
29. DESSINER AVEC TURTLE
EXERCICE AVEC TURTLE
▸ Créer une fonction permettant de dessiner une maison
▸ Taille de la maison définie en paramètre d’entrée
▸ Emplacement de la maison tiré au hasard
# positionnement
from turtle import *
turtle.setx(10)
turtle.sety(50)
print(turtle.position())
# tirage au sort
from random import *
nb=random.randint(0,10)
print(nb)