The research methodology section of a research proposal is a compulsory one. The methodology is important because is the process that makes the results valid. In other words, before you start the research, you should have a clear idea of what methodology and methods you should follow.
In this post, I’ll guide you through the process of choosing a research methodology and methods for your research. You will also see examples that apply specifically to Computer Science students.
Table of Contents
- Methodology vs. Methods
- Research Methodology or Research Design
- Software development methodology
Methodology vs. Methods
Sometimes is confusing to terms Methodology and Methods and some students use them interchangeably.
A simple comparison is that Methodology is the overarching design that will allow you to fulfill all the research objectives, and by doing so, you will solve your research problem. Sometimes the methodology is also called Research Design.
The methods are diverse techniques, processes, and/or procedures that you will use during the research process. For instance, one method can specify how will you collect and analyze data. Keep reading so you will find what are some of the methods that are commonly used in computing research.
Research Methodology or Research Design
The overall methodology or research design includes several topics.
The first one, even though is not common to see it in computing research, is the research philosophy (also known as a philosophical paradigm). Even though is not common, in some universities is being (compulsory) included in the research design. A good resource to read about research philosophy is the book Briony J Oates (2006) Researching Information Systems and Computing.
Now, you can choose your research approach. It can be quantitative, qualitative, or mixed. As a Computer Science student, most of the time you will be using the quantitative approach.
The quantitative approach is based on numbers. It is sequential and based on facts to prove your results. It aims to measure variables, and how the measurements affect the research problem.
Next, you state your research strategy. The strategy is basically your plan on how you are going to fulfill each research objective, and/or answer each research question.
A Common strategy in Computer Science is Experimental Research. You will design experiments to measure certain variables and prove how they affect/modify your research problem.
Other strategies include Action Research, Interviews, Observations, Questionnaires, and Case Studies.
Notice that you can use several of them in your research. Just make sure if you decide to use several strategies, it is because you really need them. A rule of thumb is to use only what is necessary.
If you choose to make experiments, now is the time to define population and sample.
There are several ways to choose a sample. The sampling approach you need will depend on what you want to achieve and what is available to you.
Data collection and analysis
It is also important that you define here how are you going to collect data (Data Collection Method) and how you will analyze the data.
The Data Analysis Technique you have to use will depend on the area of knowledge you are doing research. A great way to decide is to review some (published) research papers in the same area you are doing research and see what techniques the researchers are using and why.
For example, if you are creating a model for machine learning, a common approach is to use a public data set for training and testing the model (data collection) and most researchers use K-fold cross-validation to analyze the results.
Notice that in Computing, there is no consensus in only one literature about the Research Methodology. My advice to you is to choose one author or book, mention it on your document, and follow it. Next, you have to see what techniques for the data analysis the researchers are using in your area of research.
Notice that all the research methodology (or research design), which includes the approach, methods, etc., is meant to fulfill the research objectives, answer the research questions, and prove that you solved the research problem.
In Computer Science, other methods are useful to accomplish that. Some of them are:
- Mathematical Proofs. These can help you prove, for instance, that the algorithm you designed will always give the right output, no matter what input you give.
- Calculating the upper bound of an algorithm using the Big O notation. Sometimes you want to prove that the algorithm you designed is more efficient than another one. Calculating the upper (or exact) bound is the way to do it. In this case, you won’t need to do anything else to prove your point.
Software development methodology
It is common, that Computer Science students especially at the undergraduate level, have to create software as a main component of their research project.
If this is your case, it is important that you also specify and follow a software development methodology.
We can classify the methodologies available into two groups:
- Heavy methodologies
- Agile methodologies
One of the main heavy methodologies is the Rational Unified Process (RUP). This one, like the other heavy methodologies, is only recommended for big software development projects, also with a big team.
The recommended methodologies for small teams, especially for students doing a research project on their own (only the student and supervisor, or small teams of students) are the Agile methodologies.
There are many comparisons and discussions of which methodology is the best. Here, I’ll just mention one that you can use, but you can feel free to explore more on them. Just keep in mind that the importance of the methodology is to guide you through the process. Don’t spend more than the necessary time studying many methodologies.
My favorite methodology for undergraduate research projects is eXtreme Programming (XP) or Personal eXtreme Programming (PXP). I recommend you use XP when you are doing the research with another student. If you are doing your research alone, the PXP is the way to go.
Following the XP methodology is easy and simple. You can find several resources at this link.
When you develop software as part of your research, it is common to use a validation (result analysis) technique to prove that you fulfill your objective. In this case, you will focus on proving that your software fulfills both the functional and non-functional requirements.
The Research Methodology is a very important part of the research process. It is the way that you make sure your results are valid. That’s why you should pay special attention to it.
Always cite the book or author you are following to carry out the research.
Computer Science students usually develop software as part of their research. Therefore, they should use a Research Methodology and a Software Development Methodology. If you are not part of a team already, I recommend you always use an Agile Methodology to develop the software.
If you are developing an algorithm that will be an improvement over existing ones, I encourage you to look at Mathematical Induction and Big O notation as part of the methods you use to prove that you fulfill the research objectives. In a future post, I’ll show some examples of how you can use these methods and in what situations. So, stay tuned so you can benefit from them.