Hot Topics in Computer Science


Some latest hot topics in Computer Science:

  • Data Warehousing
  • Internet of Things(IoT)
  • Big Data
  • Cloud Computing
  • Semantic Web
  • Machine Learning
  • Artificial Intelligence
  • Data Mining
  • Image Processing
  • Bioinformatics
  • Quantum Computing

Data Warehousing

Data Warehousing is the process of analyzing data for business purposes. Data warehouse store integrated data from multiple sources at a single place which can later be retrieved for making reports. The data warehouse in simple terms is a type of database different and kept isolated from organization’s run-time database. The data in the warehouse is historical data which is helpful in understanding business goals and make decisions for future prospects. It is a relatively new concept and have high growth in future. Data Warehouse provides Online Analytical Processing(OLAP) tools for the systematic and effective study of data in a multidimensional view. Data Warehouse finds its application in the following areas:

  • Financial Sector
  • Banking Sector
  • Retail Services
  • Consumer goods
  • Manufacturing

Internet of Things(IoT)

Internet of Things(IoT) is a concept of interconnection of various devices, a vehicle to the internet. IOT make use of actuators and sensors for transferring data to and from the devices. This technology is developed for better efficiency and accuracy apart from minimizing human interaction with the devices. The example for this is the traffic lights which changes its colors depending upon the traffic. Following are the application areas of Internet of Things(IoT):

  • Home Automation
  • Healthcare
  • Agriculture
  • Transportation
  • Manufacturing
  • Environment

Big Data

Big Data is a term to denote the large volume of data which is complex to handle. The data may be structured or unstructured. Structured data is an organized data while unstructured data is an unorganized data. The definition of big data is termed in terms of three Vs. These vs are:

  • Volume: Volume defines large volume of data from different sources
  • Velocity: It refers to the speed with which the data is generated
  • Variety: It refers to the varied amount of data both structured and unstructured.


Application areas:

  • Government
  • Healthcare
  • Education
  • Finance
  • Manufacturing
  • Media
  • Sports

Cloud Computing


Cloud Computing is a comparatively new technology. It is an internet-based service that creates a shared pool of resources for consumers. There are three service models of cloud computing namely:

  • Software as a Service(SaaS)
  • Platform as a Service(PaaS)
  • Infrastructure as a Service(IaaS)

Characteristics of cloud computing are:

  • On-demand self-service
  • Broad network access
  • Shared pool of resources
  • Scalability
  • Measured service

Semantic Web

Semantic Web is also referred to as Web 3.0 and is the next big thing in the field of communication. It is standardized by World Wide Web Consortium(W3C) to promote common data formats and exchange protocols over the web. It is machine-readable information based and is built on XML technology. It is an extension to Web 2.0. In the semantic web, the information is well defined to enable better cooperation between the computers and the people. In the semantic web, the data is interlinked for better understanding. It is different from traditional data sharing technologies.


MANET stands for mobile ad hoc network. It is an infrastructure-less network with mobile devices connected wirelessly and is self-configuring. It can change locations independently and can link to other devices through a wireless connection. Following are the various types of MANETS:

  • Vehicular ad hoc network(VANET)
  • Smartphone ad-hoc network(SPANET)
  • Internet-based mobile ad hoc network(iMANET)

various simulation tools to study the functionality and working of MANET like OPNET, NETSIM, NS3 etc.

In MANET there is no need of central hub to receive and send messages. Instead, the nodes directly send packets to each other.

MANET finds its applications in the following areas:

  • Environment sensors
  • Healthcare
  • Vehicular ad hoc communication
  • Road Safety
  • Home

Machine Learning

It is also a relatively new concept in the field of computer science and is a technique of guiding computers to act in a certain way without programming. It makes use of certain complex algorithms to receive an input and predict an output for the same. There are three types of learning;

  • Supervised learning
  • Unsupervised learning
  • Reinforcement learning

Machine Learning is closely related to statistics.


Data Mining

Data Mining is the process of identifying and establishing a relationship between large datasets for finding a solution to a problem through analysis of data. There are various tools and techniques in Data Mining which gives enterprises and organizations the ability to predict futuristic trends. Data Mining finds its application in various areas of research, statistics, genetics, and marketing. Following are the main techniques used in the process of Data Mining:

  • Decision Trees
  • Genetic Algorithm
  • Induction method
  • Artificial Neural Network
  • Association
  • Clustering

Advantages of Data Mining

  • Data Mining helps marketing and retail enterprises to study customer behavior.
  • Organizations into banking and finance business can get information about customer’s historical data and financial activities.
  • Data Mining help manufacturing units to detect faults in operational parameters.
  • Data Mining also helps various governmental agencies to track record of financial activities to curb on criminal activities.

Disadvantages of Data Mining

  • Privacy Issues
  • Security Issues
  • Information extracted from data mining can be misused

Artificial Intelligence

Artificial Intelligence is the intelligence shown by machines and it deals with the study and creation of intelligent systems that can think and act like human beings. In Artificial Intelligence, intelligent agents are studied that can perceive its environment and take actions according to its surrounding environment.

Goals of Artificial Intelligence

Following are the main goals of Artificial Intelligence:

  • Creation of expert systems
  • Implementation of human intelligence in machines
  • Problem-solving through reasoning

Application of Artificial Intelligence

Following are the main applications of Artificial Intelligence:

  • Expert Systems
  • Natural Language Processing
  • Artificial Neural Networks
  • Robotics
  • Fuzzy Logic Systems

Strong AI – It is a type of artificial intelligence system with human thinking capabilities and can find a solution to an unfamiliar task.

Weak AI – It is a type of artificial intelligence system specifically designed for a particular task. Apple’s Siri is an example of Weak AI.

Turing Test is used to check whether a system is intelligent or not. Machine Learning is a part of Artificial Intelligence. Following are the types of agents in Artificial Intelligence systems:

  • Model-Based Reflex Agents
  • Goal-Based Agents
  • Utility-Based Agents
  • Simple Reflex Agents

Natural Language Processing – It is a method to communicate with the intelligent systems using human language. It is required to make intelligent systems work according to your instructions. There are two processes under Natural Language Processing – Natural Language Understanding, Natural Language Generation.

Natural Language Understanding involves creating useful representations from the natural language. Natural Language Generation involves steps like Lexical Analysis, Syntactic Analysis, Semantic Analysis, Integration and Pragmatic Analysis to generate meaningful information.

Image Processing

Image Processing is another field in Computer Science and a popular topic for a thesis in Computer Science. There are two types of image processing – Analog and Digital Image Processing. Digital Image Processing is the process of performing operations on digital images using computer-based algorithms to alter its features for enhancement or for other effects. Through Image Processing, essential information can be extracted from digital images. It is an important area of research in computer science. The techniques involved in image processing include transformation, classification, pattern recognition, filtering, image restoration and various other processes and techniques.

Main purpose of Image Processing

Following are the main purposes of image processing:

  • Visualization
  • Image Restoration
  • Image Retrieval
  • Pattern Measurement
  • Image Recognition

Applications of Image Processing

Following are the main applications of Image Processing:

  • UV Imaging, Gamma Ray Imaging and CT scan in medical field
  • Transmission and encoding
  • Robot Vision
  • Color Processing
  • Pattern Recognition
  • Video Processing


Bioinformatics is a field that uses various computational methods and software tools to analyze the biological data. In simple words, bioinformatics is the field that uses computer programming for biological studies. This field is a combination of computer science, biology, statistics, and mathematics. It uses image and signal processing techniques to extract useful information from a large amount of data. Following are the main applications of bioinformatics:

  • It helps in observing mutations in the field of genetics
  • It plays an important role in text mining and organization of biological data
  • It helps to study the various aspects of genes like protein expression and regulation
  • Genetic data can be compared using bioinformatics which will help in understanding molecular biology
  • Simulation and modeling of DNA, RNA, and proteins can be done using bioinformatics tools

Quantum Computing

Quantum Computing is a computing technique in which computers known as quantum computers use the laws of quantum mechanics for processing information. Quantum Computers are different from digital electronic computers in the sense that these computers use quantum bits known as qubits for processing. A lot of experiments are being conducted to build a powerful quantum computer. Once developed, these computers will be able to solve complex computational problems which cannot be solved by classical computers.

Quantum Computers work on quantum algorithms like Simon’s algorithm to solve problems. Quantum Computing finds its application in the following areas:

  • Medicines
  • Logistics
  • Finance
  • Artificial Intelligence

Introduction to Pandas (Python data analysis toolkit)

Pandas is one of the most useful data analysis library in Python. It aims to be the fundamental high-level building block for doing practical, real world data analysis in Python.

pandas is well suited for many different kinds of data:

  • Tabular data with heterogeneously-typed columns, as in an SQL table or Excel spreadsheet
  • Ordered and unordered (not necessarily fixed-frequency) time series data.
  • Arbitrary matrix data with row and column labels (homogeneously typed or heterogeneous)
  • Any other form of observational / statistical data sets.

Lets understand the 2 key data structures in Pandas – Series and DataFrames

Introduction to Series and Dataframes

Series can be understood as a 1 dimensional labelled / indexed array. You can access individual elements of this series through these labels.

A dataframe is similar to Excel workbook – you have column names referring to columns and you have rows, which can be accessed with use of row numbers. The essential difference being that column names and row numbers are known as column and row index, in case of dataframes.

Series and dataframes form the core data model for Pandas in Python. The data sets are first read into these dataframes and then various operations (e.g. group by, aggregation etc.) can be applied very easily to its columns.

Here are just a few of the things that pandas does well:

  • Easy handling of missing data (represented as NaN) in floating point as well as non-floating point data
  • Size mutability: columns can be inserted and deleted from DataFrame and higher dimensional objects
  • Automatic and explicit data alignment: objects can be explicitly aligned to a set of labels, or the user can simply ignore the labels and let Series, DataFrame, etc. automatically align the data for you in computations
  • Powerful, flexible group by functionality to perform split-apply-combine operations on data sets, for both aggregating and transforming data
  • Make it easy to convert ragged, differently-indexed data in other Python and NumPy data structures into DataFrame objects
  • Intelligent label-based slicing, fancy indexing, and subsetting of large data sets
  • Intuitive merging and joining data sets
  • Flexible reshaping and pivoting of data sets
  • Hierarchical labeling of axes (possible to have multiple labels per tick)
  • Robust IO tools for loading data from flat files (CSV and delimited), Excel files, databases, and saving / loading data from the ultrafast HDF5 format
  • Time series-specific functionality: date range generation and frequency conversion, moving window statistics, moving window linear regressions, date shifting and lagging, etc.


Java program to check whether given number is a multiple of 3 or not

Given an integer n, check whether it is a multiple of 3 or not. If the number is divisible by 3, then return true else return false.


1 <= n <= 10000

import java.util.*;
import java.math.*;
public class CandidateCode {
  public static boolean threeByThree(int input1){
 return true;
 return false;
 public static void main(String[] args) throws IOException{
 Scanner in = new Scanner(;
 boolean output;
 int ip1 = Integer.parseInt(in.nextLine().trim());
 output = threeByThree(ip1);
 System.out.println(String.valueOf(output ? 1 : 0));

Java program to check whether it is a multiple of 7 or not

Given an integer n, check whether it is a multiple of 7 or not. If the number is divisible by 7, then return true else return false.


1 <= n <= 1000

Sample TestCase
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class MultipleOfSeven {
 public static boolean sevenBySeven(int num){
        return true;
       return false;
 public static void main(String[] args) throws IOException{
 Scanner in = new Scanner(;
 boolean output;
 int ip1 = Integer.parseInt(in.nextLine().trim());
 output = sevenBySeven(ip1);
 System.out.println(String.valueOf(output ? 1 : 0));

Java program for a given number n, finds a number p which is greater than or equal to n and is a power of 2.

Java Program for Replacing White Space Characters

Learn Android Programming – For Beginners To Pro

Java program for a given number n, finds a number p which is greater than or equal to n and is a power of 2.

Java program for a given number n, finds a number p which is greater than or equal to n and is a power of 2.


1 <= n <= 10000

Sample TestCase
import java.util.*;
import java.math.*;
public class NextPowerOfTwo {
public static int twoPowers(int num){
      return num;
static double log(int x, int base){
    return (Math.log(x) / Math.log(base));
public static void main(String[] args) throws IOException{
 Scanner in = new Scanner(;
 int output = 0;
 int input = Integer.parseInt(in.nextLine().trim());
 output = twoPowers(input);

Java Program for Replacing White Space Characters
Creating an App Icon with the Asset Studio
Numbers in JavaScript

Java Program for Replacing White Space Characters

Given a sentence with multiple spaces between words and also spaces in front and back of sentence and you need to remove these extra spaces.

Input Format

You will be taking a string as an input from stdin.


1 <= |S| <= 10^5

Output Format

You need to print the sentence by removing spaces in front and back of sentence.

Sample TestCase 1
     This is Rua    Tech
This is Rua Tech



import java.util.*;
public class WhiteSpaceRemove {
public static void main(String args[] ) throws Exception {

Scanner sc =new Scanner(;
String str=sc.nextLine();
// str=str.trim();
String result=delSpaces(str);

public static String delSpaces(String str){
StringBuilder sb = new StringBuilder(str);
ArrayList<Integer> spaceIndexes = new ArrayList<>();

for ( int i=1; i < sb.length(); i++ ){
if ( sb.charAt(i) == ‘ ‘ && sb.charAt(i-1) == ‘ ‘){

for (int i = 0; i < spaceIndexes.size(); i++){
return new String(sb.toString());

Understanding PHP Generator With Example

While and Do-While loop in Java with example

Numbers in JavaScript


Defining a number in JavaScript is actually pretty simple. The Number data type includes any positive or negative integer, as well as decimals. Entering a number into the console will return it right back to you.

Returns: 5

Arithmetic operations

You can also perform calculations with numbers pretty easily. Basically type out an expression the way you would type it in a calculator.

3 + 2.1
Returns: 5.1
2 + 10 - 19 + 4 - 90 + 1
(10/5) * 4 - 21

Comparing numbers

Just like in mathematics, you can compare two numbers to see if one’s greater than, less than, or equal to the other.

5 > 15
Returns: false
5 < 18
Returns: true
50 == 100
Returns: false

Comparisons between numbers will either evaluate to true or false. Here are some more examples.

Operator Meaning
< Less than
> Greater than
<= Less than or Equal to
>= Greater than or Equal to
== Equal to
!= Not Equal to
 TIP: The values true and false have significant importance in JavaScript. These values are called Booleans and are another data type in JavaScript.

Creating an App Icon with the Asset Studio

In this article, I will show you how to create the Android application icon with Assets Studio  in Android Studio. If you right-click over pretty much any directory in the Android Studio tree, the context menu will have an “Image Asset” option.


By default, the Asset Studio has its “Icon Type” drop-down set for “Launcher Icons(Adaptive and Legacy)”, “Lancher Icons(Legacy Only)”, “Action Bar and Tab Icons” and “Notification Icon”. The overall name for launcher icon is found in the Name field, above the tabs. The default is ic_launcher.


Create adaptive and legacy launcher icons

Note: If your app supports versions no higher than Android 7.1, follow the instructions to create a legacy launcher icon only instead.

After you open Image Asset Studio, you can add adaptive and legacy icons by following these steps:

  1. In the Icon Type field, select Launcher Icons (Adaptive & Legacy).
  2. In the Foreground Layer tab, select an Asset Type, and then specify the asset in the field underneath:
    • Select Image to specify the path for an image file.
    • Select Clip Art to specify an image from the material design icon set.
    • Select Text to specify a text string and select a font.
  3. In the Background Layer tab, select an Asset Type, and then specify the asset in the field underneath. You can either select a color or specify an image to use as the background layer.
  4. In the Legacy tab, review the default settings and confirm you want to generate legacy, round, and Google Play Store icons.
  5. Optionally change the name and display settings for each of the Foreground Layer and Background Layer tabs:
    • Name – If you don’t want to use the default name, type a new name. If that resource name already exists in the project, as indicated by an error at the bottom of the wizard, it’s overwritten. The name can contain lowercase characters, underscores, and digits only.
    • Trim – To adjust the margin between the icon graphic and border in the source asset, select Yes. This operation removes transparent space, while preserving the aspect ratio. To leave the source asset unchanged, select No.
    • Color – To change the color for a Clip Art or Text icon, click the field. In the Select Color dialog, specify a color and then click Choose. The new value appears in the field.
    • Resize – Use the slider to specify a scaling factor in percent to resize an Image, Clip Art, or Text icon. This control is disabled for the background layer when you specify a Color asset type.
  6. Click Next.
  7. Optionally, change the resource directory: Select the resource source set where you want to add the image asset: src/main/res, src/debug/res, src/release/res, or a custom source set.
  8. Click Finish. Image Asset Studio adds the images to the mipmap folders for the different densities.(Note Above description is taken from android studio documentation)

See below figure where I create a Text icon using Assets Studio.


NOTE: Same way we can create legacy launcher icon ,Action bar and tab icons and Notification icons.


Change Icon Of Android App In Android Studio

In this article, I will show you how to change the Android application icon using Android Studio. Icons are part of the graphical user Interface of the mobile application. In android studio there is a default icon set by android studio itself. You can change it as per your application requirement.

Changing the Application Icon In Android Studio:

Step 1- Open your application in Android Studio.
Step 2- Further follow the path to reach the desired folder to add icon i.e. app -> res-> mipmap.


Step 3- Here add you app icon. You can just simply copy and paste the image in mipmap folder.
Step 4- After placing the image in the mipmap folder. You need to rename the default icon name to your icon image name.
Step 5- Go to  app -> manifests open AndroidManifest.xml file. Here find the following code.
Here ic_launcher is the default image name, rename it.


Also read: Creating an App Icon with the Asset Studio

Add Audio To App In Android Studio

Adding audio clip to android application is a simple task as it also add some further functionality. Here is a step by step tutorial how to add audio file and how to play music when App will start.

Adding Audio to app in Android Studio:

Step 1: Open the android studio with the project in which you want to add-on audio clip/media file.
Step 2: Create a raw folder.
Step 3: Add media file to raw folder by simply copy and paste that to raw folder.
Step 4: Here we added a media file “color_black.mp3” . Now open the Java File of desired activity, here we are adding audio in MainActivity.
Step 5: Further add this code

MediaPlayer mediaPlayer= MediaPlayer.create(MainActivity.this,R.raw.color_black);

Step 6: Now run the App and your music will play when App will start.