Programmation · 9/10

Harvard CS50x : journal de progression

En train de suivre le CS50x de Harvard (Introduction à l'informatique), en auditeur libre en ligne. Cette page recense les exercices terminés et ce que j'en ai retiré : aucun code de solution, conformément à la politique d'intégrité académique de CS50, qui interdit de rendre publiques les solutions des évaluations pendant la durée du cours.

Le journal ci-dessous se met à jour automatiquement : il est récupéré au moment de la construction du site depuis un dépôt séparé, rubengariazzo-creator/cs50x-journey, qui ne contient que le statut d'avancement et des réflexions personnelles.

9/10 problèmes résolus (90%)

  • Semaine 0 : Scratch

    Concepts fondamentaux de programmation (séquences, boucles, conditions, variables, événements) via la programmation visuelle par blocs, avant toute syntaxe textuelle.

  • Semaine 1 : C

    Compilation et débogage de programmes en C : variables, types, conditions, boucles, fonctions et arguments en ligne de commande.

  • Semaine 2 : Tableaux

    Manipulation de tableaux et de chaînes de caractères comme séquences de caractères, avec une introduction à la cryptographie (chiffrements de base) comme application motivante.

  • Semaine 3 : Algorithmes

    Complexité algorithmique (notation Big O), algorithmes de recherche (linéaire et binaire), plusieurs algorithmes de tri (à bulles, par sélection, fusion) et récursivité.

  • Semaine 4 : Mémoire

    Fonctionnement réel de la mémoire : pointeurs, adresses mémoire, allocation dynamique avec malloc/free, pile vs tas, et utilisation de Valgrind pour détecter les fuites mémoire.

  • Semaine 5 : Structures de données

    Construction de structures de données dynamiques à partir de pointeurs et de structs : listes chaînées, arbres, tries et tables de hachage.

  • Semaine 6 : Python

    Passage du C à Python : typage dynamique, exceptions, bibliothèques, et à quel point les mêmes idées algorithmiques changent d'apparence dans un langage de plus haut niveau.

  • Semaine 7 : SQL

    Conception de bases de données relationnelles et SQL : requêtes SELECT/INSERT/UPDATE/DELETE, jointures, index, et pourquoi les requêtes paramétrées évitent les injections SQL.

  • Semaine 8 : HTML, CSS, JavaScript

    Fonctionnement du web en coulisses : requêtes et réponses HTTP, structure des pages en HTML, mise en forme en CSS et Bootstrap, et interactivité en JavaScript grâce au DOM.

  • Semaine 9 : Flask

Voir les projets