This repository contains programs I wrote for CS50's problem sets. CS50 is Harvard University's introduction to the intellectual enterprises of computer science and the art of programming.
Each folder contains a README describing how I approached each problem.
These are my first lines of C code including a program that determines if a credit card number is valid.
This contains 2 programs to perform basic cryptography and 1 program to determine the reading grade level of some text.
This contains 3 models of different voting systems. The most interesting one is the Tideman election because it handles a complex graph of candidates using recursion.
filter.c applies Instagram-like filters to bitmap images. recover.c uses forensic data recovery techniques to recover photographs from a RAW copy of a memory card.
This was the most challenging problem of the course. I implemented a spellchecker from scratch using a hash table, a type of data structure.
These are my first programs in Python. DNA is a fun program that takes forensic DNA samples represented as a string of nucleotides, and matches them with people from a CSV file.
These are some SQL queries I wrote. The first set of queries looks up information in a database adapted from IMDb. The second set is the solution to a fun puzzle where we solve a crime and find a thief.