Skip to content

marianadacunha/cs50

Repository files navigation

General Info

CS50 is a course that teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, and software engineering. Languages include C, Python, and SQL plus students’ choice of: HTML, CSS, and JavaScript (for web development); Java or Swift (for mobile app development); or Lua (for game development).

Problem sets inspired by the arts, humanities, social sciences, and sciences. Course culminates in a final project. Designed for concentrators and non-concentrators alike, with or without prior programming experience. Among the overarching goals of this course are to inspire students to explore unfamiliar waters, without fear of failure, create an intensive, shared experience, accessible to all students, and build community among students.

Please keep in mind Academic Honesty. The CS50 course recognizes that interactions with others can facilitate mastery of the course’s material. However, there remains a line between enlisting the help of another and submitting the work of another. There are many great communities for support and help, such as the CS50 Subreddit and CS50 Slack. Investing your time and energy into solving each and every problem set independently is the best way to experience the course.

Weekly Overview

Week 0: Scratch

Link to play the game that I created:

Week 1: C

Implementing a program that prompts the user for their name and then prints "Hello" + their actual name:

Implementing a program that recreates half-pyramid using hashes (#) for blocks:

Implementing a greedy algorithim to minimize the number of coins you’re dispensing as change for each customer:

Week 2: Arrays

Implementing a program that encrypts messages using Caesar’s cipher, a simple encryption technique:

Implementing a program that computes the approximate grade level needed to comprehend some text:

Week 3: Algorithms

Implementing a program that runs a plurality election:

Implementing a program that runs a runoff election:

Week 4: Memory

Implementing a program that that applies filters to BMPs, such as sepia, blur and grayscale.

Implementing a program that recovers JPEGs from a forensic image.

Week 5: Data Structures

Implementing a program that spell-checks a file, using a hash table.

Week 6: Python

Re-doing previous C programs in Python.

Implementing a program that identifies a person based on their DNA.

Week 7: SQL

Writing SQL queries to answer questions about a database of movies.

Implementing a program to import student data into a database, and then produce class rosters.

Week 8: Web Track

Build a simple homepage using HTML, CSS, and JavaScript.

Implement a website via which users can “buy” and “sell” stocks.

About

📝 Problem sets and projects for the CS50: Introduction to Computer Science course by Harvard University

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published