Première NSI

En Bref,

En classe de première, les thèmes vous permettront de comprendre les différentes notions de bases en informatique: de la programmation au matériel en passant par l'étude d'un réseau:

  • Langages et programmation, dont le langage Python sera le principal support. Donner les bases pour pouvoir programmer dans les autres langages.
  • Les données: nous expliquerons comment sont représentées les types de base en machine: entiers, entiers relatifs, flottants ( avec une virgule ).

En complément, nous expliquerons comment sont représentés les nombres réels en machine.

  • Le matériel et les systèmes d'exploitation: comprendre le fonctionnement d'un ordinateur du matériel au logiciel. Découvrir un autre système d'exploitation, ce qu'est le logiciel libre. Comprendre le fonctionnement d'un réseau comme internet.
  • Le Web: savoir écrire une page internet à l'aide du langage HTML et CSS. Nous utiliserons Javascript et PHP ; deux langages de programmation pour le Web.
  • Algorithmique: Etudier quelques algorithmes plus élaborés comme les algorithmes de tri, les algorithmes gloutons ou des plus proches voisins (KNN).

Des éléments d'histoire de l'informatique seront donnés tout au long de l'année: vous découvrirez des personnages surpenants comme Alan Turing ou Ada Lovelace.

Vous trouverez le nécessaire pour le langage Python en classe de première dans les bases en Python .


Progression

  • Encodage, type et valeurs de base.
    • Entier naturels : base 2, base 16.
    • Entiers relatifs.
    Algèbre booléenne et lois: propriétés, tables de vérité, loi de De Morgan.

  • Langages et programmation
    •Constructions élémentaires.
    Variables, affectation, fonctions et structure conditionnelle.
    •Boucles bornées, Boucles non bornées, variant de boucle.
    •Fonctions: portée des variables, spécification et jeux de tests.

  • Types construits
    Chaîne de caractères.
    •Tuple ou n-uplet, liste, dictionnaire.
    •Compréhension de liste et de dictionnaire, mutabilité
    Matrice.
    Données en table : gestion des fichiers, fichiers CSV, opération sur les tables et jointures.

  • Architecture matérielle & système d’exploitation
    •Circuits combinatoires
    GNU/Linux : ligne de commande, logiciel libre.

  • Encodage, type et valeurs de base.
    Flottants et ASCII, Unicode.
    •Algèbre booléenne et lois: propriétés, tables de vérité, loi de De
    Morgan.

  • Algorithmique
    •Algorithmes fondamentaux : parcours séquentiel de liste, recherche du maximum, tri insertion/selection.
    Complexité .
    •Correction d'un algorithme: invariant.

  • Architecture matérielle & système d’exploitation
    •Architecture de Von Neumann
    •Langage machine
    Réseau et structure en couche : modèle OSI, TCP/IP.

  • Algorithmique
    Recherche dichotomique: améliorer la complexité de l'agorithme de recherche d'une occurence dans une séquence.

  • Le Web
    •Structure d'une page : HTML
    •Mise en forme : CSS
    •Côté client :HTML/CSS, Javascript

  • Algorithmique
    •Algorithmique avancé : algorithmes gloutons.
    •Rendu de monnaie, coloration d’une carte, problème du sac à dos, le voyageur.

  • IHM sur le Web
    •Côté client, côté serveur, http, méthode GET, POST.
    •Javascript, PHP

  • Interface IHM et ioT
    •Réalisation d’une page Web avec NodeRED : prise (et affichage sur la
    page) de différentes valeurs à l’aide d’un capteur.
    •Mini projet Raspberry et SenseHat .

  • Algorithmique
    •Algorithmique avancé : k plus proches voisins.


Projets

Les projets sont regroupés sur la page TP, mini-projets et projets plus élaborés:Projets.
Deux exemples de projets pour l'année de première ou de terminale:
La vidéo ci-dessous présente deux réalisations: un système proie-prédateur et le célèbre jeu de la vie, programmés en Python, avec une interface graphique Tkinter.

Note:

Ces scripts sont lancés sur un système d'exploitation GNU/Linux, le bureau est baptisé MATE. Compiz gère les bureaux 3D.
L'interpréteur Python Spyder est lancé en ligne de commande, ou terminal que nous étudierons en classe. On peut voir les processus au cours de la video lancés avec la commande top.
Les musiques sont jouées dans le script à l'aide du module Pygame.


La video

Projets présentés

Dans l'ordre d'apparition:

Wator

Dans une mer torique, c'est à dire où les extrémités se rejoignent, vivent des thons et des requins, chaque espèces suivant ses propres règles de vie et de reproduction. A chaque vague un poisson se déplace, évidemment si un requin rencontre un thon, il le dévore.

Jeu de la vie

Ce n'est un jeu que sur le choix de la configuration de départ, par exemple trouver une configuration stable, avec cycle, etc. Il admet les règles de vie suivantes pour chaque cellule:

Cellule morte

– Si, à l’instant t, il est dans l’état mort (représenté par la couleur blanche), alors le microcalculateur examine ses 8 voisins ; si 3 exactement sont vivants, il passe dans l’état vivant à l’instant t +1 ; sinon, il reste dans l’état mort.

Cellule vivante

– Si, à l’instant t, il est dans l’état vivant (représenté par la couleur noire), alors le microcalculateur examine ses 8 voisins ; si 2 ou 3 sont dans l’état vivant, le calculateur reste dans l’état vivant à l’instant t+1 ; sinon, il meurt. En résumé : « Naissance si 3 voisins vivants, survie si 2 ou 3 ».

Toutes les naissances et toutes les morts ont lieu en même temps au cours d'une génération.

John von neumann posa les bases des automates cellulaires, et John Conway imagina ce "jeu" vers 1970.