Exploring Programming Languages
When looking at programming, there are 3 types of
programming languages. Machine language is the lowest-level programming
language, consisting of binary code, which I did during the 2.8 participation
activity, where we had to configure the instructions to get certain inputs.
Assembly language is a middle-level language that uses mnemonics to represent
machine code instructions. It uses an assembler to convert assembly language
programs into machine language (Vahid & Lysecky, 2019), as we did in activity
2.9. High-level languages like Python are more human-readable and use
abstractions that make it easier to write complex programs. Typically, a
high-level language is automatically "converted to an assembly or machine
language before being run" (Vahid & Lysecky, 2019).
I found High-Level Languages easier to use due to the
easy-to-read keywords to better understand what it is you are asking and
writing. While programming in Python is easier as you do not have to worry
about binary or using a compiler to interpret the code for the computer, it
still comes with some challenges, like understanding the linear flow of the
code and how each variable has an effect in the entirety of the code. While I
found High-Level easier to use, there are times when a different program would
be more effective.
Machine Language would be most effective in embedded systems
and bootstrapping. Machine language is commonly used in embedded systems where
the software interacts directly with hardware components (Middle Tennessee State
University, 2023). It's essential for tasks like controlling microcontrollers
in appliances, automotive systems, or industrial machinery.
Assembly Language would be most effective using system
programming, performance-critical applications, and legacy systems. Assembly
language is effective for system-level programming tasks, such as writing
operating system kernels, device drivers, and firmware (Fernando, 2023). It
provides a level of abstraction above machine code while still allowing
fine-grained control of hardware resources. When performance is crucial, such
as in video game development or real-time simulations, assembly language can be
used to optimize critical sections of code.
High-level language is most effective when used with web
development, data analysis, rapid application development, and cross-platform
development. High-level languages like JavaScript, Python, and Ruby are
effective for web development. They offer libraries and frameworks that
simplify tasks such as building user interfaces, handling databases, and
managing server-side logic. High-level languages are commonly used for data
analysis and machine learning due to their extensive libraries and tools for
statistical analysis and machine learning model development (BBC, 2023). High-level
languages are ideal for rapid application development. Due to
its versatility, readability, and vast ecosystem of libraries and
frameworks, I believe that High-level is one of the most popular programming
languages.
Scratch is a block-based visual programming language, which
means you build programs by snapping together code blocks. This is quite
different from typical programming languages. This was my first time using
Scratch, as well as my first real-time trying out programming outside of some
minimal things I have encountered for work. It was a fun and entertaining way
to learn about how coding works and seeing the end result of each line. As fun
as it was and the amount of technical skill I have, I would have thought it
would have been easier to use. I definitely struggled the first couple of tries
when trying to create my program, but thankfully, there were lots of guides and
tutorials to help me.
When I first started with my code in Scratch, I wanted to do
an RPG Adventuring game. I started with a wizard who was in charge of the magic
guild and my goblin, who wanted to go on an adventure. I used the record
function to do some voiceover work, and that was difficult because I had to use
the wait block and count and keep track of the time to make sure the voice
conversation lined up. I then tried switching scenes and hid the wizard sprite,
but he never showed back up when the code was restarted. After troubleshooting
with the show and hide blocks, I ended up breaking the code with the voiceovers
and tossed the project altogether.
After not having success with the RPG adventure, I switched
to the side scroll Dinosaur Jump https://scratch.mit.edu/projects/888641304.
While creating this program was going better, there were still some
difficulties. I encountered trouble with the size of the tree and the size of
the dinosaur; if I made the tree too small, it was not much of a challenge, but
if I made it bigger, the tail of the dinosaur would hit the tree. I kept
adjusting the, if X< block and kept subtracting little by little until, at
the top of the jump, the tree would delete the clone. Another issue I ran into
was during the end; I wanted the dinosaur to roar if it hit the tree and then
end all programming. I had to look over the tutorials as well as Google search
various other individual's codes to see if anyone had similar codes so that I
could see how they did it. I watched some videos on YouTube of people who had
the same problem and finally found a video that helped break down the
programming and what small improvements I could make (WarFame, 2022). The
hardest part was the timing; if I put in 2 seconds, the dinosaur would hit the
tree and then roar for 2 seconds, but the game would keep scrolling until after
the 2 seconds. If I made the time too short, you could not even see the roar
bubble. So, I had to play with the time quite a bit to make it more
seamless.
After doing the programming, I have a better understanding of entry-level coding and variables using If, then, and statements. I also learned the more complex the code; the easier it is to make a mistake that could ruin the entirety of the program to almost start over or backtrack where the break is a lot. I also learned how adding one thing, even though small, can have a huge impact, positive and negative, on the code overall, and all it works together.
Resources:
BBC. (n.d.). High-level languages - classifying programming languages
and translators - AQA - GCSE computer science revision - AQA - BBC Bitesize.
BBC News. https://www.bbc.co.uk/bitesize/guides/z4cck2p/revision/1
Fernando, J. (2023, July). Assembly language. Investopedia.
https://www.investopedia.com/terms/a/assembly-language.asp#:~:text=Assembly%20language%20is%20used%20to,such%20as%20high%20frequency%20trading.
Middle Tennessee State University. (2023). Computer languages.
Machine Language/Assembly Language/High-Level Language. https://www.cs.mtsu.edu/~xyang/2170/computerLanguages.html#:~:text=Low%2DLevel%20language%20is%20the,of%20binary%20numbers%201’s%20%26%200’s.
Scratch. (2023). TeaRex Jump. https://scratch.mit.edu/projects/888641304/
WarFame. (2022). How to make an endless runner game in Scratch (Part
1). YouTube. https://www.youtube.com/watch?v=Pgt_BRqtoPg
Vahid, F., & Lysecky, S. (2019). Computing technology for all.
zyBooks.
Comments
Post a Comment