I started CS50 a couple weeks ago, with a goal of getting it done during this second round of #100DaysOfCode, but with the Web Summit and job-hunting and trying to complete two freeCodeCamp certifications, I kind of let CS50 slide.
What is CS50
CS50 is Harvard’s University intro to Computer Science, that I am taking for free as a self-paced course through EdX.
As a front end web developer I don’t really need to know computer science concepts to do my job. But I actually enjoy knowing how things work, and I feel to grow as a developer, to have a long career, I should have a deeper understanding of programming.
Quick Review of Week 0
Because computers start counting from zero, our first week of course was actually named Week 0. :)
The instructor, David Malan, explained binary using lamps. Then he went on to explain how binary digits, or bits, can be used to store information such as letters or colors, by having it mapped to ASCII or to RGB, for example.
From there, he started explaining algorithms and how those are really just sets of instructions for solving problems.
I loved this first lecture and the instructor is brilliant. He is motivating and his teaching style is right up my alley (using students for live demos, props for good example cases, lots of real-life comparisons). The course is a super production filmed with multiple cameras, on a stage with live audience in an enormous and ancient class room in Harvard. It’s madness, and I love it.
Problem Set 0
For this first project, I used an MIT software called Scratch, that allows users to program using a simple graphical interface.
There were several requirements to follow and the course uses a Submission system through GitHub to run tests and make sure your project passes specs. Love it!
This is my CS50 pset 0, a clone of DX Ball Game (which is, itself, a clone of Arkanoid). You need to have Flash installed to see Scratch programs.