Revision sheet: 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).

Test your knowledge

Test your knowledge on Introduction aux fondamentaux de l'informatique with 12 multiple-choice questions with detailed corrections.

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 ?

Take the quiz →

Review with flashcards

Memorize the key concepts of Introduction aux fondamentaux de l'informatique with 12 interactive flashcards.

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.

See flashcards →

Similar courses

Create your own revision sheets

Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.

Sheet generator