Friday, June 22, 2018

Scratch:My Frustrating Attempt to Write Block Code Using a Children's Program...

I tried Scratch (a children's program that teaches block programming language) for the first time ever!  Here's what I came up with from my sorry first attempt...

Penguin Man Program (click the link to see the program): https://scratch.mit.edu/projects/227437790/

My experience building the Scratch program was actually quite frustrating. It didn’t help that I had just came off of a long week in which I was wrapping up my previous course, while beginning my current one (I am doing concurrent enrollment for school). Therefore, the weekend before my Scratch assignment for class was due, I was tied up completing my Medical Terminology final, a 2-day (Saturday and Sunday) coding workshop through Turing School of Software and Technology, as well as trying to complete assignments and the reading for my INT100 course. I also work full time. Honestly, I wish I would have had more time and energy to explore Scratch sooner, but due to an usually busy schedule the past week, I was not able to explore the program until the night it was due. 

The Scratch software was not very intuitive to me, even though I read the user manual first. The manual was helpful for basic tips, but I found that creating an animation with very little brain power left at the end of the day was rather difficult. In addition, I couldn’t figure out why actions seemed to be occurring so quickly, almost as if they were compiled on top of one another. I realized that using the “Wait” block was helpful in between actions to slow down the process. In addition, it took me a while to figure out how to lengthen the duration of the drum beats—eventually placed the drum beat inside of the repeat block to create more beats. Also, I realized that “Point in direction __” was very different than “Turn __ degrees.” I found it helpful to click on blocks separately to observe their actions before adding them to the stack. In the end, the result was a very basic animation stemming from a struggle with both creativity and patience. 

This exercise taught me that trial and error can be a useful method in programming. In addition, I learned that the steps in a program occur sequentially, and that they need to be specific. I also learned that programming takes patience and perseverance, and that I might not get my desired outcome the first time. In the real world, it would be helpful to have a plan or design first, and then to write the code that fulfills that plan. 

My experience programming with Scratch was a bit more frustrating than my experience with the participation activities in my course textbook. I think that was partially due to the fact that the textbook asks for a desired outcome, whereas with Scratch I had no objective other than to create a program using 30 blocks with a variety of components. The Scratch program was very open-ended and required us to design a program, along with writing the code. I caught on pretty quickly to the participation exercises in the book because they were very straightforward and had a desired outcome, but I can see how in the bigger scheme of things, languages like machine language would be very impractical. 

The programming languages that my class reviewed in our textbook are all very different from one another. Machine language is the lowest level language, and the only language that computers can read and understand. Machine language is simply binary code made up of one and zeros. Assembly language is a step up from machine language in that it reads a bit more like English; however, complex functions are not possible using assembly language. High-level languages like Python are the most efficient. They have similarities to English, but can allow for very complex functions and logic, including conditionals and loops. 

Honestly, I found Python language the easiest to use in the participation exercises found in the textbook. The binary threw me off a bit when trying to use machine language and assembly language. It took me some time to see the connection between the “input”, “output”, “add”, “start” and the corresponding binary code. In addition, it took some time for me to conceptualize that a variable is a location. I think that the programming exercises in Python came the easiest to me because I have a little bit of experience in Java, Ruby, HTML, CSS, and JavaScript. Therefore, Python was the most familiar to me. When I was trying to program in Scratch, I understood that the logic was similar to Python and other high-level languages, but some of the blocks of code in Scratch performed actions differently than I predicted. In addition, I felt that I didn’t have enough time to fully understand all of the icons and nuances of the software to use it effectively. 

In regards to use, machine language is the most basic language of computers, so it will always be used as the foundational language that the others are built on top of. Assembly language can be used for basic functions and manipulations of data. High-level languages like Python can be used for complex manipulations of data and large data sets. I believe that high-level languages are the most popular today because they can perform tasks much more quickly than machine language and assembly language. Therefore, productivity in an organization can be increased.  

Resources 

Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from zybooks.zyante.com/

No comments:

Post a Comment