It is impossible yet ..
I had tried with my friends to build an algorithm once but we were always getting a dead end ..
If you are making something or some software doing a specific thing , it is possible .. but it is getting harder as things to do are more .
If we are taking the human as the ultimate machine remember that humans do a lot of mistakes because of trying , and they learn ..
Trying and learning are connected .. but learn is more important
Learning is the key to make a device or a program smart .. and learning any thing is the key to human intelligence .
Making a program that can think means to work on :
1- The inputs : (Cameras - Microphones - sensors ... etc)
2- The processing (the understanding)
3- The output : (registering data and send signals)
Step 2 is the hardest .. It means to analyze the inputs and getting information or building information about it .. then searching the database for similler informations .. then connecting them and building new information .. re-search and re-analyze and re-build and so and so till the memory is full or the time is out (Tired of thinking) .. there is no end .! There must be no end ..
The main idea we were working on is to translate the human brain way/ways of thinking to a program .. and that is really really hard ..
It's all just 1s and 0s .. even a human brain