Welcome to my collection of projects completed during my time as a student in Harvard's CS50 course!
This repository contains the projects I completed as part of CS50, Harvard University's introduction to computer science course. Each week, we explored different aspects of computer science through problem sets and projects, covering topics such as algorithms, data structures, web development, and more.
- Description: Introduction to programming through Scratch, a visual programming language.
- Folder: scratch/
- Description: A program that calculates the minimum number of coins required to give a user change.
- Folder: cash/
- Description: A program that determines whether a provided credit card number is valid according to Luhn’s algorithm.
- Folder: credit/
- Description: Recreating the half-pyramid scene from Super Mario Brothers using hashes (#) for blocks.
- Folder: mario/
- Description: A simple program that prints out a user's initials based on their name input.
- Folder: me/
- Description: A program that prints out a simple greeting to the world.
- Folder: world/
- Description: A program that encrypts messages using Caesar’s cipher.
- Folder: caesar/
- Description: A program that computes the approximate grade level needed to comprehend some text.
- Folder: readability/
- Description: A program that calculates the score of a Scrabble word.
- Folder: scrabble/
- Description: A program that implements a substitution cipher to encrypt a message.
- Folder: substitution/
- Description: A program that simulates a plurality vote election.
- Folder: plurality/
- Description: A program that simulates a runoff election.
- Folder: runoff/
- Description: Implementations of various sorting algorithms.
- Folder: sort/
- Description: A program that simulates a Tideman election (ranked pairs).
- Folder: tideman/
- Description: Implementations of grayscale, sepia, and reflection filters in C.
- Folder: filter-more/
- Description: A program that recovers JPEGs from a forensic image.
- Folder: recover/
- Description: A program that adjusts the volume of an audio file.
- Folder: volume/
- Description: A program that simulates the inheritance of genetic traits.
- Folder: inheritance/
- Description: A program that spell-checks a file using a hash table.
- Folder: speller/
- Description: A program that identifies individuals based on their DNA sequences.
- Folder: dna/
- Description: A series of programs in Python including implementations of Caesar’s cipher, readability checker, and a Mario pyramid printer.
- Folder: sentimental/
- Description: Queries and database design for a fictional town called Fiftyville.
- Folder: fiftyville/
- Description: SQL queries related to a database of movies and people.
- Folder: movies/
- Description: SQL queries related to a database of songs and artists.
- Folder: songs/
- Description: A simple personal webpage created using HTML, CSS, and Bootstrap.
- Folder: homepage/
- Description: A trivia game web application using JavaScript for logic and Bootstrap for styling.
- Folder: trivia/
- Description: A web application that displays the current date and calculates the days until the user's next birthday.
- Folder: birthdays/
- Description: Rock Paper Scissors Game
- Folder: rock-paper-scissors/
Video Demo: Watch Video Demo
The Rock Paper Scissors Game is a simple web application that lets you play the traditional game against a computer opponent. The game interface consists of three buttons that depict rock, paper, and scissors, respectively. When a user hits one of these buttons, the game randomly selects one of the three alternatives for the computer, compares it against the user's selection, and judges the winner depending on the game's rules.