Leximnesia Pro – Florian Mortgat

Cours de programmation

En tant que programmeur passionné, je propose des cours de programmation (débutant à avancé) à domicile ou à distance (par Skype ou messagerie instantanée).

  • langage python
  • langage C
  • technologies et langages du web (HTML, CSS, javascript et programmation côté serveur en PHP ou python)

Langage python

Pourquoi choisir d’apprendre python ?
  • Python est assez facile à apprendre : sa syntaxe est conçue pour aider les programmeurs à avoir un code bien présenté et bien hiérarchisé par défaut.
  • Python possède, dans sa version standard, de nombreuses bibliothèques (c’est à dire des outils déjà programmés qui peuvent être intégrés dans vos programmes).
  • Toutes choses égales par ailleurs (expérience du programmeur, fonctionnalités), un programme python demande habituellement moins d’efforts à écrire qu’un programme en C.
  • Python est un langage de plus en plus apprécié, demandé et répandu : des organisations scientifiques comme le CERN et l’ESA s’en servent ; il est aussi utilisé par Google (R&D, YouTube) et par un très grand nombre d’institutions, d’écoles, d’entreprises, d’associations, etc.
  • Python (version 2 ou 3) est le langage que je maîtrise le mieux.

Petite sélection de choses que j’ai réalisées en python :
  • synthétiseur pour un projet pédagogique (ci-contre)
  • simple logiciel d’enregistrement audio pour linux
  • divers utilitaires (conversion de formats de fichiers, traitement automatique, tâches planifiées, etc.)
  • utilitaire de renommage de fichiers à distance (sur un serveur FTP), afin que tous les fichiers aient des noms conformes à une certaine norme
  • divers petits jeux
  • extensions pour d’autres logiciels (de dessin matriciel, de dessin vectoriel et pour un logiciel de consultation de dictionnaires)
  • téléchargement automatisé et organisation de données à partir d’internet (notamment des textes de centaines de discours pour élaborer un corpus de recherche en linguistique)
  • génération de diagrammes particuliers (avec barre d’erreur) pour un mémoire de master
  • gestionnaire de mots de passe avec chiffrement fort

Langage C

Pourquoi choisir d’apprendre le C ?
  • Le C est encore l’un des langages les plus utilisés au monde. Entreprises, universités, gouvernements : quasiment tous l’utilisent.
  • Le C est un langage très performant (à fonctionnalité égale, un programme en C sera nettement plus rapide qu’un programme en python, et consommera probablement moins de mémoire vive).
    • Lorsque vous devez faire des calculs compliqués sur des volumes de données énormes, il vaut mieux écrire votre programme en C plutôt qu’en python. Sans doute l’écriture du programme prendra-t-elle plus de temps, mais le programme lui-même sera beaucoup plus rapide. Si votre programme doit traiter de grands volumes de données, faire des calculs hautement complexes ou s’effectuer en temps réel (par exemple, traitement vidéo, ou jeu vidéo aux graphismes réalistes, cryptographie), choisissez le C !
    • Lorsque votre programme est destiné à s’exécuter sur un appareil aux ressources très limitées par rapport aux tâches qui lui sont demandées (un robot, un automate industriel, un objet connecté, etc.), le C est un langage de choix, qui tirera le meilleur parti des capacités de la machine hôte.
  • Le C peut être combiné avec python. Par exemple, le logiciel Blender (utilisé pour faire des films et effets spéciaux en 3D) contient des parties écrites en C, là où les performances doivent être maximales, et d’autres écrites en python : ces dernières supervisent les autres car la souplesse de python permet alors d’ajouter et de modifier de nouvelles fonctionnalités rapidement.

Projets pour lesquels j’ai utilisé le C :
  • bibliothèque de cryptographie permettant d’utiliser l’algorithme de chiffrement symétrique Serpent en mode compteur
  • réécriture en C d’un programme d’OCR utilisant des réseaux de neurones, écrit initialement en python (en cours)
  • petits jeux (ci contre : un jeu de labyrinthe)
  • logiciel (didactique) de calcul de volume en architecture

Technologies et langages du web

Dans quels cas apprendre les technologies du web ?

  • si vous voulez créer vous-même votre site web et que les solutions « clés en main » ne vous suffisent pas
  • si vous avez une idée d’application et que vous voulez la rendre disponible à une large audience sans effort de la part des utilisateurs : contrairement à une application classique, une application web n’impose pas à ses utilisateurs d’installer quoi que ce soit car tout se passe dans le navigateur
  • si vous avez envie ou besoin de comprendre comment fonctionne le web, par exemple pour savoir quelles données personnelles un site est susceptible de récolter sur vous

Exemples de choses que j’ai réalisées avec ces technologies :
  • le présent site
  • application web pour la Faculté de traduction et d’interprétation de l’Université de Genève, à destination des étudiants en interprétation (base de données partagée de symboles de consécutive)
  • générateur de fiches terminologiques en arborescence (ci-contre)
  • jeu de pendu en ligne pour personne âgée malvoyante (ci-contre)

Comme le terme « technologies du web » est assez vague, et qu’il recouvre potentiellement des dizaines de langages, protocoles et frameworks différents, voici plus précisément ce que je suis en mesure de vous apprendre :

  • bases des langages HTML et CSS : pour créer des pages web
  • bases du langage javascript (sans aborder les bibliothèques externes telles que jQuery, Angular, etc. car je ne les utilise pas actuellement) : pour rendre interactives les pages web
  • bases du langage PHP : pour individualiser les pages web, pour stocker des informations de façon pérenne sur un serveur, etc. Note : il est aussi possible d’utiliser Python ou Javascript à la place de PHP, mais PHP reste dominant dans ce rôle.
  • quelques informations sur les protocoles http et https, sans entrer dans les détails

 

Design et site : Florian Mortgat
Crédits photographiques et iconographiques : Florian Mortgat (sauf mention contraire) ; Crédits du portrait : Marie-Cécile Mortgat ; Conception du logo: Étienne Pot
Moteur wiki dérivé de: Wikiss