The inherent complexity of computational and data manipulation problems is investigated. Specific topics studied include Boolean circuit and communication complexity, decision tree models, and the complexity of data structures. A concentrated effort is made at resolving some of the long standing open problems. Techniques from combinatorics, probability theory, and topology provides the main mathematical tools for the project.