Sunday, December 15, 2013

Computational Science

Computational Science-Venn Diagram
Image Source
First of all what is computer science? Many people do not understand the complete meaning of this term. We often think that computer science is all about writing computer programs, developing software products and building computers. Well, this is not a complete story about Computer Science. Think about fields such as music and astronomy. Music is not just about creating musical instruments and astronomy is not just about building telescopes. Similarly, computer science is not just about tools of writing programs or building computers. It is about learning and using different tools. It is about providing resources to different researching fields. In fact, many of the researches in different fields are dependent upon the field of computer science.
For almost every scientific inventions and research, computer artifacts have become extremely helpful tool in each field. Scientific computing has allowed geologist to predict earthquakes, has allowed biologist to comprehend genetics, and has been very helpful in many other fields. Scientists often rely on computer methodology to do their research and make progresses in their respective fields. Such scientists are called computational scientists. For example, computational mathematician uses mathematics to research different theories and computational chemist uses chemistry to research different atomic models or molecular theory. Similarly, all scientists heavily are dependent upon the use of computers and computational processes. 
This is what makes computer science makes more unique. It is the only field, which can make its own progress without depending upon other fields.
Sources:
http://www.nitrd.gov/pitac/reports/20050609_computational/computational.pdf

Sunday, December 8, 2013

Computer Graphics

Computer Graphics Logo
Image Source
First of all, what is computer graphics? Well, there are many ways to define computer graphics. In simple terms, computer graphics is an art of creating charts, graphs, images, lines, etc using computer programming languages. It is made up of small tiny pixels, which are graphical units represented on the computer screen. If you think carefully, then you may realize that computer graphics have become a part of your daily lives. We interact with computer graphics in the form of education, entertainment, communication, and many other things.

To be more specific, there are two types of computer graphics namely non-interactive and interactive computer graphics. In non-interactive computer graphics, we have no control over computer generated image. In this case, image will work only according to programming instructions. For example, images generated in TV, screen savers etc..
Super Hornet Simulator
Image Source

On the other hand, interactive computer graphics give some control over the image by providing some kind of input device. We can maintain some communication with the image by giving series of commands that helps computer in generating graphical images. For example, a video game controller gives control over the graphical image. Interactive computer graphics has changed our lives in many ways. For example, we can train our pilots to fly airplanes by creating a flight simulator. This way pilots get training to fly airplanes without actually flying real airplanes in the sky. This significantly reduces the risk of unwanted accidents and saves money.

As science technology continues to grow, I think the importance of computer graphics will also grow in the future and make our lives even more easier.

Sunday, December 1, 2013

Cryptography and Security

Security Image
Image Source
How often do you communicate with your friends, family and co-workers? A lot. Probably much more than you think. In addition to in-person communication, you also communicate through phone, messages, emails and other technological services. Have you ever wondered how secure your communication is? Everyone wants to be assured that their communication is secured from strangers. That is why Information security becomes important. It is a very wide term and it covers all aspects of securing different types of information.

Encryption/decryption Image
Image Source
Cryptography is a part of information security and plays an important role in protecting our information from strangers. It keeps our data and communications secure by encryption and decryption. You might be interested to know that cryptography is used for secured emailing and text messaging. It is simple process. Basically, with the help of secured password or pin number, the sender encrypts the message by sending it and only recipients can decrypt the message by reading it. This makes your communication more secure. The concept of cryptography is even used in online transactions to keep your identity and bank account secured. For example, when you purchase something online from any corporation, you give permission to share your identity and bank data entrusted to a secure encryption system of any given corporation. This system protects you from security threats.

Cryptography has definitely helped many people in securing their information, but still I cannot say that our information is fully protected. In the past, there have been many cases where hackers had cracked in the system and stole personal information. However, I am very sure that cryptography will be able to fully secure our information with the help of new technologies in the near future.

Sunday, November 24, 2013

Future of Artificial Intelligence


Brain Image
Image Source
What is artificial intelligence? In simple words, it is a part of computer science that focuses on creating smart machines that works faster and intelligently. 

Have you imagined a future where computer technologies are smarter than humans and have conquered the world? I am sure you did imagine this future after watching science fiction movies like Terminator, Transformers, iRobot and many more. These movies make you think that computer technologies will become so powerful in the future and it will be extremely hard for humans to control them. This raises a new question in our mind. Will this really happen in the future? Well, there is no right answer. As a computer science student, I would say it depends upon humans who design artificial intelligence.  It is unlikely to create dangerous artificial intelligence entities which will destroy humanity, because no human is interested in destroying human race. The main purpose of creating artificial intelligence entities is to help us in our daily activities. It could be from simple tasks like cooking to complicated tasks like surgery and scientific experiments

Hand Shake
Image Source
We have developed software programs that helped us to design and deploy artificial intelligence. It allows humans to communicate and assign specific tasks to machines. In this magical field, humans have already created many things that are phenomenal and human friendly. For example, Siri listens to your voice, understands your command and gives you the result. Self-driving cars has been created, which is simply an amazing invention. All this inventions were possible because of artificial intelligence. I am very sure that there will be many more inventions of artificial intelligence entities in the near future, which will make human life even more comfortable.

Sources:

Sunday, November 17, 2013

History of Information Security

Computers from past to present
Image source
Let me start this week’s blog topic with a basic question. When was first computer invented? You probably might know the answer from your first computer class in middle school. When I was in sixth grade, I learned that computer was invented in 1830s by Charles Babbage. This is true. First mechanical computer was indeed conceptualized and designed by Charles Babbage. During his era, computer hardware was very large machine that required a space of a big room. Computer networking systems never existed at that time, so information security was not as critical as it is today.
Information Security
Image source

The issue of information security came in existence when computer networking systems were introduced in 1960s. Because of security weaknesses, computer data was unprotected and passwords were fairly easy to crack to steal important information. Security issue became even more crucial when there was an increase use of personal computer during 1980s. People started using personal computers at work and at home; therefore, it was important to protect data of each individual and company. There have been many documented cases related to networking crime in the past. For example, one of the cases involved a UCLA student who hacked into Defense Department international communications system through his personal computer in 1983. This is reason why companies like McAfee, Symantec, Netscape and many more came into existence around 1990s. This information security companies has answered to security issues very well. They developed intrusion prevention system, intrusion detection systems, filters and many other solutions to address different security issues.  


Even today, there are some unsolved security issues in computer networking system. I am very sure that current information security industries will find new ways to solve and reduce these security issues from networking system. 

Sunday, November 10, 2013

File Sharing Security

File Sharing Tools
Image Source
Wouldn't it be wonderful if our files are smart enough to protect our information from unauthorized users? Unfortunately, files aren't that smart. They have no control over accessing information to any random users. Sometime files are shared with the wrong recipients and it can cause a lot of problems. Last year, you might have read that small numbers of user’s Dropbox account were hacked. Well, Dropbox is not the only file sharing service that is hacked. There have been many other services such as iCloud, evernote,  were hacked at some point in the past. This raises a major concern about security issues for sharing important files on cloud.

File Sharing Security
Image Source
So what types of security issues are generated in file sharing technology? Well, there could be many types of security issues. For example, one of the common issues is installing malicious code to your computer. When you download a file from cloud-based services, it is almost impossible to verify if the file is trustworthy or not. This file could be sent to you by cyber criminals to transmit malicious code to your computer. Unknowingly, you may be giving unauthorized users access to your personal information by downloading that file. Once your information is exposed to unauthorized user, it is hard to tell how many other people have accessed your information. If a user decides to download or upload files to reliable cloud-based services, then there should proper tools to monitor this activity.  

I am not denying the fact that the file sharing technology has benefited many businesses and education systems. Through this blog post, I wanted to point out the other side of file sharing technology. Many security issues have been resolved in the past and I am very sure that other security issues will be solved quickly by cloud-based services.

Sources:

Sunday, November 3, 2013

Why learn data structures?

Data Structures
Image Source
Knowingly or unknowingly, we store many things in our daily routine life. For example, think about books, clothes, kitchen utensils, food and many other small things. We store books in bookshelves, clothes in closets, kitchen utensils in kitchen cabinets and food in plastic bags or containers. For all different things, we have different items which help to store those things. But have you ever wondered how does Google store their data? How Google manages to narrow down the best results from millions of other results? Well, the answer is quite simple - through data structures. In computer science, data structures are methods of storing data in computers so that it can be found and retrieved quickly when needed. In any programming language, data structures are implemented using references, data types and operations on them. Some of the most common and important data structures are as follows:
Image of different data structures
Image Source

- Array
- Linked Lists
- Trees
- Stacks
- Queues
- Graphs
These data structures are solution to organize data efficiently in computers. Without sufficient knowledge of data structures, it is often easy to think of solutions in terms of data structures which are provided by programming language libraries. For example, if you were a Java programmer, then you would think of java.util for solutions. But it does not help every time. Imagine if you were writing a basic program with “auto-correct” feature, where a user types something incorrectly and your program corrects user error automatically. Well, the knowledge of data structures provided by libraries does not help much, but knowledge of a simple tree would help you here.

Overall, I believe that it is important to learn data structures because it is a skill which can be useful to understand and conclude an algorithm for a problem. It is helpful to analyze the difficulty of any problem and know which algorithm works best to solve that problem.

Sources:

Sunday, October 27, 2013

Hacking: Good or Bad?

Hacking Image
Image Source
What was the first impression in your mind when you read my blog’s title? I am very sure that most of you have made negative impression, because of the word “hacking.” This is not your fault. It is normal for people to think negatively when we hear or read words, such as “hackers” or “hacking”, because of the media. These words force us to think of malicious computer users who finds to new ways to access secure information by infiltrating in computer systems. I am not denying the fact that there are hackers around this world with bad intentions, who infiltrate networks and spread computer viruses for their own benefits. We call them black hats. However, there are several other hackers with good intentions, who use their knowledge to help government or corporations create better security system and we call them white hats. In fact, they have started using words like “geek” or “guru” because of the bad reputation of word “hacker.”
White Hat vs. Black Hat
Image Source
Even when you search the word “hacker” or “hacking” on Google, it refers to black hats who access computer information illegally. However, there is another good way to define these words. We can say that hacking is a process of solving computer problems in IT industries and hackers are programmers who are expert in hacking the computer code. Lots of computer problems are fixed, because of hacking. Hackers can imagine new ways of using computers. They can create computer programs that no one can imagine. In fact, they can change the whole computer industry by creating new applications or completely new operating systems. In this sense, famous people such as Linus Torvalds, Bill Gates and Steve Wozniak were all hackers. They imagined a completely different world of computer technology and were successful in changing their imagination to reality.

Whether it is to learn, create applications, help someone or for personal profits, hacking will continue to happen in the future. It all boils down to what we think of hacking.

Source:


Sunday, October 13, 2013

Why Open Source Software?

Open Source Software
Image Source
Have you ever imagined a world where technology is restricted to only those people who are willing to pay for closed source products? It would severely affect people’s education and many researches. It would also be hard to share information with other people. Fortunately, we don’t live in such world. Today, we have many open source software products which lead us to new technologies. They are easily available to everyone and they are cost-effective. They bring benefits to our society by giving opportunities to people to use and understand the open source software.
Open source and closed source software products
Image Source

So what make open source software products different from closed software products? Well, they are not in terms of programming language or operating systems, but by the license that governs the use of open source software products. That is the reason why most of the open source software products are licensed under general public license (GPL). We can look and/or modify the source code from its original design, free of charge. In my opinion, this is the best part of open source products. For example, Linux is licensed under GPL. You can look at the source code and modify the original source code. 

In my opinion, following are some key advantages of open source software products: 
  • They are considerably less expensive when compared with closed software products.
  • They are safe to use.
  • Since they are not owned by a vendor, there is no vendor lock-in.  
  • They deliver better quality. 
  • We get right to access and modify the source code.  

Overall, I believe that open source software products will bring more innovations to the future.