Vous êtes sur la page 1sur 10

Clôture du cours :

-dictionnaire : clé → valeur


type : dict
→ Parcours par clé. For cle in dico :
Ecrire en Python
[AJOUTER ET SUPPRIMER CELLULES]
Reconnaître le vide ( [ ] ou { } )

-liste :
type : liste
→ Parcours par indice. For i in range(len(liste))
→ Parcours par cellule. For cellule in liste :

- algorithmes de tri : Tri glouton, Tri à bulle, Tri par insertion. (possibilité faire tri
insertion avec dictionnaire à l’éval)
→Fonctionnement de l’algorithme
→ avantages et inconvénients
Chapitre 4 Notion de complexité

I. Coûts en mémoire/espace et en temps d’un algorithme

Complexité
↘ Temps («Nombre opérations de base »)
-Opérations codées sur le hardware, exécutées en temps constant.
↘ Espace («Nombre de briques élémentaires »)
-Mémoire nécessaire pour un type de base.
→ booléen
→ nombre
→ caractère

Exemple inconnu : Algorithme de la cacahuète

L1: Je mange 1 cacahuète


L2: Tant que le sachet n’est pas vide :
L3: Je mange 1 cacahuète.

Entrée : Sachet de taille n

Complexité en temps :
L1: Retirer la cacahuète du sachet : 1. |
Manger la cacahuète : k (constant) | k+1 opérations.
|
L2: Boucle « Tant que » : n-1 fois. |
(Intérieur de la boucle) k+1 | (n-1)(k+2)+1
+ test de L2 : 1 | =(k+2)n-(k+2)+1

On calcule les 3 lignes ensemble :

k+1+(k+2)n-(k+2)+1
= (k+2)+(k+2)n-(k+2)
= (k+2)n → O(n)
↘ constante

Conclusion : La complexité en temps de l’algorithme de la cacahuète est


proportionnelle à la taille du sachet.
Complexité en espace :

L1: Retirer la cacahuète du sachet :1.


Manger la cacahuète : k’ (espace constant)
↘ Libéré? ↘ Conservé?
L2: Répéter n-1 fois : 0.
L3: Manger la cacahuète : k’

→ mémoire libérée : On réutilise k’, et ce n fois.


↘ k’+1 → O(1)
→ mémoire conservé : k’+1+(n-1)k’
= n k’+1
= n k’+1 → O(n)

Exemple connu : KNN


Entrée : -nuage de n pts (env 2n int)
-1 point (2 int)
-k (int) constant ou √n

Dans l’algorithme : Temps Espace


→2 liste de taille k O(n) O(n) O(1) O(√n)
→Parcours sur les n points O(n) O(n) X
↘ Calcul de distance O(n) O(n) O(1) O(n)
↘ Insertion O(n) O(√n) O(1) O(1)
→Calcul de majorité O(n) O(√n) O(1) O(√n)
O(n) O(n√n) O(1) O(√n)

KNN = k plus proches voisins

TP-cours :
plus la taille d’un animal est grande plus son museau par exemple est grand
quand on élargis pour voir les points d’animaux le plus proche on peut deviner quelle
animal est le point
L’algorithme des plus proches voisins est très utilises par IA car il cherche a se
rapprocher de ce qu’ils connaissent

Étapes de décision:

-Données un point a catégoriser


-un nuage de point, où chaque point est associé a une catégorie
-un nombre entier positif K

Traitement:

-on calcule les distance entre le point et tous les point du nuage
-on tire les distance
-on garde les k première distance : les voisins

Fin:

-on détermine la catégorie majoritaire chez les voisins


-cette catégorie sera celle du point

Méthode catégoriser :
→ point : liste a 2 éléments
→ nuage : dictionnaire : clé→ valeur
points → catégorie
(liste à 2 el) (string)
→ k : int > 0

Algo détaillé :

1. Initialisation
Voisins : Liste de points initialisées à [ ].
distances:Liste de nombres flottants initialisées à [ ].
Une distance est liée à un voisin. Distance est une liste triée.
Voisins et distances ont une taille maximale de k.

2. Traitement
-On parcourt nuage, point par point (point_n):
- d = distance entre point et point_n. (cf iris.py)
-On essaye d’insérer d dans distances et point_n dans voisins.
→ Méthode insérer( d point_n distances voisins k ) :
-Si la taille de distances < k : (Il reste de la place)
-i = indice où on insère d dans distances.
-On insère point_n dans voisins en position i.
-Sinon si d < distances[-1] :
-On retire la queue de distances.
-On retire la queue de voisins.
-On insère comme vu au-dessus (Si).

3. Conclusion
-Déterminer la catégorie majoritaire dans la variable voisins à l’aide de nuage.
-On retourne cette catégorie.
Chapitre 5 : IHM et Web

I. Structure d’un fichier HTML

(fichier quelconque)

-En-tête

métadonnées

-Corps

données
Un fichier HTML est interprété et exécuté par un navigateur Web (Chrome, Safari,
Opera GX, Edge)
La 1ère action du navigateur consiste à lire l’en-tête pour comprendre comment il
doit lire et interpréter le code HTML dans le corps. C’est ici qu’il va récup les
fichiers connexes comme la feuille de style (.css) ou le programme dynamique (.js).

HTML: Hype Text Markup Language

Langage de programmation hypertexte appliquant le protocole HTTP

HTTP: Hype Text Transfert Protocol

Protocole de transfert hypertexte. Base sur web.

II. Protocole HTTP


1) Relation client-serveur

Client → Serveur
(sur pc) ←

Etape IRL (in real life) Web


0 Je me renseigne sur le chemin Je demande à mon FAI l’adresse IP du
pour aller de moi au café. serveur correspond à l’adresse web
indiqué.
1 J’y vais, je m’installe et je fais Je lance une requête pour entrer en
signe au serveur. communication avec le serveur.
2 Le serveur vient, il me salue et il Le serveur me renvoie une requête de
attend. confirmation de réception.
3 Je passe commande : J’envoie une requête pour obtenir la
1 café, 1 croissant et 1 par de page web dérivée, avec son chemin
gâteau d’accès.
4 Le serveur part et consulte ses Le serveur m’envoie une requête de
stocks. Si l’une de mes confirmation (ou d’infirmation).
commandes ne peut pas aboutir,
il me l’annonce.

5 Le serveur apporte le café et la Le serveur envoie le fichier par


part de gâteau paquets.
6 Avec le café, je demande 1 Mon navigateur lit et interprète le
cuillère et 1 sucre fichier et il trouve d’autres URL
(d’autres fichiers qu’il n’a pas)
7 On répète les étapes 4,5 et 6 autant que nécessaire.
8 Je suis satisfait. Le serveur s’en Je confirme avoir tout reçu, nous
va (attendre ou gérer un nouveau coupons notre communication
client)

URL
Uniform Resource Locator

https://www.senghor-lyc.pip.ac-rouen.fr/index.html

Protocole Nom de domaine Chemin


de com. sur le serveur

2) États et méthodes en HTTP

Catégories d’état :

1xx : Information identification : Login


2xx : Succès authentification : MdP
3xx : Redirection
4xx : Erreur Client
5xx : Erreur Serveur

Parmi les plus courants :

200 Succès de la requête


301 et 302 Redirection permanente ou temporaire
304 Ressource mise en cache (téléchargement en cours…)
401 Utilisateur non identifié
403 Accès refusé
404 Page non trouvée (File Not Found)
504 Le serveur n’a pas répondu

Les méthodes les plus courants :

GET Le client demande une ressource (Méthode la plus courante)


POST Transfert de données du client vers le serveur
HEAD Demande de métadonnées sur la ressource (Par exemple , connaître la taille
d’un fichier avant de le télécharger)
Remarque :
Il est possible d’avoir un ordinateur jouant les rôles du client ET du serveur en même
temps. Si plusieurs machins sont ainsi connectées, on parle alors de réseau pair-à-pair
(peer to peer).

= laissé libre accès tous ce qu’il y a sur son ordi pour toutes les autres personnes du
réseau peer to peer
p2p servait a partagé des choses pas très légal comme des films (utorrent)

Concernant les lois sur le Web :


→ La loi appliquée est «généralement» celle du lieu où se trouve le client ou le
serveur
→ S’il existe plusieurs «couches» de lois, on applique la plus sévère

Exemple :

Lois internationales |→ Lois de l’UE |→ Lois françaises

III- Structure dynamique

1)CSS La feuille de style


cf tp 2

2)JS : JavaScript et événements

Codes Capytale : 699e-2930178 (corrigé TP2-1)


b56b-2926649 (votre travail TP2-1)
3755-2926559 (TP2-2)

La programmation événementielle est un paradigme de programmation de niveau 4


(très haut)
Elle permet une interaction directe avec l’utilisateur grâce aux différentes entrées de
la machine (souris, clavier, micro, caméra, manette, etc.)
Coté client, le langage le plus utilisé pour gérer ses interactions est le JavaScript

Quelques ex d’événements :
-mouseover : la souris entre dans une zone HTML
-mouseout : la souris sort de la zone
-onclick : clic gauche de la souris

3)PHP et formulaire
Les événements peuvent aussi etre géres coté serveur, par exemple via le langage
PHP.
Grâce à un formulaire dans le code HTML, il est possible d’envoyer des infos au
serveur afin de modifier le code HTML est de personnaliser l’experience
2 méthodes pour communiquer :

GET L’utilisateur envoie des informations supplementaires via l’URL


http://./index.html?nom=Mbappe & prenom=Kylian
+ La requête est tres rapide
- Aucune confidentialité

POST L’utilisateur envoie une info précise grâce au formulaire contenu dans le code
HTML. Cette info se trouve dans le corps de la requête, elle ne sera donc pas
lu par les intermédiaires de la liaison.
Cette info est alors traitée par le code PHP du serveur, quitte à ce que ce dernier
retourne à l’utilisateur un nouveau code HTML (partiel ou complet).
+ Forme de confidentialité
- La liaison ne doit jamais être interrompue

IV- Sécuriser sa navigation


1) Protocole HTTPS
Lors d’une com securisee, le client et le serveur doivent :
1 : s’assurrer que le serv est bien le serv, grace à un certificat d’authentification ;
2 : se mettre d’acord sur un secret commun via un systeme de chiffrement çà clé
privée (algorithme RSA)

2)VPN
Un VPN est un serveur distant qui sert d’intermediaire entre le client :
1 : d’avoir une com securisée permanente avec le reste du monde
2 : de ne pas fournir au serveur des donnees personelles inutiles

Vous aimerez peut-être aussi