Post #1 - Programming Languages


In this post I will go through my experience utilizing scratch to build a block program.  This is my first time building anything with a block programming code.  I will also compare block code to other types of programming languages.

Trying to build a program using scratch was a lot of fun.  I found that at first there was a lot to learn where all the different blocks were and what they all were capable of doing.  I spent some time dragging and dropping different blocks into the slots on other blocks so that I could see how the interacted.  This led me to be able to assign a value such as the x position in the batter sprite to limit where the batter could move to. 

 

At first, I found that there was a lot of different options to utilize with the block programming method.  I tried to start building a project without going through any of the tutorials but found that I did not know how what all the different block types did and how to manipulate the sprites in the way I wanted.  Once I started going through the tutorials, I was able to identify a good starting spot and follow the different tutorials based on what I was trying to accomplish.  After I had gone through the different tutorials, I looked at some of the other projects in the explore section and looked at how others had set up their programs.  There were several complicated programs in there that seems interesting, but I wanted to keep this project simple to begin with and learn. 

 

One of the biggest incites I gained into programming from this exercise is the importance of keeping track of where you put your code.  I ran into a couple instances where I had competing code in different areas and it caused the overall project to not do what I wanted.  Once I was able to isolate the issues, I got most of the important coding into a single location which made it much easier to keep organized.

 

Programming in scratch was different than the exercises in the book working with machine language, assembly language, and high-level languages.  When I was looking at the machine and assembly languages, I spent a lot of time trying to remember what the different strings meant and making sure that they were in the correct format.  Having to remember the binary code for an input or output with assembly and machine language felt time consuming and more difficult than it had to be.  Even though the machine language did not deal directly with the binary language it still required an understanding of where the information would go in the binary string. With the high-level languages, it was easier to understand what I was looking at but trying to keep the syntax in order was a bit daunting without a cheat sheet.  It was nice not knowing exactly where in the binary string the information was going to sit.  I did find though with the high-level languages understanding algebra was a definite must.  Being able to set up and read formulas seems like a very important feature when working with high level programming languages.  With the block language having a graphical representation of what I was trying to accomplish was great because I could see the path that the information was supposed to be following.  This made it easy to build a full command and understand what it was trying to do.    I think the block language was the easiest of the languages to use though it did feel kind of limiting is some ways simply because the blocks were pre-made and there were some things, I wanted to do I just wasn’t sure about how to implement through the block format.

 

For machine language I think the main area that it would be used is in programming hardware such as microchips and other small components that are only ever going to perform a single function.  This would reduce the amount of work it would need to do to get the task completed.  I think assembly language would be used for larger hardware components that are going to interact directly with other hardware and not really have any human interaction.  This would also be for components that do not require a lot of commands to function such as maybe small power tools with a few buttons for settings.  I think high0level programming languages would be used for any kind of complicated programming that would need to be done.   Any kind of sophisticated software or interface with multiple options. 

 

I think high level programming languages such as C++ and Python are probably the most popular.  They give the most freedom when building a language.  You can set all your variables and objects yourself and have full control over what is going to happen.  There is more work involved than a block language, but it pays off when you can get something to do exactly what you want and not have to work around a pre-defined setup.

 

https://scratch.mit.edu/projects/572286157

Comments