It mentioned in the video, that we have many different programming languages since we have to operate different parts of the computer. Some are good at communicating with web browser and some are good at communicating with memory and etc. But this answer does not solve the basic confusion — why we have to use different languages for different computer components? They will finally break into machine language (0 and 1) after interpreter and complier processing anyway! Why they have to be different?
Does it mean that IDEs have interpreter and compiler inside, so they can run the code directly?
Could we discuss more about Computational Thinking? Despite the examples give in the reading, is there any other field (especially fields related to CCT) highly related to computational thinking? For example, big data analysis in Marketing maybe?
It was really interesting re-visiting this concept of what coding is. The emphasis placed on the order of things is crucial to the understanding of how programming is actually executed the same way any system needs the necessary steps and procedures to function and “come to life”. In the video the instructor mentions how “Order of steps will impact your final product. Order matters” (inLearning). As any other system we’ve seen coding requires a correct sequence of steps like anything else that is “technology”. As Evans explains: “The list of steps is the procedure; the act of following them is the process. A procedure that can be followed without any thought is called a mechanical procedure” (Evans, 2011). So what we see happening while the code is running is this mechanical procedure of ordered instructions and commands.
It is crucial to understand how important this order, syntax is because that is the only way you can pin point an error, a typo, a bug, etc.
More notes: IDE – Integrated Development Environments
Xcode – develop apps for Apple products, more sophisticated IP, syntax pallet
Visual Studio Code – initially designed for script languages, supports many more with extensions. Q: what is its unique feature called? similar to autocomplete
So are all applications and programs where you can run, type and test code considered IDEs? i.e. Wing for Python, Eclipse for Java, etc.
How come some language run only on certain programs and not others?
– Programming is the process of converting ideas into instructions that a computer can understand and execute.
– Compiler: The other person would never see your original letter, only the one that was in Mandarin. That’s basically what compilers do. They take your high level programming language and turn it into an executable that contains low level machine code. This way, users can run your code on their machine without every needing your original source code.
– Interpreter: This is essentially what computer interpreters do: they process your source code each times its run, line by line, and it’s up to the other user to have the needed interpreter available on their machine.
– IDE: enhanced text editors called integrated development environments, or IDEs. IDEs provide features that speed up code development. An IDE is an application that provides the special tools needed to write, debug, and compile code.
– Statements are the building blocks of any program and are the individual actions that you want your program to take. Without statements, there’s no program. Each statement can be made up of keywords, expressions, and operators.
– Errors: 1) Syntax, you somehow broke the rules of the language. 2)Runtime, the computer was unable to execute a portion of your code. And finally 3) semantic, the output of the program is not what you expected.
– To comment: #+space → The comments do not impact the output of our code.
I find the video instructions very helpful for me to better understanding how computer language is used in real life. I followed the instructions in the video and tried the exercise in the Visual Code Studio as well as Python 3.9. It is very fun to play, kind of reminded me of how people trained dogs — by naming certain behavior (adding value to certain symbol), the dog would follow the order when it hears the keyword (computer run the code you wrote), but you have to follow certain rules when you are creating the order for the dog (training is based on the reward and punish)→when writing the code, there are rules you have to follow, or the computer will run in errors, or simply not recognizing the order, thus not execute it.
Also, for me, the differences between two terms interpreter and compilers are becoming more clearer. Basically, a compiler allows the computer to execute low-level codes without showing the source code, while a interpreter have to run the source code line by line. The metaphor in the video is great.
By using the “if”, “else” and other keywords, the logic relationship is built in the code, which is something that can be connected to the reading in this week about “computational thinking” — establish logic in your mind and “run” the possible scenarios “line by line”. The function of comment is the one that attracts me the most, which enables the programmers to communicate with each other without influencing the output. To some extent, the human-human communication function is presented here.
(not sure I understand what this question means)
How these ballots were entered into the system and then instantly presented on the map as well as the media?
in-Learning: Programming Foundations: Fundamentals
Delving into Computation Thinking through David Evans and Jeannette Wing we see parallels in how we interact with computations principles and concepts in code.
Wing harps on in their article “Computational Thinking” that there are immense amounts of problem-solving in the fundamentals of constructing the very basics of computational theory.
Computational thinking oscillates between a plethora of subjects varying between design systems, arithmetics, abstraction and decomposition of complex systems, and more. With this, we see in LinkedIn Learning the sheer ubiquity of what coding transfers into.
Python is now the learning language while previously it was C++. This is used to simplify, unify, and enhance the complexity of issues through the terminal. These memory allocations, programmers are not concerned with the processing whether through numbers or data.
Evans hones on the importance of why we should understand computing. Computing has increasingly become an important subject area. The process is of computer science follows the processing through information processing: which is the “sequence of steps”. This organizes and converts physical implementation into abstract information. Then the procedure takes place in how it describes the processing. The algorithm is the mechanical procedure that guarantees the completion of the code.
Jeannette Wing. Computational Thinking.
David Evans. Introduction to Computing: Explorations in Language, Logic, and Machines. 2011.
This week I started with the Computational Thinking reading. It was a nice introduction and prelude to the more hands-on/practical learning that followed. Notably, it reads:
“Computational thinking is thinking recursively. It is parallel processing. It is interpreting code as data and data as code. It is type checking as the generalization of dimensional analysis. It is recognizing both the virtues and the dangers of aliasing or giving someone or something more than one name. It is recognizing both the cost and power of indirect addressing and procedure call. It is judging a program not just for correctness and efficiency but for aesthetics, and a system’s design for simplicity and elegance” (Wing 33)
Wing writes about computational thinking as more of a style of thinking, rather than as a specific act. Computational thinking is “planning, learning, and scheduling in the presence of uncertainty” (Wing 33). I appreciate having this broader understanding of what it means to think like a computer scientist because it breaks down the notion of the more rigid narrative that it refers only to a strict programming mindset.
Furthermore, Evans writes about how automatic computing has “radically [changed] how humans solve problems, and even the kinds of problems we can imagine solving” (Evan 1). He also argues why it’s important that, especially today, most people have an understanding of basic computing: “1. Nearly all of the most exciting and important technologies, arts, and sciences of today and tomorrow are driven by computing. 2. Understanding computing illuminates deep insights and questions into the nature of our minds, our culture, and our universe” (Evans 1). This demonstrates how all fields are evolving under the lens of technology; technological practice has in many ways become the staple for all development (whether it be in the arts or sciences… interesting emerging area is VR art in museums).
The readings and lessons this week have clarified a lot of these concepts in relationship with “code” concepts. Python is an interesting language to become familiarized with because it is more applicable to fields in business, for example. So it is more relatable to fields outside of computer science and tech more broadly.
I wonder if in the near future it will be possible at all for any fields to be separated from the concepts of computing and code. Art and art sharing is now heavily reliant on technology, among many other fields that have historically been separated from the crutch of technology.
David Evans, Introduction to Computing: Explorations in Language, Logic, and Machines. 2011 edition.
Jeannette Wing, “Computational Thinking.” Communications of the ACM 49, no. 3 (March 2006): 33–35.