Passer au contenu principal

Aperçu de cette partie

  • Introduction

    Présentation du cours

     

    C’est avec plaisir que nous vous accueillons au sein du cours programmation d'applications avec Python : des jeux au Web. Le cours à été conçu pour ceux qui souhaitent développer leur expertise en développement d'applications logicielles. Le cours utilise le langage Python, un des langages les plus populaires en ce moment. Une partie important du cours porte sur le développement d'applications Web. Au terme de ce cours, vous saurez programmer avec le langage Python, vous serez familier avec les bonnes pratiques de tests de logiciels, vous pourrez appliquer la programmation fonctionnelle pour la résolution de problèmes, vous serez capable de créer un jeu vidéo avec des animations 2D et des applications Web. En particulier, vous serez capable d'appliquer la programmation asynchrone au développement d'applications Web.

    L'approche pédagogique du cours repose sur la pratique. Dans ce cours, vous lirez et écrirez beaucoup de code. Nous avons inclus un grand nombre d'exercices et d'exemples.

    Pour compléter le cours, vous avez naturellement besoin d'un ordinateur. Vous devriez pouvoir compléter le cours avec la plupart des ordinateurs (Windows, Apple, etc.).

    Vous pouvez débuter dès maintenant. Nous espérons que vous trouverez le cours intéressant et qu’il répondra à vos objectifs d’étude.

    Permettez-nous de vous souhaiter bon succès dans vos études et dans vos travaux.

    Courriel

    Si vous écrivez au professeur responsable du cours ou à la personne qui vous encadre, n'oubliez d'inclure le sigle du cours dans votre courriel ([INF2020]).

    Popularité du Python

    Le langage Python est l'un des langages de programmation les plus populaires sur la plateforme GitHub depuis plusieurs années. GitHub répertorie plus de 100 millions de programmeurs.

    xxx

    Production vidéo

    Dans ce cours, nous vous encourageons à remettre des rapports en vidéo. Le logiciel OBS Studio est recommandé.

    Intelligence artificielle

    Dans ce cours, vous pouvez utiliser l'intelligence artificielle. En fait, nous vous encourageons à utiliser l'intelligence artificielle. Cependant, vous devez le faire de manière responsable. Par exemple, vous ne pouvez pas copier-coller la réponse de ChatGPT et nous soumettre le résultat.

    Nous vous encourageons à mentionner quelle utilisation de l'intelligence artificielle vous avez fait dans votre travail lorsque vous remettez un rapport. Vous devez inclure les requêtes que vous avez faites.

    À propos du professeur responsable

    Daniel Lemire est professeur d’informatique à l’Université TÉLUQ (Québec), expert en performance logicielle et science des données. Classé parmi les 2 % des scientifiques les plus influents (Stanford/Elsevier 2024), il a publié plus de 85 articles scientifiques et est éditeur de la revue Software: Practice and Experience. Actif dans l’open source, il programme en Python, C++, Java, et autres, contribuant à des projets comme Node.js et Git. Ses travaux sur les algorithmes performants, notamment pour le noyau Linux, les bibliothèques standard (Python, Rust, GCC), et le parsing JSON (simdjson), sont utilisés par Microsoft, Google, et Meta. En Python, son algorithme issu de l’article scientifique Fast Random Integer Generation in an Interval a été adopté pour accélérer la génération de nombres aléatoires, notamment dans la populaire bibliothèque NumPy, améliorant significativement les performances des applications scientifiques et statistiques.

    Il est l’auteur du manuel Programmation avec Python : des jeux au Web, un guide pratique pour maîtriser Python, couvrant le développement de jeux, les applications web, les tests, et les techniques avancées comme la concurrence.

    Ses contributions sont validées par dizaines de brevets citant ses algorithmes, et il a reçu le Prix d’excellence de l’Université du Québec (2020) pour ses avancées en performance du logiciel.

    En février 2019, il était classé en deuxième position dans le monde parmi les développeurs les plus populaires sur GitHub et le plus populaire en C++ (devant Microsoft, Google et Facebook); GitHub compte 28 millions de développeurs. Il est un des dix programmeurs canadiens les plus suivis sur GitHub. Il est un avide utilisateur des médias sociaux : son blogue compte plusieurs milliers de lecteurs. Il fut l’un des premiers utilisateurs de Twitter: @lemire.

    Quelques-uns des travaux de Daniel Lemire

    Avec Geoff Langdale, John Keiser, Paul Dreik et d’autres, il est l’auteur de la bibliothèque JSON la plus rapide au monde : simdjson. C’est la première bibliothèque capable de parser plusieurs gigaoctets de JSON par seconde. Elle est utilisée par de nombreux systèmes importants tels que Meta Velox, le runtime Node.js, ClickHouse, WatermelonDB, Apache Doris, Milvus, StarRocks. En 2024, l’article On-demand JSON: A better way to parse documents? a été l’article le plus lu des cinq dernières années dans la revue Software: Practice and Experience.

    Avec Yagiz Nizipli et d’autres, il est l’auteur d’Ada URL parser, le parseur d’URL de Node.js et des Cloudflare Workers. Nous pensons qu’il s’agit du parseur conforme WHATWG le plus rapide au monde. Leur article de 2024 dans Software: Practice and Experience est le quatrième article le plus lu des cinq dernières années selon l’éditeur (Wiley). Avec Robert Clausecker, Wojciech Muła, John Keiser, Paul Dreik et d’autres, il a écrit la bibliothèque simdutf, la bibliothèque la plus rapide au monde pour le transcodage Unicode et le base64. Elle accélère deux des principaux runtimes JavaScript (Node.js et Bun). Elle fait également partie de WebKit, le moteur derrière le navigateur Safari, et de Chromium, le moteur derrière Google Chrome et Microsoft Edge. L’algorithme de validation UTF-8 qu’il a conçu avec Keiser est également intégré à l’interpréteur PHP et à de nombreuses bibliothèques standard.

    Il a joué un rôle déterminant dans la conception de l’algorithme de parsing de nombres le plus rapide au monde. Avec des collaborateurs, il a écrit la bibliothèque fast_float qui fait partie de GCC. Elle est également présente dans WebKit, le moteur de Safari, le navigateur web d’Apple. Elle a aussi été adoptée par Chromium, le moteur derrière Google Chrome et Microsoft Edge. Cette approche de parsing des nombres est intégrée aux bibliothèques runtime de Go, C# et Rust. Elle est utilisée dans MySQL. Pour la première fois, elle a permis de parser des nombres à plus d’un gigaoctet par seconde.

    Il a conçu le format Roaring bitmap comme format d’index bitmap efficace. Ce format est devenu un standard. Il est utilisé par Apache Lucene et les systèmes dérivés tels que Solr et Elasticsearch, Apache Druid, etc. Le moteur SQL de YouTube, Google Procella, utilise les Roaring bitmaps pour l’indexation. Avec des ingénieurs comme Richard Startin, il a contribué de manière déterminante à de nombreuses implémentations, notamment RoaringBitmap (Java), roaring (Go) et CRoaring (C et C++).

    Un problème ou une suggestion ?

    Vous pouvez à tout moment soumettre un commentaire anonyme concernant le cours via ce formulaire dédié. Cela nous permet de réagir rapidement en cas de problème. Vous pouvez également en discuter directement avec la personne qui vous encadre.

    Nous accordons une grande importance à vos retours et travaillons continuellement à l’amélioration du cours.

  • Semaine 1

  • Semaine 2

  • Semaine 3

  • Semaine 4

  • Semaine 5

  • Semaine 6

  • Semaine 7

  • Semaine 8

  • Semaine 9

  • Semaine 10

  • Semaine 11

  • Semaine 12

  • Semaine 13

  • Semaine 14

  • Semaine 15

  • hors_menu

  • menu_footer