Research in Computer Science
Tags: cse, math
Published: 2022-05-09 21:15:25


Practicing Research is the most salient reason by which we as humans came out so far. Research, as defined by the word, is to meticulously examine any interesting topic and modify it for further usage or even invent new products for a problem. If we are not able to modify it, just write your work so someone else can be helped later. As a Computer Science Student, I will be explaining trends and topics of Research in Computer Science in the following paragraphs. I will also be explaining how I got into it and why I want to pursue research as a graduate student. 



**What are different types of Research present in Computer Science?**

I would like to categorize it into two parts :

- **Traditional Research**
- **Modern Research**

**Traditional research** consists of **Hardware**, which means working on electronic circuits designing and implementing circuits, developing Integrated Circuits. **Software**, it includes system design and development of that system into an actual application later. It consists of Operating system, Compiler Design etc. **Theory**, it consists of Mathematics and Algorithms. Theory literally gives insights to what we need to do or build. All of these fields play a significant role in Traditional Research. 

Modern research is quite substantial, as it comprises many topics like IOT, Blockchain, Artificial Intelligence, Parallel Computing etc.
**IOT(Internet of things)** : The applications of IOT today are mostly based on monitoring(especially in health care), the goal is to build devices and program those devices efficiently as the memory is scarce due to the lack of servers in the network. IOT devices connects through a peer to peer network, and we can only place servers to have a data collection points.  
Real time Data Collection and Processing itself creates  challenges to the field of **Data Science**. For example, if a Machine learning model give its output after an hour of receiving data. They might be high possibility that  it would not be useful. Using Networking in IOT also creates challenges to the field of  **Information Security**. For example, if a hacker penetrates into the network and gains access to medical devices of a patient. He/She can commit a cyber murder just by tip of their computers. 

Increasing the processor's speed is not possible for us right now. As we know that increasing frequency of clock is directly proportional to power. The processor can literally  get burned. To overcome the needs of more computing power. We made multiprocessing and multicore systems powered by **parallel computing** to control threads and tasks. For example, We can use 4 processors to perform a single task. It gives rise to challenges of programming efficient system and over the problems of Synchronization and Concurrency. 
In fact, there are just a few people in Computer Science who can actually do well in System Research. There are less than 1 % percent of people who can actually get into kernel and come up with modifications. The reason being that Research in Systems is quite complicated and demands years of practice working with Systems. 

**What it actually means to be a successful Researcher or an Engineer?**
Everything in Computer Science is cross-layered. What it mean is that if an architecture consists  of a hierarchy of 4-5 layers. An individual working on it is required to have knowledge of the entire stack. For Example, if we are working on sensors for some architecture. It might look like the following: 
Mathematical Modelling of Circuit.
Designing of Circuit.
Hardware development.
Applications of hardware. 
If an individual has knowledge of the entire stack. He/She might get the insights of other potential improvements in specific parts of architecture, which can be a new research topic to work upon. After the completion of a theoretical model, the author must check if the model is implementable and cost-effective. If it takes billions of Dollars to implement. That hard work can go to waste. 

One should know the language of Computer Science in order to tackle any kind of difficulty, and that is **Discrete Mathematics**. Discrete Mathematics is the origin of logics and nearly every solution to problems developed by Computer Science. I would like to say Computer Science is just Discrete Mathematics with more rules or constrained. 

**What I have learned till now and How I encountered research?**
I landed my first Research Internship in November 2020. I was applying for roles in security and Blockchain. Furthermore, I worked there and learned Ethics to Research, Approaches and how actually to conduct your research with the least supervision. It was not my first encounter with research. In February 2020, I went for an internship where my mentor persuaded me to read a research paper on technology we were supposed to build. I read 2-3 papers and for the first time I was thinking about purpose to code something at first place. I started thinking, why am I even doing mindless web development without any purpose but just for the sake of landing a job or an internship. Afterwards, In June 2020, I left development and starting doing Math, reading paper for learning Blockchain and how it works. By doing this, I realized in a month that I don't know any basics or what we say the language of Computer. I am partially understanding these papers. 
That was the turning point when I decided to get indulged in Mathematics and Computer Science for doing work that actually gives me any purpose or fascinates me. My Research journey till now is just a monologue. I want to get into graduate school now, so I can learn more about Computer Science and gain more research experience as I enjoy the process, the flavor of Research.