Of the many fascinating areas of computer science non are more mysterious than that of Artificial Intelligence. Coined A.I, artificial intelligence is the ability for a computer to make decisions based on previous data, in other words learn. Since research has started there have been many useful applications which A.I has been used for. One of the main applications A.I is used in now is for video games.
Artificial Intelligence has been a major revolution for video games. In the begginning video games were either played with two people separately controlling a character (or object) and any computer opponent would be hardcoded in. Due to advancements in computer and the study in artificial intelligence now games are able to learn as they go. Games use A.I to dynamically control or even create characters that can even have personalities which they gain from interaction with a human character. AI. gives computeres the ability to competively compete with human players creating a challenge and better experience for the players.
Implementation of computer A.I is a fascinating topic. Often A.I is simulated using graphs and recursion calls to them. Decision trees are created which the computer quickly traverses and finds the best situation for the given situation. Since these trees contain knowledge from before and are searched and acted on so quickly it creates the illusion that the computer is thinking for itself and thus learning as it goes.
Artificial Intelligence has many uses in today's society. Non are as fun as video games though !
Sunday, November 24, 2013
Sunday, November 17, 2013
History of Computer Science Every Changing Computers
Computer Science, the theory and methods of processing
information in digital computers, has been a growing field since its
development in the last century. Since
the introduction of the first computers, there have been exponential
advancements in the power, speed and availability computers. These advancements have come from two main
areas. The first area is the improvement
of hardware, the other advancements in software. The evolution of hardware is greatly due to
Electrical and Computer engineers, while the advancements in software are largely
due to computer scientists. While the advancements
in hardware allowed more people to purchase computers, it was the advancements
in software that redefined the computer experience.
Computers started out as tools only available in
universities for researchers who needed to make large calculations. Today computers are considered a necessity
for every home. This idea that everyone
needs a computer is very recent in the grand scale seeing as most computer where
made available to houses in the last 25 years.
The familiarization with computers is due to computer scientists
constantly making computing easier to understand normal users. Once upon a time, users had to manually
communicate with the computer via a terminal and run commands. Now almost every
application has a graphical user interface which has nice shiny buttons which
anyone can understand.
My first introduction to computer science was my earliest encounters
with a computer. I used a computer
mainly for word processing and the occasional video game. How a computer worked, I had no idea. I was fascinated by computers considering
them black magic because I could not comprehend how the first computer was
made. Many years later, after spending
years studying the subject it makes sense to me but I am no less amazed. The history of how a computer started as a
theoretical concept of Boolean algebra to the development of high level
languages such as Prolog which can deductively reason for themselves show the
dramatic amount computer science has progressed.
Today advancements in computer science continue to pave the road
for the future of programming. The advancements
in the internet have changed the way people use a computer once again. Now everything is done on the cloud. Advancements in computer science areas such
as Database have allowed websites such as Facebook to be created thus changing
the way people communicate. There has
been a paradigm shift away from local computing and towards that of the
internet. Computers now are mainly used
as an instrument to connect people via the website to communicate and look up
data.
The history of computer science continues to be
written. My goal in life is to look back
and say that I have contributed.
Sunday, November 10, 2013
File Sharing: The death of the Floppy Disk.
Files, a collection of related data or program records, are the foundation of modern day computer programs. Without files saving previously calculated
information, computers would have to generate and process information from
scratch every time they are ran. In the
past files were commonly stored and shared on floppy disks, requiring a
physical handoff of a disk from one person to another to share data. As technology began to develop floppy disks
started to be displaced by CD-rooms which could hold more data and finally USB thumb
drives are now the standard for physical file transformation. While sharing files over a physical source
such as a USB or CD continued to grow they like the Floppy started to become cumbersome
in comparison to new online file sharing.
Today file sharing is mainly
done via the cloud. Sources like Dropbox
and Google Drive make sharing files between two parties extremely simple and
user friendly. Anyone with an internet
connection can transfer large amounts of data via these cloud sources. Other sources such as torrents which send
files via multiple hosts make it easy to transfer huge files. Even emails are able to send up to 25 megabytes
of data in attachments. That is equivalent
to about 250 one hundred kb floppy disks.
Image how long it would take to send 250 floppy disks and then manually
upload them to a computer compared to the minutes it takes to send an email and
download the attachments.
With the new technology sharing
data has become a field that more and more computer companies are pursuing. Big data and file sharing is useful for
thousands of applications and used by people throughout the whole world. Being able to quickly send files as well as
being able to send a large quantity of files has become a huge focus for companies. What started out as floppy disks holding under
100 kilobytes of data has turned into hard drives holding terabytes of files
for today’s file centric world of computing.
Sunday, November 3, 2013
Data Structures: Abstracting Data
One of the most important concepts in the field of computer
science is that of abstraction. Data Structures
are a great tool in abstracting data. Data
structures are fundamental for many for high level programming languages giving
tremendous power to programmers with easy use.
By abstracting data types such as Integers and Strings into a structure,
programmers are able to easily manipulate and access data. Often overlooked, Data Structures are one of
the hardest concepts to grasp at first, but can be one of the most
rewarding. Choosing the proper data
structure can make solving certain problems trivial while choosing the wrong
data type will make them cumbersome if not impossible. Mastering the art of choosing a data
structure as well as being able to build one’s own, is a highly important skill,
one which has greatly helped me in my later programming classes.
To me, the coolest thing about Data Structures is how much
they can improve performance. Not only
do Data Structures organize data in an easy way, they also optimize the way one
accesses (adding and retrieving data) from them. Using the proper data structure can tremendously
improve a programs performance. A good
example of performances based on choosing the right Data Structure is insertion
into the front of a Data Structure. The
class vector is a very useful C++ data structure which acts as a dynamic
array. Inserting into the front of a
vector though is a very time consuming task because it requires all the contents
to be shifted. I instead one were to use
a linked list, they could insert into the head of the linked list in constant
time and not worry about shifting the rest of the list.
The most common Data Structures are ArrayLists , Stacks and
Queues. They are very useful in
programming and all have a specific function that can be used for certain
problems. Of the more advanced Data
Structures there are the trees. Binary
Trees, B+ Trees and Heaps are all very advanced Data Structures. These Data Structures are specifically made
to being able to sort and access large data in a quick and easy fashion. Most high level languages like C++ and Python
have many classes and types built on these Tree types. They allow the user a very complex set of tools,
but present it in an easy way, which is the idea behind abstracting the data.
Subscribe to:
Posts (Atom)

