CS50x Problem Sets solutions and experimental code. Most from 2018. Some from 2019.
Find the problem sets in their respective "pset" directories and sometimes you can also find "src" folders, which contain source code with example code that is relevant to the topic of the problem set.
Some files are not the best solution or not even a solution at all, but rather experimentation with functions or modules I wanted to have a go at just for fun. Such files or folders are marked with a "exp-" prefix.
Notably, in 2019/Pset6 crack.py I experiemented a lot with Python Standard Library's multiprocessing module. None of my code here is a good solution to the problem set. But you can run it on your local machine and use something like macOS's Activity Monitor, in order to see how I used the multiprocessing module, to enable my program to be executed on multiple CPUs in parallel (effectively bypassing Python's single-threadedness that is enforced by the Global Interpreter Lock in the CPython interpreter)