13 November 2013

Computer Science: It is more than programming, but the rest tends to be forgotten.

“In most people’s vocabularies, design means veneer.  It’s interior decorating.  It’s the fabric of the curtains of the sofa.  But to me, nothing could be further from the meaning of design.  Design is the fundamental soul of a human-made creation that ends up expressing itself in successive outer layers of the products or service.” –Steve Jobs




Every once in a while, when my mother goes out, she talks to other people about me. Often, she likes to boast about how I am a computer science university student. If I am with my mother, the response from the other person will almost invariably be saying, “Oh, so you do programming!” to me, implying that I wanted to be a programmer. While I do, in fact, do programming for my classwork, programming was not the main reason why I majored in computer science. I should not blame the person entirely, though, because his or her assumption was reasonable.

A lot of people come to Silicon Valley and the surrounding area to get jobs in computer programming, because often, it guarantees a high salary. Many employers of lucrative jobs, including computer programming, expect their applicants to have a bachelor’s degree[1]. Many universities, however, do not have a programme for only computer programming, instead directing students interested in programming to a degree in the broader field of computer science. This means that prospective computer programmers are grouped with people interested in other aspects of computers, both in the classroom and in the public conscience.

One discussion on Stack Overflow talks about the broadness of computer science[2]. Even though programming is perhaps the most sought-after computer position, each part of computer science is crucial, and programmers would not be as successful as they are without the help of computer scientists.

The foundation of computer science, for example, is theory. Computer theory is mathematical in nature. After all, when it comes down to the actions of the processor, each instruction is a mathematical one. Many computer theorists want to make computer programs as efficient as possible by minimizing the number of operations that the computer does.

There are also software engineers. Software engineers are often the ones who plan out a computer program, telling the programmers what to do. Software engineers want to make a product that is useful for the end consumer, and software engineering reflects the business side of computer science.

We also have the field of human-computer interaction, or HCI. HCI is the psychological part of computer science. HCI researchers study how humans use technology. HCI can be applied to make more user-friendly interfaces, or in the future, be used to make more advances virtual reality simulations. Some technological pioneers like Steve Jobs embraced HCI, which he simply calls “taste”, and used it to create compelling products that resonated with consumers[3].

There are also other fields like artificial intelligence, but the idea remains that computer science as a whole is what moves us forward, not just programming. Programming without theory would give us messy, limitedly-useful code. Programming without software engineering would give programmers no direction in business. Programming without the humanities or HCI would give us bland uninspired products. These things are what makes computing a science.