Quiz d’auto-évaluation
Présentation & objectifs
Les quiz suivants sont là pour vous aider à vérifier que vous avez compris les articles que vous deviez étudier.
À la fin d’un quiz, des explications vous seront données sur vos réponses.
Si certaines sont fausses, vous aurez la possibilité de cliquer sur la question ratée pour réessayer.
Ces quiz sont fournis pour l’auto-évaluation et ne seront ni notés ni stockés.
N’hésitez pas à poser vos questions sur le serveur Discord pour toute précision ou explication !
Quiz
Qu’est-ce qu’un ordinateur ?
# Quelle phrase décrit le mieux un ordinateur ?
1. [ ] Un appareil qui effectue uniquement des opérations arithmétiques ?
> ❌ C’est incorrect car un ordinateur effectue à la fois des opérations arithmétiques et logiques.
1. [x] Un appareil électronique pouvant être programmé pour exécuter des séquences d’opérations arithmétiques ou logiques ?
> ✅ C’est la définition correcte, car un ordinateur suit des séquences d’opérations qui peuvent être arithmétiques et logiques.
1. [x] Une machine qui suit un ensemble d’instructions (programme) stockées dans sa mémoire ?
> ✅ Les ordinateurs exécutent des programmes stockés en mémoire qui dictent leur comportement.
1. [ ] Un appareil mécanique utilisé au 19ème siècle ?
> ❌ Les ordinateurs tels que nous les connaissons sont des appareils électroniques, pas des appareils mécaniques du 19ème siècle.
# Quels sont les composants principaux d’un CPU ?
- [x] Control Unit (CU) ?
> ✅ L’Unité de Contrôle est responsable de diriger le fonctionnement du processeur.
- [x] Arithmetic Logic Unit (ALU) ?
> ✅ L’ALU gère les opérations arithmétiques et logiques au sein du CPU.
- [ ] Random Access Memory (RAM) ?
> ❌ La RAM est un type de mémoire, pas une partie du CPU.
- [x] Registers ?
> ✅ Les registres sont de petits emplacements de stockage dans le CPU qui conservent temporairement des données.
# Quelles sont les caractéristiques de la RAM ?
- [x] Mémoire volatile ?
> ✅ La RAM est volatile, ce qui signifie que son contenu est perdu lorsque l’alimentation est coupée.
- [x] Vitesse d’accès rapide ?
> ✅ La RAM est conçue pour un accès rapide aux données comparé au stockage comme les disques durs.
- [x] Stockage temporaire pour données et instructions ?
> ✅ La RAM contient temporairement les données et instructions pendant que le CPU les traite.
- [ ] Stockage persistant comme HDD/SSD ?
> ❌ Les HDD et SSD sont des formes de stockage persistant, pas la RAM qui est temporaire.
# Quelle architecture stocke les instructions et les données dans la même mémoire ?
1. [x] Architecture von Neumann ?
> ✅ Dans l’architecture von Neumann, les instructions et les données partagent le même espace mémoire.
1. [ ] Architecture Harvard ?
> ❌ Dans l’architecture Harvard, les instructions et les données sont stockées dans des espaces mémoire séparés.
1. [ ] Architecture Harvard modifiée ?
> ❌ Cette architecture est une variation de l’architecture Harvard, pas von Neumann.
# Quels sont les avantages des processeurs multi-cœurs ?
- [x] Amélioration des performances grâce au traitement parallèle ?
> ✅ Les processeurs multi-cœurs peuvent gérer plusieurs tâches simultanément, améliorant les performances.
- [x] Capacités multitâches améliorées ?
> ✅ Les processeurs multi-cœurs permettent un multitâche plus efficace car différents cœurs gèrent différentes tâches.
- [ ] Programmation et développement logiciel simplifiés ?
> ❌ Bien que les processeurs multi-cœurs améliorent les performances, ils rendent souvent la programmation plus complexe, pas plus simple.
- [x] Efficacité énergétique accrue ?
> ✅ Les processeurs multi-cœurs peuvent distribuer les tâches plus efficacement, réduisant la consommation d’énergie.
Le système d’exploitation
# Quelle a été l’une des principales innovations des premiers systèmes d’exploitation dans les années 1960 ?
- [ ] Traitement par lots ?
> ❌ Le traitement par lots était une innovation antérieure, pas spécifique aux années 1960.
- [x] Systèmes de partage de temps ?
> ✅ Le partage de temps a permis à plusieurs utilisateurs d’interagir avec le système simultanément, une innovation majeure des années 1960.
- [ ] Multithreading ?
> ❌ Le multithreading a été développé plus tard comme fonctionnalité des systèmes d’exploitation.
- [x] Environnements multi-utilisateurs ?
> ✅ Les environnements multi-utilisateurs ont permis à plusieurs utilisateurs d’utiliser le système simultanément, une autre innovation clé des années 1960.
# Quelles sont les caractéristiques clés du système d’exploitation Unix développé dans les années 1970 ?
- [x] Portabilité ?
> ✅ Unix a été conçu pour être portable sur différentes plateformes matérielles.
- [x] Multi-utilisateur et multitâche ?
> ✅ Unix supporte plusieurs utilisateurs et le multitâche, ce qui était révolutionnaire à l’époque.
- [ ] Interface graphique utilisateur (GUI) ?
> ❌ Unix était initialement basé sur la ligne de commande et ne comprenait pas de GUI.
- [ ] Navigateur web intégré ?
> ❌ Les navigateurs web ont été développés bien plus tard et ne faisaient pas partie d’Unix dans les années 1970.
# Quel est le rôle du kernel dans un système d’exploitation ?
- [x] Gérer les ressources système comme le CPU et la mémoire ?
> ✅ Le kernel est responsable de la gestion des ressources principales du système.
- [ ] Fournir une interface graphique utilisateur ?
> ❌ C’est le rôle des interfaces utilisateur, pas du kernel.
- [x] Gérer la gestion des processus et la communication inter-processus ?
> ✅ Le kernel gère les processus et leur communication entre eux.
- [ ] Faciliter l’interaction utilisateur via ligne de commande ou GUI ?
> ❌ L’interaction utilisateur est gérée par les shells ou environnements graphiques, pas directement par le kernel.
# Quels composants se trouvent couramment dans les systèmes d’exploitation modernes ?
- [x] Kernel ?
> ✅ Le kernel est le composant central de tout système d’exploitation.
- [x] Shells (ligne de commande ou graphiques) ?
> ✅ Les shells fournissent l’interface permettant aux utilisateurs d’interagir avec le système.
- [ ] Environnement de développement intégré (IDE) ?
> ❌ Les IDE sont des outils logiciels séparés et ne font pas partie du système d’exploitation de base.
- [x] Daemons ou services ?
> ✅ Les daemons ou services tournent en arrière-plan pour gérer les tâches système.
# Laquelle des affirmations suivantes décrit correctement la fonction d’un bootloader dans la séquence de démarrage du système d’exploitation ?
- [ ] Vérifie les composants matériels du système pour détecter des erreurs ?
> ❌ Cette tâche est généralement effectuée par le BIOS ou l’UEFI, pas par le bootloader.
- [x] Charge le kernel du système d’exploitation en mémoire ?
> ✅ Le rôle principal du bootloader est de charger le kernel du système d’exploitation en mémoire.
- [x] Peut fournir un menu pour sélectionner différents systèmes d’exploitation ?
> ✅ Les bootloaders offrent souvent un menu pour choisir entre différents systèmes d’exploitation.
- [ ] Gère l’authentification utilisateur ?
> ❌ L’authentification utilisateur est gérée plus tard par le système d’exploitation lui-même, pas par le bootloader.
Le terminal
# Quelle est la fonction principale d’un terminal ?
- [x] Interagir avec le système d’exploitation en utilisant des commandes ?
> ✅ Le terminal permet aux utilisateurs d’interagir avec le système en tapant des commandes.
- [ ] Afficher des interfaces graphiques utilisateur ?
> ❌ Le terminal est une interface textuelle, pas graphique.
- [x] Exécuter des instructions en ligne de commande ?
> ✅ Les instructions en ligne de commande sont saisies et exécutées via le terminal.
- [ ] Exécuter directement des applications graphiques ?
> ❌ Les applications graphiques ne sont pas lancées directement via le terminal mais via des environnements graphiques.
# Quelles commandes sont utilisées pour naviguer dans les répertoires dans un terminal ?
- [x] `cd` ?
> ✅ La commande `cd` est utilisée pour changer de répertoire.
- [ ] `ls` ?
> ❌ La commande `ls` liste le contenu d’un répertoire mais ne permet pas de naviguer entre eux.
- [ ] `pwd` ?
> ❌ `pwd` affiche le répertoire de travail actuel mais ne le change pas.
- [ ] `mkdir` ?
> ❌ `mkdir` crée des répertoires, mais n’est pas utilisé pour la navigation.
# Quel est le rôle de la commande `ls` ou `dir` dans un terminal ?
- [x] Lister le contenu d’un répertoire ?
> ✅ `ls` ou `dir` liste les fichiers et répertoires dans le répertoire courant.
- [ ] Changer le répertoire courant ?
> ❌ Cette tâche est effectuée par la commande `cd`, pas par `ls` ou `dir`.
- [ ] Supprimer un répertoire ?
> ❌ Les commandes `rm` ou `rmdir` sont utilisées pour supprimer des répertoires.
- [x] Voir les fichiers dans le répertoire courant ?
> ✅ `ls` permet de voir les fichiers et dossiers dans votre répertoire actuel.
# Quelles sont les utilisations correctes des pipes (`|`) dans un terminal ?
- [x] Envoyer la sortie d’une commande comme entrée à une autre commande ?
> ✅ Les pipes sont utilisés pour passer la sortie d’une commande à une autre pour un traitement ultérieur.
- [ ] Copier des fichiers entre répertoires ?
> ❌ La commande `cp` est utilisée pour copier des fichiers, pas les pipes.
- [x] Enchaîner plusieurs commandes ensemble ?
> ✅ Les pipes peuvent être utilisés pour connecter plusieurs commandes sur une seule ligne.
- [ ] Naviguer entre les répertoires ?
> ❌ Les pipes ne sont pas utilisés pour la navigation entre répertoires ; cela se fait avec `cd`.
# Quelles commandes sont couramment utilisées pour gérer les fichiers et répertoires dans un terminal ?
- [x] `cp` ?
> ✅ `cp` est utilisé pour copier des fichiers et répertoires.
- [x] `mv` ?
> ✅ `mv` déplace ou renomme des fichiers et répertoires.
- [ ] `echo` ?
> ❌ `echo` sert à afficher une ligne de texte, pas à gérer des fichiers ou répertoires.
- [x] `rm` ?
> ✅ `rm` est utilisé pour supprimer des fichiers et répertoires.
Le système de fichiers
# Quelle affirmation décrit correctement la hiérarchie du système de fichiers ?
1. [ ] Windows utilise une hiérarchie unique alors que Linux et MacOS utilisent une hiérarchie par lecteur ?
> ❌ C’est l’inverse : c’est Windows qui utilise une hiérarchie par lecteur.
1. [x] Linux et MacOS utilisent une hiérarchie unique partant d’une racine unique `/`, sur laquelle les volumes supplémentaires sont montés ?
> ✅ Contrairement à Windows, Linux et MacOS n’ont qu’une seule racine pour tout le système.
1. [ ] Windows n’utilise pas de lettres de lecteur pour organiser ses volumes ?
> ❌ Windows attribue justement une lettre (`C:`, `D:`, ...) à chaque volume de stockage.
1. [ ] Il n’existe aucune différence entre Windows et Linux/MacOS concernant l’organisation de la hiérarchie ?
> ❌ L’organisation par lecteur (Windows) et l’organisation par racine unique (Linux/MacOS) sont bien différentes.
# Quelles affirmations sont vraies à propos des chemins (*paths*) ?
- [x] Un chemin absolu part toujours de la racine ?
> ✅ Un chemin absolu décrit sans ambiguïté l’emplacement d’un fichier depuis la racine.
- [x] Un chemin relatif part du répertoire de travail courant ?
> ✅ Un chemin relatif ne décrit que les déplacements depuis le répertoire courant.
- [ ] Sous `cmd.exe`, le séparateur de chemin par défaut est le slash `/` ?
> ❌ Sous Windows, le séparateur par défaut est l’antislash `\`, même si `/` est aussi accepté par certains outils récents.
- [x] `..` désigne le répertoire parent ?
> ✅ `.` désigne le répertoire courant et `..` son répertoire parent.
# Quelles affirmations sur les systèmes de fichiers natifs sont correctes ?
- [x] NTFS est le système de fichiers natif de Windows ?
> ✅ NTFS est utilisé par défaut par Windows depuis Windows NT.
- [ ] ext4 est le système de fichiers natif de Windows ?
> ❌ ext4 est le système de fichiers le plus répandu sur les distributions Linux, pas Windows.
- [x] APFS est le système de fichiers natif de MacOS ?
> ✅ APFS est le système de fichiers natif de MacOS depuis High Sierra.
- [x] FAT32 limite la taille des fichiers à 4 Go ?
> ✅ C’est une des limitations connues du format FAT32, qui reste très utilisé sur les clés USB pour sa compatibilité universelle.
# Comment un fichier est-il caché sous Linux ou MacOS ?
1. [ ] Grâce à un attribut dédié, indépendant du nom du fichier ?
> ❌ C’est le mécanisme utilisé par Windows, pas par Linux/MacOS.
1. [x] En faisant commencer son nom par un point `.` ?
> ✅ Tout fichier ou répertoire dont le nom commence par un point est considéré comme caché par convention.
1. [ ] En le plaçant dans le répertoire `/etc` ?
> ❌ `/etc` contient les fichiers de configuration du système, cela ne rend pas un fichier caché.
1. [ ] Il n’est pas possible de cacher un fichier sous Linux ?
> ❌ C’est tout à fait possible, via la convention du nom commençant par un point.
# Concernant les droits d’accès Unix (utilisateur / groupe / autres), quelles affirmations sont vraies ?
- [x] Le droit `x` sur un répertoire est nécessaire pour pouvoir y accéder (`cd`) ?
> ✅ Sans le droit d’exécution, impossible d’entrer dans un répertoire, même en lecture seule.
- [ ] La commande `chmod 755` donne tous les droits à tout le monde ?
> ❌ C’est `chmod 777` qui donne tous les droits à toutes les catégories ; `755` donne rwx au propriétaire et r-x au groupe et aux autres.
- [x] La commande `chown` permet de changer le propriétaire d’un fichier ?
> ✅ `chown` modifie le propriétaire et/ou le groupe propriétaire d’un fichier.
- [ ] Windows utilise nativement le même modèle utilisateur/groupe/autres que Linux et MacOS ?
> ❌ Windows repose sur des listes de contrôle d’accès (ACL), un modèle différent et plus fin.
La programmation Python
# Qu’est-ce qu’un interpréteur, par opposition à un compilateur ?
1. [ ] Il traduit l’intégralité du code source en binaire avant l’exécution ?
> ❌ C’est le rôle d’un compilateur, pas d’un interpréteur.
1. [x] Il traduit et exécute une instruction à la fois ?
> ✅ C’est la principale caractéristique d’un interpréteur comme celui de Python.
1. [ ] Il ne peut être utilisé qu’avec le langage Python ?
> ❌ Le principe d’interprétation existe pour de nombreux langages, pas uniquement Python.
1. [ ] Il transforme automatiquement du code Python en code Java ?
> ❌ Un interpréteur exécute du code, il ne le traduit pas vers un autre langage de programmation.
# Quelles affirmations sur les scripts Python sont correctes ?
- [x] Un script Python porte généralement l’extension `.py` ?
> ✅ C’est la convention habituelle pour les fichiers script Python.
- [x] Un script permet de réutiliser et modifier facilement son code, contrairement à une session interactive ?
> ✅ Contrairement à la session interactive, un script est sauvegardé et peut être relancé ou édité.
- [ ] Un notebook Jupyter porte l’extension `.py` ?
> ❌ Les notebooks Jupyter portent l’extension `.ipynb`.
- [x] On peut exécuter un script avec `python script.py` (ou `python3 script.py` sous Linux/MacOS) ?
> ✅ C’est la commande utilisée pour demander à l’interpréteur d’exécuter l’ensemble d’un fichier script.
# À quoi sert un environnement virtuel Python (`venv`) ?
- [x] Isoler les paquets installés pour un projet donné ?
> ✅ Un environnement virtuel isole le contexte d’un projet du reste de la machine.
- [x] Éviter les conflits entre différentes versions d’un même paquet utilisées par différents projets ?
> ✅ C’est justement le problème que les environnements virtuels permettent d’éviter.
- [ ] Installer l’interpréteur Python lui-même ?
> ❌ L’interpréteur doit être installé au préalable ; `venv` ne fait qu’isoler les paquets installés dans un contexte donné.
- [ ] Remplacer le besoin d’un interpréteur Python ?
> ❌ Un environnement virtuel s’appuie toujours sur un interpréteur Python installé sur la machine.
# Quel outil est utilisé pour installer des paquets externes Python depuis PyPI ?
1. [ ] `venv` ?
> ❌ `venv` sert à créer des environnements virtuels, pas à installer des paquets.
1. [x] `pip` ?
> ✅ `pip` (Package Installer for Python) est l’outil standard pour installer des paquets depuis PyPI.
1. [ ] `apt` ?
> ❌ `apt` est un gestionnaire de paquets système sous Linux, pas un outil Python.
1. [ ] `git` ?
> ❌ `git` est un outil de contrôle de versions, il ne sert pas à installer des paquets Python.
# Quelles affirmations sur les IDE (comme Visual Studio Code) sont vraies ?
- [x] Un IDE regroupe éditeur de code, exécution et débogueur en un seul outil ?
> ✅ C’est la principale valeur ajoutée d’un IDE par rapport à un simple éditeur de texte.
- [ ] Un IDE installe automatiquement un interpréteur Python à sa place s’il n’y en a pas ?
> ❌ Un IDE s’appuie sur les outils déjà installés (interpréteur, compilateur, ...) ; il ne les remplace pas.
- [x] Les extensions permettent d’étendre les fonctionnalités d’un IDE comme Visual Studio Code ?
> ✅ C’est grâce aux extensions (par exemple l’extension Python) que VSCode propose exécution, complétion et débogage.
- [x] Un IDE propose généralement de la coloration syntaxique et de la complétion de code ?
> ✅ Ce sont des fonctionnalités de base offertes par la plupart des IDE.
Le développement collaboratif
# Quelles questions un bon système de contrôle de versions doit-il permettre de répondre pour chaque fichier ?
- [x] Qu’est-ce qui a changé ?
> ✅ Connaître les modifications spécifiques apportées à un fichier est essentiel.
- [x] Pourquoi cela a-t-il changé ?
> ✅ Comprendre la raison d’une modification permet de retracer l’historique du projet.
- [x] Qui a fait la modification ?
> ✅ La traçabilité des responsabilités est une des trois questions fondamentales.
- [ ] Quel est le prix du logiciel utilisé pour éditer le fichier ?
> ❌ Cette question n’a aucun rapport avec le contrôle de versions.
# Quelles sont les briques de base d’un système de contrôle de versions comme Git ?
- [x] Le branchement ?
> ✅ Il permet de diviser le projet en lignes de développement parallèles et isolées.
- [x] La fusion ?
> ✅ Elle permet de combiner intelligemment le travail de plusieurs contributeurs.
- [x] La résolution de conflits ?
> ✅ Elle met en évidence les modifications incompatibles pour que les contributeurs les résolvent ensemble.
- [ ] La compilation automatique du code ?
> ❌ Ce n’est pas une fonctionnalité d’un système de contrôle de versions.
# Quelle commande permet de récupérer un dépôt distant sur son ordinateur pour la première fois ?
1. [ ] `git pull` ?
> ❌ `git pull` met à jour un dépôt local déjà existant, il ne le crée pas.
1. [x] `git clone` ?
> ✅ `git clone` crée une copie locale complète d’un dépôt distant existant.
1. [ ] `git push` ?
> ❌ `git push` envoie des commits locaux vers le dépôt distant, dans l’autre sens.
1. [ ] `git commit` ?
> ❌ `git commit` crée une nouvelle version localement, cela ne récupère rien depuis le dépôt distant.
# Quelles affirmations décrivent correctement les zones de travail de Git ?
- [x] Le *working tree* contient les fichiers sur lesquels vous travaillez ?
> ✅ C’est le répertoire local avec vos fichiers de code, documentation, etc.
- [x] Le *staging* (ou *index*) contient les modifications sélectionnées via `git add` ?
> ✅ C’est la zone intermédiaire avant de valider un commit.
- [ ] Le *local repository* n’existe que sur GitLab ?
> ❌ Le dépôt local existe sur votre machine ; GitLab héberge le dépôt distant.
- [x] Chaque version validée dans le dépôt local correspond à un commit ?
> ✅ Un commit représente une version enregistrée de l’historique du projet.
# Que se passe-t-il en cas de conflit détecté par Git lors d’un `pull` ?
1. [ ] Git écrase automatiquement vos modifications locales avec celles du dépôt distant ?
> ❌ Git ne prend jamais cette décision seul lorsqu’il y a un conflit de contenu.
1. [x] Git signale le conflit et laisse le contributeur le résoudre manuellement dans le fichier concerné ?
> ✅ Git met en évidence les portions en désaccord, mais la résolution reste manuelle.
1. [ ] Le commit local est définitivement perdu ?
> ❌ Le commit local reste disponible ; c’est justement pour cela que le conflit doit être résolu avant de continuer.
1. [ ] Aucune action n’est nécessaire, Git résout tout automatiquement ?
> ❌ Un conflit de contenu (mêmes lignes modifiées différemment) nécessite toujours une intervention manuelle.