Runix

L06: Programming Languages

L06: Reflection

We started learning the basics of Python. I liked how simple and clean Python looks compared to other languages. The way it uses indentation instead of a bunch of brackets makes it easier to read and understand. Learning about variables, loops, and if-statements gave me a good starting point for writing small programs. I can see why Python is so popular, especially for people just getting into coding.

L06: Python Programming

#L06: Programming Language Discussion

Learning Curve: Reflect on the learning curves associated with these programming languages. Which language might be more challenging for beginners to grasp, and why? Share insights into the learning resources available for each type of language.

Machine language would be the most challenging to grasp for anyone the reason being that it’s written only in 0’s and 1’s. Even writing small statement like adding two numbers would require a lengthy string of 0’s and 1’s. From there assembly would be the next difficult to grasp due to needing a solid underlying knowledge of how computer operate. However, it does allow for some human readable code in its architecture such as MOV, ADD, SUB. There is a vast library of resources on this subject. Finally, the language I choose is Python as the syntax is relatively bare compared to Java and the language is very intuitive similar to how we would think. There is lots of resources on python from videos, books, classes, seminars, and java.docs the list goes on and on.
Abstraction Levels: Discuss the abstraction levels offered by each category of languages. How does each level of abstraction impact the ease of programming, code readability, and control over hardware resources?

The abstraction level for machine code is very little; you are directly mapping each binary to a function that the computer can directly interpret. This allows for a very granular access as everything is under the programmer control and could see use in embedded systems. Assembly offers better code visibility in interpreting what the code does quicker, however, still challenging to grasp. High-level languages such as Java offers a much more abstract way of programming from hiding complex implementation in favor of exposing only the necessary features of an object. This makes the code highly readable but makes it harder to control the hardware. An example of this is creating a mail system with Java. You can create a mail system template, reuse it, and repurpose it for a different type of mail system that follow the same design template.