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
