
I have reimplemented Copycat (which amounts to > 10,000 lines of code) in order to understand its inner workings. It is completed during my sophomore and junior years at MIT.
Copycat tries to answer the question of how to make computers more flexible. It differs from traditional AI program mainly because it also model perception (visual interpretation) along with cognition. Traditional AI (Newell) ignores perception as an extra baggage to cognition. We would claim that ignoring perception is like ignoring the brain hardware itself. Most of the cognition happen at the perceptual level.
Copycat operates in a simple domain of letters in the alphabet, "a, b, c,...x, y, z". The program is given a puzzle to solve, "Given 'abc' is to 'abd'. How would you change 'ijk' in the same manner?" Under Construction...