मुख्य कारणों में से एक है कि मैं गणना के सिद्धांत को (सैद्धांतिक कंप्यूटर विज्ञान की "मेरी" शाखा) आकर्षक और अध्ययन के लायक क्यों निम्नलिखित है: यह हमें कुछ गहरे (और कभी-कभी गूढ़) दार्शनिक सवालों की जांच करने का एक तरीका प्रदान करता है।
गणना के सिद्धांत के संस्थापकों में से एक, एलन ट्यूरिंग ने प्रक्रिया के गणितीय विवरण देकर मानव को कागज के एक टुकड़े के लिए "एक फ़ंक्शन की गणना" करने का अर्थ बताने की कोशिश की। मुझे लगता है कि वह बेहद सफल था, और ट्यूरिंग मशीन कई अन्य कंप्यूटिंग प्रक्रियाओं का सटीक मॉडल साबित हुई।
अब जब हमारे पास गणनाओं का वर्णन करने वाली गणितीय वस्तुओं का एक वर्ग है, तो हम वास्तव में उनके बारे में प्रमेय साबित कर सकते हैं, इस प्रकार यह समझने की कोशिश कर सकते हैं कि क्या गणना की जा सकती है, और यह कैसे गणना की जा सकती है; यह तुरंत पता चला कि पूरी तरह से वैध कार्यों के बहुत सारे की गणना नहीं की जा सकती है, और उन्हें एक डिग्री के हिसाब से वर्गीकृत किया जा सकता है (कुछ कार्य केवल दूसरों की तुलना में "अधिक असुविधाजनक" हैं)।
कुछ अन्य लोग, पहले लोग जो आम तौर पर ज्यूरिस हार्टमैनिस और रिचर्ड ई। स्टर्न्स के साथ पहचाने जाते थे, ने गणितीय रूप से यह वर्णन करने की कोशिश की कि किसी फ़ंक्शन (सम्मान, समस्या) के लिए कठिन या आसान गणना (सम्मान, हल करने के लिए) का क्या मतलब है । कई जटिलता उपाय हैं जिनके अनुसार समस्याओं की कठोरता का वर्णन किया जा सकता है; सबसे आम एक है कि हमें उन्हें हल करने के लिए कितना समय चाहिए। एलन कोबम और जैक एडमंड्स "कुशल संगणना" की एक उचित धारणा की पहचान करने में काफी सफल रहे।
कम्प्यूटेशनल जटिलता ढांचे के भीतर, हम अब कुछ परिणाम साबित कर सकते हैं जो संगणना की हमारी सहज धारणा के अनुरूप हैं। मेरा पसंदीदा उदाहरण समय पदानुक्रम प्रमेय है: यदि हमें गणना करने के लिए अधिक समय दिया जाता है, तो हम कठिन समस्याओं को हल कर सकते हैं।
जटिलता सिद्धांत, पी बनाम एनपी की केंद्रीय खुली समस्या, एक और दार्शनिक रूप से महत्वपूर्ण प्रश्न का एक औपचारिककरण है: क्या वास्तव में किसी समस्या को हल करने की तुलना में यह जांचना कठिन है कि क्या इसका कथित समाधान वास्तव में सही है? मेरा मानना है कि यह सवाल पूछने और जवाब देने के लायक है, स्वतंत्र रूप से इसके व्यावहारिक महत्व के।