Translate

Saturday, December 14, 2013

Computer graphics: Image processing

One image is worth more than ten thousands words.

Image processing mainly focus on digital image processing.

With the improvement of people's life, digital image processing is walking into common people's world. Photoshop is a famous tool to process pictures. In this article, I will talk about what digital image processing is, history of digital image processing, and key stages in digital image processing.

1. What is image processing? Image processing technology mainly includes image digitization, image encoding, image enhancement, image restoration, image segmentation, and image analysis. It focus on two tasks: (1)improvement of pictorial information for human interpretation. (2) processing of image data for storage, transmission and representation for autonomous machine perception.



2.  History of digital image processing. One of the first application of digital imaging was in the news paper industry at early 1920s. Many of the techniques of digital image processing as it often was called, were developed in the 1960s. The cost of processing at that time was fairly high. With the development of computing equipment, that situation was changed in the 1970s.  Digital image processing has become the most common form of image processing in the 2000s.

3. The process of digital image processing includes image acquisition, image enhancement, image restoration, morphological processing, segmentation, object recognition, representation and description.

In the three paragraphs above,  I simply show you  definition, history, and key stages of digital imaging. If you want to know more about it, you can search: image processing by Google. You will find tons of materials. Today, imaging processing is a really hot topic.

reference:wiki




Scientific Computing: Numerical analysis


Pythagoras was a great Greek philosopher.  His motto was “All is number,” which means that all things in the universe obey the rules of numbers. This shows how important numbers are in our life.
So analyzing the numbers are becoming necessary. Numerical analysis mainly focus on this.

Numerical analysis is the subject which uses computers to solve mathematical problems. It is one branch of Mathematics.

In fact, Numerical Analysis is a required course in some departments like Mathematics, Physics, and Chemistry.  By smart Google, you can get tons of materials about Numerical analysis. In this post, I will mainly show you what I learned about it in university.

Firstly,   the mainly research contents of Numerical analysis are Curvefitting, Interpolation, Approximation of Function,  Solving equations and systems of equations, Solving Differential equations,  and Solving singular value problems. I still remember my first class. When the instructor showed us its' strong ability by PPT(PowerPoint), I was shocked. I thought I finally got the magic wand to solve annoying differential equations.



Second, from the paragraph above, we can find Numerical analysis is like a generalist who can solve many complicated problems. However, maybe you will be disappointed when you know that it only gives people the approximate solution. In fact, I had the same feeling like you when I got it from my instructor. But with more and more knowledge, I find approximation is reality and exactness is dream in actual application. Approximated solution is enough for our actual problems.



Finally,  in general, computers solve actual problems by 5 steps: presenting actual problems, creating mathematical model, numerical analysis, designing program, and implementing program. Every step is not easy. Especially, the step of analyzing the numerical is harder. Scientists need try their best to use all kinds of tools to give better approach of the "exact" solution.

reference:wiki






Scientific Computing: Computational science

Are you familiar with Computational science? I didn't really know about it one week ago. So far, I have to admit that I am still a layman. In this post, I will show you what I learned about it recently from definition, application, and process.

Firstly, what is Computational science? Computational science(also scientific computing, scientific computation) is a rapidly growing multi- and interdisciplinary field that uses advanced computing and data analysis to understand and solve complex problems. It uses mathematics and computers to explore "real world" problems in science.




Second, where do we apply Computational science? Problem domains for computational science/scientific computing include: Numerical simulations, Model fitting and data analysis, and Computational  optimization. 
Computational Science complements, but does not completely replace, field experimentation in scientific  research.
It is ideally suited to exploration of problems which are too expensive, too dangerous, too difficult to control...for experimentation in the field. For example, we can use it to reconstruct  and understand known events such as earthquake, tsunamis, and other natural disasters.

Finally, Computational Science Process.  When we use Computational science to solve problems, we firstly construct working model. And then we need to build mathematical behavioral model with the help of working model. The next step is to create computational model. Finally, we can get results/conclusion according to the analysis from computational model. The image below shows the whole process.



In sum, Computational science is an important tool in modern scientific research. Especially, we can use it to imitate special scenarios like earthquake and sub-atomic particle behavior. The cost will be huge to reconstruct these scenes without it.

Computational science is an useful and interesting field. Let's learn and discuss it together.

reference: Journal of Computational Science, Wiki

Sunday, December 1, 2013

Communication and Security: Hardware Security

When we talk about communication, the security has been a topic for a long while and it will keep being a top for ever.  The security issue can be classified to software security and hardware security. For example, the computer virus is normally a bad software which can harm the computer and the communication. Here let's talk about the hardware issue.


Computer hardware include CPU (central processing unit), main memory chip, main board, hard drive disk (HDD), monitor, keyboard and others. CPU is one of the most active components which conducts many kinds of operations, and it itself may pose many threats on security. Since CPU is usually manufactured by a few companies, and operates their only instruction set in a way that is not so public. They have enough reasons to keep it operating in this kind of secret way, for example, that is simply the business secrete.

  However, from another viewpoint, since it's operating secretly, there are few people that really know how it operates, and maybe even fewer people know what its normal working status is, and whether it's operating in a normal way or operating in a harmful way. Maybe the CPU is almost always, say, 99% of time, normally, but its operating in another 1% of time may do any kind of harm, including releasing sensitive information that is usually not permitted, implanting virus codes / instructions, cleaning important data, and so on so forth.

Theoretically until we know all the secrete behind the CPU, we can imagine that whatever kinds of security threats can be introduced by the CPU itself, not to mention that there are so many other chip sets inside our computers.

Sunday, November 24, 2013

Artificial Intelligence: Natural Language Processing(NLP)

Artificial Intelligence: Natural Language Processing(NLP)

Do you know NLP(Natural Language Processing)? Do you hear AI(Artificial Intelligence)? Today, AI is a really hot topic on scientific and technical stage. NLP is one of the classical AI problems.

Let us look at the picture below: the toaster is telling Srini that Srini's toasts are ready. One people is asking his computer to send new year postcards to all his friends in the address and translate to German for his German friends. Yes, human is communicating with machine and the machine can understand human's language. The contents of the picture is the result of NLP(Natural Language Processing).

      Don't you mind I tell you some of my dreams? They are following:
·       I dream I can talk to my TV set: show me The Lion King?
·       I dream I can communicate with my Ipad.  When I tell it that I am sad, it can analyze the questions and enlighten me like my soul friends.  When I am happy, it can enjoy the feeling with me.
·       I dream my computer can read the newspaper and tell me the important news only.
·       Ahhh, I hope my PC can do English homework for me, isn't it your dream?
......
Don't you have the same dreams as me? These dreams are so amazing. These smart computers can change people's life. They can lead human to a new technical world.
All them need NLP.

What is NLP?  we firstly need  to know what Natural Language is. Natural Language refers to the language spoken by people such as English, Chinese, Japanese, as opposed to artificial languages, like C++, Java, etc. NLP(Natural Language Processing) is the subject that processes information contained in natural text. It is also known as Computational Linguistics(CL), Human Language Technology(HLT),  or Natural Language Engineering(NLE).

How do we measure intelligence of a machine? The most famous way is Turing test-Alan Turling(1950) which says that a machine can be accepted to be intelligent if it can fool a  judge that its human over a tele-typing exercise.

Two well-known intelligent systems are ELIZA and SHRDLU.   ELIZA (1966 by Weizenbaum)  pretends to be a psychiatrist and converses with a patient on his problem. It uses keyword pattern matching technology to "understand" and "solve" the patient's problem. Many patients though the system really understood their problems. The image below is showing the chatting process。


SHRDLU(1968-70 by Terry Winograd MIT AI Lab) works on a "Blocks World" as a simulated environment in which blocks like colored cubes, cylinders, pyramids can be moved around, placed over each other. It can understand a bit of  anaphora.  These intelligent system like ELIZA and SHRDLU need strong and excellent databases.

NLP is a popular technology. More and more universities are working on it. But,  it is still like a baby who just begins his life.  With the development of kinds of technology, I believe NLP will grow up quickly.

In sum, NLP is one technology which makes machine understand people's language and communicate with people like a human. In other words, NLP will help a machine be a "human". 

The road is far. The hope is there. Let us work hard!


Reference: Wiki

Saturday, November 16, 2013

History of Computer Science: the history of programming language


Programming languages are part of the fundamental body of Computer Science.  Programming Paradigm is one of the my favorite courses. In this post, I use my language to show you the history of programming languages which I learned in this course.

 
The right picture comes from my teacher's class. From the picture, we can easily figure out the time when one language appeared. And, the picture also tells us the relationship among the languages. For example, Java was invented around 1995. It has two ancients: one is Simula, and the other one is C.
Programming languages have different culture. The most common three are OOP(Objected-Oriented programming), Functional programming and Logical programming. For instance, Java is OOP, Scheme is Functional Programming language, and Prolog belongs to Logical Programming. Each language is based on a model of computation. Functional programming is suitable mathematical proof systems. Prolog programming is good at solving problems that involve objects and the relationships between objects. Yet OOP can substitute the two languages above.  Because OOP is just like objects in real world, it is the most popular language.

With the development of multi-core computers, the existing programming languages are facing new challenges. More and more researchers and scientists are working on inventing new languages which can work better on multi-core computers.

 In a word, the history of programming languages is not long. Various language cultures come from different problem models. The new development of new technology usually foretell the appearance of new language.

By the way, do you know who invented the first programming language? It is Ada Lovelace(woman)!

Reference: CS152 SJSU.







History of Computer Science: history of computing hardware


In the beginning, computing hardware was only machines that need people manually perform the arithmetic operations.  The history of human computing can be traced back to thousands of years old. Our ancients used fingers to begin their calculations. The counting device changed many appearances from tally sticks, Fertile Cresent,  livestock or grains,  abacus, to analog computers like famous Thomas Arithmometer. It spent thousands years from the fingers to punched card machines. 

Computer Science, the special and popular discipline, emerged in 20th century. As one of its' most important object of study, computing hardware has already undergone great changes. In this post, I will simply show you how it changed.


Punched card machines stepped on the calculating stage in 1801. At this year, a loom that Joseph-Marie Jacquard invented used punched cards to control the pattern being woven. From Charles Babbage's Analytical Engine to  Percy Ludgate's programmable mechanical computer, every new change means great development in calculating history.  In 1901, Percy Ludgate's invention ended the history of punched card machines. 
Today, stored-programming computers are known by almost every modern people in the world. A stored-programming computer is one which stores program instructions in electronic memory.(wiki). Simply, all the computers that you see are stored-programming computers. This kind of machines have extremely good features compared with punched card machines. For example, every instructions are stored in machine. People don't need tons of cards to control  operations. 

In sum, the history of computer hardware is long. However, with the development of modern technology, the speed of hardware's update is becoming faster and faster. The content of Computer Science is also richer and richer.

Reference: http://en.wikipedia.org/wiki/History_of_computing_hardware
Read more: http://geeksgrave.blogspot.com/2013/05/auto-alt-tags-for-blogger.html#ixzz2eAd5m09j