In my quest to find a course that will give me a good introduction to computer science, I came across Harvard's CS50x Introduction to Computer Science. It claims to *teach students how to think algorithmically and solve problems efficiently* hence I saw it as a perfect way to start learning the basics of computer science and programming.

Week 0 mainly entailed learning how computers work including how computers use a system called *binary* today to count. This can be done by representing numbers in zeros and ones, a language computer speaks.

I also learned about the *ASCII* standard, which is a standard that was created to map specific letters to specific numbers to prevent an overlap between the ones and zeros that represent numbers and letters. I got a glimpse of how binary can also be used to represent emojis, colors, images, videos and sound.

I got introduced to the concept of algorithms and how to analyze them and how the Big O Notation is used to measure the efficiency of an algorithm in terms of the number of operations it performs. I also got to understand how to create and manipulate variables, loops, conditions, and event handlers.

For the week's assignment, we had to get creative on **Scratch** which is a visual programming language developed by MIT. Implementing the project on Scratch exposed me to the use of variables and conditions.

Overall, Week 0 was a great introduction to fundamental concepts. I also commend highly the teaching style of the instructor David J. Malan. I look forward to the next weeks!