Liens utiles

Voici quelques liens vers des sites qui peuvent êtres utiles en NSI

Aide aux débutants

Ces quelques sites sont particulièrement adaptés aux débutants. Ils proposent des exercices plutôt simples avec la correction et des aides pour vérifier votre code.
Futurecoder est très pédagogique, organisé sous forme de leçons ponctuées d'exercices de programmation. Les concepts importants sont introduits progressivement et il n'y a rien à installer car tout se passe dans le navigateur.
Les aides fournies pour la réalisation des exercices sont progressives et les messages d'erreur assez explicites (et en français) pour guider les débutants.
Le Pyvert propose lui aussi des exercices à résoudre directement sur le site. Ils sont nombreux et classés par niveau (2nd, 1ere, Term). Des indications sont parfois disponibles et la solution est donnée après 10 essais infructueux.
GenPyExo est très similaire à Pyvert mais les exercices sont classés par thème.
Hackinsiences Propose de nombreux exercices autocorrigés. Les premiers exercices sur les bases reprennent vraiment les choses simples et sont très guidés.

py.checkio.org

Un site qui propose de réaliser des "missions" de programmation en écrivant de petits algorithmes en python pour résoudre des problèmes. Le site nécessite une inscription (gratuite) et est organisé comme un jeu. On peut voir les solutions des autres joueurs et recevoir des conseils via un forum. Le jeu est en anglais, mais une partie des textes est traduite en français.
Très intéressant pour s'entrainer tout seul à la programmation en python.

Voir aussi le site CodeCombat qui propose une approche plus ludique et bien plus simple (adapté surtout au débutants). Ou encore CodeWars qui lui est vraiment orienté vers la programmation sérieuse et propose des défis classés par thèmes et par difficultés. Les exercices proposés sont très intéressants mais il est uniquement en anglais.

PythonTutor

Ce site permet de visualiser l'exécution pas à pas d'un programme python (à copier-coller ou à programmer directement sur le site). Son intérêt principal est qu'il permet de visualiser l'espace des noms et l'espace des objets du programme. Très utile pour comprendre comment fonctionnent les variables en python et pour comprendre le comportement de certains bouts de code.

nsi.gecif.net

Ce site présente de nombreuses ressources utiles pour NSI et il propose des QCM pour s'entrainer ou réviser. C'est la version spécialisée NSI du site gecif.net qui propose des ressources autour des sciences de l'ingénieur des mathématiques et de l'informatique.
Il propose également un accès au site python.gecif.net/ qui contient des ressources spécifiques au langage python.

Jeux de programmation

Il existe de nombreux jeux de programmation sans ligne de code qui font surtout appel à la logique. Cube-composer permet d'aborder les concepts de programmation fonctionnelle, Cargo-bot (il existe aussi une version pour IOS) qui met à profit la récursivité et les appels de fonctions ou encore RoboZZle (il existe aussi une version pour android) qui est très simple mais très complet puisque pour certains niveaux il faut aussi utiliser des mécaniques de pile d'appels.

Rendre un programme python exécutable

Il existe plusieurs solutions pour rendre un programme python exécutable directement (créer un fichier .exe). Les principaux sont pyInstaller (le plus simple) et cx_Freeze (le plus configurable). Pour les utiliser des explications en français peuvent être trouvées sur mathweb.fr ou yubigeek.
Attention : pour pouvoir utiliser python depuis la ligne de commande de windows il faut qu'il soit dans la variable d'environnement PATH. Si ce n'est pas le cas, il faudra faire au préalable la commande : path chemin_vers_le_fichier_python.exe;%PATH%. Si vous utilisez thonny, c'est le répertoire d'installation de thonny (habituellement C:\Program Files (x86)\Thonny donc faire la commande path C:\Program Files (x86)\Thonny;%PATH%). Cette méthode modifie le PATH uniquement pour la session d'invite de commande actuelle. Pour ajouter durablement un chemin au PATH, suivre les instructions ici ou .

S'entraîner pour l'épreuve pratique du bac

Le site e-nsi.gitlab.io propose de nombreux exercices pour s'entraîner à l'épreuve pratique.
Il permet d'écrire directement son code python et de l'exécuter dans le navigateur. La réponse est ensuite vérifiée et un corrigé est proposé en cas de réussite (pour comparer sa solution à celle proposée par l'auteur(e) du sujet) ou de trop nombreux échecs. La partie "À maitriser" propose des exercices semblables aux exercices 1 des sujets de l'épreuve pratique (fonction à écrire), tandis que la partie "Guidés" permet de s'entraîner à l'exercice 2 (programme à compléter ou documenter). Une liste classée par thème est également disponible dans le menu "Tags".
Pour ceux qui le souhaitent, le site permet également d'aller plus loin avec les rubriques "Aventure" et "Mathématiques".
A utiliser sans modération !

Découvrir le langage Java

L'INRIA (Institut national de recherche en informatique et en automatique) a développé il y a quelques année une application pour aider à débuter dans le langage Java : Javascool (pour "Java's cool"). Elle permet de masquer certaines complexités du langage qui pourraient rebuter les débutants tout en proposant des modules ("activités") pour aborder de façon simple différents thèmes comme le graphisme, la communication réseau ou le chiffrement. L'aide fournie dans la fenêtre latérale est très utile (commencer par l'activité "abcdAlgos" qui explique les bases). Un logiciel très pratique pour ceux qui sont débutant et s'essayent à Java.
Le site dédié à Javascool ayant été fermé par l'Inria, vous pouvez télécharger l'application directement en suivant ce lien.
A noter que pour que l'application fonctionne il faut impérativement avoir installé Java (le "jre" Java Runtime Environment) sur la machine. Celui-ci est gratuit et peut se trouver sur le site de Sun.

S'initier au hacking

Le site root-me.org propose de nombreux challenges sur le thème du hacking. Pour chaque challenge, des explications sont données pour comprendre les mécanismes en jeu.
L'objectif du site est de sensibiliser le public à la cybersécurité mais également de tester ses compétences sur le sujet et les défis commencent à niveau relativement simple jusqu'à très avancé. Il faudra souvent obtenir des compétences dans différents domaines (html, communication réseau, programmation, systèmes d'exploitation, ...) pour venir à bout des challenges ce qui peut demander une certaine persévérance...

Retour