Post #1: Programming Languages

 

Scratch Introduction

There are many programming languages out there, each with its own advantages and disadvantages. Knowing which language to choose from can be a difficult challenge. The first step is understanding the different types of programming languages and what they do. This paper will describe my experience building a program using Scratch, identify difficulties I encountered using Scratch, explain how I overcame those difficulties, explain programming insights gained from trying Scratch, compare Scratch with programming in other languages in the textbook, identify some differences between programming languages, describe which language I found easiest, describe when each programming language may be best, and describe why I think machine language is the most popular programming language.

Questions

Describe your experience building a program using Scratch.

My experience building a program with Scratch was interesting. Scratch is geared towards children and the very beginnings of programming. The visual aspects and the drag-and-drop functionality make it great for the earliest beginners. However, there were also some logic functions that would allow the programs to get more complex and involved.

The link to the Scratch project is https://scratch.mit.edu/projects/725794321/editor.



Identify the difficulties that you encountered in Scratch.

One difficulty that I encountered with Scratch was debugging. As far as I could tell there was no real debugging functionality. The only programming language I really have experience with is VBA and VBA allows a user to step through the programming line-by-line in an effort to see what each line of code does and where debugging may be necessary. There is also an instant window where I can get more details. This did not seem to be offered in Scratch.

Explain how you overcame the difficulties.

After experimenting a bit with Scratch, I decided to try to make a more complex program. Unfortunately, the more complex code I ‘wrote’ did not work and I decided to try to debug it. This is where the lack of debugging capabilities became a problem. To overcome the difficulty, I simply tossed what I had been working on and started over. This time, I added functionalities in one at a time, ran the program, and checked for problems. In this way, if I did encounter a problem, I knew that it must be related to the last bit of code.

Describe the insights that you gained about programming from this exercise.

The main insight here was to see how programming is taught to beginners. This is not a 3-inch-thick HTML for Dummies book (one book on my shelf), but rather an interactive learning experience. Another insight was to see how early logic is introduced in programming. It makes sense, but something that I might have thought would come later in the learning process.

Compare your experience programming in Scratch with the participation activities in Sections 2.8, 2.9, 2.10, and 2.11 of the textbook that explored machine language, assembly language, and high-level languages, such as Python.

My experience programming in Scratch as compared to the other languages practiced in the book was very eye-opening. On the one hand, it was interesting to try to use some machine language and see how that worked. On the other end of the spectrum was Scratch which was a very high-level language.

Describe the differences between the programming languages.

The comparison between languages taught in this chapter was mainly between low-level machine language and high-level Python. This was a good lesson because a programmer may have no idea how their program actually works on a computer. The languages went from 1’s and 0’s to languages similar to normal English. I will probably never learn or need to know machine language, but it is nice to have an understanding of what it is, how it works, and how higher languages are assembled into machine language.

Identify which language you found easiest to use.

The language I found easiest to use was Python. This is not a surprise because, as authors conducting a comparative study of Python noted, Python is designed to be easy for beginners. “Python uses very simple English and it is very easy to learn. It was built with the concept of a beginner” (Khoirom et el, 2020, p. 4385). The simplicity of Scratch was nice, but I prefer something I can type and edit as needed. Scratch was too locked into its limited number of functions whereas Python allowed a much wider range of uses.

Describe scenarios where each type of programming language would be most effective.

There are such a wide variety of programming languages, each useful in their own right. “Nowadays, there are many programming languages available and each one of them is better than the other in their own aspects” (Khoirom et al, 2020, p. 4384). It would therefore be very difficult to say definitively which language is better. When writing queries, a specific language like SQL might be best. Another course I am taking discusses R for data analysis. Python, as noted above, is great for beginners and has become very popular recently (Khoirom et al, 2020). Even writing formulas in Excel may be the best for certain purposes, specifically many math operations.

Explain which programming language you think is the most popular and why.

For this prompt, the term popular would need to be a little better described. If popular is the most well-liked, then it may be Python or Java. If popular is the most used, it must be machine language. This is based on how computers work, no matter what higher level language is used, it all comes down to binary code understood by computers. “However, because a CPU only understands 0's and 1's, instructions must be just 0's and 1's, such instructions known as machine language” (Vahid & Lysecky, 2019, sec. 2.8). This may be a bit of a trick, but no matter what language is used, it will eventually become machine language.

As for the most well-liked, it would not be machine language. This is because people do not naturally think in 1’s and 0’s, and using machine language is difficult and avoided because of “the inordinate amount of effort required to write and debug machine language programs” (Lampson, 1965, p. 141). For this reason, higher-level languages have been developed. I don’t know which is the most liked, but as Khoirom et al say, Python and Java are among the most popular (2020).

Conclusion

This is a beginning look at programming for beginners. There is much room to grow from here. However, introductions to machine language, assembly language, Python, and Scratch was a great place to start. This paper described experimenting with Scratch, identified specific challenges with using Scratch, explained possible solutions to those problems, explained lessons learned from trying Scratch, compare the programming languages practiced in the textbook with Scratch, discussed differences between programming languages, identified the language I thought was easiest, talked about when different programming languages may be better, and described why machine language is probably the most commonly used programming language.

References

Khoirom, S., Sonia, M., Laikhuram, B., Laishram, J., & Singh, T. D. (2020). Comparative analysis of Python and Java for beginners. Int. Res. J. Eng. Technol, 7(8), 4384-4407. https://iopscience.iop.org/article/10.1088/1742-6596/423/1/012027/meta

Lampson, B. W. (1965, November). Interactive machine-language programming. In Proceedings of the November 30--December 1, 1965, fall joint computer conference, part II: computers: their impact on society (pp. 141-149). https://dl.acm.org/doi/abs/10.1145/1464013.1464036

Vahid, F., & Lysecky, S. (2019). Computing technology for all. zyBooks.

Comments