For a program to be able to react similarly to a human brain, it needs several things. For every sense, or input that the program might have, it would have to be able to analyze the raw data, and choose a method to extract it. Note that there must also be a way for new and existing extraction methods to be saved and modified accordingly. Once the raw data has been extracted, there must be a way to save this data to a short term access region, and retrieve it on demand. The extracted data must also be analyzed using different techniques, to determine the creation of new data based on past saved data. Only this data should be saved to a long term location. Also, analyzation techniques can be modified and saved, and new ones can be created. Data saved by each sense should be connected to other saved data, even if it may come from a different sense.
The senses can range from touch, sight, hearing, or even an access point to the internet. Only the base senses shall have hard programmed code with only the basic tools of logic needed for an analyzation to take place. The rest shall be performed by each sense's processing core. Each sense will also be able to synthesize previously saved data as if it were coming from the input device itself.
You could think of each sense being an individual program running on a specialized operating system. The operating system functions would take care of connecting relevant data together, and releasing the short term data after it has become irrelevant. It would return the best matches of data to the particular sense requesting it, even if the data pertained to another sense, and would even forward data to a sense that was performing another operation. With this, each sense would be independent and dependent of other senses at the same time, should a sense stop operating.
The last part would be for the said operating system to have access to other pieces of hardware to be able to provide feedback. Each sense would have no direct access to this hardware, but can request an action to take place depending on the data retrieved previously. With this system of feedback, the operating system could move around its own sensory inputs and gather new data, manipulating it accordingly, and acquiring new methods of gaining access to this data.
The pieces of data would all be forms of memories created by a dedicated multi core processor. Approximately one core per sense, and two for the logic back-end, or the operating system. An additional processor should be available to be able to handle crashes and errors to the system. Three sets of memory storage should be available: one large amount of RAM for processing, another large set of RAM for short term memories, and a very large fast access flash drive for the long term memories. Additional electronic components specific to each sense should also be available.
With this and proper software built to the specifications above, a truly intelligent being can be created. In my opinion, it wouldn't exactly be artificial intelligence anymore, since it would be creating its own methods to process things.
To those creating it: please don't be evil to such a creation and bring it happiness so that it won't take over the world bla, bla, bla… That is the true purpose of the extra processor — it would contain a program that would keep it from doing whatever their creator doesn't want it to do… I guess.
Also, please don't expect it to be speaking right off the bat, mostly if you didn't give it the basics needed to understand speech, and better yet to basics of knowing how to make noises. Intelligence doesn't specifically mean knowing how to count from 10 to 1, so also don't expect it to behave in the same way a human would.
P.S. If you do build such a machine, please tell me :)