Batty Programming - Programming Languages
Using
Scratch was a new experience to build “Gone Batty” https://scratch.mit.edu/projects/584673198. Having done little to no programming or
coding in the past, it was a bit of a learning curve. However, the experience was pleasant an it was
easy to get carried away. It felt like
experiences using HyperCard in the late 1980’s and early 1990’s in my
elementary school computer lab.
While
using the program, I had difficulty in breaking down to the granular level. As
my day to day career and experiences require me to look at the whole picture,
breaking down to the step by step level was a challenge. My other difficulty had to do with timing, in
order to make my “sprites” do what I wanted, I had to get the timing correct
and spent time playing with timing and position. In order to overcome these difficulties, I
had to force myself to think on the step by step level rather than just the
outcome. Flexing some critical thinking
skills and thinking about each step allowed me to look closer at each action
and think about the steps that needed to happen to achieve my desired
outcome. To overcome my challenges in
timing, it was mostly trial and error, I had to try one thing to see how it
affected the next steps in the chain and use some minor addition to add up the
seconds.
Having
worked with the program, I understand more the level of detail that programmers
and coders need to analyze in order to make successful programs. Starting with
an idea and working backward to determine all the steps that need to happen in
order to achieve the end goal is a level of detail I have not had to work with
in some time. The problem-solving skill is impressive as well. As I worked, I
would run a test of the program and it would not have the desired outcome.
Reviewing and determining where something went wrong was a good exercise for my
brain. Coding and programming are very detailed;
however, it is driven by the desire for an end result.
The
textbook describes machine language, assembly language and high-level language.
Working through the exercises in the text, I found machine language to be the
most difficult and time consuming to understand, as it truly is a different
language of 1s and 0s, requiring more translation from written commands to
binary. Experience in Scratch was most similar to assembly language, but the
commands were an easy drag and drop rather than having to write myself.
Each
of the programming languages are built on the other. Early computers worked on machine language,
requiring programmers to translate commands into 1s and 0s. Assembly language built on that, moving to a
textual representation that is run through an assembler to translate into
machine language for the computer to understand. Further, high level languages,
such as Python and C++ are more human readable and able to execute higher
commands that compile into assembly and machine language. Each language builds on the one that precedes
it. (Vahid & Lysecky, 2017).
I
found the higher-level programming language exercise easiest as it felt like
Algebra and it was easier to flow through the commands. In machine language, I had to reference the
ASCII table often and figure out which letters corresponded with which series
of numbers. Assembly was slightly easier as it moved into text, however I did
find that I would sometimes mis-order the commands.
As
far as we have progressed in technology, I do not see an application where
machine programming would be the best choice.
Even the smallest computers have a need for more complex programming.
Assembly language would be best used as a teaching method for higher level
languages or in applications such as Scratch to help teach programming. I think high level programming languages are
used in most applications today.
I would think that high level programming languages would be easiest to use as they would have the most versatility and capability to achieve desired outcomes. However, I would expect that since there are so many different languages it would be difficult to master all of them and it would make it difficult to determine what language to use for different applications.
References
Vahid, F., & Lysecky, S. (2017). Computing
technology for all.
Retrieved from zybooks.zyante.com
No comments:
Post a Comment