My experience programming with Scratch was interesting. My project is a simple experiment that allowed me to learn some of the primary functions in Scratch. I first reviewed some of the impressive example projects. I enjoyed how the users made animations that looked so polished and professional. I assumed that creating something of such high quality would take many hours and extensive experience, and my attempts at starting an interactive program in Scratch confirmed my assumption. My first obstacle was thinking of what to create. I browsed the images in the stock library and chose the cat as my main character. The cheesy puffs were the first image I noticed, and I knew I would want to include them in my project. I wanted to show the cat’s reaction to a favorite food, the cheesy puffs, as well as a response to a food that was not his favorite, so I chose the fruit platter. I enjoyed learning how to create queues that triggered different actions in my project. I struggled to make the cat face the direction I wanted him to while also moving his legs to show a walking motion. I learned how to do one or the other, and I settled on the walking action, although I would have liked for him to face left when moving in that direction. I enjoyed playing with the sound triggers and changing the playback speeds with different triggers. This exercise opened my eyes to how interdependent each piece of the program is and how changing one element can have unintended effects on other parts. It also showed me how to use logic statements to set conditions and execute actions based on those conditions.
There were parallels between my experiences programming in Scratch and the participation activities in Sections 2.8, 2.9, 2.10, and 2.11 of the textbook. For example, when assigning the parameters of an if/then statement in Scratch, I see some similarities to how zeros and ones are used to represent characters in machine language. The if/then statement is also similar to the on/off action of a transistor. If the condition is true, then an action may follow. In a transistor, if an electrical condition is met, then an output may be produced. I see this similarity in assembly language as well. Whereas in assembly language, the zeros and ones are replaced with textual representations of the machine language input which humans more easily read, Scratch uses the block system and graphical elements to represent more complicated combinations of data that can interface with the machine language. There are also similarities between the repeating instructions in Scratch and the example of Python for loops in the textbook.
The differences between the programming languages described in the textbook and Scratch seem to be fundamentally in the level of interface with the machine language. Assembly language is like one step removed from machine language, where the assembly instructions can more succinctly represent machine language to humans but still represent a relatively granular level of machine language. High-level languages, such as Python, can represent assembly language in an even more abbreviated interface, so a combination of different assembly instructions may be represented by a single command in a high-level language. Sparing humans from interacting directly with assembly and machine languages is a significant advantage of high-level languages.
I found the assembly language the easiest to use, but this is due to the simplicity of the examples. For more complicated instructions, assembly language would become too verbose to be practical, so a high-level language would then be preferable. Machine language would be most effective at directly controlling a computer’s functions. Still, it would be difficult for a human to interpret and interact with because the lack of distinction between different combinations of zeros and ones might cause it to appear indecipherable. Assembly language would provide a more accessible interface that humans could use to identify patterns of machine code with assembly language designations. Assembly language would be most effective for hardware-specific instructions. High-level language would be most effective for human-directed computing, which might include complex combinations of instructions. High-level languages have established instructions that can execute multiple assembly or machine-level commands with a more intuitive and succinct syntax, making it easier for people to work with.
It might be misleading to say that one programming language
level is more popular than another since all computers have machine, language,
assembly language, and high-level language. However, high-level languages may
be more universally popular since they are not hardware-specific, whereas
assembly language is often specialized to a specific piece of hardware
(Assembly language, n.d.). Python seems to be ever-increasing in popularity
among the high-level languages, although C still holds the highest ranking by a
slight margin, according to TIOBE (n.d.).
References
Assembly language
(n.d.). PC.
https://www.pcmag.com/encyclopedia/term/assembly-language
TIOBE (n.d.). July Headline: C, Java, and Python compete
for the first position. https://www.tiobe.com/tiobe-index//
Untitled-2 [Interactive]. Scratch. https://scratch.mit.edu/projects/557456734/
0 comments:
Post a Comment