Friday, December 13, 2013

Scientific Computing: Computational Science

You might be aware of the fact that we can use computers to do almost anything. Now, what if I tell you we can use computers to do science. Yes, you heard it right! We can use computers to do science and the field that uses computers to do science is known as Computational Science



What is Computational Science?

Computational Science is basically integrating computer science, mathematics, physics, biology, chemistry, and algorithms to solve real life problems. By combining all the fields, we are able to accurately model the scientific problems. Computational Science heavily relies on mathematics and computer programs to compute massive amount of calculations to understand the nature of the problem. Computational Science has three main branches such as computational physics, computational biology, and computational chemistry.

Meteorologist using Computational Science
Who uses Computational Science?

Now, you might be wondering who uses computational science. Well, it turns out that every field that uses science is starting to use computational science. The reason for this is because computational science enables every science related field to visualize the problem, and accurately map out the science behind the problems. For instance, meteorologists use computational science to figure out the future weather and predict the long term climate changes. Another field that successfully uses computational science is biology. Biologists use computational science to understand the functions of our organs. Computational Science enables biologists to model things at molecular level which enables them to design new medicines. Overall, Computational Science is at heart of every concrete science fields.

I hope you learned something new about Computational Science from this post. I am looking forward to hear your opinion and suggestions about this post, so please comment below.

References:





Saturday, December 7, 2013

Computer Graphics: Making our Movies and Video Games Realistic and Entertaining

Do you enjoy watching sci-fi or animated movies? Let’s admit it, we all love watching animated movies. (Don’t worry, I won’t ask for your age!) If you are interested in watching animated and/or sci-fi movies, then you might be interested to learn more about computer graphics. In simple terms, computer graphics is the use of a computer to generate realistic images. All the animated images we see in our movies are generated using Computer Graphics.

                               

Use of Computer Graphics in Movies

Now that I have briefly mentioned about use of computer graphics in movies, let me give some concrete examples to show you the importance of computer graphics in our favorite movies. First of all, you all have watched the movie Jurassic Park, right? (If you haven’t seen Jurassic Park yet, I highly recommend you watch that movie!) Incredible usage of computer graphics in Jurassic Park shows us what it would be like to live in a dinosaur era. Various details of dinosaurs were cleverly depicted by the computer graphics team. The dinosaur’s red and brown eyes, yellowish teeth, spiny skin, and long tails were so realistic that it frightened everyone. Without use of computer graphics, movies like Jurassic Park would be impossible to make.


Use of Computer Graphics in Video Games

Let’s talk about another widely popular use of computer graphics. Video games are very popular nowadays. We are spending most of our time playing video games, but have you ever thought about what makes video games more interesting? The use of computer graphics makes video games very exciting and realistic. As far as video games are concerned, computer graphics truly changed this industry upside down. Few years ago, we were happily playing 2-D video games, but now with use of 3-D graphics in video games, we are able to be part of the game. Nowadays, most of the games are using 3-D graphics which makes video games more fun and we are able to attach ourselves to the games.

I hope you learned something new about computer graphics by reading this post. I am looking forward to hearing your opinion about this post, so please leave a comment.

References:




Friday, November 29, 2013

Communications and Security: Cryptography

Nowadays, we are using the internet for everything. For instance, we are using the internet to connect with friends and family, online banking, shopping, and transferring information. In other words, we are giving away our valuable information on the internet. And, as I mentioned earlier in blog post “Hacking: Prevention or Theft?”, hackers can easily hack most of the information we are giving away on the internet. However, we can use cryptography techniques to secure our information on the internet. So, today I would like to inform you all about cryptography.

Encryption and Decryption techniques
What is Cryptography?


Cryptography is the study of securely transforming information, so a third party cannot have any access to secured information. Cryptography uses two main concepts called encryption and decryption to securely transfer or store information. Encryption basically transforms stored information to some unreadable text using probability and number theory. On the other hand, decryption decodes the encrypted formula to convert unreadable text to original text. So, now with cryptography technique if hackers were to get access to transferred or stored information, then they will not be able to use that information because it will be transformed into very unreadable text.

Caesar's Cipher Cryptography Technique
Caesar’s Cipher
Now that I have introduced you about the cryptography, let me give you one simple example to give you more insight about the technique of cryptography. One of the simplest examples in cryptography is known as Caesar’s Cipher. Julius Caesar was the first one to use cryptography technique. In Caesar’s Cipher, encryption can shift all the letters by 3 characters. That means that ABC will become DEF. Similarly, decryption will be simple because it simply un-shifts the characters to the original text. So, when we read the encrypted text, it will not make sense, but with a simple decryption method we will be able to retrieve the original information back. 

Saturday, November 23, 2013

Artificial Intelligence


Have you ever wonder what it would be like if computers can think by themselves? What if computers can understand humans and perform tasks according to our actions? If these questions really intrigue you, then you would certainly want to learn about Artificial Intelligence (AI). Informally, Artificial Intelligence is making computers perform like humans. 



Applications of Artificial Intelligence

Most of us have seen or used applications of Artificial Intelligence in our daily lives. Let me explain few famous applications that use Artificial Intelligence. If you have ever made a phone call to your phone or internet provider, you will hear human like sound which will interpret what you need help with based on few question answers. Once the system collects information, it will transfer your call to the right department. This whole system uses the concept of AI because we hear human like voice and based on our reply system makes a decision on which area to transfer our phone call for better assistance. This scenario is very similar to our interaction with each other. For instance, if I ask someone (i.e. human) for help, then they will ask few questions to better assist me. Once the person who is helping me has enough information, (hopefully) they will guide us in the right direction. 
Concept of AI in Chess games
Another amazing application of AI can be found in games. When we are playing chess or checkers on computer (i.e. a single player), the computer acts as a second player. Usually, it’s hard to realize that we are playing with a computer because a computer makes their independent decisions. Playing with a computer usually gives us a feel of playing with another human. 


Future of Artificial Intelligence
Google's self-driving car which uses AI 

Now you might ask, “What more can we do with Artificial Intelligence?” Well, there are lots of companies, who are working on to use Artificial Intelligence in everything we see around us. For instance, Google is developing the self-driving car which will use Artificial Intelligence. The self-driving car will be able to make independent decision, and it will be able to make driving safer and secure. 
 
Another developing idea using Artificial Intelligence can be found in Robot Restaurant located in China. Robot Restaurant is using robots to perform all tasks required to run an ideal restaurant. Their chefs, cashier, and waiters are robots. They are using AI to enable robots to make independent decisions. In Robot Restaurant, a cashier robot takes order, a chef robot prepares meal, and waiter robots deliver food to the right person. This restaurant shows how use of AI can be very useful in running a successful business.

I hope you learned something new about Artificial Intelligence. I am looking forward to read your opinion and suggestions regarding this post.

References:  





Saturday, November 16, 2013

Quick Glance at History of Computer Science

Can you imagine your life without a computer? For most of us, surviving without computers has become nearly impossible. Nowadays, we use computers for computations, storing and retrieving information, entertainment, and the list goes on. So, today I will write about the history of the device that is very close to all of our lives.

Life before computers

Before Computers

Before computers were invented, people used various tools for computations. For instance, people calculated by hand. (Some still do!) After a few decades, businesses started to grow and they started hiring clerks to handle computations. Subsequently, computers were invented for quick computations, and for the efficiency of information storage.

Early use of computers in businesses 

Emergence of Computer Science

Because computer use increased over time, the idea that computers could be used for more than just calculations emerged quickly. Thus, the field of Computer Science was developed to scientifically study various logics, to understand what can be computed, and to form a theoretical foundation between Mathematics and information. Computer Science paved its way to academic discipline during 1950s. The University of Cambridge became the first university to offer Computer Science degree. Due to the increasing discoveries and exciting applications in the field of Computer Science, today, almost every institution offers Computer Science degree. 




Computer Science Today

Ever since the discovery of Computer Science, this discipline changed our society in a positive manner. Computer Science’s discoveries helped us connect with each other, gave us access to enormous information, and enabled us to retrieve information, breaking even the greatest boundaries, beyond earth, enabling us to understand the universe and its elements. This field is vastly growing every day because new algorithms, programming languages, sorting routines, and UI’s are being discovered frequently. 

Reference:


http://upload.wikimedia.org/wikipedia/commons/5/57/MSL_concept_February_2007_-_PIA09201.jpg

http://en.wikipedia.org/wiki/History_of_computer_science


https://cs.uwaterloo.ca/~shallit/Courses/134/history.html

Saturday, November 9, 2013

File Sharing: Advantages and Disadvantages

Do you have a huge project where everyone should collaborate and work together? One way to work on this project is to use an old school approach where everyone would meet at some designated location and work on it together. If you have already tried this approach before, then I am sure you never want to use that approach ever again in your life. There are few things that can go wrong with an old school approach such as someone is not committed enough and will not show up to the meeting, one might have to commute a long distance for just one meeting, and finding a common time for everyone could be harder than rocket science. Now, you might be thinking, what can we do to finish a huge project efficiently? Answer to that question is simple; your team can use available file sharing tools to work on the project.

  Advantages of File Sharing

One of the benefits of file sharing is that file sharing can save time and money. For instance, if you are working on a project, then your team members don’t have to be physically at the same location. Every team member will have access to the same file that they can edit, view, and access at the same time. Another benefit of file sharing is retrieving your files or data from anywhere. If you are using file sharing tools, then you can save your files at one destination and retrieve those files in any of your device. Let me explain that using actual scenario. Imagine that you are working on your desktop for some project, and you are tired of staring at your desktop screen. Perhaps, weather is really nice outside and you want to sit by the pool, but still want to work on your project because it is due the next morning. File sharing lets you enjoy that nice weather and let you work on your project at the same time. You can simply save the file on your desktop and access that file from your tablet or laptop.

Disadvantages of File Sharing

Every time we utilize some digital tools, we should always consider potential disadvantages that might come along with it. Just like any other software, file sharing also comes with few disadvantages. One of the disadvantages of file sharing is the possibility of losing all of saved data. For instance, one of my professors once used Dropbox to share her files with all of her students. One of her students deleted all of her files from that folder and the whole class was left without access to the essential files for the class.

File sharing tools

There are many different file sharing tools available for us to use. Two of my favorite files sharing tools are Google drive, and Dropbox. Google drive lets us edit, view, and share one file with many different users. Drive also provides chatting option while editing documents, presentation, and spreadsheet. Another unique feature of drive is the option of locking the files or make files readable only. My second favorite files sharing tools is Dropbox. Dropbox is easy to use and lets us share a folder with other members. Their drag and drop functionality is my favorite feature of Dropbox.










References:


http://www.techopedia.com/definition/16256/file-sharing


http://webtrends.about.com/od/glossary/g/drag-and-drop.htm

http://gsmtweet.com/wp-content/uploads/2012/06/Secure-File-Sharing-Options.jpg

Friday, November 1, 2013

Data Structures

Can you imagine what would happen to our bedroom if we do not have closest or storage? Our cloths would be all over our bedroom. Speaking from an experience, finding important things in an unorganized room will be a great challenge, and one would be spending their valuable time on something useless. Similar logic applies to programming. Data structures in programming work as a closet or storage to store and retrieve data efficiently.

Why should you care about Data Structures?

Now, you might be wondering “why should you care about data structures?” Answer to this question might be different depending on your interests. If you are not planning to learn programming, then you may never have to learn various data structures. However, if you want to be an excellent programmer or pursue a career in Computer Science (because you are awesome!), then you must have to learn different data structures.
Examples of different data structures
Importance of Data Structures
Data structures’ most important features are efficiently storing, searching, retrieving and traversing the data. Attributes of data structures make them very useful and an essential tool in programming. According to one my Computer Science professor, “data structures serves as a heart of every application.” For instance, if you are building GUI applications and following MVC patterns, then you need to figure out which data structure will you use for your model. In addition, almost all algorithms rely on the correct choice of data structures to get the best running time. For instance, if you run some specific algorithm and change the underlying data structure of the algorithm, then you may find that algorithms running time drastically increases. Lastly, use of data structures in programming make codes very readable. 

Two kinds of Data Structures
How to learn Data Structures?

Since data structures are very essential tools for programming, most of the well-known companies tend to ask interview questions based on data structures. Often interviewee tends to stumble upon those questions, and loses their dream jobs. So, what is the best practice to learn data structures? According to Robert Love, Software Engineer and interviewer at Google, one should visualize the data structures. He recommends “Intuitively understand what the data structure looks like, what it feels like to use it, and how it is structured both in the abstract and physically in your computer’s memory.” Another important thing to focus on while studying data structures is to understand when to use that particular data structure. The reason behind that is every data structures is designed to achieve certain things efficiently, but that same data structure would be very inefficient at achieving other tasks. For instance, arrays, the most basic data structure, are good for retrieving data at given location (it takes O(1)), but arrays running time drastically increases for removing data from the middle of the array.

I hope you enjoyed my post about data structures and learned something new from this post. I am looking forward to hear your suggestions in comments.

References:




http://s.radar.oreilly.com/wp-files/5/2013/03/redis-data-structures.png