Cours de Première NSI
Bonjour et bienvenue sur ce cours de NSI à destination des classes de première.
Ce site est normalement compatible avec les mobiles. Pour des raisons de simplicité, il n'y a pas de mode clair, uniquement un mode sombre.
Structure du site
-
Cours : Le cours, présenté par thèmes. Les thèmes sont proposés par ordre de dépendances. Une lecture linéaire du cours est donc normalement possible. Le cours inclus des exercices d'illustration.
-
Fiches : Des récapitulatifs de ce qui est à savoir. A l'avenir, les fiches seront intégrées aux cours ou aux entrainements.
-
Entraînement : Des exercices et travaux pratiques, groupés par thème. Ils incluent certains sujets de pratique déjà vus pendant le cours. Des parties notées "récapitulatif" proposant des exercices qui portant sur tous les thèmes précédents seront ajoutées en cours de route.
-
Projets : Des projets qui ont vocation à être faits sur des périodes de cours dédiées, et sur le temps libre.
-
Evaluations : Les sujets des évaluations passées et leurs corrigés.
-
Contributions : Les crédits du site, qui mentionnent des gens ou des outils qui ont directement ou indirectement contribué à la rédaction de ce cours.
Progression
Remarques
- D'une manière générale le cours est trop détaillé et poussé pour des élèves de première. Il subira à l'avenir une réécriture pour extraire les concepts avancés et les proposer en extension.
- La programmation est approchée sous un angle d'abord impératif, centré sur les instructions s'excutant en séquence. Cette approche me pose problème vis à vis de la discipline de programmation que je cherche à transmettre. A l'avenir, le cours expérimentera une approche fonctionnelle d'abord, présentant les fonctions et expressions en détail avant d'aborder l'idée d'instructions et de variables, de manière à bien faire ressortir le caractère intemporel de certaines expressions, et son intérêt. Une telle approche est en cours d'essai dans mon cours de seconde.
- Les chapitres introduisent les notions parfois de manière très dense et condensées. Même si c'est pratique pour revenir dessus plus tard, les notions étant classées et groupées par thème, ça rends parfois le cours lourd à lire. A l'avenir, il faut alléger celà et diffuser certains groupes de notions sur plusieurs chapitres après en avoir introduit le concept.
Algorithmique et programmation | Hardware, réseaux et architecture |
---|---|
Instructions, variables et séquences, types et expressions, conditionnelles et while, fonctions | Codage entiers base 2, base 16, complément à 2. Fonctions booléennes. Codage en virgule flottante. Codage du texte. |
Tableaux indexés, n-uplets, chaînes en tant que séquence, boucle for, mutabilité et effet de bord | |
Dictionnaires | Architecture de Von Neumann |
Données en tables, mise au point de programmes | |
Parcours, recherche, recherche dichotomique, complexité | Réseau |
Tris, recherche dichotomique, complexité | |
Algorithmes gloutons | Systèmes d'exploitation et phériphériques entrées-sorties |
K plus proches voisins (KNN) | Web, Diversité et unité de langages de programmation |
Remarques sur les contenu
Certains exercices sont marqués Difficiles. Celà veut dire qu'ils vont au delà de ce qu'on attends de vous à ce moment du cours. Ne vous découragez-pas si vous n'y arrivez pas.
Certains exercices ou sections, en général en toute fin de chapitre, sont marqués Exploration. Celà veut dire qu'ils abordent des notions qui sont hors programme et non nécessaires pour comprendre le cours. Ce sont des éléments de curiosité, qui peuvent être source de confusion. Il est donc conseillé de les aborder uniquement si vous êtes confiant avec les notions du chapitre.
- Certains exercices ont un nombre de lignes associé, par exemple Implantez une fonction qui affiche le plateau du jeu (10 lignes). Dans ce cas, essayez de faire autant ou moins de lignes (les commentaires et sauts )
Dans les exercices, quand des nombres de lignes sont données, essayez de faire autant ou moins, mais ce n'est pas obligatoire. N'essayez pas de faire le code le plus court possible, mais du code compréhensible, en particulier pour vous ! (ne sont comptées comme lignes que les lignes de CODE. Les commentaires et les sauts de lignes ne comptent pas !)
Essayer de faire un exercice sans les aides au moins une fois, puis pour chaque aide, (aide 1, 2, ...), faites un essai !
Si vous allez voir la solution, pensez bien à CORRIGER votre solution (eventuellement en cachant la solution) à la main jusqu'à ce qu'elle soit bonne, ne vous contentez pas de juste lire la solution et de passer à autre chose.
Certains exercices sont marqués comme "Difficile (D) ou Très Difficile (TD)". Ce sont des exercices qui vont au delà de ce que l'on attends de vous à un moment donné du cours. Ne vous en faites pas si vous n'arrivez pas à les faire. Il est toutefois intéressant d'essayer de les résoudre, et/ou de regarder la solution, si vous avez le temps.
Certains exercices sont marqués comme "Exploration (E)". Ce sont des exercices qui vont chercher les limites des concepts présentés, comme par exemple la syntaxe. Ils seront généralement en toute fin de chapitre. Ce ne sont que des exercices de curiosité, pour ceux qui sont très à l'aise. Les solutions peuvent être contre intuitives et créer de la confusion, ne les regardez pas si vous n'êtes pas parfaitement à l'aise avec les autres exercices!