CS50 Week 0 Work-through
Tags: c, cs50, course, edx
Published: 2022-07-09 23:42:44

## Introduction
👋 Hi! I'm TeakIvy! (Real name: Collin). I am a 17 years old, but have been programming since I was 12. I am mostly self taught, however I have taken a several classes consisting of Business, Engineering I, II, & III, Computer Science, Cyber Security, as well as Java Programming I & II. So I guess you could say I have a bit of experience.

I recently learned that Harvard had the entirety of their [CS50 Course](https://cs50.edx.org) available online... for free! So after a few weeks of putting it off, I finally decided to jump in, and WOW is it amazing! The course consists of 10 weeks of lectures, and a final project. The course starts with Scratch, and C (a language I've been too scared to touch for years), then moves on to Python, JavaScript, HTML, & CSS (all of which I have been comfortable with for a while).

So this is my [CS50 2022](https://cs50.edx.org) Work-through: Week 0.

## Week 0 - Scratch

{% embed https://www.youtube.com/watch?v=1tnj3UCkuxU %}

This week's [Lecture](https://www.youtube.com/watch?v=1tnj3UCkuxU&t=1892s) was fairly short, at just over 1 3/4 hours. I'm not going to go into detail of the lectures here, as this post series is mainly for the Problem Sets & Labs. But it covers everything from Binary conversion, it's representation of text, images, and the like. As well as using scratch, conditionals, and abstraction. Most of this I can gladly say I have picked up in my many years of teaching myself (especially the binary, I often find myself converting numbers just for fun... I know, I'm weird).

Regardless, this week was more of an introduction into the ideas of Computer Science. It still managed to pack more into <2hrs than the entirety of my 10th grade CS class did in 5 months... so that's something.

### Project Set 0
#### [Scratch](https://cs50.harvard.edu/x/2022/psets/0/scratch/)
Once again, this week was quite simple, creating a small scratch game. However said game did have to meet a few criteria.
- Your project must use at least two sprites, at least one of which must not be a cat.
- Your project must have at least three scripts total (i.e., not necessarily three per sprite).
- Your project must use at least one conditional, at least one loop, and at least one variable.
- Your project must use at least one custom block that you have made yourself (via Make a Block), which must take at least one input.
- Your project should be more complex than most of those demonstrated in lecture (many of which, though instructive, were quite short) but it can be less complex than [Oscartime](https://scratch.mit.edu/projects/277537196) and [Ivy’s Hardest Game](https://scratch.mit.edu/projects/326129433).

In the end I made a fairly simple game I like to call [**Flying Cat**](https://scratch.mit.edu/projects/711007541). The aim of the game is to move the Scratch Cat up & down with the arrow keys to avoid the moving balls. I even added a few clouds flying by to spice the scene up a bit. If you do hit one of the balls, you then fall to the bottom, and say "`Game Over`" with a death sound. Pressing the flag will restart the game to the starting position.

It's a fairly simple game, relying mainly on hiding, showing, and moving objects around.

![Flying Cat bypasses several killer balls](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aoelt1w7vurvy0e718hf.png)

If for some reason you'd like, you can play the game [**here**](https://scratch.mit.edu/projects/711007541).

### Concluding Notes
And that was the end of Week 0! While fairly basic, I think the instructor (David) explained all the topics clearly, and while this is mainly a Work-through of the Projects and Labs, I don't think you will have any trouble following along with the lecture (though you may need to slow it down!).

At the point of publishing this, I have already finished Week 3, and started on Week 4, but I figured this would be a great first post & series for my Dev.to account! Please let me know any feedback in the comments. Maybe I will go into more detail starting with Week 4 (as I'll be writing it as I do it).

And with that,
**This has been CS50!**