Les `hackthon~nsi` s'appuient sur les programmes de première et terminale NSI.
| TERMINALE |
| 1. Histoire de l’informatique |
| t-1.1 | Événements clés de l’histoire de l’informatique. |
| 2. Structures de données |
| t-2.1 | Structures de données, interface et implémentation. |
| t-2.2 | Vocabulaire de la programmation objet: classes, attributs, méthodes, objets. |
| t-2.3 | Listes, piles, files: structures linéaires. Dictionnaires, index et clé. |
| t-2.4 | Arbres: structures hiérarchiques. Arbres binaires: nœuds, racines, feuilles, sous-arbres gauches, sous-arbres droits. |
| t-2.5 | Graphes: structures relationnelles. Sommets, arcs, arêtes, graphes orientés ou non orientés. |
| 3. Bases de données |
| t-3.1 | Modèle relationnel: relation, attribut, domaine, clef primaire, clef étrangère, schéma relationnel. |
| t-3.2 | Base de données relationnelle. |
| t-3.3 | Système de gestion de bases de données relationnelles. |
| t-3.4 | Langage SQL: requêtes d’interrogation et de mise à jour d’une base de données. |
| 4. Architectures matérielles, systèmes d’exploitation et réseaux |
| t-4.1 | Composants intégrés d’un système sur puce. |
| t-4.2 | Gestion des processus et des ressources par un système d’exploitation. |
| t-4.3 | Protocoles de routage (les liens avec les graphes ne sont plus dans le programme limitatif). |
| t-4.4 | Sécurisation des communications. |
| 5. Langages et programmation |
| t-5.1 | Notion de programme en tant que donnée. Calculabilité, décidabilité. |
| t-5.2 | Récursivité. |
| t-5.3 | Modularité. |
| t-5.4 | Paradigmes de programmation. |
| t-5.5 | Mise au point des programmes. Gestion des bugs. |
| 6. Algorithmique |
| t-6.1 | Algorithmes sur les arbres binaires et sur les arbres binaires de recherche. |
| t-6.2 | Algorithmes sur les graphes. |
| t-6.3 | Méthode «diviser pour régner». |
| t-6.4 | Programmation dynamique. |
| t-6.5 | Recherche textuelle. |
| PREMIÈRE |
| 1. Histoire de l’informatique |
| p-1.1 | Événements clés de l’histoire de l’informatique. |
| 2. Représentation des données: types et valeurs de base |
| p-2.1 | Écriture d'un entier positif dans une base b>=2. |
| p-2.2 | Représentation binaire d'un entier relatif. |
| p-2.3 | Représentation approximative des nombres réels: notion de nombre flottant. |
| p-2.4 | Valeurs booléennes: 0, 1. Opérateurs booléens: and, or, not. Expressions booléennes. |
| p-2.5 | Représentation d'un texte en machine. Exemples des encodages ASCII, ISO-8859-1, Unicode. |
| 3. Représentation des données: types construits |
| p-3.1 | p-uplets, p-uplets nommés. |
| p-3.2 | Tableau indexé, tableau donné en compréhension. |
| p-3.3 | Dictionnaires par clés et valeurs. |
| 4. Traitement de données en tables |
| p-4.1 | Indexation de tables. |
| p-4.2 | Recherche dans une table. |
| p-4.3 | Tri d’une table. |
| p-4.4 | Fusion de tables. |
| 5. Interactions entre l’homme et la machine sur le Web |
| p-5.1 | Modalités de l'interaction entre l'homme et la machine. Événements. |
| p-5.2 | Interaction avec l'utilisateur dans une page Web. |
| p-5.3 | Interaction client-serveur. Requêtes HTTP, réponses du serveur. |
| p-5.4 | Formulaire d’une page Web. |
| 6. Architectures matérielles et systèmes d’exploitation |
| p-6.1 | Modèle d’architecture séquentielle (von Neumann). |
| p-6.2 | Transmission de données dans un réseau. Protocoles de communication. Architecture d'un réseau. |
| p-6.3 | Systèmes d'exploitation. |
| p-6.4 | Périphériques d'entrée et de sortie. Interface Homme- Machine (IHM). |
| 7. Langages et programmation |
| p-7.1 | Constructions élémentaires. |
| p-7.2 | Diversité et unité des langages de programmation. |
| p-7.3 | Spécification. |
| p-7.4 | Mise au point de programmes. |
| p-7.5 | Utilisation de bibliothèques. |
| 8. Algorithmique |
| p-8.1 | Parcours séquentiel d'un tableau. |
| p-8.2 | Tris par insertion, par sélection. |
| p-8.3 | Algorithme des k plus proches voisins. |
| p-8.4 | Recherche dichotomique dans un tableau trié. |
| p-8.5 | Algorithmes gloutons. |