Sunday, November 24, 2013

Artificial Intelligence


The study of artificial intelligence, or AI, is a branch of computer science that deals with the simulation of intelligent behavior in computers. Some task require a robot, others just a program. Current AI attempts are focused on the tasks that are easy for people, yet difficult for a computer, such as vision, understanding and speaking natural language and manipulating objects. Some useful AI system that we can all recognize include Google Translate, recommendation systems on Amazon or YouTube, and ATM machines. Strong AI has even higher ambitions, attempting to build systems which are equal to people in ALL respects, presumably consciousness. The human brain is so very complex, though. It builds itself from experiencing the world and learning. This is something that has not yet been captured  by engineering.

The progress that has been made in AI, since the beginning of the 21st century is amazing. Self-driving cars, weather predicting software, investment software, smart security systems, and robotic assistants are all cutting edge technology. I am excited to see what the future holds for artificial intelligence. One particular article focusing on “creative machines”, caught my attention.  I had always thought of robots as data analyzers, making predictions and performing accordingly. Then I read about these programs that can compose original music and create original paintings. There is even talk about robots writing original novels, and how it would effect the copyright laws. The thought of a robot relieving us from the need to be creative, feels quite strange and intriguing. The advancement is quite impressive but it seems to focus only on the product. Creativity is not only appreciated by the audience. It begins with the artist creating something from emotion. The creative process can even be a type of therapy for the creator. But a computer can’t feel. It it simply mimicking creativity.

Sunday, November 10, 2013

File Sharing

File sharing is providing access to information that is digitally stored. Sharing the files can be achieved in many ways including manual sharing using removable media, centralized servers, hyperlinked documents and peer-to-peer networking. For this blog I would like to focus on peer to peer, or P2P sharing.

This type of sharing allows users to access media such as books, music, movies and more using software that searches for other computers allowing the shared access. An early P2P network that you may remember was Napster. Many more softwares popped up following  Napster’s popularity, including Bearshare and Winamp, to the current favorite BitTorrent.
An increase in bandwidth and the capabilities of residential computers are just a couple reasons why P2P networks had such a widespread adoption. The fact that this type of sharing is not illegal, also boosted it’s popularity. For the most part, this type of sharing is completely legitimate. Legal issues only arise when the file sharing contains copyrighted material. Referring to the music and film industry, copyright infringement has been a controversial and undetermined argument. Most studies concluding that file sharing has a negative effect on record sales are unofficial.

Sunday, November 3, 2013

Data Structures

Data structures refer to a way of organizing related pieces of information and storing them in files so that they may be retrieved and used efficiently. They also provide manageability for large amounts of data, such as databases or internet indexing services.  There are many different kinds of data structures and they each suit specific needs. 
An array is a type of data structure that stores many elements in a specific order, each identified by at least one array index or key. They are stored in a way such that the position of each element can be computed from its index tuple by a mathematical formula.Arrays can be expandable or may be a set length. They are among the oldest and most important data structures, being used in almost every program. They are even used to implement other data structures such as lists or strings.
A record is another type of data structure. They form a necessary base  Also, called structs or tuples, a record is a value that contains other values. They are typically indexed by names and are usually fixed numbered and sequenced, distinguishing them from arrays. Records can exists in any storage medium. Many files are usually grouped as arrays and then grouped into larger records.
A set is yet another type of data structure which is abstract. Abstract in this context, means an aggregate, or a collection of data. It can store specific values, without order and with no repeated values. Some sets are static while others are dynamic. Static, or frozen, sets do not change after the construction. Dynamic, or mutable, sets allow for insertion or deletion of elements in the set after construction.