Skip to content

ob3calp/cs50

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Harvard University's CS50 2020: Introduction to Computer Science Problem Set Solutions

Harvard University's CS50: Introduction to Computer Science is an entry-level computer science and programming MOOC (massive online open course). It is often recommended in Reddit and Stack Overflow discussions for beginner programmers as a starter course. Best of all, all the material is available online and completely free!

I started the course with a novice understanding of programming concepts and a little bit of experience with C, C++, and Lua. This Git repository contains my solutions to the problem sets for the Fall 2020 course.

I have refrained from going back to "improve" earlier problem sets as I've advanced through the course because I also wanted to document my learning progress. The repo is updated as I go through the course.

Here is my week-by-week analysis of the problem sets:

Week 1 - C

The first program you ever write when learning a new programming language. Spiced up by using a function from cs50.h library to query for a name and print it out.

While and for loop structures, the basic building blocks of programming. Getting back to C syntax and being frustrated with forgetting those semicolons.

The main lesson was using if-else control flow to get the desired result. This was a decent challenge for me, took a few hours to finish.

Week 2 - Arrays

Character data type, getting to know ASCII. String is just an array of characters. Using a few more libraries.

Taking a command-line argument, making your own functions. Again, a nice challenge that took an evening to complete.

This was a tough nut to crack for me. Took a lot of thought to figure out how to make sure each alphabet was used exactly once and how substitution was to be done correctly. This actually felt like programming.

Week 3 - Algorithms

Partial code with the main block given. The task was to complete 2 functions to get the program, was over before I knew it.

A step up in difficulty again. The task was to complete 6 functions, which were nicely bite-sized and contained. Text to logical problem, 2D arrays, loops inside loops. Didn't understand the whole logic behind the program even though I completed the code.

Oh man, the legendary Tideman. The logic was very hard to reason, I had to draw 2 pages full of visualizations and even a separate program to dial in lock_pairs function. Sorting algorithms, recursive functions, I felt like a total failure. Got all smiley faces in the end, but would've appreciated a little more hand-holding.

Week 4

Week 5

Week 6

Week 7

Week 8

About

Harvard University's CS50 2020: Introduction to Computer Science Problem Set Solutions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages