Are you debating whether or not to enroll in the CS50 Introduction to Computer Science course but aren’t sure if it’s the correct choice for you?
I was in the same position as you—without a degree in computer science and wanting to study the foundations of the subject. That’s why I made the decision to sign up for the course and share my story in this post.
This is not really a review of Harvard’s CS50 Introduction to Computer Science. This is more like my experience and thoughts on it.
Shortly – I loved the course. The lecturer was so talented and could keep my attention on the topic, and the given problems only increased my love for programming.
What is CS50?
CS50 is Harvard’s free course that you can find on YouTube or edu. Here are the links:
YouTube: https://www.youtube.com/watch?v=IDDmrzzB14M&list=PLhQjrBD2T380F_inVRXMIHCqLaNUd7bN4
Edu: edx.org
There are 10 weeks in this course. The topics are:
- Week 0 Scratch
- Week 1 C
- Week 2 Arrays
- Week 3 Algorithms
- Week 4 Memory
- Week 5 Data Structures
- Week 6 Python
- Week 7 SQL
- Week 8: HTML, CSS, and JavaScript
- Week 9 Flask
- Week 10 Emoji
After you complete each week’s lectures and problem sets, you need to do a final project and three minute video on any topic you want, but based on the information learned on the course.
Why did I take CS50?
After some time of self-studying web development, I wanted to close holes in my knowledge. I wanted a structured and serious course that brought it all together. I heard good reviews from different people on YouTube and decided to give it a try.
CS50 is all that. Harvard University offers this highly regarded course. This indicates that you will be receiving instruction from qualified faculty members and having access to a top-notch course.
How was it?
I have to warn you: this course is for beginners. 2/3 of the students taking the course have never taken a programming course in their lives, but it is not easy. I would say it is very challenging but enjoyable. I was excited to wake up every morning and work on the given projects. Right now, I will be working on the final project.
Every week, there is a lecture that is about 2.5 hours long. After the lecture, you have to do a lab, which is usually an easy exercise to see if you understand the topic. After that, there are problems. Usually, there are one to three problems to solve, and sometimes you can choose which problem you want to solve depending on whether you are more or less comfortable with programming. For each problem, you have to submit it via their VS Code cloud platform using Github. There are also practice problems you can solve to go even further in your studies.
How did I plan my studies?
Every Monday, I listened to the lecture, and if I had the time and energy, I did the lab. After that, I solved a problem every day if I could manage it. On average, I spent two to four hours a day, sometimes even longer. I really enjoyed the problems. I am a person who learns the best while doing something, so the problem sets were the most enjoyable thing out of all of the courses.
My final project plan
At first, I thought I could make something about art. Like an art gallery or something. I have artwork that I would like to present, but I was not really excited about that idea. Then I thought I could make an app about motivation, self-development, values, or something, but nothing stuck. Then I remembered that my mom always wanted a webpage for herself. I did not know the details, but I was excited to maybe make something real. By “real”, I mean that it would be used and somebody needs it, so I am not just making something for the course.
I thought she wanted a professional page with a portfolio and CV, but she had other ideas, of course. She wanted a web page that was a storage space for scientific papers. The functionality was what interested her. She wanted tags that could be put on every piece of paper and ranked from, for example, 1 to 5 in terms of interest. It would be possible to search according to ranks, titles, tags, and years.
What is included?
There are three pages: the welcome page, where the user can know what the storage is; the page where the whole library is shown; and the page where the user can update the listings. Right now, as I am writing the first draft of this, I am working on the design part of the project in Figma and starting to plan the functionality of the project.
It should work like this: the user opens up the app, uploads the paper or adds another entry in the table, and manually inserts a site to the paper there. There, the user can add tags and comments and change the title. Then, after adding it, it shows up in the table on the main page, where it is possible to search for it.
Hopefully, after hours and hours of work, this project will be finished and usable. Right now the timeframe is one month, taking into account that one of the weeks will be the Latvian Song and Dance Festival, so no time would be allocated to the project.
Final thoughts
Anyone with a keen interest in computer science should take this course, in my opinion. It offers a solid knowledge foundation. I believe it has filled several gaps in my programming knowledge. I’ll wait to see how my final project turns out, but it ought to be intriguing and enjoyable. Although the course is difficult and I had to listen to several lectures again and research more information online, I believe it is worthwhile.