Why Scratch Should be your First Programming Language

 






Programming is everywhere! From new and evolving artificial intelligence being used in large language models like OpenAI's ChatGPT, to the software that is used to run and operate our smartphones. Programs are communicating with each other all around the globe.  For anyone aspiring to be a programmer and has surveyed the internet for learning resources. The results can be overwhelming. Almost, from the moment the search results are rendered on the screen, there are so many upfront decisions you have to make. Such as, "Do you want to do an accelerated boot camp or learn at your own pace?", "What sector of programming are you planning to pursue?". For some of our newcomers just wanting to start with a fundamental understanding of programming, this overload of information can be a lot to process and discouraging. Among the list of free online resources is Scratch, but their approach in learning to program is unique from the others. We are going to reflect on the experience encountered programming our first scratch program and why it should be a newcomer’s go-to tool for learning to program.


Before we do a comprehensive breakdown of my experience writing my first Scratch program, we must uncover what exactly is a computer program?  "A computer program consists of instructions executing one at a time (Vahid et al., 2019). This means that a computer has a very specific way of thinking. Computers exclusively communicate in a binary systems utilizing 1 and 0 often referred to as machine language. Subsequence, when programmers writes a program before our computer can understand the program it has to be converted into machine language. This is often done using an assembler or a compiler depending on the type of programming language you decide to go with. The programming language someone choose varies depending on use case.  Web developers may utilize programing languages like Java, JavaScript, HTML or other web based programming languages. While data based programmers are more likely to use high-level programming languages like Python or R. While all these programming language's use case differ, the one constant we can rely on is they are all converted into 1s and 0s and read top to bottom. While all the rules and formats differ from language to language, the computers thinks and understand instructions remain the same. This is why when it comes to learning to program Scratch is an outlier among all other learn to code/program resources online.




Scratch launch in 2007 with one vision in mind "To spread creative, caring, collaborative, equitable approaches to coding and learning around the world." (Scratch Foundation, 2019). This is reflected when you log on to the Scratch's home page and see childlike images and games. On the surface, Scratch may be immediately dismissed as  an online resource primary used to teach children/young kids how to program, and you'd be right. However, that does not negate its effectiveness to instill core programming logic. The program developed was an interactive one player game entitled "Wild West Zombies".  

There were many challenges faced while in development. One notable challenge that was faced, despite all efforts,  appeared to be insoluble. Upon pressing the green flag, despite the "Move to <fort>"  action being activated, the zombie would move to a spot on the grid that was not the location of the fort visible on the map. This is why the program uses x and y. While efforts to resolve the bug proved unsuccessful, troubleshooting uncovered a website entitled "Scratch Wiki". Scratch Wiki provides robust documentation for Scratch and outlines how to properly utilize each unit. Dedicated to pursuing the problem, an alternative solution was engineered.  Any additional challenges faced were quickly resolved with the assistance of Scratch Wiki. It was not until the testing of the application that the root of the bug was revealed. In the bottom right corner of the code area, lay an erroneously placed block programmed to place a hidden shack at the exact point where the bug was sending the zombies. In retrospect, this was the bug that ended all bugs.

This experience underlines critical insights and defines not only how a program operates, but in the way programmers think.  Scratch distinguishes itself from other online programming platforms by underlining and focusing on how a program reads the order of instructions rather than focusing on specific languages. Researching how blocks interact with each other provided insight into how programmers troubleshoot programs to tailor the desired result. 








References
Vahid, F., Lysecky , S., & Wheatland , N. (2019). TEC 101: Fundamentals of Information Technology & Literacy [Review of TEC 101: Fundamentals of Information Technology & Literacy].
 
Scratch Foundation. (2019). Scratch - About. Mit.edu. https://scratch.mit.edu/about

Wild West Zombies (2023). https://scratch.mit.edu/projects/922816075 



Comments