Comprendre et résoudre les problèmes mathématiques élémentaires liés à l'encodage de l'information dans les systèmes informatiques.
- Qu'est ce qu'un code et comprendre le code binaire utilisé par le système informatique ou "langage machine"
- L'encodage et le décodage
- Les bases de la théorie des ensembles et la logique booléenne ou algèbre de Boole
- Comment un système informatique exécute des programmes
A l'issue de ce module vous :
- Comprendrez comment l'information est encodée et utilisée sur des cas concrets (entiers, nombres décimaux, texte)
- Maîtriserez le système binaire et le passage d'un système à l'autre
- Maîtriserez la logique booléenne
- Connaîtrez les grands principes du fonctionnement d'un ordinateur (composants logiques)
Accéder à la fiche d'exercices (PDF)
Voir les programmes et le code source de l'exercice 4
- Voir les programmes pour le changement de base, arithmétique binaire, opérations sur les ensembles et dénombrement, récursion
- Voir la démo compilation du C au code machine
- Voir la démo compilation du C au code machine, la phase de linkage ou comment distribuer des programmes
- Code: The Hidden Language of Computer Hardware and Software, de Charles Petzold (1ere ou 2nd édition), publiée chez Addison Wesley, 2022. Un classique sur le fonctionnement des ordinateurs et l'encodage de l'information. Un must-read
- The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine, de Charles Petzold, publié chez Wiley, 2008. Un excellent livre qui accompagne le lecteur dans le papier fondateur de Turing de 36 pages sur le fondement de l'informatique. Passionnant
- Rétro-ingénierie pour Débutants, Comprendre le langage d’assemblage, de Dennis Yurichev, traduction du russe en français, publié sous licence Creative Commons, version 2023
- Méthodes mathématiques pour l'informatique - 5e édition, Jacques Vélu, Geneviève Avérous, publié chez Dunod, 2019. Ce manuel explique en profondeur tous les thèmes qui constituent le socle des connaissances mathématiques indispensables à tout informaticien·e. (Un peu rude mais complet et bien écrit). Avec exercices corrigés.
- Computer Organization and Design Fundamentals, David Tarnoff, auto-publié, 2005/2007. Livre complet accessible en ligne, en anglais.
- What Every Programmer Should Know About Memory, de Ulrich Drepper (RedHat), publié en novembre 2007
- The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!), un excellent article de Joel Spolsky (2003) sur l'Unicode, l'encodage UTF-8 et les characters sets
- What Every Programmer Should Know About Floating-Point Arithmetic, excellent site open-source qui fournit de nombreuses réponses (correctes) sur les questions liées à l'encodage des nombres rationnels en informatique (nombres à virgule flottante)