Programming Languages

Follow me to the programming project!


Before using the features at the Scratch website, aside from the interactions with the online textbook (Vahid, 2017) for my current course, I had no experience with coding or programming. Going into this project with no experience on the subject was daunting, to say the least. From the first loading of the webpage, the bright colors and simple words were evidence that it was a tool that was easy enough for a child to use. The tutorials gave the simplest of instructions on how to begin creating with their site. Even with that, as an over-thinker, I still found the task of writing something with a minimum of thirty blocks to be overwhelming. The only thing to do to conquer the fear and anxiety was to jump in and start creating. While I didn’t have to worry about actually writing out the words for the code, let alone compiling the information into binary, I struggled to find the right blocks to build the code in order to make the cartoon character on the screen do my bidding. For instance, I could not figure out how to make the cat in the initial panel appear to take steps forward. I tried a variety of different blocks, to no avail. When using the “wait” control commands further into the project, something aligned in my mind and I was able to go back and fix the code to manipulate the character into doing what I was striving to accomplish. While using a template to create another character, editing the second character proved to be extremely tedious. While I recognized the editing program to be like Microsoft Paint, it was only about halfway through editing the colors when I realized that the controls were nearly identical and that there was a much faster way to accomplish what I was attempting. I was able to draw on my experience with MS Paint to simplify and streamline my editing process. The last major hurdle that I faced with Scratch was trying to get unnecessary text off my screen. I could not figure out how it got there, nor how to remove it. Once I completed everything else, I went back and reviewed every single possible pre-programmed block to find what I had activated to cause the text to appear. Having eventually found that, I was able to remove the offending numbers. All these things together have shown me that every single line of code, even every single character in a line, is important to the running of scripts and programs. The computer only does what it is told to do, and should a person input one wrong thing, the entire program can be affected. Also, I knew in my mind that things like computer animations took a lot of time and effort. Now that I have spent hours trying to figure out how to make a clip that lasts all of 15 seconds, I have a much higher respect and appreciation for those artists and programmers.

The differences between Scratch and the textbook interactions are stark. The textbook’s activities in sections 2.8-2.10 were all binary based and directly correlated with machine language and using an assembler and a compiler. Section 2.11, which used Python, only interacted by plugging in a specific word into already written code. In Scratch, none of the code that I used, or even saw, used binary at all. It was all human-friendly text, preset in blocks to piece together. Additionally, all the commands in the textbook interactions was purely mathematical in nature. The result of all the different codes, in all sections of 2.8-2.11, ended up in basic calculations. The culmination of the blocks used in Scratch produced a short, animated clip. Given the experience of the textbook interactions, it is obvious to me that Scratch uses a high-end language, like Python, that simplifies its use for the person creating the code.

There are three basic types of programming languages. Machine language boils down to the ones and zeros of binary which what the computer processes to take the information input by a person to give a result. Assembly language uses multiple alpha-numeric characters which are then translated by an assembler into machine language for the computer to do its processing, and then translates the binary code back into assembly language for human consumption. High-level languages, of which there are many different types, depending on the job needing done, uses multiple words to execute the commands of the code. Machine language is most effective when used for basic calculations. Assembly language is most effective when building large databases or memory banks. High-level languages are most effective in many peoples’ daily lives, from running apps on smart phones to making posts on social media. Of the basic programming languages, in my opinion, the easiest to use and most popular (due to ease of use) are the high-level languages. This is especially true for those that are less familiar with programming because it is more like talking to another person instead of worrying about it all translating into binary code.


References:

Lifelong Kindergarten Group at MIT Media Lab. Scratch. https://scratch.mit.edu/

Vahid, F. & Lysecky, S. (2017). Computing Technology for All. Retrieved from https://www.zybooks.zyante.com/


Comments