Monday, December 10, 2007

Final Paper: Does Computer Programming Shape Thought?

“Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why. “ - Anonymous

Of the twenty richest individuals in the world, five of them have made their money in the computer industry (Forbes 1). Today’s up and coming business leaders, such as Larry Paige and Sergey Brin, come from a new breed of entrepreneurs that focus on online opportunities. Since Google’s start nearly ten years ago, both Mr. Paige and Mr. Brin, transformed from Stanford Graduate students with little money to their name into two of the most influential businessmen with an assessed value of $20 billion each (Forbes 2, Forbes 3). It is also worth noting that five of the ten fastest growing careers are computer related (Career One Stop). Overall, it is easy to see that computer skills are becoming a necessary requirement for success in today’s transforming economy.

Of the skills most sought out, two of the five fastest growing careers relate specifically to computer programming (Career One Stop). The number of programmers has been increasing exponentially, with only 100 existing in 1950 and growing to a number 10,000,000 by the year 2000 (McConnell). This rapid rise in importance of a specific skill set has many widespread and not very well understood implications on society. In the realm of psychology, many questions begin to pop up. How does programming influence a person’s behavior, or more specifically, thought processes? Because programming languages are developed to serve special purposes, do programmers think differently when programming? More specifically, do they think differently when programming in different languages?

Experiment

“There are 10 kinds of people in this world....Those who understand binary and those who don't.” - Anonymous

Participants

Ten participants from the Stanford community performed the experiment voluntarily. All of the participants gave informed consent. Five of the individuals could program only in Java, three had programming experience in Javascript, and the final two had programming experience in both.

Materials

A pencil and a sheet of paper with a prompt such as “Starting from a blank text editor, how would you print the numbers 1-10 on a screen in the [java/javascript] language?” was given to each individual, with the programming language reflecting their personal experience. If they knew both, they were asked to provide an example in both languages.

Procedure

Each participant was given five minutes to perform the task. They were isolated in a room and did not have access to outside resources. After the individual had completed the task of writing their procedure on paper and the paper was ensured to have a relevant answer, the participant was free to leave.

Results

Results of the test showed that individuals who programmed exclusively in Java provided an answer similar to the following. Areas that differed slightly are presented in brackets - [] .

class [example] {
public static void main(String[] args){
for(int [i]=1; [i]<11; type="text/javascript">
for ([x]=1; [x]<=11;[x]++) { document.write("[The number is ]" + [x]); }

Results from the javascript programmers varied more significantly, with two of the programmers producing the following (variations in brackets and script tags removed because of browser issues):
for ([x]=1; [x]<=11;[x]++) { document.write("[The number is ]" + [x]); }
The other javascript programmer produced the following:
function printNumbers()
{
var i=1;
for (i=1;i<=11;i++) { document.write("The number is " + i); document.write(" "); } }
The final two programmers produced essentially the same thing in java as the java-only programmers, while both created code very similar to the second example of javascript.
Overall, although there were slight variations with every test subject, the code that was most in common fundamentally was reproduced above, with the irrelevant aspects (such as function name) neglected from analysis.

Analysis

“Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.” - Donald Knuth


Why Java and Javascript?

Java is an object-oriented, strict programming language. What this means is that when programming in this language, it has to be in function format, with the code following a very specific and predictable path - namely by creating a class and telling what needs to be done within that class. Javascript, on the other hand, is a loose programming language that can be written with an object-oriented approach, but doesn’t have to be (as seen by the two examples above.) These languages were chosen specifically for these reasons, and they provide a simple, but effective example of how programming in specific languages influences thought.

Analyzing the Results

Understanding the fundamental differences between coding in javascript and java highlights how these languages shape the way we think. Because we are forced to think in one specific way in java when programming the scenario tested, there isn’t much variation in terms of how ideas or tasks are accomplished. Although there aren’t differences at this level of programming, don’t mistake the fact that when programs become more complicated, there is much more creativity and ways of accomplishing the task. Javascript, on the other hand, because it was designed with more flexibility in mind, programmers can express more individual judgement in creating a program. This is important because there are times in which it isn’t necessary or important to code with reusability in mind (which is the reasoning of creating functions.) If a piece of code is to be used only once, it is a waste of time, resources, computing power, and unnecessarily complicates the design process.

Programming Languages Shape Thought

This relates to language and thought through an analysis of verbs and their usage in different languages. On a conceptual level, both English and Indonesian utilize verbs to express action. One difference of expression is that English uses time to change verbs - will pass, is passing, has passed. If an English speaker were to use pass instead of using the time-sensitive form of the verb, many speakers would then ask, “When did this happen?” In programming terms, the lack of a time reference in English results in a “parsing error.”

In Indonesian, on the other hand, it is much like javascript in the respect that time does not have to be indicated with the verb. There are modifiers that can be applied, but it is not necessary. If it is irrelevant to say that you are drinking, drank, or will drink a soda, then you don’t have to specify it in Indonesian (Boroditsky). As a result, English speakers have to be more consciously aware of and focus on when something happens, and their thought processes become more attuned to the “when” of situations.

Conclusion

“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” -Tom Cargill


Next Steps

Through the simple test and example highlighted above, it is empirically proven that programming languages shape thought much like natural language shapes thought. The next step is to analyze to what extent programming languages shape thought. There have been several theories that propose how programming in general shapes thought, and one example in particular says that it produces seven fundamental changes in thought:

  1. rigorous thinking, precise expression, recognized need to make assumptions
    explicit...;
  2. understanding of general concepts such as formal procedure, variable, function, and transformation since these are used in programming;
  3. greater facility with the art of "heuristics'', explicit approaches to problems useful for solving problems in any domain, such as planning, finding a related problem, solving the problem by decomposing it into parts, etc...;
  4. the general idea that "debugging" of errors is a "constructive and plannable
    activity" applicable to any kind of problem solving...;
  5. the general idea that one can invent small procedures as building blocks for
    gradually constructing solutions to large problems...;
  6. generally enhanced self-consciousness and literacy about the process of solving problems...;
  7. enhanced recognition for domains beyond programming that there is rarely a single "best'' way to do something, but different ways that have comparative costs and benefits with respect to specific goals (Pea & Kurkland 1984).
Through the development of several tests, each of these changes could be analyzed individually. There are several complications that come up when trying to analyze these questions, though. Finding qualitative measures and developing the ideal environment, for example, are two common issues to overcome. One test that could potentially be run for “change 3” is to take two groups of very similar students at Stanford University, for example, with the key similar factor of not knowing how any programming language, and run a test on their problem solving skills at the beginning of the school year. Have one group of the students learn how to program and develop a certain level proficiency, and prevent the second group from learning how to program. After said proficiency develops, introduce a similar test to the one provided in the beginning and compare the results between the groups.

Contrary Example

A similar test as the one presented above was performed with the results indicating that “the Logo programming experiences had no significant effect on planning performances, on any of the plan efficiency or planning measures” (Pea & Kurland, 1983). The primary problem with this test is that it didn’t look for and develop a specific programming proficiency with the test subjects. They were given a specific time frame to develop the skills, but given more time to interact with a computer does not guarantee an individual will become a more proficient programmer. If students were to focus more on learning “low level [programming] form such as grammar, semantic rules, and some pre-established algorithms for solving classes of problems” (Pea & Kurland, 1984), they wouldn’t learn the skills that allow for more effective problem solving. Testing for specific proficiencies in programming would rectify this issue.

Final Thoughts

While there are several directions and tests that can be developed from this study, there are many key assumptions that have to be isolated and understood before we proceed. Although the contrary example above seemed to prove that learning programming skills does not shape problem solving capabilities, we still need to look for and remove potential issues that create a level of vagueness and guesswork in the testing methods in order to provide accurate results that accurately assess the hypothesis. Because we judge a writer’s proficiency by the core skills they understand and utilize rather than the amount of time they have invested into writing, we should exact the same standard when testing programmers.

Even though computer programmers are in high demand in the business world, we still have a long way to go in understanding how this recently acquired skill set influences our thought processes. The individuals learning these skill sets are obviously doing something right as their reflection in society suggests, and in contrast to the initial quotation, people like Larry Page and Sergey Brin combine theory and practice in such a way that they know what works and why. Sources

Works Cited

Forbes 1 Online

Forbes 2 Online

Forbes 3 Online

Career One Stop Online

McConnell, Steve. Online

Boroditsky, Lera. In class discussion. December 6, 2007.

Pea, Roy and Kurland, Midian. “ON THE COGNITIVE EFFECTS OF LEARNING COMPUTER PROGRAMMING.” New Ideas Psycholgy. Vol. 2 (1984).

Pea R. D. Programming and problem solving Children s experience with Logo. Paper presented at Annual Meetings of the American Educational Research Association, Montreal, Canada, April 1983.

Thursday, December 6, 2007

China opens first Confucius Institute on air

This article talks about how the Confucius Institute is accomplishing its goal of teaching as many individuals as possible Chinese. They are teaching Chinese in 38 different languages currently with an impact of about 30 million individuals learning. This is a very significant number of people for learning at this current moment in time, especially since 200 million people speak Portuguese - the 6th most spoken language in the world.

What's even more amazing is that by the year 2010, they are expecting 100 million people to be learning Chinese. The broader implications of this are far-reaching and are making more and more companies, organizations, and governments rethink their international relationships. The Confucius Institute also seems to be realizing and actualizing this potential to their greatest advantage, as well.

Overall, the Confucius Institute also seems to have a smart marketing strategy as well by branding themselves with probably the most popular individual in their nation's history. The name also connotes an idea of wisdom, which I think is beneficial to generating appeal as well. It will be interesting to see how the business as well as the international relationships develop over the coming years, especially with the 2008 Chinese Olympics coming up soon.

Original Article: http://news.xinhuanet.com/english/2007-12/06/content_7211620.htm

Portuguese Language School

I have to add another language that is important in the global market alongside Chinese and Hindi, and that language is Portuguese. Portuguese is the sixth most spoken language in the world with over 200 million speakers. It is well ahead of German, French, and Italian, yet I hear very little about people learning to speak Portuguese.

As such, it seems a business found a very lucrative business to create a thrive on - teaching English speakers Portuguese. The business, Brazil Station, teaches individuals mostly from multi-national corporations Portuguese in order for those corporations to infiltrate the local markets better.

The best part of the company is that all of its faculty are native Portuguese speakers who are fully qualified as bilingual and quality instructors. They have a tried and true core program that they teach individuals, and have a variety of multi-media at their disposal to teach the language. In my mind, this is a very lucrative business by taking advantage of the not-so-popular language that has a high market potential for businesses.

Original Article: http://www.pr.com/press-release/62306

Our Crazy Language

This article wasn't exactly about anything too scientific, but it was humorous and semi-enlightening none-the-less. Questions such as, "Why does, slow down and slow up mean the same thing?" highlight the weirdness of our language. Other idioms are also quite prevalent in our language.

One other thing that was humorous and highlighted is the inconsistency of grammatical principles. One question, "If two mouses are mice and two louses are lice, why aren't two houses hice?" is a common example, and humorous at the same time. This reminds me about the article we read awhile ago that discussed the mathematical relationship between when irregular verbs become regular.

A final type of question or paradox pointed out are things like, "Is there another word for a synonym?" or "What is another word for thesaurus?". These questions are very interesting and point some of the unique and fun aspects of our language. Overall, these sometimes subtle nuances or blatant abuses of the "rules" make English a difficult and, to me, interesting language to learn.

Original Article: http://www.tehrantimes.com/index_View.asp?code=158588

Swiss spend heavily to learn language of life

While this article doesn't specifically relate to language, I thought it would provide for an interesting comparison article. The topic of discussion was a Swedish initiative that will spend $350 million in Systems Biology. This is considered an unprecedented amount of money in any particular field, and will prove to be very beneficial to pharmaceutical innovation if successful.

The reason why I chose to talk about this article is because biological systems are much like languages. They both have very organic processes in the respect that they change over time, they choose the most popular/successful characteristics to carry on, and they play very specific roles or functions in whatever they do. Another correlating factor is that they both are extremely different in composition and makeup within different organisms (or languages), yet they usually act cohesively and have some underlying characteristics that are similar or the same.

Overall, it was an interesting article to read and I think the same approach that we are taking to studying biology could probably be cross-applied to languages. When we sequenced the genome, we weren't looking for anything in particular, we were just trying to gather information. It seems the best way to take the next step in psychology/linguistics, we should gather as much information about every language, and then do analysis on them.

Original Article: http://www.swissinfo.ch/eng/front/detail/Swiss_spend_heavily_to_learn_language_of_life.html?siteSect=105&sid=8500233&cKey=1196888442000&ty=st

Is One Language Test a Good Thing

This article discussed the legislation that is going through Alabama regarding the number of languages that the driving test is offered in. A legislator wants it to only be offered in English, while it is currently offered in 14 languages including English, Spanish, French, German, Chinese, Russian, Korean and Japanese. The main argument for a single test is that all road signs are in English and that giving individuals an opportunity to take the test in alternative languages creates a hazard on the road because they can't read it.

I personally agree that this is an important issue that we should tackle. The only problem I have with this argument is that in all of the sources I could find, none of them indicated how many accidents happened because of non-english speaking individuals. As such, I can't fully agree that the bill should be passed. Having hard evidence would make such a law relevant, but without it, it seems like taxpayer money is being wasted.

A final thought to extend a comment from an earlier post, how interesting would it be to create road signs in every language that they tested in? Wouldn't that be dangerous, wasteful, and unnecessary? Why don't they take that money and put it into programs that teach these individuals English instead? Okay, I'm done with my comments.

Original Article: http://www.clantonadvertiser.com/articles/2007/12/05/opinion/for_the_record/3-editorial.txt
Additional Source: http://www.tuscaloosanews.com/article/20071204/TL02/71204004/1007

Chinese Language is Difficult but Rewarding

This article was interesting and I agree with the idea of learning Chinese because of its importance and difficulty. After reading, I got to thinking, what other languages are becoming increasingly important in the world? I personally think that Hindi is also going to be playing a greater role right alongside China as the two economies become even more prosperous. Other than that, though, I don't know what would be important to learn.

Another interesting aspect of the article was that students who major in Chinese also major mostly in business. Other majors/minors include engineering, medicine, law, and the military. I personally wonder how business is going to progress as China plays a greater role in the global economy. Will business start to take place more in Chinese? Will it stay in English, for the most part, and have Chinese fluency necessary for other communicative purposes. What role will the U.S. play if it becomes the 2nd, 3rd, or 4th most powerful nation economically?

One final point of interest is that many of the best speakers are those that are the most motivated to learn. Because it is such a difficult language, many of the teachers say that it really doesn't matter if your aptitude to learn the language is greater. This is an interesting aspect of the conversation that occurred in class. When talking about learning languages, I think it is interesting to note that a student's motivation may be the most critical factor vs. presentation of the material. While we may find differences based on how the material is presented, it seems the highest correlating factor is motivation.

Overall, it was a good article that raised many questions.

Original Article: http://newsnet.byu.edu/story.cfm/66608