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: C, Javascript, PHP etc.
Vous pouvez voir ici l’ évolution de l’utilisation des langages entre 1974 et 2019. - Nous expliquerons comment sont représentées les données. Types de base et types construits: entiers, entiers relatifs, flottants ( avec une virgule ), listes, tuple, etc.
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).
Les élèves du lycée Carnot présentent la spécialité NSI
Cette vidéo est visible sur Peertube
Progression
- Encodage, type et valeurs de base
• Entier naturels : base 2, base 16.
• Entiers relatifs.
• Nombres réels.
• 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é
•Liste de liste (matrices),
•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
•Système d’exploitation, GNU/Linux et ligne de commande,
•Le logiciel libre: définition, enjeux. - Encodage, type et valeurs de base.
- 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 avancée
•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 avancé : algorithmes gloutons.
– Rendu de monnaie, coloration d’une carte, problème du sac à dos, le voyageur. - IHM sur le Web
•Relation client-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 avancée : k plus proches voisins.
Projets
Les projets sont regroupés sur la page TP, mini-projets et projets :Projets.
Deux exemples de projets pour l’année de première et de terminale:
un système proie-prédateur et le célèbre jeu de la vie, programmés en Python, avec une interface graphique assez basique: 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.
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.