Articles sur Blog

La proche fin de la loi de Moore

Pour commencer, on va tout d’abord comprendre c’est quoi la loi de Moore ? Véritablement, ce n’est pas une loi à proprement dit, mais disons une spéculation ou une observation faite par Gordon Moore, le cofondateur de la firme d’Intel, dans laquelle il stipule que le nombre de transistors ou la densité des transistors dans une surface donnée des circuits intégrés doublerait tous les deux ans. Cette observation est souvent mise en avant pour démonter l’évolution plutôt spectaculaire de la technologie des circuits intégrés sur plus de 40 ans. Malheureusement, ces dernières années cette loi n’est pas à la rigueur comme pour les années précédentes, et sa courbe d’évolution tend à régresser. Plus encore, la vidéo de la chaîne Youtube Computerphile en bas, prouve que la limite physique est plutôt proche, puisque la trace sur silicium (silicon en Anglais) va plutôt atteindre une largeur proche de l’atome, et dans ce cas c’est plus les lois de la physique électronique classique qui vont être utilisées mais les lois de la physique quantique, ce qui va totalement changer la donne.

La fin de la loi de Moore

Tutoriels dans différents langages de programmation

Les informaticiens en général doivent consommer une énorme quantité de tutoriels pour se sentir à l’aise face à l’énorme quantité de technologies informatiques qui existent de nos jours, et il n’y a pas plus bénéfique qu’un bon site-web bien structuré et plein de tutoriels sur différents langages et différentes technologies. Le site-web en question est www.w3schools.com, avec une liste, comme vous allez le voir en bas, énorme de langages de programmation. Chaque tutoriel est bien organisé en plusieurs parties, avec pour chaque langage son compilateur online dédié permettant de tester le code étudié directement sur le navigateur. Les tutoriels sont complémentés, pour certains langages, par une base substantielle d’exercices et de quiz, certains langages disposent aussi de fiches de références pour rassembler toutes les ressources du langage dans une seule fiche, il y a aussi des cours en vidéo, mais ces derniers sont pour la plupart payants.

Voici une liste non exhaustive des tutoriels les plus intéressants :

Introduction à Linux

Moi autant qu’enseignant, je ne sais pas si on va le répéter assez souvent pour nos étudiants, mais apprendre Linux est très important, surtout pour un étudiant en informatique, l’étudiant doit impérativement à un moment ou à un autre l’utiliser. Malgré que Microsoft Windows et Apple MacOS sont les systèmes d’exploitation les plus utilisés sur les ordinateurs de bureau et les portables de nos jours, mais à part ça, dans tous les autres secteurs, c’est l’OS (Operating System ou système d’exploitation en Anglais) GNU Linux qui prédomine de loin les autres systèmes, ça inclut les serveurs, le , les supercalculateurs, les systèmes embarqués, l’IoT (Internet of Things)…etc. La vidéo en bas est celle de la chaîne Youtube éducative FreeCodeCamp.org, c’est une excellente vidéo d’introduction aux bases du système d’exploitation Linux, surtout qu’elle se focalise sur le Terminal (ou les commandes textuelles) plutôt que sur l’interface graphique du système.

Apprendre Linux

Les connecteurs et les ports les plus connus

Il y a des connaissances qui ne sont pas apprises à l’université, mais le plus souvent acquises par la pratique et l’expérience, la première chose qui me vient à l’esprit en pensant aux nouveaux étudiants dans le domaine d’informatique, c’est leurs stupeurs et méconnaissances devant l’énorme base de termes et de jargons utilisés dans ce domaine, pas forcément tous les étudiants, il y a quelques-uns qui sont assez aguerries en informatique, mais beaucoup requirent un peu de temps d’adaptation pour ce domaine.

Charte des connecteurs et ports dans un PC

Parmi les connaissances importantes à recueillir pour un informaticien, et qui ne sont pas explicitement apprises dans le cursus, sont la désignation et appellation des différents connecteurs et ports utilisés dans un ordinateur. Justement, l’exploration de l’image en haut donne un aperçu sur les ports et connecteurs les plus communs utilisés dans un ordinateur (cliquez sur l’image pour zoomer).

La constante d’Euler

Il existe des constantes en mathématiques qui sont très connues, que tout étudiant a eu plusieurs fois dans son cursus l’opportunité de les utiliser. Personnellement, pour moi les trois constantes les plus communes sont, Pi, e et i, je pense que beaucoup de monde vont s’accorder pour dire que parmi ces trois constantes, c’est celle d’Euler (e) qui est la moins intuitive à comprendre et qu’elle est le plus souvent acquise sans compréhension exacte de son sens analytique, et mainte fois utilisée dans les formules mathématiques d’une manière disons machinale.

La constante d’Euler

La vidéo en haut de la chaîne YouTube Numberphile, essaye tant bien que mal, d’expliquer la nature de la constante d’Euler, parce que ce n’est pas facile, et elle n’est pas clairement discernable comparée aux autres constantes. Grossièrement parlant, la constante e a un rapport avec le taux de croissance de l’intérêt à travers le temps, par exemple, si vous gagnez disons 5% par jour, la croissance de votre fonds à travers le temps a un rapport avec la constante e, vous pouvez aussi trouver sur google des démonstrations analytique plus aboutis. Le plus marquant historiquement, c’est que cette constante était découverte par trois mathématiciens qui sont très connus académiquement, Bernoulli, Euler et Gauss, c’était pour eux une découverte lors d’un processus d’exploration mathématique.

Les plus importants protocoles sur Internet

Il est important pour tout informaticien d’avoir au minimum, un certain niveau de connaissance concernant les protocoles utilisés dans les réseaux informatiques. Les protocoles sont des mécanismes utilisés pour permettre la communication et le transfert d’information sur les réseaux informatiques et particulièrement sur Internet. La vidéo en bas traite exactement ce point en particulier, elle commence par donner une définition formelle et précise de c’est quoi un protocole réseau, et fait le parcours des principaux protocoles à absolument connaître sans autant être un spécialiste réseau.

Protocoles d’Internet.

Les protocoles abordés sont : l’ARP, le FTP, le SMTP, le HTTP, le SSL, le TLS, le HTTPS, le DNS et le DHCP, ces 9 protocoles forment le backbone ou la colonne vertébrale responsable du fonctionnement d’Internet, la vidéo fait une légère démonstration de comment ces protocoles fonctionnent et interagissent entre eux lors de l’utilisation d’Internet. Un dernier mot concernant la chaîne YouTube Practical Networking de cette vidéo, que j’estime de bonne qualité académique pour faire l’appréciation et la vulgarisation des concepts et technologies utilisées dans les réseaux informatiques.

Temps de chargement d’un condensateur

Le condensateur est l’un des éléments de base dans l’électronique analogique, il est versatile et il peut prendre différents rôles au sein d’un circuit électronique, comme par exemple le stockage de charge électrique, le filtrage de fréquences, le couplage et le découplage, la suppression de bruit…etc. Dans la vidéo en base de la chaîne éducative The Engineering Mindset, un aspect bien particulier et souvent négligé des condensateurs est abordé, c’est celui du temps de recharge et de décharge du condensateur et comment c’est calculé. Juste pour rappel que ce calcul concerne les circuits à courant continu, pour le courant alternatif le condensateur est d’autant plus important, mais utilisé d’une manière différente.

Temps de chargement/déchargement d’un condensateur

Cours avancé sur la programmation en C++

Encore du C++ dans ce blog, le temps n’est pas encore arrivé pour explorer d’autre langage de programmation. Je viens de tomber sur une vidéo de 30 heures qui est à mon avis assez exhaustive pour couvrir l’essentiel du langage C++, il ne faut pas oublier que le C++ est un langage relativement ancien, proche maintenant des quarante années d’existence. qui a évolué au fil du temps et il est devenu de plus en plus massif et très varié. Malgré que la vidéo est de bonne qualité, mais j’ai toujours une préférence pour les livres concernant des matières complexes comme le langage C++, un livre a toujours plus de ressources pour expliquer les choses en profondeur et en détail.

Cours en C++

Personnellement, je n’ai pas eu jusqu’à maintenant le temps de voir la vidéo, j’ai juste fait un parcours sur les éléments abordés dans la vidéo, mais malgré que j’ai dans le passé beaucoup travaillé avec le C++, le C++ moderne nommé dans la vidéo C++20 est relativement différent de l’ancien C++98 d’il y a vingt ans, beaucoup de mécanismes importants ont été rajoutées au langage. Une bonne mise à jour est sans doute indispensable pour des anciens programmeurs de C++ comme moi pour pouvoir savourer ce langage à nouveau.

Raspberry Pi 4, un PC pas cher ?

Il faut signaler avant de commencer que le Raspberry Pi n’est une gamme de PC, mais de SBC, ou Single Board Computer, par définition le SBC est l’opposé d’un PC, un PC est spécialement conçu pour être utilisé par un humain pour faire des tâches informatiques, le SBC est une machine informatique qui ne devrait pas être utilisée par un humain, mais plutôt être embarquée dans d’autres machines et leur fournir des services en informatique, c’est généralement ce qu’on appelle Système Embarqué, c’est comme par exemple l’informatique dans les voitures modernes, dans les avions, dans les machines industrielles…etc. La vidéo en bas de l’excellente chaîne YouTube Explaining Computers spécialisée dans l’analyse des SBC, invoque toutes les spécifications techniques du Raspberry Pi 4 dans tous ses détails.

Raspberry PI 4

En dépit de la définition évoquée plus haut, la Raspberry Pi Fundation définit le SBC (dans leur site officiel) comme un Desktop (PC en Anglais), et surtout c’est un PC très abordable (disponible en Algérie et coûte entre 15000 et 25000 DA) et très portable avec une taille très réduite proche de la taille d’un portefeuille. Une chose importante cependant reste à savoir, c’est que de base Raspberry Pi 4 ne dispose ni de souris, ni clavier, ni de moniteur, il faut les procurer autrement, plus important encore la puissance de l’SBC, il est loin d’égaler un PC haut ou milieu de gamme, il a selon les tests et les benchmarks circulant sur internet la puissance d’un PC d’entrée de gamme. En résumé, cette carte est idéale pour les étudiants spécialement ceux d’informatique, elle possède une puissance suffisante pour faire quasiment toutes les tâches pédagogiques, offrant un prix abordable et un gabarie réduit, et surtout c’est une machine apte et destinée particulièrement pour le hack et la modification, elle très versatile et très maniable pour substituer d’autre type de machine, ou pour être elle-même intégrée dans d’autres machines électroniques.

Les listes chaînées

Un domaine bien connu en informatique c’est les structures de données, c’est une science dans laquelle les données à l’intérieur de la machine sont organisées d’une manière particulaire pour les rendre plus optimales pour certaines opérations ou certains algorithmes. Les listes chaînées comme structures de données sont très connues, ce sont le concurrent direct des fameux tableaux, un tableau est construit lorsque plusieurs données sont mises en contigus l’une à coté de l’autre dans la mémoire, alors que les listes chaînées c’est tout l’inverse, c’est des données dispersées dans la mémoire avec un moyen de les enchaîner l’une à l’autre. Pratiquement toutes les opérations faisables sur les tableaux sont aussi faisables sur les listes chaînées, le programmeur ou l’étudiant lorsqu’il est mené à choisir entre l’une des deux structures, normalement il doit choisir par rapport aux types d’opérations qui veut effectuer sur les données, si le programme fait beaucoup d’opérations d’ajout et de suppression qui vont modifier l’ensemble des données, là c’est les listes qui sont préférées, dans le cas contraire, lorsque l’ensemble est fixe dans sa taille et il y a beaucoup d’accès et de modification des données, là c’est les tableaux. La vidéo suivante est celle de la chaîne CS Dojo, les principaux concepts des listes sont expliqués et l’implémentation est faute en langage Java.

Introduction au listes chaînées