Machines en Lego

C’est très impressionnant ce qu’on peut faire avec des legos, le jouer pour enfants à base de petites briques de construction, d’autre part aussi il existe une version disons plus orientée pour adultes ou plutôt pour adultes en technologie, ça s’appelle lego technic et comme vous allez le voir sur la vidéo en bas, ça exige clairement des connaissances techniques en mécanique. À vrai dire les legos techniques sont utilisés comme un outil pédagogique dans certaines universités dans des domaines comme la mécanique, la robotique, l’automatisme…etc, c’est parfois aussi un outil de choix dans pas mal de laboratoires de recherche, ça sert à construire très rapidement des prototypes et des maquettes fonctionnelles dans les premières phases de construction de projets en mécanique.

La construction en Lego de Akiyuki

La vidéo est celle d’un Japonais assez connu pour ses constructions vertigineuses, il s’appelle Akiyuki et voici sa chaîne Youtube. La construction en question a été l’objet d’une compétition du nom LEGO Great Ball Contraption (GBC) et voici son site web. On peut constater que les legos techniques utilisent généralement des éléments mécaniques avancés, comme les engrenages, les poulies, les chaînes de transmission, les moteurs, les actionneurs pneumatiques, les batteries, les télécommandes à distances…etc. Il existe encore une variante des legos encore plus avancée, c’est les legos mindstorms, c’est principalement destinée à la robotique, grossièrement parlant ce sont des legos techniques avec en plus un ou plusieurs cerveaux programmables, des capteurs, des servomoteurs, des afficheurs, des caméras…etc, particulièrement ce qui concerne la robotique.

Introduction aux structures de données

Encore un autre cours sur les structures de données, d’autre part c’est très important, le cours sur la vidéo en bas est très court, la vidéo ne dure que 3 heures avec un survol sur les principales structures de données. Pour rappel, cette matière éducative traite les différentes manières d’organiser et d’arranger les données dans la mémoire pour une utilisation optimale dans la programmation, il existe plusieurs structures, chaque une d’elles a ses avantages et ses inconvénients en dépend de la nature du problème et de l’algorithme utilisé.

Cours sur les structures de données

L’auteur au début de la vidéo fait une bonne introduction sur la notion de la complexité (big O), il continue ensuite en séquence par donner de bonnes explications sur les différentes structures, sans pour autant aborder leurs implémentations et programmation, les structures abordées en question sont ; les tableaux, les vecteurs (tableaux à taille variable, appelés dans la vidéo ArrayList), les piles, les files, les listes chaînées, les listes doublement chaînées, les maps (appelés dans la vidéo dictionary), les arbres avec trois variantes, les arbres binaires de recherches, les tries (arbres pour stocker les mots d’un dictionnaire), les tas (appelés dans la vidéo heap), en terminant avec les graphes.

La vidéo est celle de la chaîne Youtube FreeCodeComp.org, la chaîne appartient au site-web éducatif du même nom, la chaîne dispose d’un nombre important de vidéos didactiques et tutoriel de très bonnes qualités sur différents aspects de l’informatique.

Fonctionnement d’un clavier PS/2

La majorité des claviers d’aujourd’hui utilisent le port USB pour communiquer avec les ordinateurs, cependant il reste une partie non négligeable des PC qui utilisent encore le port PS/2 pour leurs claviers et aussi leurs souris. La quasi-totalité des cartes-mères actuelles disposent encore de ce port, il reste parmi les ports les plus anciens actuellement encore en utilisation dans le domaine de la micro-informatique, ses premières utilisations datées dans les milieux des années 80, donc le début de la micro-informatique.

L’interface du clavier PS/2

La vidéo présente est celle de l’académicien Ben Eater, c’est une excellente vidéo comme c’est toujours le cas avec ses vidéos (voici les liens de ça chaîne Youtube et son site-web). La vidéo nous mène dans l’exploration du protocole utilisé par le clavier pour communiquer avec le PC, c’est très bien expliqué malgré que le protocole n’est pas simple ni intuitive que ça, les claviers des machines comme l’Apple II ou le Commodore 64, très célèbres machines avant lui étaient beaucoup plus simples, quoi qu’il en soit c’est un protocole indispensable à connaître si la nécessité se fait sentir pour l’utilisation d’un clavier dans un projet.

La robotique dans l’université de Stanford

La robotique est un domaine qui m’affectionne en particulier, j’ai eu par le passé la chance de participer à de petits projets en robotique qu’ils ont laissé de très bons souvenirs. Pour ce premier blog sur le sujet je voulais introduire l’atmosphère si particulière de cette discipline, par une perspective académique sur l’enseignement universitaire dans l’une des universités les plus prestigieuses et les plus connues mondialement, qui est l’université californienne de Stanford. La robotique a une particularité unique d’être une discipline se trouvant sur un chemin de croisement entre trois autres disciplines totalement différentes, qui sont la mécanique, l’électronique et l’informatique, ce qui rend son apprentissage spécial et les projets concrets commerciaux ou de recherche dans le domaine exigeant généralement des équipes pluridisciplinaires de différentes spécialités. La vidéo en bas montre des étudiants s’appliquant sur des projets divers en robotique.

Projets d’étudiants dans l’université de Stanford

Animations de trigonométrie

Les fonctions trigonométriques comme le sinus, le cosinus, la tangente…etc, sont des fonctions mathématiques géométriques très communes, très utilisées en ingénierie, en physique, en jeux vidéo, en architecture, dans l’aérospatial…etc, pour n’en citer que quelques-uns. Mais une compréhension approfondie des différents concepts et des sources et origines des fonctions trigonométriques procure un avantage considérable pour savoir les utiliser amplement avec plus de maîtrise dans la manière de les exploiter et de les pratiquer. La vidéo suivante est de la chaîne Numberphile, c’est une excellente vidéo comme il est de coutume venant de cette chaîne.

Animations en trigonométrie

Les animations faites dans cette vidéo ont étés réalisées par le logiciel Geogebra, personnellement je ne connaissais pas ce logiciel, mais apparemment à première vue il présente un grand potentiel éducatif, le terme Geogebra vient de la concaténation des deux mots geometry et algebra, c’est décrit comme un logiciel éducatif et interactif de mathématique qui permet de faire de l’algèbre, la géométrie, l’analyse et la statistique. Apparemment, ça couvre les niveaux scolaires du primaire jusqu’au universitaire, une version online est aussi disponible pour exécuter l’application sur le cloud, d’ailleurs l’exemple présenté sur la vidéo est interactivement accessible online sur ce lien.

Court tutoriel sur Arduino

Ce qui suit est une excellente petite vidéo de 15 minutes sur Arduino, elle nous vient de la chaîne Youtube Afrotechmods, une excellente chaîne sur l’électronique avec énormément de projets, d’explication et de démonstration. La vidéo est un court tutoriel sur Arduino, ça couvre l’essentiel de son utilisation avec de petits exemples.

Cout tutoriel sur Arduino

C’est quoi une carte mère

La carte-mère, ou Motherboard en Anglais est le principal circuit imprimé (ou PCB pour Printed Circuit Board) dans lequel tous les composants internes à l’unité centrale sont assemblés, dont le processeur, les barrettes de RAM, la carte graphique, les cartes d’extension…etc. La carte-mère représente un enjeu important lors de l’achat d’un nouveau PC, ou pour le montage soi-même de son propre PC, que je conseille d’ailleurs fortement aux étudiants en informatique, l’enjeu de la carte-mère c’est qu’elle va décider du type de processeur, du type de la mémoire, des périphériques…etc., c’est pratiquement le composant le plus critique parmi les autres choix de composants. La vidéo de la chaine YouTube éducative PowerCert donne un très bon aperçu sur les plus importantes particularités à connaitre sur les carte-mères.

Illustration sur les carte-mères

Introduction à la programmation dynamique

La programmation dynamique, à ne pas confondre avec la programmation dynamique de la mémoire, qui implique l’utilisation de new et malloc pour créer et détruire à volonté des variables dans la mémoire dynamique. La programmation dynamique quant à elle est dans un niveau d’abstraction plus élevé, ça veut dire que le langage de programmation choisi ou la manière d’implémenter les programmes ça relève du détail et ce n’est plus si important, mais c’est plutôt la manière de résoudre les problèmes qui compte. La programmation dynamique a une réputation d’être difficile à apprendre et à enseigner, d’ailleurs il vaut mieux bien maîtriser les techniques de programmation dans un langage donné pour se lancer dans celle-ci, et même dans les cursus d’enseignement en informatique celle-ci est généralement enseignée en deuxième cycle, s’assurant que l’étudiant a une maîtrise approfondie des techniques de programmation. La vidéo en bas donne une bonne introduction et explication de ce qu’est précisément la programmation dynamique.

Introduction à la programmation dynamique

L’exemple typique pour faire apprendre la programmation dynamique est sans doute la célèbre suite de Fibonacci, et à partir de la vidéo on peut voir que cette suite est utilisée pour nous donner une idée globale de ce qu’est la programmation dynamique, l’idée est que la programmation dynamique est une manière d’optimiser l’exécution d’un programme pour une famille de problèmes bien particulaire, des problèmes qui sont généralement de nature récursive, dans lesquels il existerait de la répétition dans le calcul si la récursivité est faite d’une manière cru et sans optimisation. Deux techniques sont utilisées dans la programmation dynamique, qui sont la méthode de haut en bas et la méthode de bas en haut. Il existe aussi un bon article sur le sujet (voici son lien) qui donne une bonne introduction sur le domaine. Il est aussi important de rappeler que toujours la même règle qui s’applique pour l’apprentissage de n’importe quelle discipline réputée difficile, c’est de s’exercer et de faire beaucoup d’exercices.

Disque dur : HDD versus SSD

Mémoriser l’information est l’un des atouts principaux d’un ordinateur, il a une faculté énorme de mémoriser l’information pour des périodes très très longues, sur ce terrain il bat l’humain à plein couture, un seul disque dur peut mémoriser l’équivalent d’une montagne de livre sans oublier la moindre lettre, alors que la mémoire humaine en comparaison est très faible et moins fiable.

SSD vs HDD

À l’intérieur d’un ordinateur on trouve généralement deux types de mémoires, les mémoires vives, appelées aussi mémoire centrale ou RAM, c’est une mémoire temporaire utilisée lorsque l’ordinateur est en état de marche. Les deuxièmes sont les mémoires mortes ou mémoires secondaires, ça inclut disque dur, la mémoire flash, les CD-ROM, DVD…etc. Leurs capacités sont beaucoup plus grandes que la mémoire vive, par contre elles sont utilisées pour un stockage permanent de l’information, et c’est surtout important lorsque la machine est éteinte. La vidéo en haut fait une comparaison entre les deux technologies contemporaines de disque dur qui sont le HDD et le SSD.

Classement des 10 meilleurs langages de programmation en 2020

C’est toujours compliqué de dire qu’un langage est mieux qu’un autre, ou qu’un langage est mauvais, mais généralement les informaticiens se référent à deux métriques pour comparer les langages, la première est le domaine d’utilisation, il y a des langages qui sont bons pour certaines applications mais qui sont mauvais pour d’autres, il n’existe pas de langage parfait pour tous les domaines, par exemple le C est relativement bas niveau, il est ainsi bon pour les systèmes d’exploitation et les systèmes embarqués, le C++ est réputé pour sa robustesse est son efficacité pour les systèmes complexes, le Python est pour ça par plus simple à apprendre et optimal pour le scripting et le datascience, le JavaScript pour le web…etc.

Et la deuxième métrique est l’appréciation intellectuelle pour certaines mécaniques dans certains langages en comparaison à d’autres. Sur un niveau personnel le programmeur peut se trouver à apprécier un langage qu’un autre, il lui paraît plus simple et plus intuitif à utiliser et les mécaniques que le langage offre sont plus adaptés au déroulement de son processus intellectuel de programmation que d’autres.

Top 10 meilleurs langages de programmation pour 2020

Ainsi faire un classement pour les langages de programmation d’une façon neutre est très difficile, l’auteur de la vidéo en haut s’est donc référé à un site qui fait d’une manière automatique l’extraction de statistique d’utilisation des langages sur GitHub, étant donné qu’actuellement c’est le dépôt de code source le plus important au monde, avoir un aperçu sur les statistiques d’utilisation permet d’avoir un aperçu global sur les tendances d’utilisation des langages. Le site en question est GitHut, vous pouvez le consulter et voir l’évolution des langages même sur les années précédentes.

Le classement est comme suite :

  1. JavaScript
  2. Python
  3. Java
  4. Golang
  5. C++
  6. TypeScript
  7. Ruby
  8. PHP
  9. C#
  10. C