[RA] Ch1: Introduction

Reading Assignment: All of Programming Chapter 1 Introduction

Source: All of Programming

The key aspect of programming is metacognition–think about how you think. According to Wikipedia, metacognition is “cognition about cognition”, “thinking about thinking”, “knowing about knowing”, becoming “aware of one’s awareness” and higher-order thinking skills.

The key skill of programming are universal–learning a new language is largely just a matter of learning its syntax.

Planing ahead is more important than dive into coding. Programming should be done in a manner that comes up with a complete plan(or algorithm) first and build(implement in code) second.

Given the problem of prime numbers, the author stressed the importance that programming is used to solving a class of problem.

How to Write a Program



Definition: An algorithm is a clear set of steps to solve any problem in a particular class.


Step 1: Work an Example Yourself

Work at least one instance of the problem, involving drawing a diagram of the problem by hand.

2 Problems:

  • the problem is ill specified
  • lack domain knowledge

Step 2: Write Down What You Just Did

Write down the steps to solve the particular instance, or write down a set of instructions.

An instruction with kind of complex is fine, as long as it has a clear meaning.

Difficulty: Thinking about the exact steps.

Step 3: Generalize Your Steps

Method 1

2 steps to generalize:

  1. taking particular values
  2. replacing the instance with the variables.

Method 2

find repetition

Step 4: Test Your Algorithm

To ensure our steps right by testing with different values other than previous used ones. The only way to be completely sure that your algorithm is correct is to formally prove its correctness.

Common mistakes:

  • misgeneralizing
  • cases that did not consider

Some Examples

Next Steps