To select a suitable topic for research is always an important and difficult task. For new researchers, I always suggest to plan for long terms, i.e., as you get the first opportunity to conduct research try to select topic that:
- You find most interesting
- You can work on with your existing technical skills or you think for which you can acquire required technical skills
- Has importance in scientific community
The best approach I recommend is to start from major areas and then move towards specifics. For computer science guys following major research areas with in computer science could be a good starting point:
Major Areas (Not an exhaustive list):
- Networking and communication
- Computer graphics/Comuter vision/image processing/signal processing
- Scientific/high performance computing
- Artificial intelligence/Machine learning/Pattern recongnition/Neural networks/Robotics/Natural language processing
- Security and privacy
- Software engineering/Programming languages
- Internet technoloiges/Semantic web
- Database systems/Information systems/Data Mining/Information retrieval
- Parallel and distributed systems
- Embedded systems/Real-time systems
- Operating systems/Simulations
- Bioinformatics
Once you have select the major area of your interest, then move forward towards the specific research areas. For example, in my case of database, data mining, and software engineering following list could be helpful:
Specific Research Areas (Only list my interest, Not exhaustive):
Databases Hardware-conscious data management
Hardware
Chip multiprocessors
Research Issues
Scalability
Parallelisation
Utilization
Revisiting DBMS architecture
Research Issues
Architecture to support new hardware
Architecture to support new applications/workloads
Query processing
Performance Evaluation and Benchmarking
Real-Time Business Intelligence
New data management applications
Semantic web/Enterprise ontological database
Research Issues
Storage models/Access structures
Ontologies mapping
Ontologies integration
Large scale RDF data managment
Semantic indexing and search in large volumes of data
Web 2.0 and Social Systems
Next generation data management/integration for life-sciences
Research Issues
Integrating large diverse biological datasets
Graph data management/Linked data
Application domains
Data modeling of chemical compounds, multimedia databases, protien networks, social networks, and semantic web
Research Issues
Venues
GDM (ICDE)
Big/Large data
Web Data
Data management in Cloud
Research Issues
Transaction processing
Query processing and indexing in cloud computing systems
Novel data-intensive computing applications
Language for massively parallel query execution
Data intensive scalable computing
Content distribution systems for big data
Data management within and across data centers
Analytics for social networks
Benchmarking Cloud Intelligence applications
Cloud data warehouse design and architectures
Cloud infrastructure for analytics applications
Data mining over the cloud
OLAP over the cloud
Reliability and fault tolerance in Cloud Intelligence
Scalability and parallelization for Cloud Intelligence: MapReduce and beyond
Semantic Web intelligence
Distributed data managmenet
Research Issues
Self-* DBMS
Research Issues
Benchmarking
Research Issues
NoSQL databases (Key/value pairs, Document stores, Graph databases)
Software Engineering Software for Cloud
Mining software repositories
Recommendation Systems for Software Engineering
Software dependability
Human-computer interaction
Knowledge acquisition and management
Ontologies and methodologies
Product line architectures
Specification languages
Program synthesis
Multicore Software Engineering
Software Engineering for Adaptive and Self-Managing Systems
Generative Software Development
Parallelism and Concurrency
Software Engineering for High Performance Computing Applications
Semantic Web Technologies in Software Engineering
Knowledge Management/Data Mining Data pre- and post-Processing
Information Filtering and Recommender Systems
Semantic Techniques
Opinion mining and sentiment analysis
Mining social networks and graph data
Mining text, Web, semantic web and semi-structured data
High performance and parallel/distributed data mining
Crime detection
How did I identified these specific research problems? Answer is through reliable research journals, conference, and workshops. For more specific research problems related to software engineering, databases, and data mining, please have a looks at following resources:
For data management and data mining:
Journals: VLDB Journal, Data & Knowledge Engineering, Acta Informatica
Conferences: Very Large DataBases (VLDB), ACM's Special Interest Group on Management Of Data (SIGMOD), the Symposium on Principles of Database Systems (PODS), Extending Database Technology (EDBT), International Conference on Data Engineering (ICDE), Conference on Information and Knowledge Management (CIKM), Database Systems for Advanced Applications (DASFAA), Advances in Databases and Information Systems (ADBIS), Database Systems for Business, Technology, and Web (BTW), BNCOD, DB&IS, IDEAS, CoopIS
For software engineering:
Journals:
Automated Software Engineering, Science of Computer Programming, The Computer Journal, Journal of Systems and Software, IEEE Transactions on Software Engineering, The Transactions on Software Engineering and Methodology
Conferences: International Conference on Software Engineering, Generative Programming and Component Engineering, International Conference on Software Reuse, Evaluation and Assessment in Software Engineering, International Conference on Program Comprehension, Software Product Line Conference, International Symposium on the Foundations of Software Engineering, (Systems, Programming, Languages and Applications: Software for Humanity) SPLASH, International Symposium on Software Reliability Engineering, International Conference on Software Maintenance, Automated Software Engineering, Working Conference on Reverse Engineering, Fundamental Approaches to Software Engineering, Aspect-Oriented Software Development, European Conference on Object-Oriented Programming
Before closing the blog, I will also like to give a classification regarding
research. The most prominent classification in research for new researchers is theoretical and
applied research. If you want to conduct theoretical research then you can be a good
researcher even if you do not have expertise in any programming language or any database
product. But concepts are important, for theoretical research one should
have strong mathematical background with extensive knowledge of Discrete
Mathematics, Probability & Statistics, and Algorithms. Research
contributions are theoretical and you don't need any implementation to prove
your results. Theoretical proof of results is always required. The other class is applied
research or empirical research. If you want to do applied research, then a
basic knowledge of discrete mathematics and algorithms is still mandatory, but
you should possess sound knowledge of existing languages and systems. In
applied research, we have to present implementation results to prove that our proposals are
worthy. To generate results, we may have to use either programming language (C/C++/Java) or a
DBMS product. While deciding for the topic, it is critical that researcher is clear in his/her mind regarding the class of research he/she want to focus/target.