Friday, June 28, 2013

Start using LaTeX for Scientific Writing

To start working with LaTeX require installation of two core components (or one if you can make use of notepad or any other text editor). First component is Tex/LaTeX distribution and second component is any suitable editor. In this tutorial, we will make use of MiKTex distribution and TeXstudio editor using bundle  from proTeXt, however, you are free to try any of the following options:


A very good and up-to-date bundle of MiKTex with TeXstudio can also be found at proTeXt. However, you can also download and install distribution separately from MiKTex distribution site.

Please download the proTeXt bundle and install both MiKTeX and TeXstudio one-by-one.

If you want to learn more about LaTeX, please visit LaTeX Project Site.

The first step for a quick start will be to get the latex template from the publisher. For example, if you want to create a document in IEEE or ACM two column formats, then both provide a sample template for this purpose. Similarly, if you want to create a Springer Verlag single column format, a latex template is also available on their website. In this tutorial, we make use of IEEE two column format, which is available at Manuscript Templates for Conference Proceedings.

IEEE template contains multiple .tex files. In this tutorial, we will confine our focus on bare_conf.tex. This text file is used if you plan to submit a paper in IEEE conference. Open bare_conf.tex file in TeXstudio and press F1 to build and view the output file. The bare_conf.tex will be compiled and the output pdf will be displayed in TeXstudio.

To start working with Latex all you need to do is to start editing this template file. To change the title change the text between \title{}.

You can add your abstract between:
\begin{abstract}
\end{abstract}

Each section is defined using \section{}, such as the one for introduction in the template. Similarly, sub section can be defined using \subsection{}. Furthermore, you can also define a paragraph using \paragraph{}. If you want to comment any text, you can use %.

Adding text in latex document is simple. You don't need to think about any formatting related issues. Just copy the text and the template will do the rest of the formatting for you according to the template standard. There are few tips that will make life easier for you. Below, I am listing few commonly used packages, that you will need time to time during your research paper writing. Just include them at the top of your latex document after \documentclass:

\usepackage{xspace}
\usepackage{graphics}
\usepackage{graphicx}
\usepackage{stfloats}
\usepackage{enumerate}
\usepackage{alltt}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amstext}
\usepackage{calc}
\usepackage{multirow}
\usepackage{paralist}
\usepackage{epsfig}
\usepackage{epstopdf}
\usepackage{listings}
\usepackage{multirow}
\usepackage{setspace}
%\usepackage[pagebackref=true]{hyperref}% For cross referencing
\usepackage{url}
\usepackage{fancyhdr}                    % Fancy Headers and Footers
\usepackage{colortbl}
\usepackage[small]{caption}
\usepackage[position=below]{subfig}
\usepackage{cite}                        % Nice citations
\usepackage[vcentering,dvips]{geometry}  % Help with margins
\usepackage{amssymb}
\setcounter{tocdepth}{3}
\usepackage{graphicx}
\usepackage{url}

You can use google to get details about each of above-listed packages. The second change that I recommend is to make use of a dedicated .bib file for reference data. For this purpose, just remove every thing between \begin{thebibliography}and \end{thebibliography} and simple put the following LaTeX markup:

\bibliographystyle{abbrv}
\bibliography{bibfile}

The abbrv means the bibliographystyle that will be used in your document, whereas bibfile is the name of your bibliography file. Please make sure that your bibfile has .bib extension. To create sample .bib file, copy the bibtex for any research paper that you want to refer. It is more suitable to make use of bibtex data available on ACM, IEEE, or Springer Verlag publication pages. These pages often contain most of the required information for referencing. A bibtex entry for an article on ACM with title "Data Science overtakes Computer Science?" is given below:

@article{Kumar:2012:DSO:2339055.2339060,
 author = {Kumar, Deepak},
 title = {Data science overtakes computer science?},
 journal = {ACM Inroads},
 issue_date = {September 2012},
 volume = {3},
 number = {3},
 month = sep,
 year = {2012},
 issn = {2153-2184},
 pages = {18--19},
 numpages = {2},
 url = {http://doi.acm.org/10.1145/2339055.2339060},
 doi = {10.1145/2339055.2339060},
 acmid = {2339060},
 publisher = {ACM},
 address = {New York, NY, USA},
} 

I always recommend to make use of a good BibTex management software, such as JabRef. Now, you have your BibTex file ready and to make use of the reference all you need to do is to put ~\cite{Kumar:2012:DSO:2339055.2339060}. Tilde before \cite ensures that you have only single space between your text and reference.

In above-example, we make use of abbrv bibliography style. There are many other styles as well. Just give them a try to observe, how they are different. Few commonly used bibliography style are acm, plainnat, ieeetr, alpha, plain, unsrt, apalike, abbrvnat, harvard, etc.

If you want to refer to section in the research paper. Mark each such section with a label using \label{labelename}. In your document, you can refer to any label using ~\ref{labelename}.

If you want to add pdf figures in your latex document. You can use following LaTeX markup:

\begin{figure}
    \includegraphics[scale=0.15]{testfigure.pdf}
    \centering
    \caption {Figure caption here}
    \label{figure:label}
\end{figure}

Most of the research papers do make use of Tables. To start working with table, best is to copy LaTeX markup for table and start editing it according to your needs. A little complex LaTeX markup for table is as below:

%--- Table Begin ----------------------------------
\begin{table}[t]
\caption{Test table caption.}
\resizebox{0.48\textwidth}{!}
{%
\begin{tabular}{|l|r|l|} \hline
\textbf{Column1 Heading} & \textbf{Column2 Heading} & \textbf{Column 3 Heading}\\
\textbf{Row 11} & \textbf{Row12} & Row13\\ \hline
\textbf{...} & \textbf{...} & \textbf{...}\\ \hline
\textbf{Row n1} & Row n2 &  Row n3\\ \hline
\end{tabular}
\label{tab:tablabel}
}
\end{table}
%--- Table End ----------------------------------

\textbf is used to make text bold. Each column values is separated by &, whereas each row is separated by \\.

Another important feature of most scientific documents is bulleted listing. For this purpose, you can make use of following markup:

\begin{itemize}
\item Item bullet A
\item Item bullet X
\item Item bullet Z
\end{itemize}

For numbering use following markup:

\begin{enumerate}
\item Item numbered 1
\item Item numbered 2
\item Item numbered 3
\end{enumerate}

Tuesday, September 11, 2012

Initial steps for new researchers


For new researchers, it is always difficult to identify the starting steps. With my experience, I identified that following tasks should be performed by researchers during initial research phase:

  • Identify the research area
  • Identify the research problems of the selected research area
  • Identify the most important research papers of the selected research problems
  • Identify active and important researchers working on the selected research problems
  • Identify active research groups working on the selected research problems
  • Identify successful research project associated with selected research problems
    • Success in terms of publication and prototypes outcome
  • Identify the related high quality journals, conferences, and workshops
    • Create a list of important journals, conferences, and workshops with deadlines for submission, reviews, and camera-ready submission

Monday, September 10, 2012

Guidelines for researchers

 Research is a very interesting field in terms of its requirement for Motivation, Innovation, Consistency, Time Management, Communication Skills, Composing Deliverables, Presentation, and Post-research Follow-up. I will discuss each of these elements one by one to highlight the important points that each researchers should consider.
Researcher’s motivation is the most important ingredient for a good research work. At the same time, it is very difficult to maintain at peak-level. Motivation of researchers passes through see-saw. Initially, every researcher is highly motivated and over-optimistic. This results in a very common error of targeting more, planning more, and doing nothing. As we have large targets to achieve, with passage of time, the volume of these targets start to hamper our productivity and results in reduced motivation.

• Be realistic. Do not try to be superman/woman. Do not try to be Newton or Einstein. Rather focus achievable targets and build on them to keep your motivation level high.
• Play on your strength.

Innovation is required, but it will never appear from nowhere. To be innovative, you have to know what others have already done and why. At the same time, an understanding of what others have not done and why did not. Just thinking about an idea in isolation and then assuming that it will be innovative will be a spider web. Once you get into it, the more you move, the more you get stuck. Rather, a problem solving attitude or service provider behavior will result in more innovation.

• Identify the needs. Try to solve them in a better way. You will get innovative.

Consistency in research is like growth in living beings. If you lack it, you will never grow as researchers. When I say consistency, I talk about consistency in terms of targeted research problems, consistency in terms of efforts put into research, and consistency in terms of deliverable that a researcher produces. If you are not consistent in terms of types of research problems you target, you will finish with immature work on different problems areas. If you are not consistent with the effort you put on your research, you will end-up short of your deadline. Similarly, if you do not deliver research results consistently, it will get difficult for you to attract research community or your supervisor. Research communities and supervisors prefer researchers who produce reliable research results in continuity.

• Be consistent, target related research problems, work regularly on research problems, and produce research results/deliverables regularly in incremental order.

Time management is what research is all about. People use to say this, especially for PhD research projects. If you know good time management, you will probably end-up with good research work. Avoid distractions. One should plan, where he/she want to invent his/her time and when. A better approach is to keep a listing of deadlines. For researchers, a list containing the research papers submission, reviews, and presentations deadline is a must. Furthermore, one should plan ahead. Normally, yearly plan is a must for successful research. A good researcher always keep track of where his/her effort will be invested in next one year.

• Plan ahead. Track deadlines. Avoid distractions. Keep margin for unavoidable circumstances, e.g., illness, wedding, children, etc.

Good communication skills help researchers to convey his/her ideas with supervisor and other researchers. It is a key skill, if you want to establish collaboration with other researchers. A very basic requirement of good communication is to have it on regular interval. Having many meetings in few weeks and then getting out of scene another month will result in communication gap. This is very important if you are in supervisor/student or collaboration relationship. Communication using write-up is more effective for long-term research collaborations. A to-the-point self-contained write-up on regular interval presenting the progress-made will always convey the ideas and progress efficiently.

• Communicate regularly with your supervisor and co-researchers.

Composing deliverable takes the major effort and time for good research work. Successful researchers often invest around 40% of their time in write-ups. They often do write-ups in revision separated by small durations of in-activity. Furthermore, they will always get their work reviewed by other co-researchers as well as readers not directly associated with their research. And they will always complete their research manuscript well ahead of final submission to avoid immature type errors.

• Start writing early. Keep improving the text. Get your text reviewed. Finalize the deliverable well ahead of submission.

Presentation is all about selling your product. A good researcher always knows the strength of his/her research; time to convince the audience, and the type of audience. Furthermore, the feedback of presentation is the most important asset for any researchers. Good researchers do use feedback and improve their research work accordingly. This helps them to understand the missing ingredients of his/her research and presentation. They do come back with a better recipe to sell their product in future.

• Present your strength. Know the audience and take them with you during presentation. Use feedback for future.

It happens very often that researchers do not build up on their existing research work efficiently. Instead they get in search for new interesting problems. This is also good to search and work on new interesting problems, but to follow-up your own research and get your future work done is highly valuable. It expresses the seriousness of a researcher in topic and increases the maturity of future results.

• Get your future work done.

Monday, August 13, 2012

Computer Science Undergraduate Project Ideas

Students enrolled in undergraduate programs at different universities across the world do need ideas for their undergraduate projects from time to time. Similarly at my university students do ask me for project ideas. I thought that it will be helpful for many students, if we can maintain a list of interesting ideas. Any one who read this blog and come up with some ideas that he/she want to be listed here can send me on email at saif4u at gmail dot com or can post below as comments. I also plan to extend this list with information related to existing projects in progress and their contact persons, in-case students need to build collaboration for their work.


Project Ideas


Vehicle travel sharing 

Increasing traffic is one of the major issue of 21 century. People use to travel in their vehicles alone not utilizing the full capacity of vehicle. If we observe it from higher level perspective, it results in more fuel consumption and higher infrastructure deterioration. Similarly for traveller the travel is expensive. This project is about developing a web-based solution that can provide services for vehicle travel sharing securely. From Pakistan scenario, security is the major issue in such systems, and the novelty of this project will be "How we can develop a secure and reliable vehicle travel sharing systems". Any such type of system will require collaboration and integration with NADRA, CPLC, High-way authority, and Law enforcement agencies.


Where on this earth is heaven?

Availability of news in digital form has provided us enormous information that can be used for our benefits. People use to move across localities within cities, across cities, and across countries for better life style and opportunities. This decision is not simple and requires lot of effort from individuals. Each individual has has/her own preferences for localities, cities, or countries, where he/she might like to move. This project should facilitate users in selecting the best regions on this earth meeting their preferences using the data available on Internet using reliable news archives. This project will help people living on rentals, intending to relocate or migrate.


City travel

Degrading state of Pakistan Railway has created opportunity for Bus transporters. We have growing number of bus transporters working in isolation. They are uncertain about passenger inflow and similarly incapable to cope to increasing passenger needs during occasions. An online system with up-to-date data of existing inter-city transportation facilities, their timings, routes, capacity, and cost can help passengers and transporter for better planning. However, we should be aware of the limitation of only Internet based systems in our environments. This project should outline a complete system including the requirement of a call center, infrastructure, and human resources to make this project a success. Furthermore, project should also facilitate reservation or purchase of ticket with well defined policies.


Personalized diet planner   (could be named Mon Salva)

Delicacies varies for regions and individual interest in them varies for their interest in dishes. When we say individual there are many parameters to define what a perfect diet plan for an individual should contain? For example, a child with five years of age has different diet need then an old person of 70 years suffering from sugar. Nutritional contents for dishes/foods/delicacies also varies. If we can get a healthy diet plan considering our body diet needs, our diseases, our taste, our religion, and our regional delicacies. This will be a great help for many to keep them healthy and fit.


Freight guide

Freight transportation is a huge business. This involves a variety of transportation including air, sea, rail, and road freight transportation. Business owners spend lot of effort to plan a freight transportation, which is economical and efficient and often miss an integrated view of their freight location. An online system with features to select the best freight transportation available and real-time monitoring of current freight transportation will be a great help.


Researcher

Researchers do invest lot of their time in finding the relevant literature for their research. This requires analysing the available online. They often move across irrelevant literature, which result in increase time and effort. An automated system that can facilitate researchers in finding the most relevant and reliable literature, identify other researchers working on similar topics, existing projects related to his/her area, funding opportunities and relevant events (such as journals, conference, workshops, talks, etc.) could be a greater help. This will help new researchers to get a quick start for their work.


Transformer

An engine that can transform existing functional C code to object-oriented C++ code and viceversa.


Mechanic (Audio)

Equipments do generate sound during operations, either it is an Aeroplane, a generator, or a motor. Healthy equipments have a definite audio signature during operations, which tend to vary as these equipments get faulty. This task of this project will be to detect using audio signature comparison of equipments that either equipment is healthy or faulty. If a fault is detected then the change in signature can be associated with that fault and in future system can automatically inform user about the possibility of fault.


Maintainer (Video)

Visuals of equipments/assets can be beneficial regarding the detection of structural changes. For example, it will be difficult from naked eye to detect how much a bridge has been deteriorated during the last five years. Image processing can be helpful in detecting the change in structures to detect possibly occurring faults.


Captain planet (Images)

Satellite images have been in common use for weather detection. These images have very high resolution and can be used for precise detection of environmental conditions on earth and in atmosphere. The task of this project will be to compare different images of a region over time and detect possible increase in pollution, deforestation or other environmental effects of interest.


Bob the builder (Images)

In Pakistan, lack of building regulations have results in enormous illegal constructions, which has effected the large cities with increase crime rate and resource congestion. The task of this project will be to detect possible illegal constructions using high resolution map images. Furthermore, maps images can be observed overtime to detach the growth in border of cities for better planning and control on it.


Ideas from competitions

ACM Student Research Competition Hypertext 2012
"kaggle" http://www.kaggle.com/


Ideas from challenges

Semantic Web Challenge


Ideas from contests

SIGMOD programming contest


Ideas from University of Illinois

https://wiki.engr.illinois.edu/display/url/Project+Proposals


Projects at University of London

www.eecs.qmul.ac.uk/teaching/ug/projects.php


Online project ideas

www.projecttopics.info


Online project ideas

iprojectideas.blogspot.com/2008/08/computer-science-project-ideas.html


Ideas which succeed

https://www.cs.drexel.edu/node/11629


Projects that won (Check projects on computer science)

www.siemens-foundation.org/en/competition/2010_winners.htm

Misc. Projects Ideas Pages
http://www.cs.ox.ac.uk/teaching/studentprojects/undergraduate.html
http://www.cs.bgu.ac.il/~project/files/index.html
https://wiki.engr.illinois.edu/display/url/Project+Proposals
http://webremix.org/resources.php

http://wp.nmc.org/horizon2008/chapters/data-mashups/
https://code.google.com/p/mashmydata/

http://www.ibm.com/developerworks/web/library/x-mashups/index.html
http://dl.acm.org/citation.cfm?id=1367602
http://dl.acm.org/citation.cfm?id=2484642
http://dl.acm.org/citation.cfm?id=1687602
http://dl.acm.org/citation.cfm?id=1687689
http://dl.acm.org/citation.cfm?id=1809207


Disclaimer: Above listed ideas and resources are listed only to assist undergraduate students regarding their search for possible under-graduate projects. Any resemblance (if found) with any other existing project is completely unintentional and no responsibility lies on author.

Tuesday, July 10, 2012

Last minute check list for a research write-up

Below is check list to check a research write-up that I have created over time. I hope this might help new researchers in avoiding the common mistakes:
  • Before starting any scientific write-up it always helps to make a skeleton of the concepts and discussion in a well-defined order. This skeleton will guide the author regarding how text will build from once concept to another keeping the reader interest and continuity in reading. It also helps in reducing the unnecessary redundancy of text in manuscript. Once the skeleton is finalized, it should be followed during write-up. If you have not used this technique for your write-up then it is never late to use it. Read you manuscript and identify the skeleton of the text in terms of concepts introduced and their flow. Re-arrange the order to increase the readability and remove the redundant text.
  • You have used present perfect tense in your write-up
  • Make words consistent all over the thesis
  • Please make the case for headings consistent, either make them sentence case or title case. Please do it also for all figures and tables captions as well
  • Please make the formatting for bullets consistent across thesis
  • Every time figure, table, or section is referenced, the first character should be capital like Figure 10.1, Section 9.8, and Table 98.1
  • Please avoid using hard/strong sentences/expressions that cannot be proved. For example, “the most optimal result”, “the most optimal solution”
  • Please make sure that terms are abbreviated only on their first usage only
  • Usually, the initial Introduction section is closed with information about forthcoming sections and their content.
  • Please, do a proof read of your thesis for English and formatting before submission. It will help in increasing the readability of your thesis
  • Sometimes author copies too much text from referred resources using “”[] format. It is allowed and legal, however. It is a bad research writing style
  • Too long sentence and should be broken into small sentences
  • Paragraph starting with the word “Because” is not a good writing style
  • Sometime half of the pages in write-ups are empty, a slight effort in formatting could make use of this space and could increase the readability of the research write-ups
  • Expression such as  "good idea" and "the best" are not recommended during technical writing
  • Instead of writing figure above or figure below, each figure should be referred with its number
  • Each figure and table should have a figure/table number and a valid title
  • The purpose of related work section is to identify the research work related with you work and then have a discussion about how your work is different from them. Do check that your related work section serve this purpose.
  • References should be made consistent with similar formatting (e.g., Either all authors should be written as full, or for all first name is abbreviated and last name is full, or vice verse)
  • Try to place information in references with consistent order. (E.g., Authors, Title, Publication venue, Year of publication)
  • For web links in references, please identify some reasonable title
  • Either separate author names in references using “comma (,)” or “and”. Please make it consistent for all references
  • Please identify the year of publication for following references
  • References should only contain the source that has been referred in research write-up
  • Instead of using symbols, such as &, Please use proper word
  • Please check for spaces within text, e.g., some time two words have more than one space
  • etc should always be like , etc., 
  • e.g. should always be like , e.g., 
  • such as always has comma before it
  • Have a final view of your text for formatting issues
  • You your text using spell check software
  • Make sure that the repetition of text and concepts are kept to minimum. A review to identify the redundancy in text and its rectification is a good practice
  • Please make sure that colorful diagrams and charts are also properly visible and readable in the printed version
  • Always take a print of the research write-up for final verification before submission. Most of the times typos and mistakes are more visible and detectable on printed version rather than on soft copy
  • Before submission, please do verify that all reference refer to the correct resources
  • Do get your manuscript proof read by a non-author

During my PhD times I came across the webpage of Dr. Felix Neumann from Hasso-Plattner Institute at Potsdam, where he listed few common checks for a research write-up before submission. The web page is no longer available, but I kept it on my record for re-use. Below is the content from that webpage:

Below is a collection of notes and tips on writing English research papers. Some of the hints are taken from "Bugs in Writing" by Lyn Dupre. The lists are unordered. I only list things that can be searched for in a last pass through the paper before submitting. Also, the issues listed here are sometimes particular to authors of German mother-tongue.

Commas
  • such as: Always preceded by a comma.
  • i.e.: Always preceded and followed by a comma.
  • e.g.: Always preceded and followed by a comma.
  • because: Always preceded by a comma.
  • which: Is preceded by a comma (as opposed to "that").
  • Enumerations: In contrast to German, place a comma before the final "and" or "or": ...databases, information systems, and search engines.

Poor/Difficult Words
  • will: Can be removed without substitution in practically all instances, except when explicitly talking about the future.
  • like: Probably you mean "such as".
  • which/that: "That" identifies an object; "which" adds a remark to an object. Removing the "that"-clause destroys the sentence, removing the "which"-clause leaves the sentence intact.
  • whole: Usually "entire" is better.
  • very: Avoid it.
  • bad: You probably mean "poor"
  • seems to be: Avoid it.
  • in order to: Usually can be replaces simply with "to".
  • this: Always let it be followed by the referenced noun.
  • a/an: according to pronunciation:
  • "an" is not always used before a vowel: "A used book", but "an unintelligible book".
  • "an" is not only used before a vowel: "An XML book".
  • only: Place it right before the thing you want to modify.
  • send vs. sent, build vs built, etc.: We have built a prototype.

Formatting
  • Try to place groups of citations in the same order as they appear in the bibliography: [8,25,3] is not as nice as [3,8,25].
  • Capitalize the words Figure, Section, Table, etc. if they are followed by a reference to a concrete Figure, Table...
  • Avoid calling the first section "Introduction". Give it a telling name.
  • You can abbreviate Fig., Sec., Tab. only if the words do not begin the sentence.

LaTeX
  • Use \@ after capitalized abbreviations at the end of sentences: We now describe our PDMS\@. The tool lacheck.exe finds those instances in LaTeX documents.
  • Another tip: \usepackage{xspace} and \newcommand{\ourModel}{NameOfOurModel\xspace}
  • Use tilde (~) instead of a space before citations and references: This evidence was presented by Ullmann~\cite{Ullmann90}.
  • Use the utility lacheck.exe on your .tex file to find get some hints.
  • Use correct quotation marks: ``quoted''.
  • In .bib file be sure to put curly brackets around capitalized abbreviations, such as {SQL}, {XML}, and {Garlic}.

Following Internet resource below could also be helpful:

Monday, May 28, 2012

Writing an effective resesarch proposal

Writing a good research proposal is critical for starting an effective research career. The quality of a research proposal is often a decision maker for a study program, PhD, or other research related job opportunities. A weak research proposal often results in rejection causing time, financial, and psychological loss. For a good research proposal, I will like to list down following tips that I accumulated over the time during my research. Once a former colleague of mine (Dr. Sven Apel) suggested following for a research proposal to our research group colleagues:


In research proposal, we have to answer following questions:
  1. What is the general problem (area)? 
  2. Why is it important? 
  3. What specific problem (in the general area) are we working on? 
  4. Why is its solution important? 
  5. Why does solving the specific problem worthy of an Independent Study?
Over the time with my research experience, I always asks my students to format their research proposal according to the following structure, however, it may vary according to the requirements of a research problem:
  • Abstract 
  • Introduction and Motivation 
  • Related Concepts 
  • Related Work 
  • Hypotheses 
  • Implementation Technologies 
  • Conclusion
Few good online resources regarding the research proposal writing that I found interesting can be found at following links:

Disclaimer: Author of blog has only downloaded and shared the resources from the internet for the sole purpose of knowledge sharing.

Saturday, May 26, 2012

Selecting a research topic in Computer Science

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.