6.00 is an entry-level course for mit cs. It is intended for people with little programming basics. I learned it once before and now I want to learn Python again.
The first lesson mainly introduces some basic computer knowledge, which is simple but clear in logic and covers many important questions.
1. Declarative Knowledge vs Imperative Knowledge
Declarative style: first, declare some rules, similar to heuristic programs. This can be found on the Lisp-AI branch of this program style. in 1990s, it was once a hit and Japan became the center of AI, the Magnificent Five-generation machine plan seems to be about to step on the foot of the US emperor. As many companies like Google use functional programming to solve parallel computing and invest huge resources in AI research, we believe we will be able to explore more treasures from the Declarative style in the future.
Imperative style: it is the most widely used method to issue a series of commands. Shell, C, and Java are all in this style. Because of its controllability, its dominant position is unshakable in this era.
2. Stored Program Computer
Simply put, it is the system structure where commands and data are incorporated. (Treat instructions and data as the same thing)
In the past, commands and data streams were separated from each other, but currently almost all machines are Stored Program computers. I cannot remember the benefits of mixing the two. What I can think of myself is to reduce the control difficulty, increase the speed, and make recursion a feature of the architecture. In the course, this method is more flexible and can process user-defined programs. It seems that I didn't come up with an idea.
\
3. Syntax, Static Semantics, Semantics
People who have understood the compilation principles may easily distinguish Syntax and Semantics. But Static Semantics requires those who have learned their courses.
Syntax: Syntax. For example, a command can operate on data. Therefore, 1/'A' is syntactically correct. 1 and 'A' are both data and can be/processed.
Static semantic: the string has semantics. For example, 1/'A' cannot pass the static semantic check because there is no semantics.
Semantic: Semantics
4. Compiled vs interpreted
Naturally, this is indispensable. This topic can be big or small, so I won't talk about it here.