A bright London café workspace showing a MacBook with a light-themed Flask code editor open to CS50x Week 9 Finance routes and SQL portfolio queries, with warm natural daylight and a softly blurred London street through the window.
CS50x

CS50 Week 9 Flask — Building a Birthday Tracker with Full CRUD and Custom CSS

CS50x Week 9 is where Python moves from the command line into the browser — two Flask web applications that cover everything from basic CRUD operations to full authentication, live API integration, and SQL portfolio aggregation. The Birthday Tracker is clean and focused; C$50 Finance is a complete stock trading simulation. Here is how both came together and what building them teaches you about full-stack web development.

3 min read
Read More
A bright City of London luxury workspace showing a MacBook with a light-themed code editor open to CS50x Week 8 CSS theme switcher code, with the Gherkin and Shard visible through floor-to-ceiling glass windows in warm afternoon light.
CS50x

CS50 Week 8 HTML CSS JavaScript — Building a Trivia App and a Seven-Theme Developer Portfolio

CS50x Week 8 is the first week where the output is something you can open in a browser and show to someone — a JavaScript trivia quiz and a complete four-page developer portfolio. The portfolio goes well beyond the spec, featuring a seven-theme colour switcher powered by CSS custom properties, localStorage persistence, Intersection Observer scroll animations, and a fully responsive Bootstrap 5 layout. Here is how both came together.

3 min read
Read More
A luxury City of London workspace with a polished marble desk, MacBook Pro displaying SQL query code in a bright editor, glass skyscrapers visible through floor-to-ceiling windows, and warm golden afternoon light filling the modern office.
CS50x

CS50 Week 7 SQL — Spotify Songs, IMDb Movies and the Fiftyville Mystery

CS50x Week 7 introduces SQL through three very different databases — Spotify's top 100 songs, an IMDb movie database with thirteen progressively complex queries, and the Fiftyville mystery where SQL alone is used to solve a crime. Each problem builds on the last, and by the end of the week writing multi-table joins and nested subqueries starts to feel completely natural. Here is how all three came together.

3 min read
Read More
A bright London café workspace showing a MacBook with a light-themed Python editor open to CS50x Week 6 DNA profiling code, with warm natural light, a flat white coffee, and a softly blurred view of a London street through the window.
CS50x

CS50 Week 6 Python — Rewriting C Problems in Python and DNA Profiling with STR Matching

CS50x Week 6 is where the language switches from C to Python — and the difference is immediately obvious. The first four problems are sentimental re-implementations of earlier weeks, rebuilt in far fewer lines, while DNA is a brand-new challenge: a profiling program that reads STR counts from a CSV database and matches them against a DNA sequence to identify an individual. Here is how all five problems came together and what the language switch actually teaches you.

3 min read
Read More
A bright London-inspired workspace showing a MacBook with a light-themed code editor open to CS50x Week 5 C code for a hash table spell checker, set on a cream desk with warm natural daylight and a softly blurred London skyline through the window.
CS50x

CS50 Week 5 C — Blood Type Inheritance and Building a Spell Checker with a Hash Table

CS50x Week 5 is where memory management becomes the whole point — two problems that cover recursive struct allocation, pointer-based family trees, hash tables, and the kind of disciplined free() practice that Valgrind keeps you honest about. From simulating blood type inheritance across three generations to building a spell checker that loads 143,000 words into a hash table, this week is one of the most technically rewarding in the course. Here is how both problems came together.

3 min read
Read More
A bright London-inspired flat lay showing a MacBook with light-themed code editor open to CS50x Week 4 image filter and JPEG recovery code in C, with warm natural daylight and a blurred Tower Bridge view through a café window.
CS50x

CS50 Week 4 C — Volume Scaling, Image Filters and JPEG Recovery

CS50x Week 4 gets right down to the level of bytes and memory — three problems that involve reading and writing binary file formats directly in C. From scaling WAV audio samples to applying image filters with the Sobel operator, and recovering deleted JPEG files from a raw disk image, this week is where low-level programming starts to feel genuinely powerful. Here is how all three came together.

3 min read
Read More
Terminal output showing CS50x Week 3 C programs — a plurality election result, a Tideman ranked pairs winner, and sorting algorithm timing comparisons — on a dark code editor background.
CS50x

CS50 Week 3 C — Plurality Voting, Tideman Ranked Pairs and Sorting Algorithms

CS50x Week 3 covers some of the most interesting problems in the course — from a simple plurality election system to the Tideman ranked pairs voting algorithm, complete with cycle detection and a directed candidate graph. There is also a sorting algorithm analysis problem that puts Bubble Sort, Merge Sort, and Selection Sort side by side. Here is how all four problems came together and what they teach you about algorithms and data structures in C.

3 min read
Read More
Terminal output showing three CS50 Week 2 C programs — a Scrabble word scorer, a Coleman-Liau readability grade result, and a substitution cipher encrypting a plaintext message — on a dark code editor background.
CS50x

CS50 Week 2 C — Scrabble Scores, Readability Grades and Substitution Ciphers

CS50x Week 2 is where arrays, strings, and command-line arguments start to feel real — three problem sets that cover everything from Scrabble scoring to text readability grades and a working substitution cipher. Each one builds on the last and teaches you something different about how C handles data. Here is how all three came together and what made them worth building.

2 min read
Read More