This repository contains my personal solutions for the problem sets from Harvard University's CS50x: Introduction to Computer Science. This course is an incredible journey through the fundamentals of computer science and programming, from C to Python, SQL, and web development.
These solutions are intended for reference and educational purposes only. If you are currently enrolled in CS50, I strongly encourage you to attempt every problem set on your own first. The real learning comes from grappling with the problems and finding your own solutions. However, if you are stuck, you can use these files as an example or for insights.
Here is a brief overview of the topics and problem sets covered each week.
- Topic: Introduction to programming fundamentals using the Scratch visual programming language. Covers concepts like functions, loops, conditions, and variables.
- Problem Set: The assignment is to create an open-ended project of your own design in Scratch. My project for this week is "Space Adventures."
- Topic: A deep dive into the C programming language. Covers the command line, data types, operators, and conditional logic.
- Problem Sets:
hello.c,mario_less.c,mario_more.c,cash.c, andcredit.c.
- Topic: Working with arrays, strings, command-line arguments, and basic cryptography.
- Problem Sets:
caesar.c,readability.c,scrabble.c, andsubstitution.c.
- Topic: Algorithm efficiency (Big O notation), recursion, and different sorting and searching algorithms.
- Problem Sets:
plurality.c,runoff.c,tideman.c, andsort(demonstrating Bubble, Merge, and Selection Sort).
- Topic: Understanding memory in C, including pointers, memory allocation (
malloc,free), file I/O, and data structures. - Problem Sets:
volume.candfilter(implemented viafilter.c,helpers.c, andhelpers.h).
- Topic: Implementing and using more complex data structures like linked lists, hash tables, and tries to optimize performance.
- Problem Sets:
inheritance.candspeller(implemented viaspeller.canddictionary.c).
- Topic: Transitioning from C to Python. Covers Python's syntax, data structures (lists, dictionaries, tuples), and common libraries.
- Problem Sets:
hello.py,mario-less.py,mario-more.py,cash.py,credit.py, andDNA.py.
- Topic: Introduction to databases using Structured Query Language (SQL). Covers
SELECT,INSERT,UPDATE,DELETE, andJOINoperations. - Problem Set:
fiftyville(a SQL mystery).
- Topic: Front-end web development. Building static web pages with HTML (structure), CSS (style), and JavaScript (interactivity).
- Problem Sets:
Trivia GameandMini Portfolio Homepage.
- Topic: Back-end web development using Python and the Flask framework. Covers web applications, sessions, and integrating databases.
- Problem Sets:
finance(a stock trading platform) andbirthdays(a birthday manager).
![]() |
This project was inspired by and developed as part of the CS50x course offered by Harvard University. CS50x is Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience.
Thank you to the CS50x team for providing such a comprehensive and engaging introduction to computer science. |
