Fiche de révision : Introduction aux fondamentaux de l'informatique

Plan du Cours

  1. Fondements de l'informatique
  2. Algorithmique et structures de données
  3. Programmation orientée objet et UML
  4. Bases de données et SQL
  5. Développement web
  6. Réseaux, systèmes et génie logiciel

1. Fondements de l'informatique

Notions clés & Définitions

  • Représentation binaire : Représentation de l’information avec une suite de bits, où chaque position indique une valeur à partir de puissances de 2.
  • Hexadécimal : Base 16 utilisée pour écrire plus compactement des valeurs binaires, avec des chiffres de 0 à 9 puis A à F.
  • ASCII : Codage de caractères qui associe chaque caractère à un nombre, historiquement sur des valeurs de type 7 bits.
  • UTF-8 : Encodage de caractères qui peut stocker des caractères sur un nombre variable d’octets pour couvrir l’Unicode.
  • Pile (Stack) : Structure de données LIFO où les opérations se font au même extrémité, et le dernier élément ajouté est le premier sorti.

Points essentiels

  • La conversion binaire ↔ décimal s’appuie sur la somme des puissances de 2 associées aux bits à 1, en partant de l’unité à la droite.
  • L’hexadécimal se relie directement au binaire par paquets de 4 bits, ce qui facilite une lecture et une écriture plus compactes.
  • Le codage des caractères doit permettre de convertir un symbole lisible en une suite d’octets (ASCII ou UTF-8) pour le stockage et la transmission.
  • La pile fonctionne en LIFO, alors que la file fonctionne en FIFO en sortant les éléments dans l’ordre d’arrivée.
  • La recherche dichotomique nécessite que le tableau soit ordonné pour réduire la zone de recherche à chaque étape.

Astuce mémo

LIFO pour la Pile : dernier entré, premier sorti.

2. Algorithmique et structures de données

Notions clés & Définitions

  • Pseudo-code : Description algorithmique indépendante d’un langage de programmation, utilisant des instructions proches du naturel pour exprimer l’enchaînement des étapes.
  • Traces d'exécution : Enregistrements étape par étape des valeurs (variables et choix) pendant l’exécution pour vérifier le comportement d’un algorithme.
  • Complexité simple : Notion de coût (temps ou nombre d’opérations) décrite de façon qualitative pour comparer des algorithmes à taille d’entrée comparable.
  • Recherche séquentielle : Méthode de recherche qui parcourt les éléments d’un tableau jusqu’à trouver la valeur ou atteindre la fin.
  • Tri (principe général) : Technique visant à réordonner les éléments d’une structure, selon une règle (par exemple croissante), pour faciliter ensuite la recherche.

Points essentiels

  • Un algorithme manipule des variables de types différents, puis choisit un chemin avec des conditions if/else et répète avec des boucles for/while.
  • Les tableaux servent à stocker une suite d’éléments indexés, ce qui permet d’accéder à un élément directement via son indice.
  • Une fonction renvoie une valeur alors qu’une procédure (au sens général du cours) effectue une action sans nécessairement renvoyer.
  • La recherche dans un tableau compare la valeur cherchée avec les éléments parcourus jusqu’à trouver ou épuiser la structure.
  • La complexité simple sert de repère de performance, même sans calcul exact détaillé, pour anticiper si le temps croît rapidement quand l’entrée grandit.

3. Programmation orientée objet et UML

Notions clés & Définitions

  • Classe : Plan décrivant les attributs et méthodes communes à des objets, servant de modèle pour créer des instances.
  • Objet : Instance concrète d’une classe possédant des valeurs pour ses attributs et exécutant ses méthodes.
  • Encapsulation : Principe qui regroupe données et opérations dans une classe et contrôle l’accès via des niveaux de visibilité.
  • Héritage : Mécanisme permettant à une classe fille de réutiliser ou spécialiser le comportement d’une classe mère.
  • Polymorphisme (notion) : Capacité à utiliser une interface commune pour appeler des comportements qui peuvent varier selon le type réel de l’objet.

Points essentiels

  • Le constructeur initialise un objet lors de sa création, tandis que les attributs stockent son état et les méthodes définissent ses actions.
  • La visibilité (public, private, protected) contrôle qui peut accéder aux attributs et méthodes selon le contexte de la classe.
  • La composition modélise une relation où la partie dépend fortement de l’ensemble, alors que l’agrégation traduit une relation plus lâche.
  • En UML, le diagramme de classes montre attributs et méthodes, ainsi que les associations entre classes.
  • Les multiplicités UML précisent le nombre d’instances côté chaque extrémité d’une association (exemples : 1, 0..1, 1..*, *).

Astuce mémo

POO = Classes/Objets, UML = Dessiner les liens, Héritage = Recopie spécialisée.

4. Bases de données et SQL

Notions clés & Définitions

  • Table : Structure organisée en lignes et colonnes, utilisée pour stocker des données relatives à un type d’entité.
  • Clé primaire : Champ (ou ensemble de champs) qui identifie de manière unique chaque ligne d’une table.
  • Clé étrangère : Champ qui référence la clé primaire d’une autre table afin d’exprimer une relation entre données.
  • Jointure : Opération qui combine des lignes de plusieurs tables selon une condition de correspondance.
  • Normalisation (notions) : Démarche visant à organiser les tables pour réduire les redondances et améliorer la cohérence des données.

Points essentiels

  • SELECT, FROM et WHERE servent respectivement à choisir les colonnes/résultats, indiquer les tables source, et filtrer avec des conditions.
  • ORDER BY trie le résultat, GROUP BY regroupe des lignes, et HAVING filtre des groupes en s’appuyant sur des calculs d’agrégats.
  • COUNT, SUM, AVG, MIN et MAX sont des fonctions d’agrégation utilisées avec GROUP BY pour produire des statistiques par groupe.
  • INNER JOIN ne renvoie que les paires correspondantes, tandis que LEFT JOIN conserve toutes les lignes de la table de gauche même sans correspondance.
  • INSERT, UPDATE et DELETE permettent d’ajouter, modifier et supprimer des données, et les relations entre tables reposent sur clés primaires et étrangères.

Astuce mémo

INNER = seulement les matchs, LEFT = la gauche même sans match.

5. Développement web

Notions clés & Définitions

  • HTML : Langage de balisage structurant une page via des éléments comme html, head, body et des balises de contenu.
  • CSS : Langage qui définit la présentation (styles) d’éléments HTML via des sélecteurs.
  • JavaScript : Langage exécuté côté client (dans le navigateur) pour manipuler l’interface et réaliser des traitements avec conditions et boucles.
  • Requête HTTP : Demande envoyée par un client vers un serveur pour obtenir ou modifier une ressource via des méthodes et un protocole web.
  • Formulaire : Ensemble de balises et champs permettant la saisie de données et leur envoi, notamment avec form, input et button.

Points essentiels

  • Une page HTML typique utilise html, head et body pour séparer métadonnées et contenu, puis H1 à H6 pour hiérarchiser les titres.
  • Les balises a et img servent respectivement aux liens et aux images, et form, input et button structurent des formulaires.
  • Les sélecteurs CSS ciblent des éléments à styliser, et les styles associés changent la présentation de ces éléments.
  • En JavaScript, les variables permettent de stocker des données, et les conditions et boucles contrôlent le déroulement du script.
  • Les notions client/serveur et requêtes HTTP rappellent que le navigateur (client) interagit avec un serveur pour récupérer ou agir sur des ressources.

6. Réseaux, systèmes et génie logiciel

Notions clés & Définitions

  • Modèle TCP/IP : Modèle en couches décrivant comment les données circulent sur un réseau, de l’adressage à l’échange applicatif.
  • Modèle OSI : Modèle théorique en couches décrivant des fonctions réseau distinctes de la couche physique jusqu’aux applications.
  • IPv4 : Version d’adressage IP utilisant des adresses sur 32 bits.
  • DNS : Système qui associe des noms de domaine à des adresses réseau afin que l’on puisse joindre une ressource par nom.
  • Git (bases) : Système de gestion de versions conçu pour suivre l’historique des modifications et faciliter le travail collaboratif.

Points essentiels

  • TCP assure un échange fiable et ordonné, tandis que UDP est plus léger mais sans garanties équivalentes de fiabilité/ordre.
  • DHCP automatise l’attribution des paramètres réseau, et DNS traduit les noms en adresses pour accéder aux services.
  • Un NAT modifie la traduction des adresses pour permettre à un réseau local de communiquer avec l’extérieur, et les routeurs relaient les paquets entre réseaux.
  • Linux : ls, cd, pwd, mkdir et rm sont des commandes de base pour lister, se déplacer, afficher le dossier courant, créer des dossiers et supprimer.
  • En génie logiciel, la vérification contrôle que le produit respecte les spécifications, alors que la validation contrôle qu’il répond au besoin réel.

Astuce mémo

TCP = fiable, UDP = rapide; Vérification = specs, Validation = besoin.

Tableaux de synthèse

Pile vs file

StructureOrdre de sortieRègle principale
Pile (Stack)LIFOLe dernier entré sort en premier
File (Queue)FIFOLe premier entré sort en premier

Pièges & confusions fréquents

  1. Confondre POO et UML : UML sert à modéliser (diagrammes), alors que la POO décrit l’organisation en classes et objets.
  2. Inverser inner join et left join : INNER JOIN exige une correspondance, LEFT JOIN conserve la table de gauche même si aucune correspondance n’existe.
  3. Croire que composition et agrégation sont identiques : la composition implique une dépendance plus forte de la partie envers l’ensemble.
  4. Confondre vérification et validation : l’une vérifie l’adéquation aux spécifications, l’autre valide l’adéquation au besoin.
  5. Mélanger trace d’exécution et pseudo-code : la trace décrit l’évolution réelle des valeurs pour des entrées données, le pseudo-code décrit l’algorithme de façon générale.
  6. Penser que la recherche dichotomique fonctionne sans tri : elle suppose une structure ordonnée pour réduire correctement l’intervalle.

Checklist Examen

  1. Identifier et décrire l’usage des variables, types, conditions if/else et boucles for/while dans un algorithme.
  2. Lire et interpréter un pseudo-code, puis construire une trace d’exécution avec les valeurs des variables à chaque étape.
  3. Expliquer l’idée de recherche dans un tableau et distinguer recherche séquentielle vs recherche dichotomique en précisant la condition nécessaire pour la dichotomie.
  4. Décrire un tri au niveau principe général et relier le tri à l’amélioration de la recherche.
  5. Reconnaître les éléments essentiels d’une classe (attributs, méthodes, constructeur) et le rôle de l’encapsulation et de la visibilité.
  6. Distinguer héritage, polymorphisme et composition/agrégation, et interpréter les multiplicités dans un diagramme de classes UML.
  7. Composer une requête SQL avec SELECT, FROM, WHERE, ORDER BY, GROUP BY et HAVING en utilisant des agrégats (COUNT, SUM, AVG, MIN, MAX).
  8. Utiliser correctement les jointures INNER JOIN et LEFT JOIN pour obtenir le bon ensemble de lignes.
  9. Relier clés primaires et clés étrangères à la modélisation des relations entre tables, et décrire l’objectif général de la normalisation.
  10. Reconnaître des structures HTML (html/head/body, h1 à h6, a, img, form/input/button) et l’idée de sélecteurs CSS et de variables JavaScript.
  11. Expliquer les notions client/serveur et le sens d’une requête HTTP, et citer les composants réseau de base vus (TCP/UDP, ports, DHCP, DNS, NAT, routeur).
  12. Distinguer TCP/IP et OSI au niveau modélisation, puis citer des éléments de système Linux (commandes de base, permissions chmod/chown, utilisateurs/groupes, processus ps/top/kill).
  13. Citer des notions de génie logiciel : cycle de vie, analyse des besoins, cahier des charges, tests, vérification vs validation, et gestion de versions Git (bases).

Teste tes connaissances

Teste tes connaissances sur Introduction aux fondamentaux de l'informatique avec 12 questions à choix multiples et corrections détaillées.

1. Dans une représentation binaire, à quoi correspond chaque position d’un bit lorsqu’on convertit un nombre vers le décimal ?

2. Quel est l’avantage principal de l’hexadécimal lorsqu’il est utilisé pour écrire des valeurs binaires ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Introduction aux fondamentaux de l'informatique avec 12 flashcards interactives.

Représentation binaire — définition ?

Représentation de l’information avec des bits.

Hexadécimal — rôle ?

Écriture compacte des valeurs binaires.

ASCII — codage ?

Codage de caractères sur 7 bits.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches