What is a good metaphor or example to explain to an English major the difference between classical computer science and "being good with using MS-Windows"

computer science

computer programming

using computers

3 profoundly different things. Most people have no idea what Computer Science even is. They just see the word "computer". Hence, "he is a Computer Science major" can be interpreted as "He can hook up my printer". Or that he's "good with computers". Even fewer people know the difference between computer programming and Computer Science.

Computer Science is computing theory. CS can be learned without actual computers. CPU micro architecture. How to sort numbers, how to traverse lists, etc. State machines. Algorithms, big(Oh), etc. How to design a programming language or compiler.

Programming is writing code and creating applications in a language and compiler created by a computer scientist.

Lastly, there is using a computer (using a GUI, mouse, and keyboard. Internet, MS-Office, etc)

Yet all three of these are used interchangeably by laymen.

What is a good metaphor or example to explain to an English major the difference between classical computer science and "being good with using MS-Windows" Or simply, a pithy example of how real computer science has nothing to do with using MS-Windows.

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

2

I'm looking forward to biting answers for that one ;-)
–
vonbrandMar 6 '14 at 18:00

see old famous essay noting/remarking on this age-old dichotomy the two cultures by CP Snowe. CS is just the latest in a long line of disciplines fitting into that. as a scientist/novelist he was uniquely qualified to comment/pontificate on it & it will be very relatable to english majors, its probably even studied in some english classes. also deep connections to sociology.
–
vznMar 8 '14 at 18:15

Hello, and thanks for posting! Unfortunately, as it is, I'm having a hard time seeing how this question isn't primarily opinion-based; as such, in its current form, it isn't a great fit for this site (despite its popularity). Please take a moment to update your question to make it more narrow in scope, to ask for specific kinds of information (references, I expect, will be the most appropriate sort). For instance, if the question asked "what are well-known analogies which have been used to explain computer science," or "where can I find information on comparisons,". Thanks for contributing!
–
Patrick87♦May 5 '14 at 18:55

(Also, sorry for missing this question until now. I would have preferred to be asking for these edits earlier than now. Thanks for your understanding.)
–
Patrick87♦May 5 '14 at 18:56

9 Answers
9

uses computers and maybe "is good with computers" :: a driver (can drive and refuel safely) and maybe a car enthusiast (can jump start a car; is familiar with many makes and models; knows techniques like using windshield treatment to keep rain from reducing visibility).

programmer :: an automotive mechanic or technician. Knows how cars work. Can fix them. Ought to know how to debug/diagnose problems by using the scientific method. Might not be aware of relevant theory and thus might write O(n^2) loops.

software engineer :: an automotive engineer. Designs cars, engines, and other components that you can entrust your life with, and does it within schedule, cost, manufacturability, and other constraints. Knows how to apply the relevant theory/math such as finite element analysis.

computer scientist :: an automotive scientist. Researches new ideas in vehicles, human-machine interfaces, and propulsion. Does computational crash test modeling. Adds to the body of theory and experimental results.

So for people who equate all "computing" with "proficient in using some favorite package," it's like equating driving proficiency with the ability to design antilock brakes that we trust lives to, that are manufacturable with consistent high quality and low cost, and work for years in extreme weather. Or equating driving proficiency with researching what kind of radar-triggered braking features will avoid collisions without freaking the driver into swerving into another lane.

Perhaps lay people confuse these terms because "computer science" classes teach computer use skills, programming, theory, or engineering. All that stuff (arguably not the first part) fits in the curriculum of computer science. None of it is the end-all "content" of computer science, just as English classes are learning on the way to an English major (a fuzzier concept).

See also my attempt here; "skillful use of some computer programs" would probably equate to some thing like "ability to hang a picture and change lightbulbs".
–
Raphael♦Mar 6 '14 at 18:53

2

From a friend: First metaphor that comes to mind is cars: - Computer science ~= designing a car engine: theory matters, math is involved. - Computer programming ~= rebuilding a car engine: you need to know what you're doing and understand how everything works, but theoretical aspects are much less important. - Using computers ~= you can drive the car and put gas in it without blowing up the gas station.
–
JackOfAllMar 6 '14 at 19:59

Incorporating the suggestions from @JackOfAll required distinguishing programmer from software engineer. Engineering is building something within schedule and other constraints, that works in a wide variety of conditions, and that we can further build on and rely on. Other programming is to hack together something like Perl. Science is generating new knowledge through experimenting. Engineers and scientists need to know the relevant theory and math. Scientists should add to the body of theory.
–
Jerry101Mar 6 '14 at 21:10

All true, but what about wrestling with people who equate "computers" with "proficient in using <insert favorite package here>," and don't fathom there is more here? Or a bit more advanced ones who consider anything "trivial, just write a program"? Extra points for handling people who think the halting problem can be solved as a matter of course...
–
vonbrandMar 6 '14 at 21:25

4

You could go further; theoretical computer scientist::physicist - can describe the maths that models why the car works, but may not be able to drive. ;)
–
Luke MathiesonMar 7 '14 at 2:23

I work with some "real engineers", a lot of them seem to think computer programming and CS are the same thing (apparently they think engineers do really high level math as well, different topic there). I used to be a CAD drafter back in high school so, I tell them I am basically a mechanical engineer, seems to even the playing field . I guess you could tell your English major friend you can read books already so, you might as well have an English major. Or in a less confrontational way let them know that would be the equivalent of what they are saying.

You say "different topic", but I feel that the two are actually very similar: when an engineer says "high level math", they're almost certainly referring to high level applied math, and what is programming but applied computer science? On the other hand, if these "real engineers" are considering stuff like solving lots of polynomials as "high level math" (without using those concepts that allow efficient solving of such systems of equations, or just plugging them into a program without understanding how it works), I could see where you're coming from.
–
JABMar 7 '14 at 17:03

Yeah I mean the second kind, where using Laplace Transforms and Runge–Kutta is considered doing high level math (even when those topics aren't really considered high level math). Then again I graduated with a degree in applied math so, the standard of what I consider high level math is probably a bit skewed, just thought it was funny anyway. I agree about computer programming being applied computer science, I was just drawing a parallel between what a mechanical engineer may do most of time in a job vs what a software engineer might, i.e. CAD Drafting vs Computer programming.
–
SuperSecretMar 7 '14 at 22:26

...the harm was done: the topic became known as “computer science”---which, actually, is like referring to surgery as “knife science” --- and it was firmly implanted in people's minds that computing science is about machines and their peripheral equipment.

You can shorten it to

Computer science is like referring to surgery as “knife science”.

But you don't even need to say that. It think it would be enough to say that "CS is a kind of math that has nothing to do with computers".