DEV Community

Cover image for CS50 Week 0 Work-through
TeakIvy
TeakIvy

Posted on

CS50 Week 0 Work-through

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 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 Work-through: Week 0.

Week 0 - Scratch

This week's Lecture 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

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 and Ivy’s Hardest Game.

In the end I made a fairly simple game I like to call Flying Cat. 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

If for some reason you'd like, you can play the game here.

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!

Top comments (0)