Introduction to Computation Thinking

by K. Yue

1. Discipline-based thinking

Example: Philosophical thinking: one definition: "a method of inquiry that seeks to explore fundamental questions and concepts, relying on reason, analysis, and critical thinking to gain deeper insights into the nature of reality, knowledge, ethics, and the human experience."

  1. Methods: critical thinking, conceptual analysis, reflection, rational argumentation, ...
  2. Traits and Characteristics: reasoning, wonderment, curiosity, contemplation, ...
  3. Values: truth, meaning, rational, ..,

2. Computational Thinking: Key Methods

2.1 Methods of Computation Thinking

2.2 Algorithms

Examples:

2.3 Decomposition

If decomposition is done well, there are many potential advantages. For examples:

  1. Simplification for easier understanding.
  2. Reduced complexity.
  3. Better efficiency.
  4. Component reuse.
  5. Better and concurrent task assignments.

There are criteria for good decompositions: e.g., modularity, independence, ease of understanding, ...

We use decomposition in our daily life. CS just takes it to a much, much higher level with various methodologies, formality, tools, etc.

Examples:

2.4 Pattern Recognitions

Examples:

2.5 Abstraction

Examples:

3. Computational Thinking: Traits and Characteristics

Some important traits and characteristics of computing science are listed below. This list is not comprehensive. It is more like my personal list.

  1. Analytical thinking and problem solving: Computing Sciences are arguably the most problem-solving-oriented discipline. Engineering is also very oriented to problem solving but is usually confined in specific areas, e.g., aerospace engineering. Computer science can apply to nearly every area.
  2. Modeling: Successive models are formed in the process of problem solving in computer science. CS professionals need to understand and model problems deeply. They need to be proficient in listening, communications, exploration,conceptualization, etc. Increasingly, they need to have excellent soft skills.
  3. High precision, very detail-oriented, and meticulous: to satisfy nuanced problem requirements and exacting execution requirements.
  4. logical reasoning and mathematical and theoretical foundation: that is the science and engineering part of computer science.
  5. Adaptability and lifelong learning: Hard to find another discipline that is changing quicker than computer science.
  6. Curiosity and exploratory: This is crucial in all science and engineering discipline, but even more so in computer science. For good reasons, traditional science and engineering have well-defined and preset laboratories. In computer science, one can and need to set up your own experiments. For example, large language model (LLM) enables all kind of useful experiments.

4. Values in Computational Thinking

  1. Holistic views of problems and solutions: CS solves real-world problems in diverse application areas. Solutions cannot be judged by a single value (such as correctness in logic). CS needs to consider and balance many assessment metrics: correctness, usefulness, cost, performance, usability, security and privacy, maintenability, etc.
  2. Data-driven and data sensitive: The main commonality of all disciplines that can be served by CS is data. "garbage in, garbage out" is a popular phase in CS. High quality and relevant data is of key importance.
  3. Specificity,