C.S., S.E., and C.I.T. Defined

While browsing reddit.com, I noticed an article about the “6 Degrees of Computer Science.” It’s an article which tries to tease apart the different disciplines of computer science, software engineering, and other related fields and the article failed horribly in doing so. I’d like to try and define the disciplines as I see them and though I’m sure it differs from school to school, I’ll try my best to be general. When going into the computer industry, the hardware/software division is the biggest choice. I’m not even going to include computer engineering because it is more an electrical engineering field, which is hardware.

The disciplines can easily be defined by looking at the names of the fields. Computer science is a science, software engineering is engineering, and computer information technology is focused on the information. As defined by Wikipedia,

Science, in the broadest sense, refers to any system of knowledge which attempts to model objective reality, in a way which can be used algorithmically to make concrete and quantitative predictions about future events and observations… the organized body of knowledge gained through such research.

Engineering is the design, analysis, and/or construction of works for practical purposes.

Information Technology deals with the use of electronic computers and computer software to convert, store, protect, process, transmit and retrieve information, securely.

Computer Science

In it’s purest form, computer science is math and really doesn’t deal directly with computers at all. Many famous computer scientists never even really used computers or wrote code. Computer scientists are code independent and many prefer functional languages which more closely represent math than a production definition. The focus on theory makes CS very flexible because it can be applied.

Software Engineering

Engineering is more about design and implementation: programming. Computer science lends things like algorithms, data structures, and programming paradigms which can be used as tools for real world uses. The distinguishing focus is on industry and business.

Computer Information Technology

As I mentioned above, IT focuses more on the information and the functional uses of tools on that information. Instead of knowing how to write a compiler, they know how to program in C#. Or instead of knowing how to implement a database, they know how to use mySQL. CIT can hit the ground running where CS and SE may take some time to apply said theoretical knowledge.

A nice way of looking at this is: A computer scientists would design the language and the parsing algorithms for HTML parsing. A software engineer would implement the parser using the language designed by the computer scientist, and the CIT build the web site using the database, markup language, and Flash, which were implemented by the SE.

In the real world, most computer science departments employ a mixture of computer science, software engineering, and even a bit of computer information technology to maximize a students’ chances of finding what they want in a career. Computer scientists is usually more research and academia centric while software engineers and CITs are more industry driven. Of course there are exceptions to this, as there is anything else.

    None Found
  • http://agoln.net Logan Buesching

    I believe that within the last 5 to 10 years, we are hitting the breaking point that we did about 40 years ago with the computer engineers and the computer scientists. Remember, Purdue was the first university to offer a degree in Computer Science, and until then, I *believe* everyone that wrote code was a Computer Engineer. When Purdue founded Computer Science, they saw a distinction between writing the hardware that the process runs on, and writing the actual process. And back then, there was not need to distinguish who was writing the algorithms vs who was writing the tools vs who was implementing them, because they were all the same people. Today, these three things are mostly done by separate individuals, and there is starting to become a definitive line between what can be taught. I feel that the Software Engineering field and C&IT fields are really going to start to flourish within the next 5 to 10 years as they become more mature degrees.

  • http://agoln.net Logan Buesching

    I believe that within the last 5 to 10 years, we are hitting the breaking point that we did about 40 years ago with the computer engineers and the computer scientists. Remember, Purdue was the first university to offer a degree in Computer Science, and until then, I *believe* everyone that wrote code was a Computer Engineer. When Purdue founded Computer Science, they saw a distinction between writing the hardware that the process runs on, and writing the actual process. And back then, there was not need to distinguish who was writing the algorithms vs who was writing the tools vs who was implementing them, because they were all the same people. Today, these three things are mostly done by separate individuals, and there is starting to become a definitive line between what can be taught. I feel that the Software Engineering field and CIT fields are really going to start to flourish within the next 5 to 10 years as they become more mature degrees.

  • http://openradix.org/ Luke Hoersten

    I totally agree. As the computer related fields become more mature, they will diversify and create room for more fields as well as more degrees in each field (Ph.D. vs. M.S.). This degree diversification is what my last post was about.

  • http://openradix.org/ Luke Hoersten

    last post was about.

  • https://www.humani.st Luke Hoersten

    Dan Harrison, a friend of mine, posted a similar article with the same concepts but slightly different naming. I think the main difference is that he subsectioned computer science while I separated things out of computer science.

  • https://www.humani.st Luke Hoersten

    Dan Harrison, a friend of mine, posted a similar article with the same concepts but slightly different naming. I think the main difference is that he subsectioned computer science while I separated things out of computer science.