Bienvenue sur le Wiki **N**umérique et **S**ciences de l'**I**nformatique. ====== Introduction ====== Ce wiki permet aux élèves de terminale de créer des fiches de révision liées au programme de première et de terminale, afin de préparer leur épreuve de baccalauréat. ---- ====== Les langages utilisés ====== HTML 5, CSS 3 et Javascript sont utilisés pour créer des pages web. L'éditeur de texte est [[https://notepad-plus-plus.org/downloads/|Notepad++]]. Le serveur web utilisé est 'flask' Les bases de données relationnelles sont implémentées en [[https://www.sqlite.org/download.html|SQLite]]. Le langage de programmation utilisé sur les ordinateurs est le [[https://www.anaconda.com/download|Python]]. ---- ====== Les glossaires des langages utilisés ====== Les glossaires sont mis à jour par vos soins. En vous connectant, il vous est possible de les compléter. Vous aurez ainsi à portée de main, les instructions des langages que vous avez utilisés durant la formation. Cela vous sera utile au quotidien pour faire votre travail et pour réviser. Les différents glossaires des langages sont ci-dessous : * [[glossaires:python|Python]] * [[glossaires:html|Html]] * [[glossaires:css|Css]] * [[glossaires:sql|Sql]] * [[https://www.dokuwiki.org/fr:wiki:syntax|Dokuwiki]] ---- ====== Les fiches de révision pour la partie écrite ====== Chaque élève doit compléter une page du wiki parmi celles proposées ci-dessous. Une fois réalisée, une présentation orale de 5 minutes permettra d'introduire la page qui sera par la suite lue par vos camarades. Les fiches de révisions portent sur les thèmes suivant du programme : ===Histoire de l'informatique=== * [[les_fiches_revisions:histoire|Evénements clés de l'histoire de l'informatique. NON EVALUE AU BAC ]] ===Structures des données=== * [[les_fiches_revisions:structure_des_donnees:interface_implementation|Structures de données, interface et implémentation. ]] * [[les_fiches_revisions:structure_des_donnees:vocabulaire|Vocabulaire de la programmation objet : classes, attributs, méthodes, objets. ]] * [[les_fiches_revisions:structure_des_donnees:listes_piles_files|Listes, piles, files : structures linéaires. Dictionnaires, index et clé.]] * [[les_fiches_revisions:structure_des_donnees:arbres|Arbres : structures hiérarchiques. Arbres binaires : noeuds, racines, feuilles, sous-arbres gauches, sous-arbres droits. ]] * [[les_fiches_revisions:structure_des_donnees:graphes|Graphes : structures relationnelles. Sommets, arcs, arêtes, graphes orientés ou non orientés. NON EVALUE AU BAC]] ===Bases de données=== * [[les_fiches_revisions:bases_de_donnees:modele_relationel|Modèle relationnel : relation, attribut, domaine, clef primaire, clef étrangère, schéma relationnel.]] * [[les_fiches_revisions:bases_de_donnes:base_de_donnees_relationelle|Base de données relationnelle. ]] * [[les_fiches_revisions:bases_de_donnees:gestion|Système de gestion de bases de données relationnelles . NON EVALUE AU BAC]] * [[les_fiches_revisions:bases_de_donnees:sql|Langage SQL : requêtes d’interrogation et de mise à jour d’une base de données. KH]] ===Architectures matérielles, systèmes d'exploitation et réseaux=== * [[les_fiches_revisions:architectures_materielles_SE_reseaux:composants|Composants intégrés d’un système sur puce. NON EVALUE AU BAC]] * [[les_fiches_revisions:architectures_materielles_SE_reseaux:processus|Gestion des processus et des ressources par un système d’exploitation.]] * [[les_fiches_revisions:architectures_materielles_SE_reseaux:protocoles|Protocoles de routage (les liens avec les graphes ne sont plus dans le programme limitatif) .]] * [[les_fiches_revisions:architectures_materielles_SE_reseaux:securisation|Sécurisation des communications. NON EVALUE AU BAC]] ===Langages et programmation=== * [[les_fiches_revisions:langages_programmation|Notion de programme en tant que donnée. Calculabilité, décidabilité. NON EVALUE AU BAC]] * [[les_fiches_revisions:langages_programmation:recursivite|Récursivité. ]] * [[les_fiches_revisions:langages_programmation:modularite|Modularité). ]] * [[les_fiches_revisions:langages_programmation:paradigmes|Paradigmes de programmation. NON EVALUE AU BAC]] * [[les_fiches_revisions:langages_programmation:mise_au_point|Mise au point des programmes. Gestion des bugs. ]] ===Algorithmique=== * [[les_fiches_revisions:algorithmique:algo_arbres|Algorithmes sur les arbres binaires et sur les arbres binaires de recherche. ]] * [[les_fiches_revisions:algorithmique:algo_graphes|Algorithmes sur les graphes. NON EVALUE AU BAC]] * [[les_fiches_revisions:algorithmique:diviser_pour_regner|Méthode « diviser pour régner ». ]] * [[les_fiches_revisions:algorithmique:programmation_dynamique|Programmation dynamique. NON EVALUE AU BAC]] * [[les_fiches_revisions:algorithmique:recherche_textuelle|Recherche textuelle. NON EVALUE AU BAC]] ---- ====== Les fiches de révision pour la partie pratique ====== Le programmes ci-dessous doivent être maitrisés. Cette liste n'est pas exhaustive. ====Programme de première==== ===Algorithmique=== Parcours séquentiel d'un tableau : * [[les_programmes_a_connaitre:algorithmique_premiere:recherche_occurence|Ecrire un algorithme de recherche d'une occurrence sur des valeurs de type quelconque. ]] * [[les_programmes_a_connaitre:algorithmique_premiere:recherche_extremum|Ecrire un algorithme de recherche d’un extremum, de calcul d’une moyenne. ]] Tris par insertion, par sélection : * [[les_programmes_a_connaitre:algorithmique_premiere:tri_insertion|Écrire un algorithme de tri par insertion. EG ]] * [[les_programmes_a_connaitre:algorithmique_premiere:tri_selection|Écrire un algorithme de tri par sélection. MM]] Algorithme des k plus proches voisins : * [[les_programmes_a_connaitre:algorithmique_premiere:k_plus_proches|Écrire un algorithme qui prédit la classe d’un élément en fonction de la classe majoritaire de ses k plus proches voisins. ) FM ]] Algorithme glouton : * [[les_programmes_a_connaitre:algorithmique_premiere:glouton|Résoudre un problème grâce à un algorithme glouton. ]] E.T ====Programme de terminale==== ===Structure de données=== //Structures de données, interface et implémentation :// * [[les_programmes_a_connaitre:structure_de_donnees_term:implementation|Écrire plusieurs implémentations d’une même structure de données. ]] //Vocabulaire de la programmation objet : classes, attributs, méthodes, objets. // * [[les_programmes_a_connaitre:structure_de_donnees_term:definition|Écrire la définition d’une classe, accéder aux attributs et méthodes. LH ]] //Graphes : structures relationnelles. Sommets, arcs, arêtes, graphes orientés ou non orientés.// * [[les_programmes_a_connaitre:structure_de_donnees_term:implementation_graphe_adjascence|Écrire les implémentations correspondantes d’un graphe : matrice d’adjacence. NON EVALUE AU BAC]] * [[les_programmes_a_connaitre:structure_de_donnees_term:implementation_graphe_successeurs|Écrire les implémentations correspondantes d’un graphe : liste de successeurs/de prédécesseurs. NON EVALUE AU BAC]] ===Bases de données=== //Langage SQL : requêtes d’interrogation et de mise à jour d’une base de données :// * [[les_programmes_a_connaitre:bases_de_donnees_term:sql_interrogation|Construire des requêtes d’interrogation à l’aide des clauses du langage SQL : SELECT, FROM, WHERE, JOIN. ]] AV * [[les_programmes_a_connaitre:bases_de_donnees_term:sql_insertion|Construire des requêtes d’insertion et de mise à jour à l’aide de : UPDATE, INSERT, DELETE. ]] KR ===Langages et programmation=== //Récursivité :// * [[les_programmes_a_connaitre:langages_term:recursif|Écrire un programme récursif. ]] //Modularité :// * [[les_programmes_a_connaitre:langages_term:api|Utiliser des API (Application Programming Interface) ou des bibliothèques. ]] * [[les_programmes_a_connaitre:langages_term:modules|Créer des modules simples et les documenter. ]] ===Algorithmique=== //Algorithmes sur les arbres binaires et sur les arbres binaires de recherche :// * [[les_programmes_a_connaitre:algorithmique_term:taille_arbre|Calculer la taille et la hauteur d’un arbre. ]] * [[les_programmes_a_connaitre:algorithmique_term:parcours_arbre|Parcourir un arbre de différentes façons (ordres infixe, préfixe ou suffixe ; parcours en largeur d’abord). ]] * [[les_programmes_a_connaitre:algorithmique_term:cle_arbre|Rechercher une clé (noeud) dans un arbre de recherche, insérer une clé (noeud). ]] //Algorithmes sur les graphes :// * [[les_programmes_a_connaitre:algorithmique_term:parcours_profondeur|Parcourir un graphe en profondeur, en largeur. NON EVALUE AU BAC]] * [[les_programmes_a_connaitre:algorithmique_term:cycle|Repérer la présence d’un cycle dans un graphe. NON EVALUE AU BAC]] * [[les_programmes_a_connaitre:algorithmique_term:chemin|Chercher un chemin dans un graphe. NON EVALUE AU BAC]] //Méthode "diviser pour régner" :// * [[les_programmes_a_connaitre:algorithmique_term:diviser_pour_regner_algo|Écrire un algorithme utilisant la méthode "diviser pour régner ". ]] //Programmation dynamique :// * [[les_programmes_a_connaitre:algorithmique_term:dynamique|Utiliser la programmation dynamique pour écrire un algorithme NON EVALUE AU BAC.]] //Recherche textuelle :// * [[les_programmes_a_connaitre:algorithmique_term:boyer_moore|Étudier l’algorithme de BoyerMoore pour la recherche d’un motif dans un texte. NON EVALUE AU BAC]]