/harvard-cs50x-2024

2024 CS50’s Introduction to Computer Science from Harvard University

Primary LanguageC

Harvard University Logo
CS50x projects repository

This repository is dedicated to storing my projects, notes and files related to Harvard University's CS50x course.

What You'll Find Here

  • Lecture Notes: I keep detailed notes of lectures and supplementary materials.
  • Problem Set Solutions: Explore my solutions to the problem sets and additional practices assigned in CS50x, including programs written in C, Python, and other languages.
  • Work in Progress: This repository is a work in progress and will be continually updated as I progress through the course.

About CS50x

CS50x is an introductory course to computer science offered by Harvard University. It covers a wide range of topics, including programming in C, Python, web development, and more.

Gradebook

Test: number of successfully completed tests.
Style: assessing compliance with a given coding style from 0.0 to 1.0 points.


✅ Week 0: Scratch

Problem set 0
Problem set 0 Description Test
scratch Project in Scratch 8 / 8

✅ Week 1: C

Problem set 1
Problem set 1 Description Test Style
hello, world.c Print "hello, world" 5 / 5 1.00
hello, it's me.c Prompt the user for their name and then say "hello" to that user. 5 / 5 1.00
mario-less.c Print a right-aligned pyramid, using hashes (#) for bricks. 10 / 10 1.00
mario-more.c Print an adjacent pyramid, using hashes (#) for bricks. 10 / 10 1.00
cash.c Print the minimum coins needed to make the given amount of change. 10 / 10 1.00
credit.c Check the validity of a given credit card number using Luhn’s algorithm. 17 / 17 1.00
Additional practice
Week 1: Additional practice Description Test Style
debug.c Debug the given code. 4 / 4 1.00
half.c Calculate the amount each of you owes based on the bill amount, the tax, and the tip. 6 / 6 1.00
prime.c Test if a number is prime, and return true if it is, and false if it is not. 5 / 5 1.00

✅ Week 2: Arrays

Problem set 2
Problem set 2 Description Test Style
scrabble.c Determine the winner of a short Scrabble-like game. 11 / 11 1.00
readability.c Calculate the approximate grade level needed to comprehend some text. 11 / 11 1.00
caesar.c Encrypt messages using Caesar’s cipher. 11 / 11 1.00
substitution.c Encrypt messages using a substitution cipher. 18 / 18 1.00
Additional practice
Week 2: Additional practice Description Test Style
hours.c Complete a function that calculates, based on a user’s input, a total number of hours or an average number of hours across a given number of days. 6 / 6 1.00
no-vowels.c Replace vowels in a word entered at the command line. 6 / 6 1.00
password.c Check the validity of a password. 7 / 7 1.00

✅ Week 3: Algorithms

Problem set 3
Problem set 3 Description Test Style
sort.txt Determine which sorting algorithm is used by each file.
plurality.c Run a plurality election. 14 / 14 1.00
runoff.c Simulate a runoff election. 25 / 25 1.00
tideman.c Implement ranked-preference voting using adjacency matrix of candidates. 18 / 18 1.00
Additional practice
Week 3: Additional practice Description Test Style
atoi.c Rework 'atoi' function into recursion. 1.00
temps_bubble.c Bubble sort: Sort the average high temperature values in descending order. 1.00
temps_selection.c Selection sort: Sort the average high temperature values in descending order. 1.00
temps_insertion.c Insertion sort: Sort the average high temperature values in descending order. 1.00
max.c Write a function that finds the maximum value in an array given by user. 5 / 5 1.00
snackbar.c Complete two functions. 1: Add the menu items. 2: Implement a linear search algorithm to search for each item you choose, return the total price. 1.00

✅ Week 4: Memory

Problem set 4
Problem set 4 Description Test Style
volume.c Change the volume of a sound file by a given factor. 5 / 5 1.00
filter-less Implement the functions that can apply grayscale, sepia, reflection, or blur filters to the images. 22 / 22 1.00
filter-more Implement the functions that can apply grayscale, reflection, blur, or edges filters to the images. 23 / 23 1.00
recover.c Implement a program that recovers JPEGs from a forensic image. 7 / 7 1.00
Additional practice
Week 4: Additional practice Description Test Style
bottomup.c Change the orientation of the image from bottom-up to top-down. 3 / 3 1.00
license.c Debug the given code. 3 / 3 1.00

✅ Week 5: Data Structures

Problem set 5
Problem set 5 Description Test Style
inheritance.c Simulate genetic inheritance of blood type. 7 / 7 1.00
speller Implement a program that spell-checks a file using a hash table. 9 / 9 1.00
Additional practice
Week 5: Additional practice Description Test Style
trie.c Search for a name using trie. 1.00

✍️ Week 6: Python


Week 6.5: Artificial Intelligence

Week 7: SQL

Week 8: HTML, CSS, JavaScript

Week 9: Flask

Week 10: Cybersecurity

Please do not copy these solutions, if you are also taking CS50x course, try solving the problem sets on your own.

I'm learning, so these solutions don't claim to be the best possible ones.


Instructors