Are you the programmer of this piece of material?

Source: Internet
Author: User

Many people have recommended such an academic paper titled "The Camel has two humps" (Camels have Shuangfeng). It proposes the following methods to determine who is fit to learn programming and who does not fit in computer science majors before they reach a program or a programming language.

All the teachers who teach programming have found that their teaching results show a "Shuangfeng" phenomenon. It seems that there are two types of students: one is programmed, the other is not programmed. The two groups have separate bell curves. For programming teaching, basically all research is focused on "teaching": Transforming languages, transforming applications, using an IDE, introducing incentives, and so on. But none of this works, and the "Shuangfeng" phenomenon still exists. So we invent a test that distinguishes the two groups of people before they are taught. We pick the people who are programmed in "Shuangfeng". You may not believe it now, but you will believe it after you read it. We haven't fully figured out why this approach works, but we have some good theoretical support.

It never occurred to me that a person who is good at programming and who is not good at it can be distinguished so early. Dan Bricklin Once mentioned this topic in his article, the name of which is "Why Johnny Can ' t program" (Why Johnny does not programming). But for those who teach computer science, these are clearly no secret.

Since the invention of the electronic computer in the the 1950s, although the world has undergone earth-shaking changes, some things have remained unchanged. In particular, most people learn not to program: Every university's computer college has 30%~60% freshmen failing in the first programming class. Experienced teachers are very aware of this situation, but they are already pining away. Some bright young teachers are convinced that there must be a problem in the past, so they are struggling to explore the truth. Almost two generations have made efforts since the topic was introduced in the 1960s.

You might think that the tests they put forward to identify programming talent would be complicated. Fact Please see below, the first question is this:

Please see the following statement and mark it next to the correct answer.

int a = 10;

int B = 20;

A = b;

The values of A and B should now be:

[] A = b = 0

[] A = b = 20

[] A = 0 B = 10

[] A = ten B = 10

[] A = b = 20

[] A = b = 0

[] A = ten B = 30

[] A = 0 B = 30

[] A = ten B = 20

[] A = b = 10

As you can imagine, professional programmers will be dismissive of this. But, remember, this test is designed for students who have never been exposed to code. The other 12 questions are the same style as the one above.

The authors of this paper argue that the main obstacles to learning computer science are:

1. Assign values and sequences

2. Recursion, iteration

3. Concurrent

In this order, we first test the first hurdle the beginner will encounter: assign a value. The results of the tests divide the students clearly into 3 groups:

· 44% of students have formed a stable thinking model (even if wrong) about the principle of assignment.

· 39% of students confused, the principle of assignment is still not transparent.

· 8% of the students handed in the blank.

This test was done two times. The first time is before the study, the second is three weeks after the start of classes. The most surprising thing about the results of the two tests was that there was little change in the pattern of the 3 groups of students. Either you first encounter the assignment (the first hurdle in programming) and immediately form a model in your mind, or you will never learn.

The authors found that the success of learning programming is associated with the formation of a stable thinking model.

Obviously, Dehnahdi's tests are not perfect for people who are programmed and do not. However, if there is such an admissions test, so that those who have a stable score will be admitted, so the polarization of the phenomenon will change. Of all 61, 32 (52%) failed, and only 6 of 27 (22%) failed in the group that formed the stable thinking model. We can confidently say that we have a test method that can predict which students will succeed before class, and this method is highly accurate. As far as we know, this is the first test method that can predict success to date.

I strongly advise you to read this article in its entirety. I used to think this would be an obscure college paper, but it's more like a blog post, full of interesting ideas, like the following two paragraphs:

We did go through a period of time before we had the courage to believe our own conclusions. Although we realize that the current data is not sufficient, our conclusion is only a conjecture, but in our opinion, the first Test distinguishes 3 groups, the determinant of which is their attitude towards meaningless things.

Formal logic, which is then expressed in a formal system called a programming language, is completely meaningless by the execution of a particular calculation to produce the result. In order to write a computer program, you have to make compromises and give the program a sense of purpose. But no matter what you want the program to do, the computer will run on these meaningless rules and get some meaningless results. In the test, those who have a stable thinking model have demonstrated innate acceptance in this area, and they have the ability to see the math problems behind the rules, and to follow those rules anyway. On the other hand, people who don't have a steady-thinking model always find no clue. And those who handing know it is meaningless, so they refuse to do it.

Everyone should know how to use a computer, but not everyone needs to be a programmer. However, for a considerable number of computer science students, there seems to be some concern about how they can not teach them how to program. It is clear that not everyone is obsessed with meaningless rules and conclusions like us. But for me, why not?

This digest is from "the cultivation of the programmer"




Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.