Initiation au chiffrement des données
Le chiffrement est un procédé de cryptographie grâce auquel on souhaite rendre la compréhension d’un document impossible à toute personne qui n’a pas la clé de (dé)chiffrement.
Dans cette activité, nous allons étudier et programmer en python différents systèmes de chiffrement/déchiffrement des données.
Au programme de l'activité :
- Chiffrement symétrique
- Chiffrement de Cesar
- Chiffrement de Vigenère
- Utilisation de la fonction XOR
- Chiffrement asymétrique
- Principe général
- Algorithme RSA
- Génération des clés
- Chiffrement/déchiffrement
- Attaque brute force
Single Player Pong
Pong est un des premiers jeux vidéo d’arcade et le premier jeu vidéo d’arcade de sport. Il a été imaginé par l’Américain Nolan Bushnell et développé par Allan Alcorn, et la société Atari le commercialise à partir de novembre 1972. Bien que d’autres jeux vidéo aient été inventés précédemment, comme Computer Space, Pong est le premier à devenir populaire.
https://fr.wikipedia.org/wiki/Pong
L'objectif de cette activité est de développer une version Python de ce jeu en s’appuyant sur les concepts de programmation que nous avons appris jusqu’à maintenant :
- Utilisation de modules
- les fonctions
- les dictionnaires
- les tests conditionnels
- les boucles
Notre jeu se limitera un un joueur unique. Cette version du jeu est connue sous le nom Pong Survivor ou Single Player Pong
Le développement du jeu est basé sur l’utilisation de la bibliothèque Pygame
NSI
Numérique et Sciences Informatiques
L’enseignement de spécialité de numérique et sciences informatiques du cycle terminal de la voie générale vise l’appropriation des fondements de l’informatique pour préparer les élèves à une poursuite d’études dans l’enseignement supérieur, en les formant à la pratique d’une démarche scientifique et en développant leur appétence pour des activités de recherche.
L’objectif de cet enseignement, non professionnalisant, est l’appropriation des concepts et des méthodes qui fondent l’informatique, dans ses dimensions scientifiques et techniques....
Vous trouverez ici mes activités (cours/TP) de première spécialité NSI au lycée Alphonse Benoît.
Structure d’un premier objet communicant
Le but de ce tutoriel est de mettre en œuvre une structure type d'un objet communicant basé sur l'utilisation d'une carte Arduino pour la partie acquisition/actionneurs et d'une carte PC embarqué (pcDuino, Raspberry Pi, ...) pour la partie traitement (script Python, programme C/C++, ...), connexion au réseau (filaire ou wifi), stockage local des données (serveur de bases de données SQLigth, MySQL, ...), mise à disposition des données (serveur web Apache2, lighttpd, ginx, ...). La connexion entre ces deux carte se fait naturellement par une liaison série sur USB. Le synoptique ci-dessous représente par exemple un système de surveillance de la hauteur et de la qualité de l'eau d'un cours d'eau. La température, le Ph et la hauteur de l'eau sont mesurés sur demande par la carte Arduino. Le pcDuino via un scritp Python dont l'exécution peut être planifiée avec Cron, effectue la demande puis lit les réponses et les stockent dans la base de données MySQL. Apache2, via une page web php, met à disposition des utilisateurs les informations.
Reconnaissance faciale par Eigenfaces
Ce projet doit permettre de faire une reconnaissance faciale, en employant des photos de référence des personnes connues et en soumettant au programme la photo d'une personne à identifier. La reconnaissance est donc limitée à l'emploi d'images en deux dimensions. La méthode de reconnaissance faciale Eigenfaces emploie la technique de l’analyse en composante principale, qui marque une différence notable avec les méthodes plus classiques, appelées méthodes géométriques ou locales, qui se basent sur les particularités du visage analysé, et dont les défauts résident dans son manque de précision, ainsi que sa sensibilité aux informations qui ne sont pas pertinentes. La méthode utilisée ici est qualifiée de globale, puisque l’ensemble du visage est alors analysé.
Les eigenfaces sont un ensemble de vecteurs propres utilisés dans le domaine de la vision artificielle afin de résoudre le problème de la reconnaissance du visage humain. Le recours à des eigenfaces pour la reconnaissance a été développé par Sirovich et Kirby (1987) et utilisé par Matthew Turk et Alex Pentland pour la classification de visages. Cette méthode est considérée comme le premier exemple réussi de technologie de reconnaissance faciale. Ces vecteurs propres sont dérivés de la matrice de covariance de la distribution de probabilité de l'espace vectoriel de grande dimension des possibles visages d'êtres humains.
Wikipédia : https://fr.wikipedia.org/wiki/Eigenface
Cette technique de reconnaissance utilise la méthode d’analyse en composantes principales (PCA) ou la méthode de décomposition en valeurs singulières (SVD). De manière simple, elle vise a diminuer la dimension de l’espace de travail pour simplifier les données et leur interprétation. Le but est ainsi de prendre en compte les informations importantes qui permettront de reconnaître un visage parmi d’autres avec un bon taux de réussite.
La météo dans ma ville
De nombreux projets font appels à des données météorologiques et il n'est pas toujours possible de disposer de tous les capteurs nécessaires. Il existe sur internet de nombreuses bases de données météo qui couvrent le monde entier. Une base en particulier parait très intéressante car elle est accessible gratuitement et couvre près de 200 000 citées : http://openweathermap.org/
Il s'agit ici d'un test de connexion et de lecture des données météo classiques à partir de l'API d'openWeatherMap. Ce test a été réalisé en python, l'interface Homme-Machine est réalisée avec Qt Designer (voir article Tuto Qt+Python) et l'accès aux données se fait au travers de l'API pyowm (https://media.readthedocs.org/pdf/pyowm/latest/pyowm.pdf).
Nouveau tuto Qt+Python
Tutoriel plus complet basé sur l'utilisation de Python(x,y) pour réaliser des applications fenêtrées à l'aide de Qt Designer et du langage Python.
- Windows : Télécharger Python(x,y)
- Linux Ubuntu : $ sudo apt-get install python python-qt4 pyqt4-dev-tools qt4-qmake cmake qt4-designer
- Télécharger le tutoriel.
- Télécharger les projets.
Python(x,y)
Python(x,y) est un logiciel libre scientifique de calcul numérique basé sur le langage Python, les interfaces graphiques Qt (et le cadre de développement associé), l'environnement de développement Eclipse et l'environnement de développement scientifique interactif Spyder.
Python(x,y) a cinq fonctionnalités principales :
- rassembler des bibliothèques Python et des environnements de développement complets adaptés à un usage scientifique ;
- rassembler presque toute la documentation gratuite disponible sur ces librairies et outils ;
- proposer un guide de démarrage en Python / Eclipse / Qt ;
- configurer Eclipse pour qu'il soit prêt pour développer en Python, et modifier quelques paramètres Windows (tels que les associations de fichier, l'intégration dans l'explorateur Windows, etc.) ;
- proposer un installeur tout-en-un, afin que l'utilisateur puisse installer ou désinstaller ces outils et fonctionnalités en un seul clique de souris.
Visitez le site officiel et télécharger la dernière version de Python(x,y) : http://code.google.com/p/pythonxy/wiki/Welcome
Télécharger mon tutoriel Qt Designer + Python pour la réalisation d'applications fenêtrées ici.
ISN 1 – Pédagogie de projet
Ce module a été profondément remanié afin de proposer des activités pratiques basées sur l'utilisation de module Arduino.
Ces modules permettent de développer simplement une application de contrôle-commande, le matériel étant parfaitement adapté au prototypage rapide.
Formation ISN – Niveau 2
La formation ISN entre dans sa deuxième année.
Au programme :
- Initiation à la robotique :
- Présentation
- Activités et mini-projet
- Simulation robotique avec Azolla
- Programmation de comportements élémentaires sur KJunior et/ou Lego Mindstorm
- Principe de correction PID - logique floue
- Mini-projet : déplacement autonome dans un couloir
- Gestion de projet.
- A venir ...