top of page
Search

From Flying Cats to Coding Insights: My Scratch Project Journey

  • Writer: Michael Aiden-Lee Shrader
    Michael Aiden-Lee Shrader
  • 1 day ago
  • 4 min read

If you’ve ever wondered what it’s like to turn imagination into an interactive game, Scratch is a fantastic place to start. Recently, I dove into my first Scratch project for a class assignment - and what a ride it was! I set out to create a “Flying Cat” game, and along the way, I gained real-world programming skills, overcame plenty of hurdles, and came away with a new appreciation for how different programming languages shape your coding experience.

Creating the Flying Cat Game

My project, which you can play here, Scratch Cat Fly on Scratch, puts you in control of a cat soaring across the screen. Your mission: collect as many floating Letter A’s as possible by moving the cat with the arrow keys. The game features a scrolling background to create motion, lively background music to keep things upbeat, and a satisfying “chomp” sound effect whenever you nab a letter. There’s also a scorekeeper that tracks your progress in real time.

I used over 30 Scratch code blocks to bring my vision to life - everything from movement and looks blocks to variables, sound, and event broadcasts. The visual, drag-and-drop interface made the development process approachable and engaging, even as the logic grew more complex.

Challenges & How I Overcame Them

Of course, no project is without its challenges! Here are a few of the obstacles I ran into - and how I tackled them:

  • Scorekeeping Woes: At first, I forgot to reset the score at the start of a new game, so every playthrough just kept adding to the old score. I fixed this by adding a block to reset the score variable whenever the green flag was clicked.

  • Items Disappearing Off-Screen: Sometimes the Letter A would spawn outside the visible area, making it impossible to collect. I had to debug by restricting the randomization values so the letter always appeared within the screen boundaries.

  • Debugging Sound Effects: The chomp sound effect was playing at the wrong time or not at all. Through trial and error, and observing Scratch’s immediate visual feedback, I tweaked the collision detection to ensure the sound only played when the cat actually collected a letter.

These hurdles reinforced the importance of planning and breaking problems down into smaller, manageable pieces. Each bug was an opportunity to practice troubleshooting - a skill that’s just as important as writing code in the first place.

Insights Gained

The process gave me hands-on experience with computational thinking - planning, sequencing, and decomposing problems. The visual feedback loop in Scratch was invaluable: I could instantly see if my code worked, which sped up my learning and made debugging less daunting.

I also realized how essential it is to think logically and incrementally. Mapping out the game’s features before touching any code (sprite movement, collision detection, scoring, sound) made the actual programming much smoother.

Comparing Scratch to Other Languages

In class, we also explored machine language, assembly language, and high-level languages like Python. Here’s how my Scratch experience stacks up against those:

  • Machine Language (Section 2.8): Programming directly with 0s and 1s is powerful but nearly impossible for humans to manage for anything but the simplest tasks. Everything must be spelled out in binary, which is tedious and error-prone.

  • Assembly Language (Section 2.9): Assembly is a step above machine language and lets you use mnemonics like MOV or ADD, but still requires detailed knowledge of the hardware. It’s great for situations where you need maximum control (e.g., embedded systems), but it’s not beginner-friendly.

  • High-Level Languages (Python) (Sections 2.10, 2.11): Python is much more approachable than assembly or machine language. It uses human-readable commands and abstracts away hardware details. Python shines in automation, scripting, data science, and web programming.

  • Scratch: Scratch eliminates syntax errors by using visual blocks you snap together, making it the easiest and most intuitive tool for beginners. It’s ideal for learning core programming concepts without worrying about typing mistakes.

Which Was Easiest?

Scratch, hands down. Its visual nature and immediate feedback make it easy to grasp even for those who’ve never programmed before. Python comes next for ease of use and flexibility in professional environments.

When to Use Each Language

  • Scratch: Perfect for beginners, education, and rapid prototyping of games or stories. Great for teaching computational thinking without the baggage of syntax errors.

  • Python: Excellent for general-purpose programming, automation, machine learning, and web development.

  • Assembly/Machine Language: Best for writing code that interacts directly with hardware, such as firmware or performance-critical system components.

  • SQL (Query Language): Unmatched for database management and querying large datasets.

Most Popular?

Today, Python is arguably the most popular programming language due to its versatility and huge ecosystem. Scratch is the go-to for initial programming education, while assembly and machine languages remain niche but critical in specialized fields.

Final Thoughts

Building my flying cat game in Scratch was more than just a class assignment - it was an eye-opening introduction to programming logic, project planning, and debugging. Scratch’s design stripped away the fear of syntax errors and let me focus on the fun and creative side of coding. Along the way, I built a foundation that will make diving into more advanced languages like Python feel much less intimidating.

Want to see what you can do? Check out scratch.mit.edu and give it a try!


Have you built something cool in Scratch or another beginner language? Or are you curious about learning to code? Share your thoughts and questions below - I’d love to hear your experiences!

 

 

 

 
 
 

Recent Posts

See All

Comments


bottom of page