Sunday, November 24, 2013

Artificial Intelligence: Way of the Future

Artificial intelligence (AI) is the intelligence of machines and a branch of Computer Science, which aims to create it. I find artificial intelligence very interesting not just because am a Computer Science major but also because of the possible futures that can come about with the development of AI. Looking at robots, they are extremely stupid. When programming a robot to perform a certain task, the programmer has to be extremely detailed in the instructions so that there will be no margin of error that the robot could misunderstand. It is because of this “stupidity” that artificial intelligence is very interesting. By developing artificial intelligence, robots will not only be able to perform tasks correctly but they will be able to also learn. Learn to deal with new situations but more importantly how to deal with them correctly.

Robots in the past have been used to perform repetitive and menial tasks (such as in factories). Thanks to the development in artificial intelligence, robots are coming out of the factories and joining the rest of the world. Robots are becoming smaller (compared to their old factory relatives) and even more human-like. Performing human tasks and humans perform them. It is truly an exciting time for the advancement in AI.
silhouette of a brain that looks like a circuit board

Saturday, November 16, 2013

History of Computer Science: Video Games

In 1972, Pong, the first arcade game was launched and with its great success begun the age of commercial video games. Looking back at Pong, video games have made quantum leaps forward along with technology. With the advancements of technology and gaming technology, video games have significantly decreased in size (from human size to pocket size) and yet increased drastically in content. Video games have gone from a 2D world, bouncing of a pixel, to a 3D world that allows you to interact with people from around the globe.
With each generation, videos games are becoming even more realistic than the previous generation. Havok develops tools, which are used in the video games industry. Physics is a product from Havok that helps video games be more realistic. For example, should a car crash into a wall of boxes (in the game), Physics would calculate how the boxes should fly/fall depending on the calculated impact from the car.

I wait for the day that we move from feeling that we are inside the game through advanced 3D graphics to being inside game itself (virtual reality).


If you are interested in video games, especially mobile games, then you should check Project Anarchy.
Logo for Project Anarchy by Havok

Sunday, November 10, 2013

File Sharing: Improving the World through Sharing

File sharing refers to a method of collecting and distributing data using servers and network(s). Users collect/store digital information such as multi media files (music, videos, images), documents (PDFs, eBooks) and computer programs on servers. All of these files become available for download to all the users through the Internet. In today’s world where there is so much information online that is always changing, file sharing is a great way to distribute large amounts of data to a lot of people quickly. Whether it is new or updated information, file sharing helps users keep up-to-date.
A file sharing service I personally use is Dropbox. I mainly use it when doing group work because the group members and I can share a single folder where we can keep all of the files we need. This way all the work we have done can be access by anyone in the group at any time and if someone improves one of the files then they can upload it back to Dropbox so that the rest of the group can access the updated version.

Unfortunately, file sharing gets a bad reputation because people use it to distribute copyrighted material (such as movies and music) illegally, thus hurting the industry.  
Moses speaks the 11th commandment: Do not download music

Sunday, November 3, 2013

Data Structures


Data structures are methods of storing and organizing data in Computer Science. Data Structures is among the most important subjects of Computer Science because of their use when it comes to large amounts data. Depending on the type of data structure used for storage, retrieving a specific fragment of data could be very simple and take little time or very hard and take a long time or perhaps even impossible. The main categories of data structures are Lists (Lists and Arraylists), Trees (Binary Trees), Hashes (Hash table) and Stacks. Each data structure has its own way of organizing data as its inputted in order to store it. Visualizing how each data structure works is essential when deciding what type of data structure to use when a specific type of data is being collected.
The ideas behind some data structures are used for more than just simple store, they can be used to make it hard for unauthorized people to access the data, encrypting. Using a hash table is a simple way to encrypt data; simple yet effective if done correctly. Without knowing the proper hash function and key values, a person trying to unencrypt the data would have to use brute force to try to figure out the hash function and keys, which can take a very long time.

Simple picture of a hash table connecting names(keys) to phone numbers

Here you can find a more in-depth look at the types of data structures.