There are lots of praises around the web on how Harvard University's Introduction to Computer Science CS50 is great, especially for people without prior computer science education. In this post I explain what are the stuff that intrigue me as a self-learner.
But before we go through the new things that I learned, I would like to help you answer, should you take the CS50 course? If there are some things below that you are not really familiar, or have heard but never tried it out and do it yourself, sure, CS50 is a great resource for that. On the other hand, if you are familiar and can explain what are these items below, I would recommend you to skip this course. π
Here are some of the items that is new to me that I learned and applied in CS50:
-
Scratch
- I have heard about scratch in the past, but not curious enough to try since it is always branded as a beginners tool to understand programming.
- When i was much younger, I played a lot of simple flash games on Miniclip, and one of it is 2D racing game like this.
- So, I did this as my project for week 0(2D Racing Game), it is not perfect, but I had fun.
-
Sort algorithms and Big O
- Prior doing CS50, I can program a simple Python script to sort things in an list, but I found out it is actually called insertion sort and there are already a few other sorting algorithms.
- There is also a metric that measure the time taken to solve as the items to be sorted becomes bigger which is Big O.
-
Reading files bit by bit
- Now i understand what actually makes up the type of file. You cannot simply change a file type just by changing its file extension.
- There are a few bits at the header of the files that contain information about the file and that what makes, for example, a .jpg file different than .png file.
-
Pointers, Linked List, Hash Tables
- Appreciation on memory usage when running a program and what is the difference of heap and stack in memory.
- Doing in programming in Python before, I do not really care about memory as I do not need to malloc and free memory.
- Also I can brag that I know how to do linked list in C. Yay.
From week 4 forward, most of it I have already read and do in the past so it is really smooth sailing from there. If you want to just skim through the syllabus , do check out the CS50 lecture notes here.
Top comments (2)
CS50 is an amazing introduction to Computer Science. David J. Malan is a wonderful and captive teacher!
Thanks for letting me know about all the classes edx, I might take one! I'm not sure yet, but it's great that they're free unless you want a printed certification.