N’importe quel informaticien de nos jours sait ce que c’est Linux. C’est le système d’exploitationOpen-source et gratuit, adoré par les informaticiens puisqu’il offre beaucoup plus de commanditées aux informaticiens par rapport aux autres systèmes d’exploitation. Néanmoins, dans le marché grand public des PC de bureau, il se place à la 3e place après Windows et Mac OS. L’un des points forts qui rend Linux attrayant pour les informaticiens, est son ouverture et la possibilité de facilement le modifier. Comme vous allez voir sur la vidéo en bas, le processus de démarrage, appelé aussi le processus de boot, de Linux est bien connu et bien documenté, et bien flexible aussi. Contrairement aux autres systèmes d’exploitation. Cet aspect est très intéressant pour les informaticiens d’un point de vue pédagogique, puisque ça permet de comprendre comment un système d’exploitation se comporte. Et aussi d’un point de vue de flexibilité, puisque ça devient plus facile de modifier et de customiser le système d’exploitation aux besoins de l’application.
La vidéo en haut et celle de la chaîne Youtube ByteByteGo. Une très bonne chaîne technique qui explique généralement des concepts informatiques. Vous allez voir dans la vidéo la succession tout le processus de démarrage du système d’exploitation Linux.
De nos jours, Les FPGAs forment le fer de lance éducatif de la conception hardware, et c’est pratiquement le meilleur moyen de créer du hardware par des étudiants. Malgré cela, je l’ai toujours évité. Pour faire apprendre le hardware, j’ai toujours préféré des logiciels de simulation simplistes comme Logisim, ou l’utilisation directe des portes logiques en utilisant des composantes électroniques de la série 74. La raison est que l’apprentissage par FPGA pose plusieurs barrières académiques.
La première barrière, et la plus conséquente à mon avis et sans doute l’argent. Le prix d’une FPGA disons standard, est autour de 10 millions (100000 DA), ce qui est énorme et totalement exorbitant pour un simple étudiant. Pourtant, il existe d’autres moyens pour acquérir des FPGAs avec un prix moins cher. Comme les kits de FPGA vendues dans les sites électroniques chinois. Le compromis avec ces FPGAs c’est que ce sont des FPGAs des générations antérieures. C’est comme de nos jours acheter un PC Pentium 3 pour l’utiliser comme un ordinateur de travail. Il y a aussi une firme chinoise de construction d’FPGAs nommée Tong, qui fournit des produits low-spec (peu performant) mais avec des prix vraiment très bas. J’ai réussi par exemple à trouver en Algérie un modèle de 1 K-portes avec un prix de 3000 DA.
La deuxième barrière est la complexité d’utilisation. En comparaison avec un logiciel de simulation comme Logisim ou l’utilisation directe des portes logiques avec la série 74, les FPGAs sont beaucoup plus complexes. Pour utiliser une FPGA vous devrez tout d’abord, Avoir un bon PC pour installer le logiciel lourd du développement d’FPGA. Avoir une licence du constructeur pour utiliser ce logiciel. Dans certains cas, avoir un câble spécial pour flasher ou supplanter le nouveau circuit dans l’FPGA. La puce FPGA se trouvant sur une carte électronique (PCB) avec des entrées/sorties et plusieurs composantes, vous devrez vous documenter sur cette carte pour pouvoir l’utiliser…etc.
La troisième barrière, aussi en liaison avec la deuxième barrière, c’est le temps d’apprentissage additionnel nécessaire pour pouvoir utiliser les FPGAs. En sachant que l’FPGA est par nature complexe, son utilisation demande un certain temps d’apprentissage. Comme par exemple les logiciels de développement, appelés généralement EDA, en dehors du développement du circuit, une dizaine d’autres étapes sont nécessaires pour pouvoir implanter le circuit développé sur l’FPGA.
La vidéo en haut est hébergé sur la chaîne Youtube d’Asianometry. Une bonne chaîne consacrée au développement hardware et aux puces électroniques. La vidéo ne traite pas à proprement dit les FPGAs, mais plutôt une vue historique sur l’évolution de ces derniers. Intéressant de comprendre comment s’est fait l’évolution de ce hardware particulier, qu’on peut désigner comme du hardware volatile.
Le fonctionnement des réseaux informatiques à un bas niveau, ça veut dire à un niveau proche de la transmission électrique, là où les protocoles essentiels et élémentaires formant l’infrastructure basique qui va construire cet immense réseau d’Internet. On trouve principalement 2 formes d’adresses pour distinguer une entité dans le réseau. La plus connue est sans doute l’adresse IP, c’est principalement l’adresse qui va distinguer votre ordinateur parmi des millions d’ordinateurs sur l’ensemble d’internet. C’est une adresse dite logique, parce qu’elle n’est pas fixe à la machine, et change souvent car elle est en général affectée par le fournisseur d’accès à Internet ISP. La 2e forme d’adresse est l’adresse MAC, et contrairement à l’adresse IP cette adresse est fixe à la machine et ne théoriquement pas être changée. Cette adresse est généralement appelée l’adresse physique, et plus précisément elle se trouve gravée sur la carte réseau (le NIC) de la machine. Contrairement à l’adresse IP, L’adresse MAC est normalement utilisée pour reconnaître les machines locales dans le même réseau, les machines qui ont une connexion physique directe, comme par exemple les ordinateurs, les téléphones, les tablettes connectés au même routeur dans la maison. Dans le réseau local, une machine doit avoir les 2 adresses en même temps, et c’est le protocole ARP qui permet de faire la liaison entre ces 2 adresses en détenant une base de données des adresses de toutes les machines sur le réseau. Sur la vidéo en bas de la chaîne PowerCert Animated Videos plus de détails sont donnés et la manière exacte d’utiliser ces adresses est bien expliquée.
John Conway est un brillant mathématicien qui a travaillé sur un concept qui s’appelle le jeu de la vie. C’est un concept avec un raisonnement un peu particulier, consistant à créer des entités complexes évoluant à partir d’entités simples, cultivées dans un environnement régi par un nombre restreint de règles très simples. Ce jeu a permis après en mathématique, la création ce qu’on appelle les Automates Cellulaires. Mais très récemment, ça a beaucoup évolué et ça a abouti à un nouveau domaine scientifique nommé Artificial Life (ou ALife), consistant à créer de la vie artificielle, et potentiellement intelligente, dans un environnement virtuel contrôlé par des lois et des règles artificielles et des stimulus. La plus récente percée est sans doute le projet Lenia.
Sur les 2 vidéos de l’excellente chaîne Youtube Numberphile, on peut voir l’explication du jeu de la vie, par Conway. Il explique entre autres, comment le jeu s’exécute, l’historique de son évolution, et les différentes études mathématiques effectuées sur ce jeu. Dans ce genre de système, Il est fascinant de voir comment avec des automatismes et des règles si simples, on peut créer des entités relativement évoluées et indépendantes. Et surtout, ça ouvre la porte sur un nombre de créations infini. Mais le principal problème pour ces systèmes, c’est qu’il est très difficile de contrôler ce processus de création. L’évolution dans ce genre de système est tellement complexe qu’il est très difficile de prédire le résultat après un nombre élevé d’itérations. Le plus important c’est d’arriver à créer des systèmes stable dans le temps.
La question naturelle qui se pose pour un informaticien est de savoir s’il est possible de recréer un système informatique en utilisant ces automates. Et s’il est possible de les recréer physiquement, en électronique ou sur une autre technologie d’information. John Conway a déjà évoqué dans les vidéos qu’il est possible de créer des configurations pour le calcul. Ça reste à savoir s’il serait possible de recréer n’importe quel système informatique complet. Peut-être en réussissant à recréer l’une des Portes Universelles (ou même les Transistors), avec la possibilité de faire transmettre l’information, il serait possible de construire des processeurs et des composants hardwares avec des caractéristiques nouvelles et différentes.
Le jeu de Go est un jeu de table comme les jeux d’échecs ou le jeu de dames. Peu connu mondialement mais très populaire en Asie de l’Est, notamment au Japon, en Corée du Sud, et en Chine. À l’instar des jeux d’échecs, c’est un jeu très technique qui demande beaucoup de réflexion. Comme vous allez voir sur la vidéo, ses règles sont très simples mais la quantité de stratégies qui peuvent en découler de ces règles est sans limite. Comme les jeux d’échecs, le jeu de Go baigne dans une culture propre à lui. Il possède une communauté et un nombre énorme d’adeptes, avec des associations, des clubs, des centres de formation, des livres, des cours… etc. Les joueurs haut niveau qui participent aux compétitions mondiales, sont généralement intensément entraînés dès leur plus jeune âge.
Beaucoup de personnes pensent que le jeu de Go est plus technique que le jeu d’échecs, mais réellement, il est difficile de présenter des arguments suffisamment solides dans une activité purement intellectuelle. En tout cas, deux événements historiques à retenir pour ces deux jeux. C’est la défaite de Garry Kasparov, le top mondial des échecs, en 1997 face à l’IA de IBMDeep Blue. Depuis, l’intelligence artificielle est jugée plus forte dans ce jeu que l’être humain. Et aussi plus récemment, en 2016, le champion du monde du jeu de Go Lee Sedol, a perdu face à l’intelligence artificielle de Google AlphaGo. Ce qui démontre la supériorité de l’intelligence artificielle face à l’humain dans ce genre d’exercice intellectuel.
Geohot est le pseudonyme du célèbre hacker du nom de George Hotz. C’était un hacker bien connu dans le début des années 2000 pour ses jailbreak des téléphones iPhone, et surtout célèbre pour être le premier à pouvoir contourner la sécurité de la console de jeux Playstation 3, réputée à être très sécurisée à son époque. Après avoir eu des problèmes avec la justice, notamment avec la société Sony pour le hack de leur console, Il s’est converti à l’intelligence artificielle et a créé sa propre boîte informatique nommée comma.ai, spécialisée dans la vision des véhicules autonomes. Et après cela, juste récemment il a lancé son propre framework en deep learning appelé tinygrad.
La vidéo est un extrait d’une interview avec le célèbre académicien journaliste Lex Fridman (voici le lien de sa chaîne Youtube). Dans la vidéo, on peut remarquer que Geohot prend plus ou moins le point de vue d’un hacker. Il va souligner l’importance d’apprendre des langages bas niveau, comme le langage C et l’assembleur, avec ce qui est rare pour un informaticien, les langages de description hardware comme Verilog et VHDL. En plus de quelques langages fonctionnels comme de Haskell et des langages ML (Machine Learning) comme le TensorFlow et le PyTorch. Geohot dispose d’une chaîne Youtube très intéressante (voici le lien de la chaîne), dans laquelle vous pouvez trouver des vidéos globalement de programmation et des projets qu’il fait. Il dispose aussi d’une chaîne Twitch, sur laquelle il stream de temps en temps, sur laquelle vous pouvez le contacter directement (voici le lien de la chaîne).
La recherche dichotomique, ou encore bien connu en anglais sous le nom de “Binary search”, est un algorithme de recherche bien connu en académie et surtout bien implanté dans le domaine pratique. Ça s’apparente aux arbres binaires dont j’ai récemment écrit un article les concernant. Ils sont apparentés dans le sens où les arbres binaires peuvent implémenter efficacement l’algorithme de la recherche dichotomique.
La vidéo en bas de la chaîne YouTube Computerphile expose très bien le concept de l’algorithme, et même que l’idée derrière cet algorithme est assez simple et intuitive. Supposons un ensemble où vous avez des valeurs ou des entrées ordonnées, comme par exemple un dictionnaire, où les entrées sont ordonnées par ordre alphabétique. La méthode la moins efficace pour chercher un mot est de parcourir les entrées une à une du début à la fin du dictionnaire. Mais en réalité, il est plus optimal de commencer la recherche au milieu. En sachant que les entrées sont ordonnées, vous pouvez deviner si la valeur recherchée se trouve dans la moitié inférieure ou dans la moitié supérieure. Vous venez ainsi d’éliminer le temps de recherche sur la moitié de l’ensemble. Et le processus ensuite va se répéter récursivement pour la moitié restante jusqu’à arriver précisément à trouver la position de votre valeur. C’est ainsi le principe de fonctionnement de la recherche dichotomique.
Théoriquement, cette méthode peut à première vue sembler peu efficace, mais en réalité elle est très très puissante. Si par exemple vous avez un dictionnaire d’un million d’entrées, dans le pire des cas, vous aurez à faire 20 opérations pour trouver votre valeur. Alors que dans une recherche avec la méthode basique de parcourir toutes les entrées, dans le pire des cas, vous aurez à faire un million d’opérations. Entre 20 opérations et un million d’opérations il n’y a pas photo, clairement l’algorithme est très efficace. Et ça l’est encore plus avec des ensembles plus grands, puisque la complexité de cet algorithme est logarithmique. C’est vrai que ça semble vertigineux, si vous ne me croyez pas, vous pouvez tester ça vous-même, en utilisant une calculatrice et en divisant la valeur un million par 2, 20 fois.
C’est un problème que nous, les enseignants, faisons souvent face. Des Flash disque ou clés USB d’étudiants qui sont corrompus par des virus, et leurs fichiers deviennent inaccessibles à l’utilisation. Je crois qu’il est utile et nécessaire d’écrire un petit article avec une vidéo explicative pour faire apprendre aux étudiants la manière à faire pour contourner ce problème. La première chose à prendre en considération est de comprendre le fonctionnement du virus. Dans la plupart des cas, lorsqu’un virus va compromettre une clé USB, il ne va pas supprimer les fichiers déjà existants, mais il va plutôt les faire cacher, et ensuite créer des raccourcis trompeurs avec les mêmes noms des fichiers, qui vont lancer ou exécuter le code du virus si l’utilisateur appuie dessus. Ainsi, la première chose à faire, c’est de supprimer ces raccourcis. C’est très simple de distinguer un fichier ou un dossier raccourci, Il est distingué par une petite flèche, en bas de l’icône du fichier ou du dossier, et généralement il a la taille d’un kilo-octet. Après ça, il faut chercher dans le système d’exploitation à faire afficher les fichiers cachés. Ça dépend du système d’exploitation, mais généralement c’est assez simple de chercher dans les options de Windows “option des dossiers” et faire afficher les fichiers cachés et les fichiers système. Et voilà, maintenant vous pouvez accéder à vos fichiers et dossiers que le virus a fait disparaître, et vous pouvez même changer leurs propriétés pour redevenir les fichiers normaux, fichiers non cachés. La vidéo en bas est une vidéo en arabe, elle permet d’expliquer plus en détail ce processus de récupération des fichiers corrompus dans une clé USB.
Je viens de découvrir ce site web Guru99 presque par hasard. Par la magie de l’internet, j’ai fait la connaissance de l’un des administrateurs de ce site web, en raison que nous proposons presque le même continu sur le Net. Après avoir fait un bref détour sur le site, j’ai pu constater que c’était un site énorme, et pour lui rendre justice, je dois clairement le qualifier de portail au lieu de sites web. Il contient énormément de tutoriel, fait par différents enseignants, Incluant différents thèmes. D’ailleurs, je n’arrive même pas à inclure tout le contenu dans cet article, ainsi je vais lister ici-bas les partis qui me semblent les plus intéressantes :
Personnellement, je trouve la plateforme Aduino, l’un des meilleurs moyens pour permettre aux étudiants et aux initiés de faire une introduction aux systèmes embarqués. Pour faire simple, les systèmes embarqués sont des systèmes qui nécessitent des connaissances en électronique pour construire la plateforme physique, et en informatique pour programmer la plateforme. Ainsi, pour pouvoir faire du système embarqué, il faut au minimum avoir des connaissances dans les 2 disciplines.
J’ai déjà à plusieurs reprises écrit sur Arduino. Mais cette fois-ci, je suis tombé sur une vidéo très approfondie sur le sujet. Parce que, Premièrement, la vidéo ne nécessite de l’étudiant aucune connaissance préalable en informatique et en électronique. Et Deuxièmement, ce qui est le plus intéressant, c’est que l’étudiant n’est pas obligé d’avoir une carte Arduino matérielle pour pouvoir suivre ce cours. Car on retrouve sur la vidéo une référence à un simulateur qui arrive à faire la simulation d’Arduino et de l’électronique avec en plus une superbe interface bien agréable. C’est le simulateur online tinkercad.
La vidéo en question est celle de la chaîne YouTube du site web éducatif www.freecodecamp.org, et comme vu précédemment dans d’autres blogs, c’est un excellent site plein de nombreux cours et tutoriels en informatique.