Artificial intelligence is a challenging science. People who engage in this work must have knowledge of computer, psychology, and philosophy. Artificial intelligence is a very broad science. It consists of the composition of different areas, such as machine learning , computer vision and so. All in all, a major goal of artificial intelligence research is to make the machines capable of some complex works that typically requires human's intelligence to complete. But the understanding of "complex works" will be different on different times and different people. For example, the heavy scientific and engineering computing is originally saddled with human's brains. But now the computer can not only complete this computing, but also can do it faster and more accurate than human's brains. Therefore, this kind of computing is no longer complex works that needs human's intelligence to complete in nowadays. It shows the definition of complex works will change with the development of times and the progress of technology. Artificial intelligence, the specific objectives of this science naturally develop with the times. On one hand, it continues to receive new progress; on the other hand, it turns to a more meaningful and more difficult goal.
This blog is created for my CS 100W requirement and I'm going to organize my professional perspectives about technology.
Monday, November 25, 2013
Artificial Intelligence: Overview
"Artilect," is the shortened form of 'artificial intellect,' comes from one of Hugo de Garis' writings. The term, 'Artificial intelligence,' was originally proposed on Dartmouth Conference in 1956. Since then, researchers have developed many theories and principles. The concept of artificial intelligence was extended as well.
Sunday, November 17, 2013
History of Computer Science: Overview #2
In 1950s, although many people do not believe that computer is able to become a field of scientific research at the beginning, it has been recognized gradually by academia within 50 years. IBM was one of the participants in computer science revolution during that time. Over that exploration period, IBM released the IBM 704 and later the IBM 709 computers, which are widely used. But then the computer was still relatively preliminary. They are not very easy to use. Until 1960s, computer science made considerable achievements. As time goes on, the technology of computer science improved significantly in both usability and effectiveness. Computer can be used by majority of users rather than professionals only. Initially, the price of computers was very expensive, and then, it becomes inexpensive and easy to use that almost no need any professional assistances.
While the time of being identified as a formal academic discipline is very short, computers still make a lot of science and society fundamental contributions, including:
1. The beginning of Digital revolution: the information age and the Internet.
2. The development of the concepts of programming language: one kind of tools to present information precisely at different levels of abstraction.
3. Scientific computing achieves the value of complex processing. Completely using softwares to conduct experiments also achieves the depth study of the human's minds. It makes mapping human genes to become possible as well as distributed computing project of exploring protein folding.
References:
http://en.wikipedia.org/wiki/IBM_704
http://en.wikipedia.org/wiki/IBM_709
http://en.wikipedia.org/wiki/List_of_distributed_computing_projects
While the time of being identified as a formal academic discipline is very short, computers still make a lot of science and society fundamental contributions, including:
1. The beginning of Digital revolution: the information age and the Internet.
2. The development of the concepts of programming language: one kind of tools to present information precisely at different levels of abstraction.
3. Scientific computing achieves the value of complex processing. Completely using softwares to conduct experiments also achieves the depth study of the human's minds. It makes mapping human genes to become possible as well as distributed computing project of exploring protein folding.
References:
http://en.wikipedia.org/wiki/IBM_704
http://en.wikipedia.org/wiki/IBM_709
http://en.wikipedia.org/wiki/List_of_distributed_computing_projects
History of Computer Science: Overview #1
Calculators, calculating fixed numerical, such as abacus, had existed since ancient Greece. In 1623, Wilhelm Schickard designed the first mechanical calculator in the world, but he did not complete. Then in 1642, Blaise Pascal designed and built the first mechanical calculator that can work, called Pascaline. Ada Lovelace assisted Charles Babbage to design Difference Engine in the Victorian era. About 1900, punched cards machines came out. But these machines are limited to only one complete single task. In 1940s, with the invention of the newer and more powerful computers, the term, computer, is used to indicate the temporal machines. The concept of computer was more clear. It was even used for mathematical calculations. The field of computer science also extended to the study of computers. From 1950s to the early 1960s, computer science became an independent discipline. In 1962, Purdue University established the first degree in computer science in the world. With the development of computer applications, many computing applications slowly became into the different areas of research in their own ways.
References: http://en.wikipedia.org/wiki/Digital_revolution
http://en.wikipedia.org/wiki/Information_Age
http://en.wikipedia.org/wiki/Internet
Sunday, November 10, 2013
File Sharing: Copyright Problem
Internet has brought us a lot of convenience. We can easily share files with other people by using file sharing. File sharing is forwardly share our computer files on the network. Generally, we will use p2p (peer-to-peer) file sharing mode. The file itself exists on the user's own PC. Most of the people who participate in file sharing as well as download sharing files from other users. Sometimes these two actions are linked.
I want to talk a little bit about music file sharing.
After the popularity of high-speed Internet terminals, anonymous file sharing system became popular such as Napster. In an addition, small volume but very high quality sound file formats such as MP3 provide some helps for the success of file sharing. While file sharing itself is a legitimate technology, but some people use it to download copyrighted files. This has led to counterattack for file sharing from some copyright owners. There is a great controversy of legal consequences of file sharing. Especially if people share files are from different countries that have different laws, then this problem will become very complicated. The early 2000s, file sharing community was constantly impacted. Record Industry Association and some record companies attempted to shut down more and more file sharing. But their efforts were not very successful because new systems kept appearing and replaced the closed systems. What's more, many of these new systems didn't have central server so that they couldn't close them all by using law. Some other systems escaped to some countries that the laws were unable to attack them.
References:
http://en.wikipedia.org/wiki/Napster
http://en.wikipedia.org/wiki/Peer-to-peer
I want to talk a little bit about music file sharing.
After the popularity of high-speed Internet terminals, anonymous file sharing system became popular such as Napster. In an addition, small volume but very high quality sound file formats such as MP3 provide some helps for the success of file sharing. While file sharing itself is a legitimate technology, but some people use it to download copyrighted files. This has led to counterattack for file sharing from some copyright owners. There is a great controversy of legal consequences of file sharing. Especially if people share files are from different countries that have different laws, then this problem will become very complicated. The early 2000s, file sharing community was constantly impacted. Record Industry Association and some record companies attempted to shut down more and more file sharing. But their efforts were not very successful because new systems kept appearing and replaced the closed systems. What's more, many of these new systems didn't have central server so that they couldn't close them all by using law. Some other systems escaped to some countries that the laws were unable to attack them.
References:
http://en.wikipedia.org/wiki/Napster
http://en.wikipedia.org/wiki/Peer-to-peer
Sunday, November 3, 2013
Data Structure
Data structure is a particular way to store and organize data. (Data Structure) It refers to a collection of data elements and there exists one or more specific relationship between each other. Typically, well-chosen data structure can lead to higher operation or efficient storage. Data structure usually relates to efficient retrieval algorithms and index technology.
In many types of program design, the choice of data structure is a fundamental design consideration. The configuration experience of many large system shows that the difficulty to achieve and the quality of system configuration heavily depend on whether select an optimum data structure. In many cases, the algorithm is easy to get after the data structure is determined. Sometimes things will turn. We’d better to choose a data structure according to a specific algorithm and adapt to it. In either case, it’s very important to select a appropriate data structure.
There are some common data structures:
1. Tree
2. Stack
3. Array
4. Queue
5. Graph
And there are some common sorting algorithms:
1. Quick Sort
2. Bubble Sort
3. Merge Sort
4. Insertion Sort
5. Radix Sort
6. Selection Sort
After selected data structure, the algorithm is determined as well. The key factor of system construction is data, not algorithms. This insight leads to the emergence of many kinds of software design methods and programming design languages. Object-oriented programming language is one of them. Object-oriented programming is “a type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another.” (Object-oriented programming)
References:
“Data Structure.” http://en.wikipedia.org/wiki/Data_structure
“Object-oriented programming.” http://www.webopedia.com/TERM/O/object_oriented_programming_OOP.html
In many types of program design, the choice of data structure is a fundamental design consideration. The configuration experience of many large system shows that the difficulty to achieve and the quality of system configuration heavily depend on whether select an optimum data structure. In many cases, the algorithm is easy to get after the data structure is determined. Sometimes things will turn. We’d better to choose a data structure according to a specific algorithm and adapt to it. In either case, it’s very important to select a appropriate data structure.
There are some common data structures:
1. Tree
2. Stack
3. Array
4. Queue
5. Graph
And there are some common sorting algorithms:
1. Quick Sort
2. Bubble Sort
3. Merge Sort
4. Insertion Sort
5. Radix Sort
6. Selection Sort
After selected data structure, the algorithm is determined as well. The key factor of system construction is data, not algorithms. This insight leads to the emergence of many kinds of software design methods and programming design languages. Object-oriented programming language is one of them. Object-oriented programming is “a type of programming in which programmers define not only the data type of a data structure, but also the types of operations (functions) that can be applied to the data structure. In this way, the data structure becomes an object that includes both data and functions. In addition, programmers can create relationships between one object and another.” (Object-oriented programming)
References:
“Data Structure.” http://en.wikipedia.org/wiki/Data_structure
“Object-oriented programming.” http://www.webopedia.com/TERM/O/object_oriented_programming_OOP.html
Subscribe to:
Posts (Atom)