This article reviews recent progress in modeling human cognitive processes. Particular attention is paid to the use of computer programming languages as a formalism for modeling, and to computer simulation of the behavior of the systems modeled. Theories of human cognitive processes can be attempted at several levels: at the level of neural processes, at the level of elementary information processes (e.g., retrieval from memory, scanning down lists in memory, comparing simple symbols, etc.), or at the level of higher mental processes (e.g., problem solving, concept attainment). This article will not deal at all with neural models; it focuses mainly upon higher mental processes, but not without some attention to modeling the elementary processes and especially to the relationships between elementary and complex processes.