JA1. Programming Languages¶
Statement¶
The Learning Journal is a tool for self-reflection on the learning process. In addition to completing directed tasks, you should use the Learning Journal to document your activities, record problems you may have encountered and to draft answers for Discussion Forums and Assignments. The Learning Journal should be updated regularly (on a weekly basis), as the learning journals will be assessed by your instructor as part of your Final Grade.
1. Describe what you did, You need to describe what you did and how you did it¶
This was the first week of the course, so I started by trying the self quizzes as they give me an idea of what to expect in the unit. I then started watching the lecture videos and taking notes. I then moved to the reading assignment which included interesting readings around the history, structure, and classification of programming languages.
The views of Von Neuman, Alan Turing, and Alonzo church were discussed, along the differences between imperative and non-imperative programming languages, which was the topic that the discussion assignment emphasized on.
2. Describe your reactions to what you did¶
The content of this unit was not hard, but rather strange; as it differs from the topic that we already studied earlier or in our day-to-day work. Also, there were loads of names/concepts that needs to be memorized, and also each of which needs lotas of external reading to understand.
3. Describe any feedback you received or any specific interactions you had. Discuss how they were helpful¶
I did not receive any feedback yet, but I am looking forward to it. I can list some feedback that I gathered while reading my classmate’s discussion posts. I found that some of the submissions list python as a non-imperative language on the basis that is used in data science and mathematics, which I do not believe is true as UoPeople’s CS4402 introduction say it is an imperative language.
4. Describe your feelings and attitudes¶
I enjoyed exploring the history of the industry, and how it started in the early days, and exploring parts of the industry that we do not discuss in our day-to-day work like the names and usage of today’s rare programming languages.
5. Describe what you learned¶
The main thing that I learned is the difference between imperative and non-imperative programming languages, and the tradeoff between them. along with brief history of the industry and early programming languages; and the concepts of Von Neuman, Alan Turing, and Alonzo church (lambda calculus). The text also talked about the assignment statement, elements of programming languages.
6. What surprised me or caused me to wonder?¶
I was surprised by how many programming languages are out there, and how many of them are limited scope and usage that are not widely used. I also surprised with the difference between imperative and non-imperative programming languages, as my previous knowledge about the topic is limited to the difference between procedural and object-oriented programming languages.
7. What happened that felt particularly challenging? Why was it challenging to me?¶
The concepts of Von Neuman, Alan Turing, and Alonzo church (lambda calculus) were challenging to me, I have to read a lot about them to understand the concepts and how they are related to programming languages (hopefully, I will allocate some time in the coming weeks or the book will explain them in more details)
8. What skills and knowledge do I recognize that I am gaining?¶
I am gaining knowledge about the history of the industry, and the difference between imperative and non-imperative programming languages, and the tradeoff between them.
9. What am I realizing about myself as a learner?¶
I am realizing that I need to allocate more time to read the book and external resources to understand the theoretical concepts that are discussed in the unit.
10. In what ways am I able to apply the ideas and concepts gained to my own experience?¶
In the organization where I work, we took a decision to move from OOP towards more functional programming, however I feel that everyone in the team applies the concepts in a different way, and I am not sure if we are doing it right or not. I hope that this course will help me understand functional programming better in a way that I can apply it in my day-to-day work.
11. Describe one important thing that you are thinking about in relation to the activity¶
How functional programming is different from procedural programming, as my understanding about the topic is to use functions instead of classes, and these functions should be pure (no side effects), and the code should be immutable. I am looking forward to learn more about it in the coming weeks.