MATH202 TP #1
Traitement
Objectifs
- Découvrir le cadre du TP;
- Réviser Python;
-
Coder des algorithmes de base pour le traitement d'images.
Info Génerales
Le TP doit être fait en binôme.
Codeur: Responsable pour l'implementation.
Navigateur: Responsable pour veiller à la qualité du code.
Tâches du navigateur
- Discuter l'implementation avec le codeur;
- Identifier les erreurs de typing;
- Identifier les erreurs de logique;
- Est-ce que le code est generique?
- Est-ce que le code est lisable?
Info Génerales
- Correctitude des questions;
- Lisibilité du code;
- Qualité du commentaires;
- Participation et auto-évaluation.
Tous les TP pourront être rendus jusqu'au Dimanche après au TP jusqu'à 23:59 sur TP-LAB.
Critères de corrections
Organisation
Le TP dure 3h et il est divisé en trois sprints et une pause
Sprint 1
Sprint 2
Sprint 3
10
60
110
120
170
180
0
40min
10min
On bosse
On discute
Le binôme doit alterner les rôles de codeur et de navigateur à chaque sprint
Mini-Activité
Le quiz
Modèle d'image sur python
x
y
(0,0)
(1,0)
(0,1)
(x,y)
(1,1)
(5,5)
Sprint #1
- Le support du TP: link
- Page Moodle du cours
- Lire la description des questions avec attention!
- Pour la première question
- Lire les commentaires avec attention!
- Décomenter seulement les lignes marquées avec un double croisillon ( ## ).
Objectifs: Questions 1, 2 et 3
Sprint #1
- Boucle et conditionnel en Python
Objectifs: Questions 1, 2 et 3
for i in range(0,10):
if i%2==0:
print(i) #Affiche 0 2 4 6 8
ma_liste = [ (255,0,0), (128,0,128), (0,0,255) ]
for el in ma_liste:
print(el) #Affiche (255,0,0) (128,0,128) (0,0,255)
- Opérations mathématiques
x = pow(3,2)
print(x) #affiche 9
x = 3**3
print(x) #affiche 27
Mini-Activité
Le quiz
Sprint #1 - Point d'évaluation
- Limite des listes
- Image (200x100) (0,0) => (199,99)
- Suggestions? Difficultés?
Sprint #2
Objectifs: Questions 4, 5 et 6
Mini-Activité
Peer Review
Peer Review
- Identifier le binôme avec le même mathématicien ou informaticien que vous.
- Les codeurs de chaque binôme changent des places. Maintenant, il est un codeur visiteur.
- Le visiteur doit lire et comprendre le code d'autre codeur concernant une question proposé par l'intervenant:
- Posez des questions aux collègues;
- Remplir la fiche de peer review.
Peer Review
Reviser le code de la question 4 (troisNuancesDeGris)
Si le binôme que vous visitez n'a pas fini la question 4, reviser les questions 2 (imageBinaire) et 3 (couleurDiff).
Sprint #2 - Point d'évaluation
- Suggestions? Difficultés?
Sprint #3
Objectifs: Questions 7, 8 et 9
Mini-Activité
Le quiz
Sprint #3 - Point d'évaluation
- Suggestions? Difficultés?
Postface
Fonctions pratiques de Python
map( fonction, iterables* )
Fonction lambda
ma_fonction = lambda x,y: x+y
print( ma_fonction(2,3) ) #Affiche 5
ma_liste_pair = [0,2,4,6]
ma_liste_impair = [1,3,5,7]
mapped_liste = map( lambda x,y: x+y, ma_liste_pair, ma_liste_impair )
print( mapped_liste ) #Affiche 1 5 9 13
Postface
Fonctions pratiques de Python
functools.reduce( fonction, sequence[, initial] )
import functools
ma_liste = [0,1,2,3]
somme = functools.reduce( lambda x,y: x+y, ma_liste )
print( somme ) #Affiche 6
ma_liste_2 = [1,2,3,4]
produit = functools.reduce( lambda x,y: x*y, ma_liste_2 )
print( produit ) #Affiche 24
Postface
Fonctions pratiques de Python
enumerate( iterable[, start] )
mes_couleurs = [ (255,0,0), (0,255,0), (0,0,255) ]
liste_enumere = enumerate( mes_couleurs )
print( liste_enumere ) #Affiche (0,(255,00)) (1,(0,255,0)) (2,(0,0,255))
Postface
Fonctions pratiques de Python
help( python_fonction ) : Utiliser dans l'interpreteur interactif
>> help( enumerate )
Help on class enumerate in module builtins:
class enumerate(object)
| enumerate(iterable[, start]) -> iterator for index, value of iterable
|
| Return an enumerate object. iterable must be another object that supports
| iteration. The enumerate object yields pairs containing a count (from
| start, which defaults to zero) and a value yielded by the iterable argument.
| enumerate is useful for obtaining an indexed list:
| (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
|
| Methods defined here:
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __iter__(self, /)
| Implement iter(self).
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
Postface
Défis
Refaire la question 5 (plusSemblable) en utilisant une ou plusieurs fonctions parmis:
- map
- reduce
- enumerate
- lambda fonction
La question peut être codé en 2 lignes!
Conclusion
- Auto-évaluation
- Suggestions, difficultés?
MATH202 - TP1
By Daniel Martins Antunes
MATH202 - TP1
Traitement d'images avec Python
- 221