I am reminded of a question posed in The Imitation Game, which is the story of Alan Turing and his colleagues at Blechley Park during WW II. They cracked the Enigma code. But in a side conversation, someone asked Alan about an article he had written (from which the movie's title was derived). In this scene, he posed the question: Just because something thinks differently than you, does that mean it doesn't think? (Paraphrased!)
We know that gorillas can think in at least rudimentary ways. Koko the gorilla knew about 60 words of sign language, could grieve at the passing of one of his playmates, and could recognize himself in a mirror. Dolphins can pass the mirror test and have been trained for underwater search missions. Please note that I am limiting my comments on dolphins to what has been declassified and published. Intentionally changing the subject, dogs can obey commands given verbally or with gestures. They can be trained to sniff out drugs, bomb chemicals, or skin cancer. (No, not kidding - the first known cancer-sniffer was a beagle.) Obviously, none of the above are human. But the question has to be, does that disqualify them from actually being recognized as thinking?
Now take that to another level. The "Watson" AI project from IBM has been studying oncology for a while and is now equally capable as the most competent diagnosticians when it comes to identifying the presence of at least several dozen cancers. The difference between the human brain and most computer brains is that human brains are associative. (See also the "Memory Castles" discussion in another thread in this forum.) The idea of associating a memory with another memory or image is an attempt to take advantage of associative memory. Computer brains have to apply algorithms based on a more linearized mode of operation but they can still reach the same conclusions by using tricks such as indexing and parallel processing, with what are called "Fork/Join" methods. I.e. come to a fork in a decision tree, so you assign one CPU to one fork and another CPU to the other fork. Later, when both CPUs are finished, they JOIN each other and one CPU goes on while the other CPU gets reassigned.