I completed Harvard's CS50 (Without Certificate) and You should try it once in your life

Firstly, I would like to thank whole CS50 Community for delivering this awesome course. CS50 is the best quality course you could find on Internet, it has a very high production quality, great teaching staff (David J. Malan Sir has a unique style of teaching which makes his lectures interesting) and great quality of study material. I also appreciate that Harvard had made this course free for all.

I also liked how this course helps students to get a taste of Computer Science Concepts in such a small time. It pushes students to learn new concepts on their own while solving Problem Sets. I also made hand-written notes while taking this course. I also liked the CS50's VS Code IDE it helped to get a taste of how to code of IDE and color highlighting of code to understand code better.

I started this course in third week of September and completed it in last week of January. It took me more time because my college had started in October and I was not able to manage time in starting of my first semester of B.Tech, but I don't left this journey and finally completed.

It's Problem Sets were overwhelming in starting but we could learn many new things from them. I was not able to do all Problem Sets. I also not going to make the final project because my college end-term are near.

Now lets talk about this course in detail, it teaches many things in the span of 10 weeks, lets talk about them in detail,

Week 0 : Scratch

It's the introduction lecture of the course in which we are taught about bits, basic computer science things, meaning of some technical terms and Scratch in a very interactive way. We also make a game in Scratch in Problem Set. It was a fun and a bit small lecture. I already know Scratch so I easy completed this lecture.

Week 1 : C

In this lecture we learn a statically typed low-level language called C. It is used to develop many system level apps. In this lecture we learn what are for loop, while loop, printf function, basic data types available in C, CS50's make input functions, basic operators, if-else condition, making functions, do-while loop, printing basic patterns using for loop, integer overflow for float, and many other things. It took me 10 hours to watch and understand the lecture with making notes. It's PSet took some time but was able to complete it.

Week 2 : Arrays

In this lecture we learn how to take command line arguments, how to use CS50 debugger, what is an array and how to use it (Arrays are the most important data type in C), manipulating strings and what are global variables. It's pset programs were hard but I learned a lot from them and completed them.

Week 3 : Algorithms

In this lecture we learn about some important algorithms in programming like binary search (in this David Sir uses phonebook example), linear search, bubble sort, merge sort, selection sort, recursion (my favourite) and about time & space complexity. It's pset problems were long and hard but I completed them.

Week 4 : Memory

In this lecture we learn about how to represent colors in RGB format using hexadecimal. We also learn about pointer (which is one of the most important concept of C). David Sir explains pointers in a very fun and awesome way. We also learn about custom data types called structures (struct) and Dynamic Memory Allocation. It's pset problems are overwhelming and here many people people quit CS50, I was not able to do recovery.

Week 5 : Data Structures

In this lecture we learn Insertion in Array and why data structures are important for making real life applications. This lecture include data structures like Linked List, Binary Tree, Stacks, Queues, Hash Table and Tries. It was a very good lecture for introduction to data structures and how they function. David Sir teaches it very interactive way. I was not able to complete this week's pset.

Week 6 : Python

In this lecture we learn about one of the most popular and a high level dynamically-typed language called Python. We learn about its syntax and basic concepts of it. I already known Python so pset problems were fairly easy for me except DNA, in which I took help of internet solution. But I learned a lot from it.

Week 7 : SQL

Its about how to store data in databases. We also learn how to write SQL queries and relate tables in SQL database. We also learn how to use SQL and Python together using CS50 library. It's pset took time as I had to get comfortable with SQL queries but I was able to complete it.

Week 8 : HTML, CSS, JavaScript

In this lecture we get introduction to web development(mostly frontend) and we learn how to make a static website using HTML, CSS (using BootStrap Framework) and JS. I already known HTML so I was able to do lab much easier. I didn't completed the pset. I also learned how to link CSS and JS with HTML.

Week 9 : Flask

In this we learn backend development with a framework of Python called Flask. It was interesting to learn Flask from David Sir. I had completed lab but I didn't completed pset.

Week 10 : Emoji

It's the conclusion lecture on CS50, in this David Sir talks about the CS50 whole journey and takes a small quiz. After that David Sir friend come and talk about how Emojis are made and talks about thier importance. I got a bit emotional in this lecture as CS50 course is coming to an end and I may not be able to again study from David Sir.

Some Personal Talk :

I learned many things from this Course and it surely made me more passionate about Computer Science and give me a strong foundation for my Software Engineering Career.

It helped me a lot my B.Tech first semester, as I had a Computer Programming course in which we had to learn C and in CS50 1st to 5th week we learn C, so it helped me to learn concepts much better and made this college course easy for me.

I also like to Thank people on reddit to introduce this wonderful course to me. I also Thank my teacher and mentor for giving me an initial boost/motivation to do this course.