Week 1 – Assignment: Programming Languages
My experience building a program using Scratch was more than a little frustrating, exacerbated by the lack of direction regarding what sort of program to build. I wasn’t interested in working on a cartoon or game or other graphical program, but that seems to be what Scratch is intended for. Much like with many pieces of the materials and resources I have studied and used so far in this course, I was hopelessly lost with the instructions provided until I got assistance from some of my friends who are more seasoned coders.
The first difficulty I experienced was figuring out how to get the program to display text. As Scratch depends almost entirely on its system of using sprites to designate various moving parts, and speech bubbles known as “say” to display any text, this seemed to be the only option, other than using alphanumeric-shaped sprites juxtaposed in a line to spell things out, which would have been exhausting. So, rather than being able to display a simple question, and present a set of answers with radio buttons for selecting an answer, I instead had to use sprites in place of radio buttons, and code each sprite to react in some way when clicked, to signify that their option had been selected. Radio buttons would ordinarily allow you to change your selection at any point in time before finalizing it with some sort of “submit” button. This may very well have been possible in Scratch, but I haven’t yet figured out how. So in the interim, I’ve implemented a reset button to allow the user to change their selection. This whole experience seems to me as though I’ve been forced to reinvent the wheel, and would have been totally impossible without external guidance from my friends, who suggested alternative search terms which would help me find walkthroughs and Q&A forum threads to use for guidance.
From this exercise, I gained the insight that the process of trying to create a brand new program “from scratch” (which I’m sure is the intended pun behind Scratch’s name) is not only frustrating, but entirely redundant and unnecessary. It has always been to my understanding that the bulk of contemporary coding work is built upon the shoulders of coders who came before, crafting better tools to build with, rather than trying to learn how to craft your own tools. While it may very well be important to be able to understand the structure of a function, in case it does not work well with other functions you use, it seems to me like a “we’ll cross that bridge when we come to it” sort of understanding, which can be refreshed as needed, rather than being put to constant use.
My brief experience with Scratch, in comparison to my even-briefer experiences with Python, assembly language, and machine language, was slightly less confusing, but I attribute this less to the language itself than to the presentation of the material. The participation activities in the textbook asked us to complete single, specific tasks, and gave us the exact tools we would need to do so, but the textbook did not say anything about how to USE those tools, or what the tools are capable of, or even what the tools depend upon in order to function correctly! Scratch, meanwhile, presents users with a wide variety of tools for a multitude of purposes, and while it doesn’t say MUCH about each one, it does at least categorize them by purpose or functionality, and supplies helpful color-coding and shape-coding visuals in the block commands.
Of the four programming languages sampled during the material for week 1, I found Scratch easiest to use, because I was given the freedom to work with it extensively and experiment with it, rather than being constrained to a specific set of resources for a specific participation activity, as was the case with the other three. I realize that this limitation stems less from the languages themselves, and more from the format of this course, but I have no other context by which to judge these languages objectively.
Scratch would be most effective in a scenario where a young, developing mind might want to create rudimentary videos or interactive sets. Machine language would be most effective in a scenario where a new microchip is being developed for a novel purpose. Assembly language would be most effective in a scenario where a coder is creating the new machine language and wants to be able to navigate their code more effectively. I imagine Python would be most effective for just about everything else. Of these four languages, I imagine that Python is likely the most popular, due to its versatility and applicability to many more scenarios than the other three languages. I also think that Python is the most popular because, when reflecting on the opinions of the experienced coder friends which I have talked to so far, Python is the one (out of these four languages) which was mentioned and praised the most.
Grade: 9.75 / 10
Jesse, nicely done to create a program in Scratch as required. The reflection paper provides all required detail. No references are provided as expected in the grading criteria.
...there was no mention of references in the grading criteria, other than the textbook and the "Getting Started" guide.
No comments:
Post a Comment