Programming · 9/10

Harvard CS50x: progress log

Currently completing Harvard's CS50x (Introduction to Computer Science), audited online. This page tracks which problem sets I've finished and what I took away from each one: no solution code, in line with CS50's academic honesty policy, which prohibits making assessment solutions publicly available while enrolled.

The log below updates automatically: it's fetched at build time from a separate repo, rubengariazzo-creator/cs50x-journey, which only ever holds completion status and personal reflections.

9/10 problem sets complete (90%)

  • Week 0: Scratch

    Learned foundational programming concepts (sequencing, loops, conditionals, variables, events) through visual block-based programming, before touching any text-based syntax.

  • Week 1: C

    Learned to compile and debug C programs, working with variables, types, conditionals, loops, functions, and command-line arguments.

  • Week 2: Arrays

    Learned to work with arrays and strings as sequences of characters, plus an introduction to cryptography concepts (basic ciphers) as a motivating application.

  • Week 3: Algorithms

    Learned algorithmic complexity (Big O notation), searching algorithms (linear and binary search), several sorting algorithms (bubble, selection, merge sort), and recursion.

  • Week 4: Memory

    Learned how memory actually works: pointers, memory addresses, dynamic allocation with malloc/free, the stack vs. the heap, and using Valgrind to catch memory leaks.

  • Week 5: Data Structures

    Learned to build dynamic data structures from pointers and structs: linked lists, trees, tries, and hash tables.

  • Week 6: Python

    Transitioned from C to Python: dynamic typing, exceptions, libraries, and how much the same algorithmic ideas look different in a higher-level language.

  • Week 7: SQL

    Learned relational database design and SQL: writing SELECT/INSERT/UPDATE/DELETE queries, joins, indexes, and why parameterized queries matter for avoiding SQL injection.

  • Week 8: HTML, CSS, JavaScript

    Learned how the web works under the hood: HTTP requests and responses, structuring pages with HTML, styling them with CSS and Bootstrap, and making them interactive with JavaScript and the DOM.

  • Week 9: Flask

See all projects