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
