I understand that this topic is a bit vague, but if someone could give me a pointer in the right direction, I would greatly appreciate it.

I'm currently an American undergraduate taking part in an internship at a Japanese engineering university in a professor's research lab for the summer. I have no prior experience with computer science research, and my understanding of it is pretty fuzzy, but I assumed it would involve a decent amount of theory and less software engineering practice.

However, many of the graduate students in my lab are working on projects that I would only think of as software engineering. For example, one is developing a system to effectively generalize how various sensors could interact with a common server. Another developed an iOS app and a server backend that basically gathers data from the app into the server for analysis (and the analysis isn't anything particularly special or innovative from what I understand).

The professor's main research project is developing a web app that uses a special algorithm to analyze discussions on a forum. The algorithm part is what I would think of as research, but from the papers I've read regarding it, they seem to focus on the app as a whole and less on the algorithm.

Do all of these things count as computer science research? Would they perhaps fall more under computer engineering research with less emphasis on computer science theory? And (at least in America, where I plan to attend graduate school) is this a common kind of research for graduate students and/or professors? It just seems strange to me that what I view as basically building a useful app counts as academic research. It seems more like engineering to me and less like research.

migrated from cs.stackexchange.com Jul 11 '16 at 12:13

This question came from our site for students, researchers and practitioners of computer science.


What counts as research is a matter of opinion, and ultimately, up to the community of researchers who do research in that area. It will depend on the novelty of the work, what we learn from it, and what has previously been done. Generally, just building software usually isn't considered research if no new generalizable knowledge is created; but it can be considered research if it is aimed at developing new knowledge (e.g., evaluating a new technique for solving some problem we previously didn't know how to solve).

You are right: just building a useful app isn't normally considered research. However, this can be tricky to tell from the outside, because developing a new technique to solve some problem can be research, and if you have a new idea that you think might solve some problem, often the way you to evaluate that idea is to implement it and see whether it does indeed lead to the claimed improvements -- which from the outside can look like you're "just" building a useful app.

So, telling research apart from engineering can sometimes be a bit tricky, especially for someone new to research. Also, understand that this is somewhat subjective. One person's research can be another person's "mere engineering"; the community doesn't always agree on what ought to be publishable. Ultimately, this comes down to a judgement call, one that has to be informed by deep knowledge of the area and also by a sense of "taste" that is developed through experience. We're unlikely to be able to answer whether a specific project of yours counts as research, because we lack that deep domain knowledge of the area, and because the description in the question is too shallow to tell. If you're new to research, you might also have a hard time judging this.

If you're new to research, this is why you work with an advisor who is experienced in research. Identifying useful problems to work on that are research-oriented and likely to lead to publishable results is one of the primary roles of your advisor/mentor.

Of course, if you don't know whether you can trust your advisor, and you don't know how to make those judgements yourself (because you are new to research and not an expert in that area), then you have a more basic problem. Therefore, let me suggest a useful proxy. Is the professor's work getting published in reputable peer-reviewed forums? If it is, then at least that research community considers it research, which is good enough. If it isn't, then you have reason to be wary. Thus, with this idea, you can look at the publication record from that group over the past 3 years or so and see what their track record is.

You might also find it interesting to read a few of their past papers. Often, published research papers try to identify what their novel research contribution is (either explicitly in the introduction, or implicitly when they discuss related work and compare to it).


Building an app should not be considered research in the field of computer science.

The only way it should be considered research if you are creating new algorithms for that particular application or doing comparative studies for various algorithms for various test cases and draw some conclusions from this. But in this case building the app is just a helping activity for your research and in no way the building itself should be considered research.

There are probably universities where they formally consider it as research just to fill some papers and hire some people, but this is, in my opinion unethical.

  • 2
    This answer is too absolute. Many top conferences (SIGMOD, VLDB) have demo tracks where researchers present mainly interesting apps. There is nothing unethical about that. – Alexandros Jul 11 '16 at 13:14

If your app has a new design architecture which differs, in some certain aspects and upto some degree, such that it adds something new and brings some benefit, then it can be considered research.

For example, if you use RESTful architecture to make a software, then its engineering. But if you make the RESTful architecture, (like in the thesis here), then it would be research.

On the other hand, if you use existing methods and techniques to adapt to some given problem at hand to efficiently solve it, then it is Software Engineering, or Computer Engineering.

Another example. If you use deep neural network library to train a huge image repository to recognize the faces and learn the facial expressions, then can be classified as engineering. But if you come up with a new neural network algorithm or some modification which adds to the literature, then it would be research.

Often, there can be a very thin line between research and engineering, though it would be clear with the context. This is because, sometimes, with new software product ideas, one needs to innovate and get new things working. Often software organizations do publish a some significant papers which introduce new approaches and algorithms adding to the research community.

Programming a single independent application is definitely not a research, but is application development. Although, from your question it seems that the app will be used as a component of a larger picture.


Of course building useful software tools is a major part of CS research. Unfortunately current situation is that software systems are not citable and they are not counted toward impact in research work. However, there are some efforts to make software an impactful and citable peace of work, see this. If you look at the current research published in scientific communities, you will observe this common trend that researchers tends to put a link for their open-source software (in github or other repositories) or data that has been generated in their research work. Publishing open-source software helps in replicating the research results towards making useful theories as well.

  • 4
    "Unfortunately current situation is that software systems are not citable and they are not counted toward impact in research work." Not true. Easy example is the machine learning library LIBSVM, which has over 27k citations since 2011, and which has contributed significantly to the reputation of its authors. – 101010111100 Jul 11 '16 at 13:07
  • 1
    this is the publication that is being cited not the software itself! if you do not publish a paper describing your peace of software, there is no means in place to cite the work. – pjamshidi Jul 11 '16 at 14:12

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.