Préambule


Le site est maintenant à cette adresse https://cours-nsi.forge.apps.education.fr/premiere/

Cliquez ici pour aller sur le site

image

Le but de ce site est de proposer un cours complet de Première NSI dans le respect des programmes du Bulletin Officiel. Il regroupe de nombreuses ressources (cours, TP, exercices et projets), fruits d'une collaboration entre trois enseignants de la spécialité NSI : Mathilde Boehm (académie de Lyon), Charles Poulmaire (académie de Versailles) et Pascal Remy (académie de Versailles).

Toutes ces ressources, ainsi que les intentions et stratégies pédagogiques, sont partagées gratuitement sous licence CC BY-SA 4.0 afin de fournir des Ressources Educatives Libres (en abrégé, REL) comme communs numériques. Le but est de permettre à toutes et tous, de pouvoir accéder à des contenus pédagogiques, de les adapter en fonction des besoins spécifiques des élèves et de les ajuster pour répondre aux différents styles d'apprentissage et aux niveaux de compétence de vos élèves.




Les auteurs encouragent vivement le partage, la modification et la réutilisation des contenus afin que tout le monde puisse collaborer pour améliorer les ressources existantes, entraînant ainsi une synergie collective et une richesse de connaissances partagées. Les contenus peuvent être mis à jour pour refléter les avancées et les changements dans les domaines de connaissances afin de toujours garder des contenus pertinents et actuels.

Les auteurs soutiennent également une approche ouverte, collaborative et inclusive de l'Education, qui favorise la diffusion du savoir, l'innovation et l'équité dans l'accès à l'Education. L’exploitation gratuite et sans restrictions d'utilisation des REL sont rendues possible par les cinq R, piliers des REL :

  • RETENIR : télécharger, dupliquer, conserver, le contenu autant de fois ou aussi longtemps que vous le voulez ;
  • RÉUTILISER : utiliser le contenu de diverses manières selon vos propres fins ;
  • RÉVISER : adapter, modifier ou traduire la ressource ;
  • REMIXER : combiner la ressource (ou ses modifications) à une autre ;
  • REDISTRIBUER : partager la ressource (ou ses modifications) avec d’autres.

Enfin, les auteurs soutiennent toutes les actions ayant pour objectif la mixité, notamment dans les Sciences et plus spécifiquement ici dans l'Informatique. Ainsi, ils ont vivement souhaité mettre en avant les rôles des femmes dans l'Informatique en choisissant de débuter chacun des trente-cinq chapitres de ce cours par un portrait de femme informaticienne.


image

1. Organisation du cours

Le cours présenté sur ce site est divisé en six parties :
  1. Programmation Python
  2. Représentation des données
  3. Architecture des ordinateurs
  4. Algorithmique avancée
  5. Réseaux
  6. IHM et Web

Chacune de ces parties est présentée sur une page Web dédiée. On y trouve en particulier des références au Bulletin Officiel, ainsi que les différentes notions qui y seront abordées.

Chaque partie est ensuite découpée en plusieurs chapitres.

Avertissement : le découpage en parties et chapitres qui est proposé ici n'est en aucun cas un découpage « officiel » et n'engage que les auteurs de ce cours. De plus, il n'est pas nécessaire de suivre ce cours de manière linéaire (ce que les auteurs ne font d'ailleurs pas dans leur cours...).



2. Organisation des chapitres

Afin d'avoir un ensemble homogène sur l'ensemble des pages du site, tous les chapitres du cours sont organisés de la même façon en plusieurs sections :
  • une image illustrant le chapitre ;
  • le portrait d'une femme informaticienne ;
  • une section d'intentions concernant le déroulé du chapitre qui est repérée par l'icône



  • une section de cours dans laquelle on propose des TP, du cours ou des exercices en version pdf téléchargeables, et qui est repérée à l'aide de l'icône



  • une section de ressources à télécharger, éventuellement vide, qui est repérée par l'icône



    Lorsque le chapitre nécessite l'utilisation de notebooks jupyter, ceux-ci peuvent être obtenus directement à l'aide de la bibliothèque partagée de Capytale (voir la sous-section Accès via Capytale).
    On peut aussi obtenir directement ces notebooks dans la sous-section Téléchargement qui offre un lien direct sur le nuage de Apps Education. Une fois téléchargés, ceux-ci sont alors visibles sur Basthon.
    Les ressources à télécharger peuvent aussi ne pas être des notebooks. Cela peut être des fichiers spécifiques d'exercices (comme par exemple sur les réseaux), ou des documents ressources.
    Dans tous les cas, si un lien de téléchargement est proposé, visitez le !



3. Prise en main de la plateforme


Il faut distinguer deux parties pour une prise en main efficace. La prise en main de la page et celle des fichiers pdf.

  1. Le menu de la page est repéré par les trois symboles suivants :



    • le premier symbole permet de cacher ou montrer la barre de menu :



    • le deuxième permet de changer de couleur :



    • le troisième permet de faire une recherche de mots dans le site en dehors des pdf :




  2. Le menu de la partie pdf n'apparaît que lorsque l'on affiche un fichier pdf et se sépare en trois parties :
    • La partie gauche contient essentiellement deux symboles qui nous servirons :
      • Le premier symbole permet de montrer ou cacher la barre latérale :



        Lorsque la barre latérale est affichée, on trouve à nouveau deux symboles actifs :
        • le premier permet de se déplacer dans le document page par page :



        • le second permet de se déplacer dans le document suivant les différents paragraphes du pdf :



      • Le second symbole permet de faire une recherche de mots dans les pdf :



    • La partie centrale permet d'effectuer des zooms sur la page :



    • La partie droite permet d'effectuer différentes actions importantes : impression, téléchargement, etc.



      Elle est à découvrir et à explorer suivant les besoins.

Programme de 1 NSI


image

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. Cet enseignement s’appuie sur l’universalité de quatre concepts fondamentaux et la variété de leurs interactions :

  1. les données, qui représentent sous une forme numérique unifiée des informations très diverses : textes, images, sons, mesures physiques, sommes d’argent, etc ;
  2. les algorithmes, qui spécifient de façon abstraite et précise des traitements à effectuer sur les données à partir d’opérations élémentaires ;
  3. les langages, qui permettent de traduire les algorithmes abstraits en programmes textuels ou graphiques de façon à ce qu’ils soient exécutables par les machines ;
  4. les machines, et leurs systèmes d’exploitation, qui permettent d’exécuter des programmes en enchaînant un grand nombre d’instructions simples, assurant la persistance des données par leur stockage, et de gérer les communications. On y inclut les objets connectés et les réseaux.

Cliquer ici pour télécharger le programme de première NSI.



Afficher le programme




Partie 1 : programmation Python


image programmation python

Les langages de programmation Turing-complets sont caractérisés par un corpus de constructions élémentaires. Sans introduire cette terminologie, il s’agit de montrer qu’il existe de nombreux langages de programmation, différents par leur style (impératif, fonctionnel, objet, logique, événementiel, etc.), ainsi que des langages formalisés de description ou de requêtes qui ne sont pas des langages de programmation.

L’importance de la spécification, de la documentation et des tests est à présenter, ainsi que l’intérêt de la modularisation qui permet la réutilisation de programmes et la mise à disposition de bibliothèques. Pour les programmes simples écrits par les élèves, on peut se contenter d’une spécification rapide mais précise.




Cette partie, entièrement consacrée à la programmation Python, abordera les points suivants :


  1. Constructions élémentaires :
    • variable et affectation ;
    • séquence d'instructions ;
    • fonction ;
    • structures d'embranchement ;
    • structures de boucle (itératives et conditionnelles).

  1. Types et valeurs de base :
    • entier (int) ;
    • flottant (float) ;
    • booléen (bool) ;
    • chaîne de caractères (str).

  1. Types construits :
    • liste (list) ;
    • tuple (tuple) ;
    • dictionnaire (dict).

  1. Traitements de données :
    • gestion de fichiers texte et csv ;
    • traitement de données en table.

De nombreux mini-projets et projets plus ambitieux jalonneront les diverses activités de prise en main de ces différentes notions.

Chapitre 1 : initiation à Python


image


image

Jean E. Sammet (23 mars 1928 - 20 mai 2017) est une informaticienne américaine, une des pionnières de l'informatique et des langages de programmation. Elle développe en 1962 le langage de programmation FORMAC (Formula Manipulation Compiler), une extension de FORTRAN conçue pour les manipulations symboliques de formules mathématiques. Elle est également l’une des développeuses du langage de programmation COBOL (Common Business Oriented Language).




Première initiation à Python et au langage de programmation avec un peu d'histoire. On présente différents environnements de développement. Pour l’enseignement de spécialité NSI, nous avons choisi de programmer avec le logiciel EduPyter et avec l’application Capytale. Afin de prendre en main cette dernière, on propose deux notebooks :

  • NSI Première Partie 1 Chapitre 1 Prise en main Notebook Jupyter 1/2 (les bases) ;
  • NSI Première Partie 1 Chapitre 1 Prise en main Notebook Jupyter 2/2 (pour aller plus loin).



Afficher le cours







Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :

- NSI Première Partie 1 Chapitre 1 Prise en main Notebook Jupyter 1/2

- NSI Première Partie 1 Chapitre 1 Prise en main Notebook Jupyter 2/2

Téléchargement

Téléchargement des ressources

Chapitre 2 : variables et types


image


image

Anita Borg est une informaticienne américaine. Elle a notamment travaillé pour des compagnies telles Digital Equipment Corporation et Xerox. Elle a également fondé la Grace Hopper Celebration of Women in Computing dans l'Institut Anita Borg (maintenant connu sous le nom de AnitaB.org) pour promouvoir la participation des femmes dans les domaines de la technologie et de l'informatique.




La notion de variable est très importante en programmation. Dans cette partie , on aborde la notion de variable simple.

Le but de ce chapitre est de comprendre cette notion ainsi que l'affectation d'une donnée à cette variable. Ensuite on aborde la notion de typage d'une donnée.

On propose le déroulé suivant :
  1. un point de cours pour présenter la notion de variable et affectation ;
  2. un exercice « à la main » et un notebook d'entraînement sur les variables et les affectations ;
  3. un QCM d'auto-évaluation ;
  4. un point de cours pour présenter le typage des données ;
  5. un notebook d'entraînement sur les types ;


Afficher le cours







Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :

- NSI Première Partie 1 Chapitre 2 Variables et affectation

- NSI Première Partie 1 Chapitre 2 Types

Téléchargement

Téléchargement des ressources

Chapitre 3 : les fonctions


image


image

Grace Murray Hopper est une informaticienne américaine et Rear admiral (lower half) de la marine américaine, née le 9 décembre 1906 à New York et morte le 1er janvier 1992 dans le comté d'Arlington. Pionnière de la programmation informatique, Grace Hopper a contribué au développement du langage COBOL et a joué un rôle essentiel dans le développement des premiers ordinateurs.




La notion de fonction est abordée rapidement dans le cours.

A l’instar de la notion de variable, la notion de fonction reflète deux modes de pensée différents en Mathématiques et en Informatique.

En Mathématiques, elle correspond à une relation entre deux ensembles, alors qu’en Informatique, elle fait réf ́erence à un procédé de calcul.

L’idée générale d’une fonction informatique est donc d’associer un nom à une séquence d’instructions particulière (on parle alors d’encapsulation) afin de pouvoir la réutiliser ultérieurement dans le programme, voire dans un autre programme.

Le but de ce chapitre est de présenter la notion de fonction et de manipuler des fonctions sur des exemples simples afin de pouvoir bien les appréhender.

On propose le déroulé suivant :
  1. un point de cours pour présenter la notion de fonction : déclaration, syntaxe ;
  2. un notebook pour visualiser le fonctionnement d'une fonction lors de son appel et de son exécution ;
  3. un point de cours sur les appels de fonctions et les portées des variables ;
  4. un notebook d'entraînement pour comprendre et manipuler des fonctions ;
  5. un QCM d'auto-évaluation ;
  6. un notebook d'entraînement pour créer ses propres fonctions ;
  7. un exercice complémentaire bilan (qui peut-être facultatif).


Afficher le cours







Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :

- NSI Première Partie 1 Chapitre 3 Fonctions introduction

- NSI Première Partie 1 Chapitre 3 Fonctions partie 1

- NSI Première Partie 1 Chapitre 3 Fonctions partie 2

Téléchargement

Téléchargement des ressources

Chapitre 4 : conditions et embranchements


image


image

Fei-Fei Li est informaticienne et chercheuse en intelligence artificielle. Ses activités de recherche concernent l'apprentissage artificiel, l'apprentissage profond, la vision par ordinateur et les neurosciences cognitives. Elle est la principale instigatrice de la base d'images ImageNet.




Dans la vie courante, on est souvent confronté à des choix et on choisit de faire telle ou telle chose suivant les circonstances que l’on observe.

En algorithmique et programmation, on observe le même type de phénomène :

si une condition donnée est vraie, alors je vais réaliser telles instructions ; mais, si elle est fausse, alors je poursuis ce que j’ai à faire ou je réalise d’autres instructions (qui peuvent elles-mêmes dépendre d’une nouvelle condition).

Cette structure algorithmique est appelée structure d’embranchement.

Le but de ce chapitre est d'introduire et manipuler les notions de conditions et de tests, ainsi que les structures d'embranchement.

On propose le déroulé suivant :
  1. un point de cours pour présenter les notions de conditions et de tests ;
  2. un notebook d'entraînement sur les conditions et les tests ;
  3. un QCM d'auto-évaluation ;
  4. un point de cours pour présenter les structures d'embranchement ;
  5. deux notebooks d'entraînement sur les structures d'embranchement ;
  6. un QCM d'auto-évaluation ;
  7. des exercices complémentaires facultatifs utilisant la bibliothèque turtle.


Afficher le cours




Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :
- NSI Première Partie 1 Chapitre 4 Conditions et tests

- NSI Première Partie 1 Chapitre 4 Embranchements simples

- NSI Première Partie 1 Chapitre 4 Embranchements multiples

Téléchargement

Téléchargement des ressources

Chapitre 5 : boucles


image


image

Rediet Abebe est une informaticienne et chercheuse en intelligence artificielle.. Elle travaille sur des questions d'équité, de justice et d'inclusion dans les systèmes d'apprentissage automatique.




Les structures de boucle sont des structures algorithmiques qui permettent de répéter des instructions.

Le nombre de répétitions que l’on souhaite réaliser peut être prédéfini à l’avance. On parle alors de boucle itérative, ou boucle bornée.

Mais, le nombre de répétitions que l’on va réaliser peut aussi être inconnu, car dépendant d’une condition qui doit être vérifiée. Dans ce cas, on parle alors de boucle conditionnelle, ou boucle non bornée.

Le but de ce chapitre est d'introduire et manipuler ces deux notions de boucle.

On propose le déroulé suivant :
  1. un point de cours pour présenter les boucles itératives ;
  2. un notebook d'entraînement sur les boucles itératives ;
  3. un QCM d'auto-évaluation ;
  4. un point de cours pour présenter les boucles conditionnelles ;
  5. un notebook d'entraînement sur les boucles conditionnelles ;
  6. un QCM d'auto-évaluation ;
  7. des exercices complémentaires facultatifs utilisant la bibliothèque turtle.


Afficher le cours




Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :

- NSI Première Partie 1 Chapitre 5 Boucles itératives

- NSI Première Partie 1 Chapitre 5 Boucles conditionnelles

Téléchargement

Téléchargement des ressources

Chapitre 6 : listes




image

Maria Klawe est une mathématicienne et informaticienne canadienne et américaine. Elle est présidente depuis 2006 de Harvey Mudd College (en), une université scientifique et d'ingénierie californienne, dont elle est la première femme à exercer cette fonction. Elle s'est fortement engagée en faveur de la présence des femmes dans les disciplines STEM




En Python, un tableau est assimilé à une structure spécifique appelée liste (type list).

Le but de ce chapitre est de comprendre et manipuler ce nouveau type de donnée.

On propose le déroulé suivant :
  1. un premier notebook pour introduire cette nouvelle structure de données ;
  2. un point de cours pour formaliser le type list : définition, indexation, opérateurs et tests ;
  3. deux notebooks d'entraînement pour manipuler les bases des listes, suivis d'un QCM d'auto-évaluation ;
  4. un point de cours où l'on aborde les parcours de listes ;
  5. un notebook d'entraînement sur les parcours de listes, suivi d'un QCM d'auto-évaluation ;
  6. un point de cours pour présenter quelques fonctions et méthodes agissant sur les listes ;
  7. deux notebooks d'entraînement sur ces différentes fonctions, suivis d'un QCM d'auto-évaluation.



Afficher le cours




Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :

- NSI Première Partie 1 Chapitre 6 Listes introduction

- NSI Première Partie 1 Chapitre 6 Listes définition et indexation

- NSI Première Partie 1 Chapitre 6 Listes compréhension

- NSI Première Partie 1 Chapitre 6 Listes parcours

- NSI Première Partie 1 Chapitre 6 Listes fonctions méthodes

- NSI Première Partie 1 Chapitre 6 Listes méthode append

Téléchargement

Téléchargement des ressources

Chapitre 7 : tuples


image


image

Elisa Bertino est une informaticienne et chercheuse en sécurité informatique et en protection des données. Elle agit en tant que directrice de recherche du CERIAS, le Centre d'éducation et de recherche en assurance et sécurité de l'information, un institut rattaché à l'Université Purdue.




Au chapitre 6, nous avons vu que les listes Python permettent de stocker, à l'instar de tableaux, différentes données afin de pouvoir les utiliser ultérieurement, voire les modifier ou les supprimer.

Dans certains cas, il peut être intéressant d’avoir une structure de données qui puisse stocker plusieurs éléments simultanément comme dans un tableau, mais qui ne puisse pas être modifié par la suite afin, par exemple, d’éviter certaines erreurs de manipulation.

En Python, ce type de structure est appelé tuple (type tuple), ou n-uplets en référence à une structure mathématique analogue. Par construction, ce type de structure est très proche du type list et est non modifiable.

Le but de ce chapitre est de comprendre et manipuler ce nouveau type de donnée.

On propose le déroulé suivant :
  1. un point de cours pour présenter le type tuple ;
  2. deux notebooks : le premier sur les manipulations de base des tuples et le second pour approfondir ce type de donnée ;
  3. un QCM d'auto-évaluation.



Afficher le cours




Accès direct via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :

- NSI Première Partie 1 Chapitre 7 Tuples 1/2

- NSI Première Partie 1 Chapitre 7 Tuples 2/2

Téléchargement

Téléchargement des ressources

Chapitre 8 : textes et fichiers


image


image

Shafi Goldwasser est une informaticienne américano-israélienne. Elle est professeure au MIT et à l'Institut Weizmann. Elle a reçu le prix Grace Murray Hopper en 1996, le prix Gödel en 1993 et en 20015 et le prix Turing en 20126, pour ses travaux autour des preuves interactives en théorie de la complexité.




Les chaînes de caractères représentent l'un des type de base en informatique. On les retrouve dans de nombreuses manipulations de base : affichage de texte, gestion du clavier, manipulation de fichiers, etc.

Le but de ce chapitre est de comprendre et manipuler les chaînes de caractères. On commnence par étudier le type de base correspondant (type str), puis on applique ce que l'on vient de voir à la gestion des fichiers de type texte brut (extension .txt).

On propose le déroulé suivant :
  1. un point de cours pour présenter le type str ;
  2. un notebook d'entraînement sur la manipulation des chaînes de caractères ;
  3. un QCM d'auto-évaluation ;
  4. un point de cours pour présenter les instructions de base pour la gestion des fichers textes ;
  5. un notebook d'entraînement sur la gestion des fichiers textes ;
  6. un QCM d'auto-évaluation.



Afficher le cours




Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :
- NSI Première Partie 1 Chapitre 8 Textes

- NSI Première Partie 1 Chapitre 8 Fichiers

Téléchargement

Téléchargement des ressources

Chapitre 9 : dictionnaires


image


image

Hedwig Kiesler, dite Hedy Lamarr , est une actrice, productrice de cinéma et inventrice autrichienne, naturalisée américaine. Elle a co-développé un système de communication appelé « saut de fréquence » qui a jeté les bases de la technologie du spectre étalé, utilisée aujourd'hui dans les communications sans fil.




Au chapitre 6, nous avons vu qu'en Python un tableau (au sens usuel du terme) est assimilé à une structure spécifique appelée liste>

En informatique, il existe d'autres types de tableaux, comme les tableaux associatifs qui fonctionnent suivant des paires clé:valeur, la clé correspondant à une entrée du tableau et la valeur correspondant à la valeur associée. En Python, un tableau associatif est assimilé à une structure spécifique appelée dictionnaire (type dict).

Le but de ce chapitre est de comprendre et manipuler ce nouveau type de donnée.

On propose le déroulé suivant :
  1. un notebook que l'élève complètera en s'aidant du cours proposé ;
  2. un QCM d'auto-évaluation.



Afficher le cours




Accès direct via Capytale

Dans la zone Rechercher, taper la phrase ci-dessous :

- NSI Première Partie 1 Chapitre 9 Dictionnaires

Téléchargement

Téléchargement des ressources

Chapitre 10 : données en table


image


image

Mary Kenneth Keller, sœur de la charité de la Bienheureuse Vierge Marie, B.V.M. (1913 – 1985), est une religieuse catholique américaine qui fut enseignante et pionnière dans les sciences informatiques. Elle est la première femme à obtenir un doctorat en informatique aux États-Unis. Elle est pionnière de l'intelligence artificielle, a cofondé l'AI Lab à l'Université Stanford et a contribué à la création du langage de programmation BASIC.




Au chapitre 8, nous avons appris à manipuler les fichiers de type texte brut (extension .txt).

Le but de ce chapitre est d'apprendre à manipuler un autre type de fichier : les fichiers csv.

On propose le déroulé suivant :
  1. un notebook d'introduction à la manipulation des fichiers csv, faisant office de cours ;
  2. un notebook d'approfondissement et d'entraînement.




Le cours est inclus dans le TP ci-dessous.



Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :
- NSI Première Partie 1 Chapitre 10 Données en table 1/2

- NSI Première Partie 1 Chapitre 10 Données en table 2/2

Téléchargement

Téléchargement des ressources

Projets de programmation Python


image


image

Cynthia Breazeal est une professeur associée d'Arts des médias et Sciences au Massachusetts Institute of Technology (MIT), où elle dirige le Personal Robots Group du MIT Media Lab. Elle a créé le robot social Jibo et a contribué au développement de la robotique humanoïde.




On propose ci-dessous, uniquement en téléchargement, divers projets de programmation Python.







Jeu du morpion

image

Projet guidé au format notebook pour implémenter une version console du jeu du morpion.
Cliquer ici pour télécharger ce projet.




Jeu du pendu

image

Projet guidé au format notebook pour implémenter une version console du jeu du pendu. Une liste de mots à trouver est fournie sous la forme d'un fichier texte à joindre au notebook.
Cliquer ici pour télécharger ce projet.




Jeu découverte

image

Projet d'initiation à la programmation événementielle nécessitant un EDI sur lequel est installé la bibliothèque pygame. Une bibliothèque graphics_nsi et sa documentation sont fournies. Les élèves apprennent les rudiments de la programmation événementielle à travers divers exercices liant interface graphique et interaction avec la souris et le clavier. Un mini-projet guidé est également proposé.
Cliquer ici pour télécharger ce projet.




Traitement d'images


image

Projet guidé au format notebook pour s'initier au traitement d'images. On présente les formats d'images en niveau de gris et on manipule en particulier les images PGM. Les images sont représentées sous la forme de listes de listes.
Cliquer ici pour télécharger ce projet.

Partie 2 : représentation des données


écran code binaire

Toute machine informatique manipule une représentation des données dont l’unité minimale est le bit 0/1, ce qui permet d’unifier logique et calcul. Les données de base sont représentées selon un codage dépendant de leur nature : entiers, flottants, caractères et chaînes de caractères. Le codage conditionne la taille des différentes valeurs en mémoire.




Cette partie, entièrement consacrée à la représentation des données sous forme binaire, abordera les points suivants :


  1. Booléens :
    • valeurs booléennes ;
    • opérateurs booléens : and, or et not ;
    • expressions booléennes ;
    • manipulation de tables de vérité.

  1. Codage des entiers naturels :
    • représentation binaire ;
    • représentation hexadécimale ;
    • passage entre les deux représentations.

  1. Codage des entiers :
    • méthode du complément à deux ;
    • évaluation du nombre de bits nécessaires à l'écriture d'un entier en machine.

  1. Codage des flottants :
    • nombres à virgule finie en base 2 ;
    • représentation des nombres flottants ;
    • représentation des nombres réels ;
    • initiation à l'arithmétique flottante ;
    • test d'égalité entre deux flottants.

  1. Codage des caractères :
    • représentation des textes en machines ;
    • exemples d'encodage : ASCII, ANSI, ISO-8859-1, Unicode ;
    • avantages et désavantages des différents systèmes d'encodage.

Chapitre 1 : les booléens



image

Monica Sin-Ling Lam Monica Sin-Ling Lam est une informaticienne américaine et chercheuse en compilation de programmes et en systèmes de langages de programmation. Elle est professeure au département d'informatique de l'université Stanford. Elle contribue à la recherche sur un large éventail de sujets relatifs aux systèmes informatiques, notamment les compilateurs, l'analyse de programmes, les systèmes d'exploitation, la sécurité, l'architecture matérielle et l'informatique haute performance.




Entre 1844 et 1854, un mathématicien britannique, George Boole, crée une algèbre binaire, dite booléenne, n’acceptant que deux valeurs numériques : 0 et 1.

Grâce à Claude Shannon en 1938, cette algèbre aura de nombreuses applications en téléphonie et en informatique, notamment pour la représentation des données dont l’unité minimale est le bit 0/1.

Le but de ce chapitre est de présenter la notion de booléens et de manipuler quelques expressions booléennes simples.

On propose le déroulé suivant :
  1. un point de cours pour présenter les variables booléennes, les opérateurs booléens et les expressions booléennes avec, notamment, la manipulation de tables de vérité ;
  2. des exercices d'entraînement pour manipuler tous les concepts vus dans le cours.


Afficher le cours




Afficher les exercices




Il n'y a pas de ressources à télécharger.

Chapitre 2 : représentations des nombres entiers naturels


image


image

Katherine Johnson est une mathématicienne et informaticienne américaine. Réputée pour la fiabilité de ses calculs en navigation astronomique, elle conduit des travaux techniques à la NASA qui s'étalent sur des décennies. Elle a travaillé pour la NASA et a joué un rôle crucial dans les calculs orbitaux pour les missions spatiales, notamment pendant le programme Mercury.



En informatique, toutes les données, quelles qu'elles soient, sont représentées par une succession de 0 et de 1 appelé mot binaire.

La représentation d'une donnée sous forme de mot binaire est appelée représentation binaire de la donnée.

Le but de ce chapitre est de présenter et manipuler sur des exemples simples et pratiques les représentations binaires des nombres entiers naturels.

On propose le déroulé suivant :
  1. un point de cours expliquant pourquoi les données sont représentées par des mots binaires, puis présentant les représentations binaires et hexadécimales des nombres entiers naturels ;
  2. des exercices d'entraînement pour manipuler les représentations binaires et hexadécimales des nombres entiers naturels ;
  3. un notebook permettant d'implémenter deux fonctions de conversion : l'un de l'écriture décimale d'un entier naturel vers son écriture binaire, et l'autre de l'écriture binaire d'un entier naturel vers son écriture décimale.


Afficher le cours




Afficher les exercices




Accès via Capytale

Dans la zone Rechercher, taper la phrase ci-dessous :

- NSI Première Partie 2 Chapitre 2 Codage entiers naturels

Téléchargement

Téléchargement des ressources

Chapitre 3 : représentation des nombres entiers (entiers signés)


image


image

Cynthia Dwork est une informaticienne américaine, professeur à l'Université Harvard. Elle y occupe la chaire Gordon McKay en informatique ; elle est également Radcliffe Alumnae Professor au Radcliffe Institute for Advanced Study, et professeure affiliée à la Faculté de droit de Harvard. Elle est connue pour ses recherches visant à formuler des fondements mathématiques rigoureux à l'analyse des données préservant la zone privée.




Dans le chapitre 2, nous nous sommes intéressés à la représentation binaire des entiers naturels.

Dans ce chapitre, nous nous intéressons à la représentation des nombres entiers (relatifs) également appelés entiers signés ou encore integer en anglais.

Il s’agit ici d’étendre la représentation des entiers naturels aux entiers négatifs tout en conservant la représentation des entiers naturels vue au chapitre précédent.

On propose le déroulé suivant :
  1. un point de cours présentant deux représentations des entiers signés : l'une par la réservation d'un bit de signe et l'autre par la méthode du complément à deux ;
  2. des exercices d'entraînement pour manipuler les représentations binaires des entiers signés.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 4 : représentation des nombres réels (flottants)


image


image

Telle Whitney est une nformaticienne et ancienne présidente de l'Anita Borg Institute, qui encourage la participation des femmes dans l'informatique. Elle a cofondé la Grace Hopper Celebration of Women in Computing avec Anita Borg en 1994. Elle a obtenu un baccalauréat en informatique de l' Université de l'Utah en 1978 et un doctorat en informatique de Caltech en 1985. Elle a déménagé dans la Silicon Valley pour travailler dans l'industrie des puces, créant des puces et les logiciels qui les prennent en charge.




Le but de ce chapitre est de présenter et manipuler sur des exemples simples et pratiques les représentations binaires des nombres à virgules appelés nombres flottants.

On propose le déroulé suivant :
  1. un point de cours expliquant comment sont représentés en binaire les nombres flottants et quels sont les liens entre nombres flottants en Informatique et nombres réels en Mathématiques. On inclut également une partie optionnelle sur l'arithmétique flottante ;
  2. des exercices d'entraînement pour manipuler les représentations binaires des nombres flottants sur quelques exemples simples.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 5 : représentation des caractères


image


image

Corinna Cortes est une informaticienne danoise et américaine, connue pour ses contributions à l'apprentissage automatique. Elle est directrice de Google Research à New York et est récipiendaire du prix Paris-Kanellakis pour ses travaux sur les fondements théoriques des machines à vecteurs de support et l'exploration de données.




Le but de ce chapitre est de présenter et manipuler sur des exemples simples et pratiques les représentations binaires des caractères.

On propose le déroulé suivant :
  1. un point de cours expliquant les différentes normes d'encodage des caractères et les problèmes que cela engendre. On termine par une présentation de la norme Unicode ;
  2. des exercices d'entraînement pour manipuler les représentations binaires des caractères sur quelques exemples simples.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Partie 3 : architecture des ordinateurs


image

Exprimer un algorithme dans un langage de programmation a pour but de le rendre exécutable par une machine dans un contexte donné.

La découverte de l’architecture des machines et de leur système d’exploitation constitue une étape importante vers cette transcription, puisque les circuits électroniques sont au coeur de toutes les machines informatiques et que les systèmes d’exploitation gèrent et optimisent l’ensemble des fonctions de la machine, de l’exécution des programmes aux entrées-sorties et à la gestion d’énergie.




Cette partie, entièrement consacrée à l'architecture des ordinateurs, abordera les points suivants :


  1. Historique et évolution des ordinateurs :
    • pourquoi les ordinateurs ? ;
    • les différentes générations d'ordinateurs ;
    • les transistors, circuits intégrés et microprocesseurs ;
    • les langages informatiques ;
    • les systèmes d'exploitations.

  1. Composants :
    • schéma fonctionnel d'un ordinateur ;
    • carte mère ;
    • types de mémoire ;
    • périphériques ;
    • démarrage de l'ordinateur : BIOS, UEFI et OS.

  1. Architecture de von Neumann :
    • description du processeur : unités fonctionnelles, unité de commande, unité de traitement et horloge ;
    • mémoire principale ;
    • unité d'entrées/sorties ;
    • bus de communication.

  1. Portes logiques :
    • description du transistor ;
    • portes logiques élémentaires ;
    • circuits combinatoires.

  1. Langage assembleur :
    • différentes catégories de langage de programmation ;
    • liaison mémoire/processeur ;
    • initiation au langage assembleur.

  1. Systèmes d'exploitation :
    • exemples de systèmes d'exploitation ;
    • systèmes d'exloitation libres et propriétaires ;
    • fonctions d'un système d'exploitation.

  1. Lignes de commande :
    • découverte des commandes de base ;
    • arborescence de fichiers ;
    • gestion des droits et permissions d'accès aux fichiers.

Chapitre 1 : historique et évolution des ordinateurs


image


image

Karen Spärck Jones née le 26 août 1935 à Huddersfield et décédée le 4 avril 2007 est une scientifique britannique, chercheuse en informatique. Ses travaux concernent le domaine de l'intelligence artificielle, et principalement le traitement automatique du langage naturel et la recherche d'information. Son article publié en 1964 Classification de la synonymie et sémantique est désormais considéré comme un document fondamental dans le domaine du traitement du langage naturel1. En 1972, elle publie dans Journal of Documentation un article qui donne les bases des moteurs de recherche en combinant les statistiques et la linguistique et qui indique de quelles manières les ordinateurs interprètent les relations entre les mots




Depuis des milliers d'années, l'homme a créé, fabriqué et utilisé des outils pour l'aider à calculer. Pourquoi les ordinateurs ? De quand datent-ils ? Comment ont-ils évolués ?

Le but de ce premier chapitre sur l'architecture des ordinateurs est de répondre à ces premières questions générales.

On propose le déroulé suivant :
  1. cinq exercices et un exercice de construction d'une frise chronologique à réaliser en effectuant des recherches sur le Web ;
  2. un point de cours présentant l'essentiel à retenir.


Afficher les exercices




Afficher le cours





Il n'y a pas de ressources à télécharger.

Chapitre 2 : les composants


image


image

Lynn Conway est une informaticienne et ingénieure en électronique. Elle a joué un rôle essentiel dans le développement des techniques de conception de circuits intégrés VLSI (Very Large Scale Integration).




Vu de l’extérieur, un ordinateur est une machine de traitement de l’information : il est capable d’acquérir de l’information, de la stocker, de la transformer en effectuant des traitements quelconques, puis de la restituer sous une autre forme. L’information est bien sûr prise au sens large : ce peut être du texte, des nombres, des sons, des images, etc.

Vu de l’intérieur, un ordinateur est un ensemble de composants électroniques qui coexistent et qui interagissent ensemble afin d’obtenir le résultat voulu par l’utilisateur.

Le but de ce second chapitre sur l'architecture des ordinateurs est de présenter quelques éléments généraux sur les composants d'un ordinateur.

On propose le déroulé suivant :
  1. un premier exercice à résoudre en s'aidant uniquement du cours (recherche documentaire) ;
  2. un second exercice à résoudre en s'aidant éventuellement du Web.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 3 : architecture de von Neumann


image


image

Sophie Wilson est une informaticienne britannique. Elle a conçu l'Acorn Micro-Computer, le premier d'une lignée d'ordinateurs personnels commercialisés par Acorn Computers Ltd, y compris son langage de programmation BBC BASIC. Elle est également à l’origine de l'ensemble de la conception de l'architecture ARM, devenue l'architecture de processeur fondant le plus grand nombre de microprocesseurs vendus au monde, notamment dans les smartphones. Sophie Wilson a été nommée membre de la Royal Society (FRS, FREng) et de la Royal Academy of Engineering (RAEng) au Royaume-Uni




La première description d’un ordinateur dont les programmes sont stockés dans sa mémoire a été élaborée en juin 1945 par le mathématicien John von Neumann (1903–1957) dans le cadre du projet EDVAC (Electronic Discrete Variable Automatic Computer).

Ce modèle, toujours utilisé de nos jours et connu sous le nom d’architecture de von Neumann, consiste à organiser l’unité centrale de l’ordinateur en quatre éléments : la mémoire principale, l'unité de traitement, l'unité de commande et l'unité d'entrées/sorties.

Le but de ce chapitre est de présenter cette architecture en décrivant ces différents composants ainsi que leurs interactions.

On propose le déroulé suivant :
  1. un premier exercice à résoudre en s'aidant uniquement du cours (recherche documentaire) ;
  2. un second exercice (réalisation d'un QCM) à faire en devoir maison (temps prévu : 1 semaine) ;
  3. quelques groupes viennent présenter leur QCM à l'issue de ce travail à la maison.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 4 : portes logiques


image


image

Anca Dragan est professeure associée au département EECS de l'UC Berkeley . Son objectif est de permettre aux robots de travailler avec, autour et à l'appui des gens. Elle dirige le laboratoire InterACT , travaillant sur les algorithmes d'interaction homme-robot, des algorithmes qui vont au-delà de la fonction du robot de manière isolée et génèrent un comportement de robot qui se coordonne bien avec les gens.




Au chapitre 3, nous nous sommes intéressés aux composants des ordinateurs dans l'architecture de von Neumann, ainsi qu'à leurs interactions.

Tous ces composants sont en fait élaborés à partir de circuits électroniques plus ou moins complexes, eux-mêmes construits à partir d’un seul et même type de composant : le transistor.

Ces différents circuits électroniques sont classés en différentes catégories : les circuits logiques élémentaires, également appelés portes, les circuits combinatoires et les circuits séquentiels.

Le but de ce chapitre est de présenter quelques exemples de constructions de tels circuits.

On propose le déroulé suivant :
  1. un point de cours (paragraphe 1) présentant le transistor ;
  2. un premier exercice (exercice 1) permettant de prendre en main le logiciel Logisim et de réaliser les trois portes NON, ET et OU ;
  3. un point de cours (paragraphe 2) pour faire un bilan écrit des trois portes réalisées dans l'exercice 1 ;
  4. trois exercices (exercices 2 à 4) permettant de réaliser à l'aide du logiciel Logisim les trois portes NON ET, NON OU et OU EXCLUSIF ;
  5. un point de cours (paragraphe 3) présentant deux exemples simples de circuits combinatoires : le multiplexeur et l'additionneur 1 bit ;
  6. un exercice (exercice 5) permettant de réaliser un additionneur multi-bits à l'aide du logiciel Logisim ;
  7. un exercice (exercice 6) traitant un circuit combinatoire permettant de réaliser la fonction booléenne EQUIVALENT A.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 5 : langage assembleur


image


image

Frances Allen a essentiellement travaillé sur l'optimisation des compilateurs. Elle a obtenu des résultats importants sur les compilateurs, l'optimisation de code et le calcul parallèle. Elle est la première femme à obtenir le titre d'IBM Fellow, et la première à recevoir le prix Turing.




En informatique, les langages de programmation sont catégorisés en trois grandes catégories :
  • le langage machine ;
  • les langages assembleurs ;
  • les langages de haut niveau.

Le but de ce chapitre est d'expliquer les différences fondamentales entre ces trois grandes catégories et de faire une initiation au langage assembleur avec un jeu d'instructions élémentaires. On montre également plus en détail les interactions entre les différents composants du processeur et la mémoire principale lorsqu'un programme s'exécute.

On propose le déroulé suivant :
  1. lecture interactive du cours et résolution des exercices qui y sont intégrés. On aborde en particulier les points suivants :
    • pourquoi un langage assembleur ?
    • quelques rappels et compléments sur l'architecture de von Neumann ;
    • une initiation au langage assembleur avec un jeu d'instructions très simple et un exemple pas à pas.
  2. des exercices d'entraînement (exercices 1 à 7) pour manipuler le langage assembleur vu en cours ;
  3. un exercice complémentaire (exercice 8) utilisant plusieurs accumulateurs et un jeu d'instructions enrichi.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 6 : systèmes d'exploitation


image


image

Margaret Hamilton est une informaticienne, ingénieure système et cheffe d'entreprise américaine. Elle était directrice du département génie logiciel (« software engineering », terme de son invention2) au sein du MIT Instrumentation Laboratory qui conçut le système embarqué du programme spatial Apollo3. En 1986, elle fonde la société Hamilton Technologies, Inc. à partir de ses travaux entrepris au MIT.




Le but de ce chapitre est de présenter, à travers un TP en autonomie, quelques éléments fondamentaux des systèmes d'exploitation.

On propose le déroulé suivant :
  1. un TP présentant quelques notions clées des systèmes d'exploitation (TP OS).


Afficher le TP (OS)








Il n'y a pas de ressources à télécharger.

Chapitre 7 : lignes de commandes


image


image

Jean Bartik est une informaticienne américaine, membre du groupe des six programmeuses de l'ENIAC. Elle est intronisée en 1997 au Women in Technology International Hall of Fame. En 2008, elle est une des trois lauréates du prix Fellow du Computer History Museum avec Bob Metcalfe et Linus Torvalds.




Le but de ce chapitre est de présenter, à travers deux TP à faire en autonomie, quelques instructions en ligne de commande.

On propose le déroulé suivant :
  1. un premier TP présentant quelques commandes de base (TP1 Terminus) sous la forme d'un jeu ;
  2. un second TP présentant l'arborescence de fichiers et la gestion des droits et permissions d'accès aux fichiers (TP2 Shell).


Afficher le TP1 (Terminus)




Afficher le TP2 (Shell)





Il n'y a pas de ressources à télécharger.

Partie 4 : algorithmique avancée


image

Le concept de méthode algorithmique est introduit ; de nouveaux exemples seront vus en terminale. Quelques algorithmes classiques sont étudiés. L’étude de leurs coûts respectifs prend tout son sens dans le cas de données nombreuses, qui peuvent être préférentiellement des données ouvertes.

Il est nécessaire de montrer l’intérêt de prouver la correction d’un algorithme pour lequel on dispose d’une spécification précise, notamment en mobilisant la notion d’invariant sur des exemples simples. La nécessité de prouver la terminaison d’un programme est mise en évidence dès qu’on utilise une boucle non bornée (ou, en terminale, des fonctions récursives) grâce à la mobilisation de la notion de variant sur des exemples simples.




Cette partie, principalement consacrée à l'algorithmique « papier », abordera les points suivants :


  1. Introduction à l'algorithmique :
    • pourquoi étudier l'algorithmique ? ;
    • qu'est-ce qu'un algorithme ? ;
    • écrire un algorithme : spécification et tests ;
    • prouver un algorithme : terminaison et correction partielle ;
    • comparer des algorithmes : complexité.

  1. Preuve et complexité d'algorithmes :
    • terminaison : variant de boucle ;
    • correction partielle : invariant de boucle ;
    • correction totale ;
    • complexité : échelles de comparaison et temps de calculs.

  1. Tableaux :
    • présentation de la structure des tableaux statiques ;
    • longueur et indexation ;
    • parcours séquentiels ;
    • recherche d'éléments.

  1. Tris de tableaux :
    • tri par sélection ;
    • tri par insertion.

  1. Recherche dichotomique :
    • présentation de l'algorithme : spécifications et principe général ;
    • preuve et complexité.

  1. Algorithme des k plus proches voisins :
    • présentation de l'algorithme ;
    • manipulation de l'algorithme sur un exemple simple.

  1. Algorithmes gloutons :
    • présentation générale du principe des algorithmes gloutons ;
    • étude de quelques exemples classiques :
      • problème du voyageur de commerce ;
      • problème d'organisation ;
      • problème du rendu de monnaie.

Chapitre 1 : introduction à l’algorithmique


image


image

Ada Lovelace est considérée comme la première programmeuse de l'histoire, lors de son travail sur un ancêtre de l'ordinateur : la machine analytique de Charles Babbage. Dans ses notes, on trouve en effet le premier programme publié, destiné à être exécuté par une machine, ce qui fait d'Ada Lovelace la première personne à avoir programmé au monde.




L’algorithmique est l'étude des algorithmes. C'est l'art d'analyser des algorithmes afin d'en mesurer l'efficacité et la fiabilité.

Le but de ce premier chapitre est d'introduire cette branche, à cheval à la fois sur les Mathématiques et l'Informatique, et de présenter quelques questions importantes qui y sont liées.

On propose le déroulé suivant :
  1. un point de cours présentant quelques questions importantes liées à l'écriture des algorithmes : spécifications, tests, preuve et complexité ;
  2. des exercices d'entraînement pour manipuler les spécifications et les tests ;
  3. un notebook d'approfondissement sur les spécifications et les tests.


Afficher le cours




Afficher les exercices




Accès via Capytale

Dans la zone Rechercher, taper la phrase ci-dessous :

- NSI Première Partie 4 Chapitre 1 Spécification et tests

Téléchargement

Téléchargement des ressources

Chapitre 2 : preuve et complexité d’algorithmes


image


image

Jeannette Wing est une professeure d'informatique à l'Université Carnegie-Mellon (sur une chaire intitulée professeur du président). Elle est directrice du département d'informatique. Ses domaines d'intérêt sont les systèmes de spécification et de vérification, concurrents et répartis, ainsi que les langages de programmation.




Lorsque l’on écrit un algorithme, il faut pouvoir s’assurer qu’il s’exécute correctement dans toutes les situations. Un simple jeu de tests ne suffit pas à assurer que le programme se termine et produit le résultat attendu à tous les coups. Dans certaines applications industrielles, comme par exemple les programmes contrôlant la conduite des lignes de mêtro automatiques, il est même vital de démontrer qu’un programme est correct.

Par ailleurs, si plusieurs programmes permettent de répondre à un même problème, il faut être capable de les comparer afin de savoir lequel (ou lesquels) sont les plus efficaces.

Le but de ce second chapitre dédié à l'algorithmique est de présenter les méthodes mises en oeuvre pour répondre à ces deux problématiques qui sont les preuves d'algorithmes et la complexité.

On propose le déroulé suivant :
  1. un point de cours (paragraphe 1) présentant la notion de preuve algorithmique. On introduit en particulier les notions de terminaison avec le variant de boucle et de correction partielle avec l'invariant de boucle, et on illustre ces deux notions sur des exemples simples ;
  2. des exercices d'entraînement (exercices 1 à 4) pour manipuler les variants et invariants de boucle ;
  3. un point de cours (paragraphe 2) pour introduire sur un exemple simple la notion de complexité algorithmique. On définit en particulier une échelle de comparaison et on présente quelques résultats sur les temps de calcul ;
  4. un exercice d'entraînement (exercice 5) pour manipuler le concept de complexité.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 3 : les tableaux


image


image

Radhika Nagpal est une informaticienne et chercheuse indo-américaine dans les domaines des systèmes informatiques auto-organisés, de la robotique d'inspiration biologique et des systèmes multi-agents biologiques . Elle est professeur Augustine en ingénierie dans les départements d'ingénierie mécanique et aérospatiale et d'informatique de l'Université de Princeton .




Dans le chapitre 6 de la partie 1 dédiée à la programmation Python, nous avons introduit la notion de listes (type list) qui permet d'implémenter la structure de données tableau.

Le but de ce chapitre est d'étudier cette structure tableau d'un point de vue algorithmique. On ne s'intéresse ici qu'à des tableaux statiques.

On propose le déroulé suivant :
  1. lecture interactive du cours et résolution des exercices qui y sont intégrés. On aborde en particulier les points suivants :
    • pourquoi des tableaux ?
    • longueur et indexation d'un tableau ;
    • parcours séquentiel d'un tableau ;
    • recherche d'éléments dans un tableau.
  2. des exercices d'entraînement pour manipuler les tableaux d'un point de vue algorithmique (on ne s'interdit pas ici d'implémenter les algorithmes écrits en Python).


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 4 : tris de tableaux


image


image

Adele Goldberg est une informaticienne américaine. Elle a été l'une des co-développeuses du langage de programmation Smalltalk -80 et de divers concepts liés à la programmation orientée objet alors qu'elle était chercheuse au Xerox Palo Alto Research Center (PARC), dans les années 1970.




La recherche d’un élément dans un tableau est plus rapide si celui-ci est trié. Prenons l’exemple d’une bibliothèque : même s’il est long et fatiguant de ranger les livres une fois pour toutes (par exemple dans l’ordre alphabétique), cela vaut mieux que de les laisser en vrac et devoir ainsi parcourir des kilomètres de rayonnage à chaque fois que l’on cherche un livre.

Ceci amène tout naturellement au problème suivant : comment trier un tableau de manière la plus rapide possible pour que celui-ci soit ordonné ?

Le but de ce chapitre est de présenter ici deux méthodes classiques de tri : le tri par sélection et le tri par insertion.

On propose le déroulé suivant :
  1. un point de cours (paragraphes 1 et 2) pour introduire la notion de tri de tableaux. On présente en particulier un premier tri : le tri par permutation ;
  2. un notebook introduisant le tri par sélection ;
  3. un point de cours bilan sur le tri par sélection (paragraphe 3) ;
  4. des exercices d'entraînement (exercices 1 et 2) sur le tri par sélection ;
  5. un notebook introduisant le tri par insertion ;
  6. un point de cours bilan sur le tri par insertion (paragraphe 4);
  7. des exercices d'entraînement (exercices 3 à 5) sur le tri par insertion ;
  8. un exercice complémentaire facultatif sur le tri par dénombrement.


Afficher le cours




Afficher les exercices




Accès via Capytale

Dans la zone Rechercher, taper les phrases ci-dessous :

- NSI Première Partie 4 Chapitre 4 Tri sélection

- NSI Première Partie 4 Chapitre 4 Tri insertion

Téléchargement

Téléchargement des ressources

Chapitre 5 : recherche dichotomique


image


image

Joan Clarke est une cryptologue britannique. Elle est principalement connue pour sa participation au décryptage de la machine Enigma qui codait les communications chiffrées du Troisième Reich. Elle est recrutée en juin 1940 par son ancien superviseur académique Gordon Welchman pour travailler au Government Code and Cypher School (GC&CS), à Bletchley Park, au sein de la Hutte 8, chargée du décryptage des codes de la Kriegsmarine, où elle est par ailleurs la seule femme. Elle devient rapidement l'une des meilleures parmi les pratiquants du banburismus, une méthode de cryptanalyse développée par Alan Turing, dont elle est l'une des plus proches amies et très brièvement la fiancée.




On a vu précédemment comment rechercher un élément dans un tableau. Si celui-ci n'est pas trié, cette recherche nous oblige à parcourir l'intégralité du tableau, que l'élément soit présent ou non. En revanche, si celui-ci est trié, la recherche peut être beaucoup plus efficace comme nous allons le voir.

La recherche dichotomique, ou recherche par dichotomie (en anglais : binary search), est un algorithme de recherche pour trouver la position d’un élément dans un tableau trié.

Le but de ce chapitre est de présenter l'algorithme de recherche dichotomique et de l'appliquer à quelques exemples simples.

On propose le déroulé suivant :
  1. un point de cours présentant le principe général de l'algorithme, ses spécifications, sa preuve et sa complexité dans le pire des cas ;
  2. des exercices d'entraînement sur la recherche dichotomique.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Chapitre 6 : les k plus proches voisins


image


image

Ida Rhodes a été une pionnière de l'analyse de systèmes de programmation, et avec Betty Holberton a conçu le langage de programmation C-10 au début des années 1950s qui serait mis en fonctionnemment dans UNIVAC I3. Elle a aussi conçu l'ordinateur original utilisé par l'Administration de la sécurité sociale américaine. En 1949 le Département du Commerce des États-Unis lui a remi la Médaille d'or pour ses contributions scientifiques et ses applications en électronique digital.




L'algorithme des k plus proches voisins, ou algorithme kNN, est un exemple d'algorithme d'apprentissage automatique (en anglais : machine learning).

Le but de ce chapitre est de présenter, à travers un TP en autonomie, cet algorithme sur quelques exemples simples.

On propose le déroulé suivant :
  1. un TP présentant le principe général de l'algorithme des k plus proches voisins (TP kNN).
  2. un notebook d'entraînement pour implémenter l'algorithme des k plus proches voisins dans un cas simple.


Afficher le TP (kNN)







Accès via Capytale

Dans la zone Rechercher, taper la phrase ci-dessous :

- NSI Première Partie 4 Chapitre 6 kNN

Téléchargement

Téléchargement des ressources

Chapitre 7 : exemples d’algorithmes gloutons


image


image

Mary Allen Wilkes est une programmeuse et conceptrice de logiciel, connue pour son travail avec l'ordinateur LINC (Laboratory INstrument Computer), considéré comme le premier ordinateur personnel. En janvier 1963, le groupe LINC quitte le laboratoire Lincoln pour créer le Centre de technologie informatique en sciences biomédicales sur le campus de Cambridge, dans le Massachusetts.




En informatique, on rencontre souvent des problèmes d’optimisation, c’est-à-dire des problèmes pour lesquels on cherche la meilleure solution possible satisfaisant un certain nombre de contraintes.

En pratique, on cherche à trouver une solution algorithmique pour résoudre de tels problèmes lorsque :
  • le problème possède un très grand nombre de solutions ;
  • on sait évaluer la qualité de chacune des solutions (et donc dire quelle solution est meilleure parmi plusieurs).

Le but de ce chapitre est de présenter une classe d'algorithmes très importante pour la résolution de problèmes d'optimisation : les algorithmes gloutons.

On propose le déroulé suivant :
  1. lecture interactive du cours et résolution des exercices qui y sont intégrés. On aborde en particulier les problèmes d'optimisation classiques suivants :
    • le problème du voyageur de commerce ;
    • un problème d'organisation ;
    • le problème du rendu de monnaie.
  2. des exercices d'entraînement sur les algorithmes gloutons.


Afficher le cours




Afficher les exercices





Il n'y a pas de ressources à télécharger.

Partie 5 : réseaux


image

Les réseaux informatiques permettent de transmettre des informations entre différentes machines (ordinateurs, serveurs, imprimantes, téléphones, voitures, etc.) à travers divers types de connexion (filaire, sans-fil, optioque).

Ces transmissions sont réalisées à partir de règles de communication appelées protocoles.

Chaque machine est repérée sur le réseau à partir d'une adresse unique appelée adresse IP.




Cette partie, entièrement consacrée aux réseaux, abordera les points suivants :


  1. Réseaux :
    • histoire et évolution ;
    • protocoles ;
    • éléments physiques ;
    • modèle TCP/IP ;
    • couches réseaux ;
    • adresse IP et notation CIDR.

  1. Bit alterné :
    • principe général du protocole du bit alterné ;
    • minuteur, acquittement et duplicata.

Chapitre 1 : réseaux


image


image

Radia Perlman, connue sous le nom de « Mère d'Internet », est une ingénieure en informatique qui a inventé le protocole de routage Spanning Tree Protocol (STP), protocole fondamental pour le fonctionnement des ponts en infrastructure de réseaux et a contribué au développement des protocoles réseau.




Le but de ce chapitre est de présenter quelques éléments clés d'un réseau :
  • histoire et évolution ;
  • éléments physiques ;
  • modèle TCP/IP ;
  • couches réseaux et protocoles ;
  • adresse IP et notation CIDR.

On propose le déroulé suivant :
  1. une activité d'introduction sous la forme d'un questionnaire à compléter à partir de deux ressources vidéos ;
  2. un point de cours bilan résumant toutes les notions abordées dans l'activité d'introduction ;
  3. des exercices d'entraînement (exercices 1 à 5) pour compléter les notions vues dans le cours ;
  4. un exercice complémentaire (exercice 6) liant requêtes client-serveur et programmation Python ;
  5. des exercices (exercices 7 à 13) permettant de simuler un réseau à l'aide du logiciel Filius.


Afficher l'activité d'introduction




Afficher le cours




Afficher les exercices




Téléchargement

Téléchargement des ressources

Chapitre 2 : le protocole du bit alterné


image


image

Deborah Estrin est une professeure d'informatique à l'université de Californie à Los Angeles (UCLA). Directrice du Center for Embedded Networked Sensing (CENS). Informaticienne et pionnière de l'informatique mobile et des réseaux de capteurs.




Le protocole du bit alterné est un protocole simple de récupération de perte de paquets.

Le but de ce chapitre est de présenter le fonctionnement de ce protocole.
On propose le déroulé suivant :
  1. lecture interactive du cours et résolution des exercices qui y sont intégrés. On aborde en particulier les points suivants :
    • le rôle du minuteur ;
    • le rôle de l'acquittement ;
    • le problème des duplicatas.


Afficher le cours








Il n'y a pas de ressources à télécharger.

Partie 6 : IHM et Web


image

Lors de la navigation sur le Web, les internautes interagissent avec leur machine par le biais des pages Web.

L’Interface Homme-Machine (IHM) repose sur la gestion d’événements associés à des éléments graphiques munis de méthodes algorithmiques.

La compréhension du dialogue client-serveur déjà abordé en classe de Seconde est consolidée, sur des exemples simples, en identifiant les requêtes du client, les calculs puis les réponses du serveur traitées par le client.

Il ne s’agit pas de décrire exhaustivement les différents éléments disponibles, ni de développer une expertise dans les langages qui permettent de mettre en oeuvre le dialogue tels que PHP ou JavaScript.




Cette partie, entièrement consacrée au Web, abordera les points suivants :


  1. Web statique :
    • langage HTML ;
    • langage CSS ;
    • différencier le fond et la forme.

  1. Web interactif :
    • initiation au langage JavaScript ;
    • comprendre la philosophie de la programmation événementielle ;
    • comprendre que l'interactive se déroule côté client.

  1. Web dynamique :
    • initiation au langage PHP ;
    • initiation aux formulaires d'une page Web ;
    • comprendre la philosophie des pages Web dynamiques ;
    • comprendre que la création des pages dynamique se déroule côté serveur.

Trois projets de création de sites Web jalonneront ces diverses notions.

Chapitre 1 : Web statique


image


image

Elizabeth J. Feinler est une informaticienne américaine, pionnière de l'internet. Entre 1972 et 1989, elle est directrice du Network Information Center (NIC) au Stanford Research Institute (SRI International). En 1972, Feinler dirige la section de recherche de la bibliothèque du SRI quand l'ingénieur Doug Engelbart l'a recrute pour rejoindre l'Augmentation Research Center (ARC), un centre de recherche parrainé par l'Agence pour les projets de recherche avancée de défense (DARPA). Sa première tâche fut d'écrire un guide des ressources pour la première démonstration de l'ARPANET à la Conférence internationale Communication Computer. En 1974, elle est la principale investigatrice pour créer le nouveau Network Information Center (NIC) de l'ARPANET.




Le langage HTML (HyperText Markup Language) permet de décrire la structure et le contenu d’une page web (on parle alors de langage descriptif). Cette description est réalisée à l’aide d’un balisage hypertexte qui est ensuite interprété par le navigateur pour afficher le contenu de la page web.

Le langage CSS (Cascade Style Sheets) permet de modifier les apparences par défaut des différentes balises HTML.

Le but de ce chapitre est de rappeler et approfondir, à travers deux TP à faire en autonomie, quelques éléments clés des langages HTML et CSS vus en classe de Seconde en SNT. Ces différents éléments sont ensuite utilisés pour créer un site Web statique.

On propose le déroulé suivant :
  1. un premier TP (TP1 HTML) présentant quelques éléments clés du langage HTML avec une fiche de synthèse à réaliser et à présenter. Les élèves utiliseront le document ressource Introduction au HTML5 disponible en téléchargement ;
  2. un deuxième TP (TP2 CSS) présentant quelques éléments clés du langage CSS avec une fiche de synthèse à réaliser et à présenter. Les élèves utiliseront les documents ressources Introduction au HTML5 et Introduction au CSS3 disponibles en téléchargement ;
  3. un point de cours bilan reprenant l'essentiel de ce qui a été vu dans le deux TP précédents ;
  4. un troisième TP (TP3 projets) permettant de mettre en oeuvre les notions vues précédemment en HTML et CSS à travers la réalisation d'un site Web statique.


Afficher le TP1 (HTML)




Afficher le TP2 (CSS)




Afficher le cours




Afficher le TP3 (projets)




Téléchargement

Téléchargement des ressources

Chapitre 2 : Web interactif


image


image

Roberta Williams (née le 16 février 1953) est connue pour être à l'origine du jeu vidéo Mystery House, le premier jeu d'aventure graphique, dont le succès fut tel qu'avec son mari Ken Williams, elle créa On-Line Systems en 1980 qui devint en 1982, Sierra On-Line. On lui doit de nombreux autres classiques du jeu d'aventure. La créatrice de jeu-vidéo américaine a mis au point Mystery House en 1980, avec son mari Ken Williams. Autrefois en mode texte uniquement, le monde du jeu-vidéo est alors propulsé dans une nouvelle dimension.




Le langage JavaScript est un langage de programmation interprété permettant de créer des sites Web interactifs, c'est-à-dire des sites Web qui puissent afficher du contenu en fonction d'événements réalisés côté client (clic de souris, survol d'une zone à l'aide de la souris, etc.).

Le but de ce chapitre est double :
  • présenter et manipuler, à travers deux TP à faire en autonomie, quelques éléments clés du langage JavaScript ;
  • comprendre les notions générales liées à la programmation événementielle.

On propose le déroulé suivant :
  1. un premier TP (TP1 introduction) présentant quelques éléments clés du langage JavaScript avec une fiche de synthèse à réaliser et à présenter. Les élèves utiliseront le document ressource Introduction au JavaScript disponible en téléchargement ;
  2. un deuxième TP (TP2 manipulation) pour manipuler et approfondir les notions vues au TP précédent avec une fiche de synthèse à réaliser et à présenter. Les élèves utiliseront les documents ressources Introduction au HTML5, Introduction au CSS3 et Introduction au JavaScript disponibles en téléchargement ;
  3. un point de cours bilan reprenant l'essentiel de ce qui a été vu dans le deux TP précédents ;
  4. un troisième TP (TP3 projets) permettant de mettre en oeuvre les notions vues précédemment en JavaScript à travers la réalisation d'un site Web interactif.


Afficher le TP1 (introduction)




Afficher le TP2 (manipulation)




Afficher le cours




Afficher le TP3 (projets)




Téléchargement

Téléchargement des ressources

Chapitre 3 : Web dynamique


image


image

Susan J. Eggers est une informaticienne américaine connue pour ses recherches sur l'architecture informatique et les compilateurs. Elle est surtout connue pour son travail fondamental dans le développement et la commercialisation de processeurs multithread simultanés (SMT), l'une des avancées les plus importantes de l'architecture informatique au cours des 30 dernières années. Au milieu des années 1990, la loi de Moore battait son plein et, alors que les ingénieurs informaticiens trouvaient des moyens d'installer jusqu'à 1 milliard de transistors sur une puce informatique, l'augmentation de la logique et de la mémoire à elle seule n'a pas entraîné de gains de performances significatifs. Eggers faisait partie de ceux qui ont soutenu que l'augmentation du parallélisme, ou la capacité d'un ordinateur à effectuer de nombreux calculs ou processus simultanément, était le meilleur moyen de réaliser des gains de performances.




Le langage PHP est un langage de programmation impératif orienté objet permettant de créer des sites Web dynamique, c'est-à-dire des sites Web qui puissent afficher du contenu changeant sans l'intervention d'un développeur pour en modifier le code. Ce langage s'exécute sur un serveur et est souvent utilisé pour générer des pages Web à partir de données reçues via un formulaire (page de connexion, achat en ligne, etc.)

Le but de ce chapitre est de comprendre et manipuler quelques notions liées aux formulaires HTML et aux scripts PHP pour générer des pages dynamiques.

On propose le déroulé suivant :
  1. un premier TP (TP1 introduction) présentant quelques notions sur les formulaires HTML et sur les script PHP avec une fiche de synthèse à réaliser et à présenter. Les élèves utiliseront les documents ressources Introduction au PHP et Introduction aux formulaires HTML5 disponibles en téléchargement ;
  2. un point de cours bilan reprenant l'essentiel de ce qui a été vu dans le le TP précédent ;
  3. un second TP (TP2 projets) permettant de mettre en oeuvre les notions vues précédemment sur les formulaires et le PHP à travers la réalisation d'un site Web dynamique.


Afficher le TP1 (introduction)




Afficher le cours




Afficher le TP2 (projets)




Téléchargement

Téléchargement des ressources

Bibliographie et sitographie


image


Bibliographie



Sitographie

Remerciements et crédits


image


Remerciements

Ce site n'aurait jamais pu voir le jour sans les personnes à l'origine de ces différentes ressources :

  • Mathilde Boehm (académie de Lyon) ;
  • Charles Poulmaire (académie de Versailles) ;
  • Pascal Remy (académie de Versailles).
Il n'aurait pas pu aussi voir le jour sans le soutien indéfectible de l'Association des Enseignantes et Enseignants d'Informatique de France (AEIF) qui a permis de l'héberger.
image


Les auteurs de ce site tiennent aussi à remercier les équipes de Basthon et Capytale sans qui les notebooks n'auraient aucun sens, et les équipes de Apps Education pour l'hébergement des différentes ressources téléchargeables.


image
image

Avec les nouveautés de cette année comme geogebra et pyxel_studio si on ajoute l'expérimentation avec Vittascience , ce sont désormais 24 types d'activités qui sont disponibles dans Capytale.


image

Apps.education.fr est une plateforme développée au sein de la Direction du Numérique pour l'Education (DNE), qui propose les outils essentiels du quotidien à l'ensemble des agents de l'Education Nationale. Ce projet offre aux utilisateurs une plateforme de Services Numériques Partagés à l'échelle nationale à laquelle l'agent conserve son accès même en cas de changement d'académie.



Crédits

L'intégralité des ressources présentes sur ce site (pdf, notebooks, ressources téléchargeables) sont sous licence CC BY-SA 4.0.

Pour toutes questions relatives à ce site, vous pouvez écrire aux concepteurs Charles Poulmaire et Pascal Remy.