What's the difference between Computer Science and Computer Programming? I've spent nearly all my experience with compsci writing programs and what not, and I certainly like it, but I feel like there's a higher level I could pursue, like the ideas precede concrete programming.

I suppose my question is, what does it mean to be a computer scientist?

EDIT: I've done some thinking, and I have a somewhat more specific question-- what's the difference between the stuff on this stackexchange and the stuff on the cstheory stackexchange?

  • 1
    $\begingroup$ That's a very broad question; I think too broad for this platform. I recommend you check out the curriculum of any CS university course. Community votes, please: too broad? $\endgroup$ – Raphael Jan 8 '17 at 17:40
  • $\begingroup$ before you close the question for being too broad (sorry if it is), any suggestions as to how to make it less broad? $\endgroup$ – Brian Lee Jan 8 '17 at 18:12
  • $\begingroup$ Which do you find most interesting: stackoverflow, cs.stackexchange, or cstheory.stackexchange? ;) $\endgroup$ – Apiwat Chantawibul Jan 8 '17 at 20:54
  • $\begingroup$ @BrianLee Focus on one specific topic or issue. $\endgroup$ – Raphael Jan 8 '17 at 21:25
  • 1
    $\begingroup$ FWIW, this meta post may help. $\endgroup$ – Raphael Jan 8 '17 at 21:27

In some countries, for example in Latinoamerica, I found this "mixing" of terms for careers related to Computer Science, but let's consider that this is not your case and I will venture to pinpoint some differences about CS and CP that you are looking for:

  • Computer Science refers to the study of the theoretical part of the use of computers. Of course, that it has also its application part, but this is not directly related to programming. If you search for some articles in ACM you will find that there are a lot of authors that state that CS is not necessarily programming. If you choose this path you will be more studying topics more related to algorithms, math in its continuous and discrete flavors, statistics and so on. So I would dare to say that CS is more related to the fields I described before that only to programming.
  • Computer Programming, as I saw in some Universities as I said before, is more related to the technical field (or IT field according to the ACM standards). For example in a career related to this field, you will learn about the differences between Java, C, Ruby, etc., and you will increase your skills of using those tools, but not necessarily you will get a grasp of the generalities that those languages share (for example in CS you have a course called Programming Languages that deal with that).

So bottom line, CS refers to algorithms, math, theory and applications of this theory; while CP is related to the technical aspects of the different IT tools.

  • 1
    $\begingroup$ Your "bottom line" seems poorly worded (at best). "Technical aspects of the different IT tools" seems misleading, particularly the "IT tools" wording. This makes it sound like there aren't aspects of programming that are agnostic to the tools. For the other part of the "bottom line", programming is the primary application of "the theory of computer science". $\endgroup$ – Derek Elkins left SE Jan 9 '17 at 4:06

Lets use an analogy. Let say a computer program is a Drill. It is a tool used for a specific purpose. It drills hole and screws screws. The computer programmer knows how to assemble a drill. He knows he needs a motor a power supply and a trigger to turn it on and off. The programmer knows how to use the drill and he probably even knows a why the motor spins when electricity is fed through it. The computer scientist designs new a better drills. Making new drills cut through material easier, use less power ect...

There is a large overlap between computer scientist and programmers. Typically computer scientists are focused on areas of research and development (faster search engines, better compression algorithms, better encryption methods, other math heavy stuff) while programmers are focused on practical software development (websites, databases, commercial software. apps).

Even with this overlap I know lots of computer scientists who can't program and I know lots of computer programmers who can't maths.

If you really want to pursue a higher level of understanding I would recommend taking any Statistics, Graph Theory, Number Theory, Dynamic Programming, Analysis or Group Theory course you can find. After all what is Computer Science but applied math.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.