Category Archives: Week 12

Chutong, Week 12

My notes are too long to paste, so I shared a OneNote link here: https://1drv.ms/u/s!Atq3ENSdA8wjaDjRqa_hssxJDos

As Evans said, “what distinguishes a computer from other machines is its programmability”. Programming makes computer could be trained and developed for different purposes, unlike telephones are just for calling or radio just for listening broadcast. The crash course videos provide an interesting interpretation of the history of programming from punch card to high level programming language, which give me a clear view of how the “program” evolve. Connected to everything we learned previously, I think I somehow deblackbox the meaning of “program” in engineering level and computer science level. Programs convey ideas into instructions that a computer can understand and execute. And that’s the reason why at the beginning programming is so difficult — we have to make the machine to understand us! And that’s also the reason why at the beginning programming are just the game for a few experts, even most experts and scientists could not take the fully advantage of computer. Not everyone has the superpower to talk to machine for sure. Thus, making a standard for translation is quite essential. UNICODE serves for this purpose, compiler, interpreter and translator serve for this purpose as well. UNICODE standardize our common used symbols into fixed code and embed in computer system (actually I stuck when I wrote this sentence, is this standard really embed in system? I’m not sure), while compiler makes human readable high-level programming language into machine language, so human won’t struggle with learning machine language any more, just primary school English is enough!

PS: new to know that compiler is actually a bunch of codes, not a physical part in computer’s mainboard like transformer in electric power grid.

As it shows in the video courses, programming languages share some common logic, understanding Python could help us understanding the basic syntax of Java and Ruby as well. I think that is because all the programming languages are for human. Human community shares the same logic system, that’s the reason why all languages have something in common (also the native languages as well). And just like native languages, programming languages have their flexibility as well. We can express the same meaning in different way. This sense of flexibility and multipath feature of language is distinct even in the most basic practice. For example, the Challenge part of IN-LEARNING course, I wrote (a little bit) different codes with the Solution it provides:

#my code

#solution the course provides

Week 12: Qasim

Navigating the endless libraries of programming, statements and functions, algorithms, data structures, and computational thinking and software, the importance of these are what we rely on daily. Every day we have become accustomed to how these systems play an integral part in our lives. From our alarms, home thermostats, cars, and (cringe) a smart home device like an Alexa or Google Home. They all use complex programming systems to be able to achieve what it is built for. 

Through these blackboxes of algorithms, deeply wired programs, computation continues to be an integral part of our lives from our abodes to commercial interaction. These blackboxes broken down are simplified into symbol processes and syntax. These design principles rely on functions and statements which rely on more advanced syntax expressions. Without these features, communicating would hinder us from the connectivity we have with our social networks today. “Computation as the outcome of centuries of cumulative human symbolic thought for representing abstract patterns and processes” is how Dr. Irvine explains the nativity of code.

To program a computer is to give a heartbeat to it. Without properly assigning value and compiling a comprehensive code, the computer is unable to process intended objectives. To execute code, a computer begins with binary code at the very basics. For example; 001010100010110101 is how a computer is instructed to process data. Through compilers and interpreters, these tools ameliorate the execution of running the program. 

The foundations of code are compiled with structures that help organize the data. To start the code, there is a function,- a way to break up the code I.e. print() or input() to begin commanding the computer with demands. In Python, there are also hundreds of others. This helps the user breakdown the code and make it a comprehendible sequence so the computer can learn how to do it over and over again.

As Evans explains in his article, the complexity of functions is infinite but is used to perform successful outputs of computational code. The combination of how to make procedures, decisions, and applying procedures is a foundational skill to be successful in any computing project. 

Meta-function?

David Evans, Introduction to Computing: Explorations in Language, Logic, and Machines. 

Operators

Conditional/Boolean expression: any expression that break down to either true or false 

Relational operators: work with 2 operands, returning true/false based on the relation to each 

  • Equality operator: “==”, used to evaluate the quality of operands
  • Conditional operator, “if” (block: statements group together, i.e. under if-statement)
  • Else-clause, cannot be used without an if statement  condition of if statement is checked, true –> print-if-statement, false –> else, print-else-statement
  • whatever is outside the block will be printed separately

I like going through the inLearning videos because they are a good way to jog my memory on basic yet crucial reasonings behind coding logic and syntax. I think these videos are interesting because the explanations/break-downs focus a lot on the 

Fordyce Week 12

Computing is rooted in binary questions. Compiling and grouping these binary questions has given us an immense amount of information that we have used to gather even more information. Computation is precision work and differs from human communication in that there is no body language to read to further understand a message; it is more black and white in that way.

While doing the educational learning videos, it became clear to me that Python is the most useful ‘blanket’ language for beginners. It offers a more straight forward platform to engage with coding. Some key concepts we have now gone over and I have learned about are:

Source code: a text/ string of words/numbers/symbols that a computer program can use (i.e. using HTML)

Executable code: this is what causes the computer to perform the specific tasks from the source code (file that gives tasks that can be directly executed by the CPU).

The readings this week made me think about the future of coding. As AI continues to develop and become increasingly self-sufficient, how will programming change? AI could come to a point where it can independently do all of its own computing and write its own code. Will be get to a point where we don’t even need to learn to code anymore?

An interesting article on this: https://news.mit.edu/2019/toward-artificial-intelligence-that-learns-to-write-code-0614

 

References

David Evans, Introduction to Computing: Explorations in Language, Logic, and Machines.

LinkInLearning. Programming Foundations: Fundamentals.

Qi Wang Week 12

After studying unit 4, I found that Python is more suitable for beginners compared to Java or other programming languages. Like in the video shows, Python has the characteristics of simple syntax and clear sentences (fewer punctuations), which allows beginners to focus on programming and computational thinking in the learning stage. Also, Python code can be easily read, and developers can leave comments in the code, so a Python developer can copy and share the code written by other programmers. In this case, there are few conflicting paradigms, which makes communication ideas and algorithms faster and easier.

One of the most significant advantages of using Python is that it has high similarities with everyday English. But it is a more concise and less ambiguous version. The daily used English has more meaning due to different contexts and situations (Evans, 2011). The exact but straightforward Python languages make the process of reading the code easier for the user. Another thing Python uses is the length of the code. Compared with other programming languages, Python code is relatively short. I have seen some Java codes in the videos. They are longer and more complexed. 

In Chapter 3, the author mentioned that programming is writing commands that make computer to execute. So what we do basically is simulate the computer’s way of thinking and give instructions from a programming language that the computer can understand to complete the commands. The computer will exactly follow the code. There is no gray space for a computer. It only has True or False, no maybe choice (Video). If the code is wrong, the computer will not execute the code. There is no chance for a computer to recorrect the wrong codes by itself. 

So I have a question here about artificial intelligence. I’ve heard that Python is widely used for artificial intelligence, so what’s the relationship between Python and artificial intelligence? 

Because Artificial intelligence is to train machines to think and act like humans, think rationally, and act rationally. Artificial intelligence should not just follow the codes; it should have active thinking and learning and become human-like or even surpass human intelligence. But now we know that all computers or software are followed the rules we are giving to, they can not write the program by themselves without human interference. Does this mean, it is impossible to build a real AI? 

 

Reference: 

Evans. D., (2011). Introduction to computing: Explorations in languages, logic, and machines. 

Davis. A., Programming foundations: Fundamentals. https://www.linkedin.com/learning/programming-foundations-fundamentals-3/introduction-to-functions?u=57879737 

 

Week 12 – Yanjun Liu

Notes:

-Compiler: A specialized program that transforms “source” code written in a programming into a low-level language, like assembly or the binary” machine code” that the CPU can directly process.

-Control flow statement : if statement and others

– Things are absolute. There’s only yes or no, true or false, one or zero. Any expression that breaks down to either true or false is called a Conditional or Boolean expression. 

– Relational operators work with two operands, and they return a value, true or false, based on their relation to each, thus the name.

– Equality operator: == 

-Not equal to : !=

-4 steps of computational thinking: a)decomposition: breaking a complex problem down into smaller, more manageable parts; b) pattern recognition:  Identifying patterns or trends within a problem; c) abstraction:  Identify specific similarities and differences among similar problems to work toward a solution and 4)Algorithm design: develop step-by-step instructions for solving the problem, which can be used to solve other similar problems.

Learning Process:

(Practicing the “if else” statement)

(Operating the “if” statement)

(my first python program!)

One thing that I think I have learned during the practice is that whenever you are coding, you have to be PRECISE. In the above picture, the correct output will not show even when I just typed one more space after the question mark.  Also, I have tried several times to test my codes and debugged it until I succeeded. (I was very angry and found it hilarious when I found out the reason: lack of the tiny “:” when operating the “if” statement).

 

Question:

  1. What is source code? (Is it a code that gives all instructions to other executable code?

 

Reference

Video: Computational Thinking: What Is It? How Is It Used? (Computer Science Intro)

n-Learning: Programming Foundations: Fundamentals