सैद्धांतिक कंप्यूटर विज्ञान

सैद्धांतिक कंप्यूटर विज्ञान  (TCS) सामान्य कंप्यूटर विज्ञान और गणित का एक उपसमुच्चय है जो कंप्यूटर विज्ञान के गणितीय पहलुओं पर ध्यान केंद्रित करता है जैसे सं गणना का सिद्धांत,  लैम्ब्डा कैलकुलस  और टाइप सिद्धांत।

सैद्धांतिक क्षेत्रों को सटीक रूप से परिचालित करना मुश्किल है। कम्प्यूटिंग मशीनरी के ACM SIGACT  (SIGACT) के लिए एसोसिएशन निम्नलिखित विवरण प्रदान करता है:

इतिहास
जबकि तार्किक अनुमान और गणितीय प्रमाण पहले मौजूद थे, 1931 में कर्ट गोडेल ने अपनी अपूर्णता प्रमेय  के साथ साबित किया कि किन बयानों को सिद्ध या असिद्ध किया जा सकता है, इस पर मूलभूत सीमाएँ हैं।

क्लाउड शैनन द्वारा संचार के 1948 के गणितीय सिद्धांत के साथ  सूचना सिद्धांत  को क्षेत्र में जोड़ा गया था। उसी दशक में,  डोनाल्ड हेब्ब  ने मस्तिष्क में हेब्बियन सीखने का एक गणितीय मॉडल पेश किया। कुछ संशोधन के साथ इस परिकल्पना का समर्थन करने वाले बढ़ते जैविक डेटा के साथ,  तंत्रिका नेटवर्क  और  समानांतर वितरित प्रसंस्करण  के क्षेत्र स्थापित किए गए थे। 1971 में,  स्टीफन कुक  और  एकाधिक खोज  पर काम कर रहे  लियोनिद लेविन  ने साबित किया कि व्यावहारिक रूप से प्रासंगिक समस्याएं मौजूद हैं जो एनपी-पूर्ण हैं -  कम्प्यूटेशनल जटिलता सिद्धांत  में एक ऐतिहासिक परिणाम.

20वीं शताब्दी की शुरुआत में क्वांटम यांत्रिकी  के विकास के साथ यह अवधारणा आई कि गणितीय संक्रियाएं संपूर्ण कण तरंग क्रिया पर निष्पादित की जा सकती हैं। दूसरे शब्दों में, एक साथ कई राज्यों पर कार्यों की गणना की जा सकती है। इसने 20वीं शताब्दी के उत्तरार्ध में  एक कंप्यूटर जितना  की अवधारणा को जन्म दिया जो 1990 के दशक में शुरू हुआ जब  पीटर शोर  ने दिखाया कि इस तरह के तरीकों का इस्तेमाल बहुपद समय में बड़ी संख्या में कारक के लिए किया जा सकता है, जो कि लागू होने पर कुछ आधुनिक प्रस्तुत करेगा।  सार्वजनिक कुंजी क्रिप्टोग्राफी  एल्गोरिदम जैसे RSA_(क्रिप्टोसिस्टम) असुरक्षित। आधुनिक सैद्धांतिक कंप्यूटर विज्ञान अनुसंधान इन बुनियादी विकासों पर आधारित है, लेकिन इसमें कई अन्य गणितीय और अंतःविषय समस्याएं शामिल हैं, जिन्हें नीचे दिखाया गया है:

एल्गोरिदम
कलन विधि गणनाओं के लिए चरण-दर-चरण प्रक्रिया है। एल्गोरिदम का उपयोग गणना,  डाटा प्रासेसिंग  और  स्वचालित तर्क  के लिए किया जाता है।

एल्गोरिद्म एक प्रभावी विधि है जिसे विक्ट: परिमित सूची के रूप में व्यक्त किया जाता है अच्छी तरह से परिभाषित निर्देश एक समारोह (गणित)  की गणना के लिए। प्रारंभिक स्थिति और प्रारंभिक इनपुट (शायद  अशक्त स्ट्रिंग ) से शुरू करना, निर्देश एक सं गणना  का वर्णन करते हैं, जब  निष्पादन (कंप्यूटिंग)  एक परिमित के माध्यम से आगे बढ़ता है अच्छी तरह से परिभाषित लगातार राज्यों की संख्या, अंततः उत्पादन का उत्पादन और अंतिम अंतिम स्थिति में समाप्त हो रहा है। एक अवस्था से दूसरी अवस्था में संक्रमण आवश्यक रूप से  नियतात्मक  नहीं है; कुछ एल्गोरिदम, जिन्हें  यादृच्छिक एल्गोरिदम  के रूप में जाना जाता है, यादृच्छिक इनपुट शामिल करते हैं।

ऑटोमेटा सिद्धांत
ऑटोमेटा सिद्धांत  अमूर्त मशीन ों और  आटोमैटिक मशीन  का अध्ययन है, साथ ही उन कम्प्यूटेशनल समस्याओं का भी अध्ययन है जिन्हें उनका उपयोग करके हल किया जा सकता है। यह असतत गणित (गणित का एक खंड और कंप्यूटर विज्ञान का भी) के तहत सैद्धांतिक कंप्यूटर विज्ञान में एक सिद्धांत है। ऑटोमेटा ग्रीक शब्द αὐτόματα से आया है जिसका अर्थ है आत्म-अभिनय।

ऑटोमेटा थ्योरी स्व-संचालन आभासी मशीनों का अध्ययन है, जो इनपुट और आउटपुट प्रक्रिया की तार्किक समझ में मदद करती है, संगणना के मध्यवर्ती चरण (या किसी भी फ़ंक्शन (इंजीनियरिंग)/प्रक्रिया) के बिना या उसके साथ।

कोडिंग सिद्धांत
कोडिंग सिद्धांत एक विशिष्ट अनुप्रयोग के लिए कोड के गुणों और उनकी उपयुक्तता का अध्ययन है। कोड का उपयोग डेटा संपीड़न,  क्रिप्टोग्राफी, त्रुटि-सुधार और हाल ही में  नेटवर्क कोडिंग  के लिए भी किया जाता है। कुशल और विश्वसनीय  डेटा ट्रांसमिशन  विधियों को डिजाइन करने के उद्देश्य से विभिन्न वैज्ञानिक विषयों-जैसे सूचना सिद्धांत,  विद्युत अभियन्त्रण , गणित और कंप्यूटर विज्ञान द्वारा कोड का अध्ययन किया जाता है। इसमें आमतौर पर अतिरेक को हटाना और प्रेषित डेटा में त्रुटियों का सुधार (या पता लगाना) शामिल है।

कम्प्यूटेशनल जीव विज्ञान
कम्प्यूटेशनल बायोलॉजी विज्ञान में जैविक, व्यवहारिक और सामाजिक प्रणालियों के अध्ययन के लिए डेटा-विश्लेषणात्मक और सैद्धांतिक विधियों, गणितीय मॉडलिंग और कम्प्यूटेशनल सिमुलेशन तकनीकों का विकास और अनुप्रयोग शामिल है। क्षेत्र को व्यापक रूप से परिभाषित किया गया है और इसमें कंप्यूटर विज्ञान, अनुप्रयुक्त गणित,  एनीमेशन, सांख्यिकी, जैव रसायन,  रसायन विज्ञान ,  जीव पदाथ-विद्य ,  आणविक जीव विज्ञान ,  आनुवंशिकी ,  जीनोमिक्स , पारिस्थितिकी, विकास,  शरीर रचना  विज्ञान,  तंत्रिका विज्ञान  और वैज्ञानिक दृश्यता शामिल हैं। कम्प्यूटेशनल जीव विज्ञान जैविक संगणना से अलग है, जो कंप्यूटर  बनाने के लिए  बायोइन्जिनियरिंग  और जीव विज्ञान का उपयोग करके कंप्यूटर विज्ञान और  कंप्यूटर इंजीनियरिंग  का एक उपक्षेत्र है, लेकिन जैव सूचना विज्ञान के समान है, जो जैविक डेटा को संग्रहीत और संसाधित करने के लिए कंप्यूटर का उपयोग करने वाला एक अंतःविषय विज्ञान है।

कम्प्यूटेशनल जटिलता सिद्धांत
कम्प्यूटेशनल जटिलता  सिद्धांत गणना के सिद्धांत की एक शाखा है जो कम्प्यूटेशनल समस्याओं को उनकी अंतर्निहित कठिनाई के अनुसार वर्गीकृत करने और उन  जटिलता वर्ग  को एक दूसरे से संबंधित करने पर केंद्रित है। एक कम्प्यूटेशनल समस्या को एक ऐसा कार्य समझा जाता है जो सैद्धांतिक रूप से एक कंप्यूटर द्वारा हल किया जा सकता है, जो यह बताने के बराबर है कि समस्या को गणितीय चरणों के यांत्रिक अनुप्रयोग द्वारा हल किया जा सकता है, जैसे एल्गोरिथम।

एक समस्या को स्वाभाविक रूप से कठिन माना जाता है यदि इसके समाधान के लिए महत्वपूर्ण संसाधनों की आवश्यकता होती है, भले ही एल्गोरिथम का उपयोग किया गया हो। सिद्धांत इन समस्याओं का अध्ययन करने के लिए गणना के गणितीय मॉडल पेश करके और समय और भंडारण जैसे उन्हें हल करने के लिए आवश्यक संसाधनों की मात्रा निर्धारित करके इस अंतर्ज्ञान को औपचारिक रूप देता है। अन्य जटिलता उपायों का भी उपयोग किया जाता है, जैसे संचार की मात्रा ( संचार जटिलता में प्रयुक्त), एक सर्किट में  तर्क द्वार  की संख्या ( सर्किट जटिलता  में प्रयुक्त) और प्रोसेसर की संख्या ( समानांतर कंप्यूटिंग  में प्रयुक्त)। कम्प्यूटेशनल जटिलता सिद्धांत की भूमिकाओं में से एक यह है कि कंप्यूटर क्या कर सकते हैं और क्या नहीं कर सकते हैं, इसकी व्यावहारिक सीमा निर्धारित करना।

कम्प्यूटेशनल ज्यामिति
कम्प्यूटेशनल [[ ज्यामिति ]]  कंप्यूटर दृष्टी  की एक शाखा है जो एल्गोरिदम के अध्ययन के लिए समर्पित है जिसे ज्यामिति के संदर्भ में बताया जा सकता है। कम्प्यूटेशनल ज्यामितीय एल्गोरिदम के अध्ययन से कुछ विशुद्ध रूप से ज्यामितीय समस्याएं उत्पन्न होती हैं, और ऐसी समस्याओं को कम्प्यूटेशनल ज्यामिति का हिस्सा भी माना जाता है।

एक अनुशासन के रूप में कम्प्यूटेशनल ज्यामिति के विकास के लिए मुख्य प्रेरणा कंप्यूटर ग्राफिक्स  और  कंप्यूटर एडेड डिजाइन  और निर्माण (कंप्यूटर-एडेड  कंप्यूटर सहायतायुक्त विनिर्माण ) में प्रगति थी, लेकिन कम्प्यूटेशनल ज्यामिति में कई समस्याएं शास्त्रीय प्रकृति की हैं, और आ सकती हैं गणितीय विज़ुअलाइज़ेशन से।

कम्प्यूटेशनल ज्यामिति के अन्य महत्वपूर्ण अनुप्रयोगों में रोबोटिक ्स (गति योजना और दृश्यता समस्याएं),  भौगोलिक सूचना प्रणाली  (जीआईएस) (ज्यामितीय स्थान और खोज, मार्ग नियोजन), एकीकृत सर्किट डिजाइन (आईसी ज्यामिति डिजाइन और सत्यापन), कंप्यूटर एडेड इंजीनियरिंग (सीएई) शामिल हैं। (जाल पीढ़ी), कंप्यूटर दृष्टि (3डी पुनर्निर्माण)।

कम्प्यूटेशनल लर्निंग थ्योरी
मशीन लर्निंग में सैद्धांतिक परिणाम मुख्य रूप से एक प्रकार के इंडक्टिव लर्निंग से संबंधित होते हैं जिन्हें सुपरवाइज्ड लर्निंग कहा जाता है। पर्यवेक्षित शिक्षण में, एक एल्गोरिथम को नमूने दिए जाते हैं जिन्हें कुछ में लेबल किया जाता है उपयोगी तरीका। उदाहरण के लिए, नमूने मशरूम के विवरण हो सकते हैं, और लेबल यह हो सकते हैं कि मशरूम खाने योग्य हैं या नहीं। एल्गोरिथ्म इन पहले से लेबल किए गए नमूनों को लेता है और एक क्लासिफायरियर को प्रेरित करने के लिए उनका उपयोग करता है। यह वर्गीकारक एक ऐसा कार्य है जो नमूने सहित उन नमूनों को लेबल प्रदान करता है जिन्हें एल्गोरिथम द्वारा पहले कभी नहीं देखा गया है। पर्यवेक्षित शिक्षण एल्गोरिदम का लक्ष्य प्रदर्शन के कुछ उपायों को अनुकूलित करना है जैसे नए नमूने पर की गई गलतियों की संख्या को कम करना।

कम्प्यूटेशनल संख्या सिद्धांत
कम्प्यूटेशनल [[ संख्या सिद्धांत ]], जिसे एल्गोरिथम संख्या सिद्धांत के रूप में भी जाना जाता है, संख्या सिद्धांत संगणना करने के लिए एल्गोरिदम का अध्ययन है। क्षेत्र में सबसे प्रसिद्ध समस्या पूर्णांक गुणनखंड है।

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

आधुनिक क्रिप्टोग्राफी काफी हद तक गणितीय सिद्धांत और कंप्यूटर विज्ञान अभ्यास पर आधारित है; क्रिप्टोग्राफ़िक एल्गोरिदम को कम्प्यूटेशनल कठोरता मान्यताओं के आसपास डिज़ाइन किया गया है, ऐसे एल्गोरिदम को किसी भी विरोधी द्वारा व्यवहार में तोड़ना कठिन बना दिया गया है। इस तरह की प्रणाली को तोड़ना सैद्धांतिक रूप से संभव है, लेकिन किसी ज्ञात व्यावहारिक माध्यम से ऐसा करना संभव नहीं है। इसलिए इन योजनाओं को कम्प्यूटेशनल रूप से सुरक्षित कहा जाता है; सैद्धांतिक प्रगति, उदाहरण के लिए, पूर्णांक गुणनखंड एल्गोरिदम में सुधार, और तेज़ कंप्यूटिंग तकनीक के लिए इन समाधानों को लगातार अनुकूलित करने की आवश्यकता होती है। सूचना सैद्धांतिक सुरक्षा  मौजूद है। सूचना-सैद्धांतिक रूप से सुरक्षित योजनाएं हैं provably असीमित कंप्यूटिंग शक्ति के साथ भी नहीं तोड़ा जा सकता है - एक उदाहरण एक बार का पैड है - लेकिन इन योजनाओं को लागू करना सैद्धांतिक रूप से भंग करने योग्य लेकिन कम्प्यूटेशनल रूप से सुरक्षित तंत्र की तुलना में अधिक कठिन है।

डेटा संरचना
एक डेटा संरचना  कंप्यूटर में  डेटा (कंप्यूटिंग)  को व्यवस्थित करने का एक विशेष तरीका है ताकि इसे  एल्गोरिथम दक्षता  का उपयोग किया जा सके। विभिन्न प्रकार की डेटा संरचनाएँ विभिन्न प्रकार के अनुप्रयोगों के अनुकूल होती हैं, और कुछ विशिष्ट कार्यों के लिए अत्यधिक विशिष्ट होती हैं। उदाहरण के लिए, डेटाबेस  डेटा पुनर्प्राप्ति के छोटे प्रतिशत के लिए  बी-वृक्ष  इंडेक्स का उपयोग करते हैं और  संकलक  और डेटाबेस लुक अप टेबल के रूप में डायनेमिक  हैश तालिका  का उपयोग करते हैं।

डेटा संरचनाएं बड़े डेटाबेस और वेब अनुक्रमण  जैसे उपयोगों के लिए बड़ी मात्रा में डेटा को कुशलतापूर्वक प्रबंधित करने का साधन प्रदान करती हैं। आम तौर पर, कुशल डेटा संरचनाएं कुशल एल्गोरिदम डिजाइन करने की कुंजी होती हैं। कुछ औपचारिक डिजाइन विधियां और  प्रोग्रामिंग भाषा एं सॉफ्टवेयर डिजाइन में प्रमुख आयोजन कारक के रूप में एल्गोरिदम के बजाय डेटा संरचनाओं पर जोर देती हैं।  मुख्य स्मृति  और द्वितीयक स्मृति दोनों में संग्रहीत डेटा पर भंडारण और पुनर्प्राप्ति की जा सकती है।

वितरित गणना
वितरित कंप्यूटिंग अध्ययन वितरित सिस्टम। एक वितरित प्रणाली एक सॉफ्टवेयर प्रणाली है जिसमें कंप्यूटर नेटवर्क  पर स्थित घटक संचार करते हैं और संदेश पास करके अपने कार्यों का समन्वय करते हैं। एक सामान्य लक्ष्य को प्राप्त करने के लिए घटक एक दूसरे के साथ बातचीत करते हैं। वितरित प्रणालियों की तीन महत्वपूर्ण विशेषताएं हैं: घटकों की संगति, वैश्विक घड़ी की कमी और घटकों की स्वतंत्र विफलता। वितरित सिस्टम के उदाहरण  सेवा उन्मुख संरचना |SOA-आधारित सिस्टम से लेकर  पीयर टू पीयर  | पीयर-टू-पीयर एप्लिकेशन और  Bitcoin  जैसे ब्लॉकचेन नेटवर्क।

एक कंप्यूटर प्रोग्राम  जो एक डिस्ट्रीब्यूटेड सिस्टम में चलता है उसे डिस्ट्रीब्यूटेड प्रोग्राम कहा जाता है, और डिस्ट्रीब्यूटेड प्रोग्रामिंग ऐसे प्रोग्राम लिखने की प्रक्रिया है। संदेश पासिंग तंत्र के लिए कई विकल्प हैं, जिनमें  दुरस्तह प्रकिया कॉल |आरपीसी-जैसे कनेक्टर और  संदेश-उन्मुख मिडलवेयर  शामिल हैं। वितरित प्रणालियों का एक महत्वपूर्ण लक्ष्य और चुनौती  स्थान पारदर्शिता  है।

सूचना-आधारित जटिलता
सूचना-आधारित जटिलता (IBC) निरंतर समस्याओं के लिए इष्टतम एल्गोरिदम और कम्प्यूटेशनल जटिलता का अध्ययन करती है। आईबीसी ने पथ एकीकरण, आंशिक अंतर समीकरण, सामान्य अंतर समीकरणों की प्रणाली, अरैखिक समीकरण, अभिन्न समीकरण, निश्चित बिंदु, और बहुत उच्च-आयामी एकीकरण के रूप में निरंतर समस्याओं का अध्ययन किया है।

औपचारिक तरीके
औपचारिक विधियाँ एक विशेष प्रकार की गणित आधारित तकनीकें हैं जो सॉफ्टवेयर  और  कम्पुटर के वो भाग जिसे छूकर मेहसूस किया जा सके  सिस्टम के  औपचारिक विनिर्देश, विकास और  औपचारिक सत्यापन  के लिए होती हैं। सॉफ्टवेयर और हार्डवेयर डिजाइन के लिए औपचारिक तरीकों का उपयोग इस अपेक्षा से प्रेरित है कि, अन्य इंजीनियरिंग विषयों की तरह, उचित गणितीय विश्लेषण करने से डिजाइन की विश्वसनीयता और मजबूती में योगदान हो सकता है। औपचारिक तरीकों को सबसे अच्छी तरह से सैद्धांतिक कंप्यूटर विज्ञान के मूल सिद्धांतों की व्यापक विविधता के अनुप्रयोग के रूप में वर्णित किया जाता है, विशेष रूप से कंप्यूटर विज्ञान गणना, औपचारिक भाषा ओं, ऑटोमेटा सिद्धांत और  कार्यक्रम शब्दार्थ  में तर्क, लेकिन सॉफ्टवेयर और समस्याओं में  टाइप सिस्टम  और  बीजगणितीय डेटा प्रकार  भी। हार्डवेयर विनिर्देश और सत्यापन।

सूचना सिद्धांत
सूचना सिद्धांत लागू गणित, इलेक्ट्रिकल इंजीनियरिंग और कंप्यूटर विज्ञान की एक शाखा है जिसमें सूचना का परिमाणीकरण (विज्ञान)  शामिल है। सूचना सिद्धांत क्लाउड ई. शैनन द्वारा विकसित किया गया था ताकि डेटा संपीड़न और भरोसेमंद कंप्यूटर डेटा भंडारण  और  दूरसंचार  डेटा जैसे  संकेत प्रसंस्करण  ऑपरेशंस पर मूलभूत सीमाएं मिल सकें। इसकी स्थापना के बाद से यह  सांख्यिकीय निष्कर्ष,  प्राकृतिक भाषा प्रसंस्करण , क्रिप्टोग्राफी,  तंत्रिका जीव विज्ञान , सहित कई अन्य क्षेत्रों में अनुप्रयोगों को खोजने के लिए व्यापक हो गया है। उद्भव और समारोह आण्विक कोडों की, सांख्यिकी में  मॉडल चयन , ऊष्मीय भौतिकी,  क्वांटम कम्प्यूटिंग ,  भाषा विज्ञान , साहित्यिक चोरी का पता लगाने, पैटर्न पहचान, विसंगति पहचान और  डेटा विश्लेषण  के अन्य रूप। सूचना सिद्धांत के मौलिक विषयों के अनुप्रयोगों में दोषरहित डेटा संपीड़न  (जैसे ज़िप (फ़ाइल प्रारूप)),  हानिपूर्ण डेटा संपीड़न  (जैसे  MP3  और  JPEG ), और  चैनल क्षमता  (जैसे  DSL |डिजिटल सब्सक्राइबर लाइन (DSL)) शामिल हैं। यह क्षेत्र गणित, सांख्यिकी, कंप्यूटर विज्ञान, भौतिकी, न्यूरोबायोलॉजी और इलेक्ट्रिकल इंजीनियरिंग के चौराहे पर है। गहरे अंतरिक्ष में वायेजर कार्यक्रम मिशन की सफलता, कॉम्पैक्ट डिस्क का आविष्कार, मोबाइल फोन की व्यवहार्यता,  इंटरनेट  का विकास, भाषा विज्ञान और मानव धारणा का अध्ययन,  ब्लैक होल  की समझ के लिए इसका प्रभाव महत्वपूर्ण रहा है।, और कई अन्य क्षेत्र। सूचना सिद्धांत के महत्वपूर्ण उप-क्षेत्र  स्रोत कोडिंग ,  चैनल कोडिंग ,  एल्गोरिथम जटिलता सिद्धांत ,  एल्गोरिथम सूचना सिद्धांत , सूचना-सिद्धांत संबंधी सुरक्षा और सूचना के उपाय हैं।

मशीन लर्निंग
मशीन सीख रहा हूँ  एक अकादमिक अनुशासन है जो एल्गोरिदम के निर्माण और अध्ययन से संबंधित है जो डेटा से सीख सकता है। इस तरह के एल्गोरिदम इनपुट के आधार पर एक  सांख्यिकीय मॉडल  बनाकर काम करते हैं  और केवल स्पष्ट रूप से प्रोग्राम किए गए निर्देशों का पालन करने के बजाय भविष्यवाणी या निर्णय लेने के लिए इसका उपयोग करना।

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

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

समांतरता के परिणामस्वरूप किसी एक प्रोग्राम की अधिकतम संभव जल्दी करो  | स्पीड-अप को अमदहल के नियम के रूप में जाना जाता है।

प्रोग्राम सिमेंटिक्स
प्रोग्रामिंग भाषा सिद्धांत में, सिमेंटिक्स प्रोग्रामिंग भाषाओं के अर्थ के कठोर गणितीय अध्ययन से संबंधित क्षेत्र है। यह एक विशिष्ट प्रोग्रामिंग भाषा द्वारा परिभाषित  प्रोग्रामिंग भाषा सिंटैक्स  लीगल स्ट्रिंग (कंप्यूटर साइंस) के अर्थ का मूल्यांकन करके, इसमें शामिल गणना को दर्शाता है। ऐसे मामले में मूल्यांकन वाक्यात्मक रूप से अवैध स्ट्रिंग्स का होगा, परिणाम गैर-गणना होगा। शब्दार्थ उस विशिष्ट भाषा में किसी प्रोग्राम को निष्पादित करते समय एक कंप्यूटर द्वारा अनुसरण की जाने वाली प्रक्रियाओं का वर्णन करता है। यह एक प्रोग्राम के इनपुट और आउटपुट के बीच के संबंध का वर्णन करके या इस बात की व्याख्या करके दिखाया जा सकता है कि प्रोग्राम एक निश्चित  कंप्यूटर मंच  पर कैसे निष्पादित होगा, इस प्रकार गणना का एक मॉडल तैयार किया जाएगा।

क्वांटम गणना
क्वांटम कंप्यूटर एक संगणना प्रणाली है जो डेटा पर निर्देश (कंप्यूटर विज्ञान)  करने के लिए क्वांटम यांत्रिकी | क्वांटम-यांत्रिक  घटना, जैसे  जितना अध्यारोपण  और क्वांटम उलझाव का प्रत्यक्ष उपयोग करता है। क्वांटम कंप्यूटर  ट्रांजिस्टर  पर आधारित डिजिटल कंप्यूटर से भिन्न होते हैं। जबकि डिजिटल कंप्यूटरों को डेटा को बाइनरी अंकों ( अंश ्स) में एन्कोड करने की आवश्यकता होती है, जिनमें से प्रत्येक हमेशा दो निश्चित राज्यों (0 या 1) में से एक में होता है, क्वांटम कम्प्यूटेशन  qubits  (क्वांटम बिट्स) का उपयोग करता है, जो राज्यों की क्वांटम सुपरपोजिशन में हो सकता है। एक सैद्धांतिक मॉडल  क्वांटम ट्यूरिंग मशीन  है, जिसे सार्वभौमिक क्वांटम कंप्यूटर भी कहा जाता है। क्वांटम कंप्यूटर  गैर-नियतात्मक ट्यूरिंग मशीन  के साथ सैद्धांतिक समानताएं साझा करते हैं | गैर-नियतात्मक और संभाव्य ऑटोमेटन; एक उदाहरण एक से अधिक राज्यों में एक साथ होने की क्षमता है। क्वांटम कंप्यूटिंग का क्षेत्र पहली बार 1980 में  यूरी मैनिन  द्वारा पेश किया गया था और 1982 में  रिचर्ड फेनमैन । क्वांटम बिट्स के रूप में स्पिन वाला एक क्वांटम कंप्यूटर भी 1968 में क्वांटम स्पेस-टाइम के रूप में उपयोग के लिए तैयार किया गया था।

, क्वांटम कंप्यूटिंग अभी भी अपनी प्रारंभिक अवस्था में है लेकिन ऐसे प्रयोग किए गए हैं जिनमें क्वांटम कम्प्यूटेशनल ऑपरेशंस को बहुत कम संख्या में क्यूबिट्स पर निष्पादित किया गया था। दोनों व्यावहारिक और सैद्धांतिक शोध जारी हैं, और कई राष्ट्रीय सरकारें और सैन्य वित्त पोषण एजेंसियां ​​क्वांटम कंप्यूटिंग अनुसंधान का समर्थन करती हैं ताकि नागरिक और राष्ट्रीय सुरक्षा उद्देश्यों, जैसे क्रिप्ट विश्लेषण, दोनों के लिए क्वांटम कंप्यूटर विकसित किए जा सकें।

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

सॉफ्टवेयर अनुप्रयोग जो सांकेतिक गणना करते हैं, उन्हें कंप्यूटर बीजगणित प्रणाली  कहा जाता है, शब्द प्रणाली मुख्य अनुप्रयोगों की जटिलता की ओर इशारा करती है, जिसमें कम से कम, कंप्यूटर में गणितीय डेटा का प्रतिनिधित्व करने के लिए एक विधि, एक उपयोगकर्ता प्रोग्रामिंग भाषा (आमतौर पर भाषा से अलग) शामिल है। कार्यान्वयन के लिए उपयोग किया जाता है), एक समर्पित मेमोरी मैनेजर, गणितीय अभिव्यक्तियों के इनपुट/आउटपुट के लिए एक  प्रयोक्ता इंटरफ़ेस, फ़ंक्शन का एक बड़ा सेट (कंप्यूटर विज्ञान) सामान्य संचालन करने के लिए, जैसे कि अभिव्यक्ति का सरलीकरण,  श्रृंखला नियम  का उपयोग करके विभेदन (गणित),  बहुपद गुणनखंडन ,  अनिश्चितकालीन एकीकरण , आदि।

बहुत बड़े पैमाने पर एकीकरण
बड़े पैमाने पर एकीकरण (वीएलएसआई) हजारों  ट्रांजिस्टर  को एक चिप में जोड़कर एक एकीकृत सर्किट (आईसी) बनाने की प्रक्रिया है। वीएलएसआई 1970 के दशक में शुरू हुआ जब जटिल अर्धचालक और  संचार  प्रौद्योगिकियों का विकास किया जा रहा था।  माइक्रोप्रोसेसर  एक वीएलएसआई डिवाइस है। वीएलएसआई तकनीक की शुरुआत से पहले अधिकांश आईसी के पास सीमित कार्य थे जो वे कर सकते थे। एक  विद्युत सर्किट  में एक  सेंट्रल प्रोसेसिंग यूनिट,  रीड ऑनली मैमोरी ,  रैंडम एक्सेस मेमोरी  और अन्य  गोंद तर्क  शामिल हो सकते हैं। वीएलएसआई आईसी निर्माताओं को इन सभी सर्किटों को एक चिप में जोड़ने की अनुमति देता है।

संगठन

 * सैद्धांतिक कंप्यूटर विज्ञान के लिए यूरोपीय संघ
 * SIGACT
 * कम्प्यूटिंग के सिद्धांत के लिए सिमंस संस्थान

पत्रिकाएं और समाचार पत्र

 * असतत गणित और सैद्धांतिक कंप्यूटर विज्ञान
 * सूचना और संगणना
 * कम्प्यूटिंग का सिद्धांत (जर्नल) ( ओपन एक्सेस (प्रकाशन)  जर्नल)
 * कम्प्यूटिंग के औपचारिक पहलू
 * एसीएम का जर्नल
 * SIAM कंप्यूटिंग पर SIAM जर्नल SICOMP)
 * सिगैक्ट न्यूज
 * सैद्धांतिक कंप्यूटर विज्ञान (जर्नल)
 * कम्प्यूटिंग सिस्टम का सिद्धांत
 * कंप्यूटर विज्ञान की नींव का अंतर्राष्ट्रीय जर्नल
 * सैद्धांतिक कंप्यूटर विज्ञान के शिकागो जर्नल (ओपन एक्सेस (प्रकाशन) जर्नल)
 * सैद्धांतिक कंप्यूटर विज्ञान में नींव और रुझान
 * जर्नल ऑफ ऑटोमेटा, लैंग्वेजेज एंड कॉम्बिनेटोरिक्स
 * एक्टा इंफॉर्मेटिका
 * सूचना विज्ञान की बुनियादी बातों
 * कम्प्यूटेशन थ्योरी पर एसीएम लेनदेन
 * कम्प्यूटेशनल जटिलता (जर्नल)
 * जटिलता का जर्नल (जर्नल)
 * एल्गोरिदम पर एसीएम लेनदेन
 * सूचना प्रसंस्करण पत्र
 * ओपन कंप्यूटर साइंस (ओपन एक्सेस (प्रकाशन) जर्नल)

सम्मेलन

 * कंप्यूटिंग के सिद्धांत (एसटीओसी) पर वार्षिक एसीएम संगोष्ठी
 * कंप्यूटर विज्ञान की नींव पर वार्षिक आईईईई संगोष्ठी (एफओसीएस) * सैद्धांतिक कंप्यूटर विज्ञान में नवाचार  (आईटीसीएस)
 * कंप्यूटर विज्ञान की गणितीय नींव (एमएफसीएस)
 * रूस में अंतर्राष्ट्रीय कंप्यूटर विज्ञान संगोष्ठी (सीएसआर)
 * असतत एल्गोरिदम (सोडा) पर एसीएम-सियाम संगोष्ठी * कम्प्यूटर साइंस में तर्क पर आईईईई संगोष्ठी (एलआईसीएस) * कम्प्यूटेशनल जटिलता सम्मेलन  (सीसीसी) * ऑटोमेटा, भाषा और प्रोग्रामिंग (ICALP) पर अंतर्राष्ट्रीय संगोष्ठी * कम्प्यूटेशनल ज्यामिति पर वार्षिक संगोष्ठी (एसओसीजी)
 * वितरित कम्प्यूटिंग के सिद्धांतों पर एसीएम संगोष्ठी (पीओडीसी) * एल्गोरिदम और आर्किटेक्चर (एसपीएए) में समांतरता पर एसीएम संगोष्ठी * लर्निंग थ्योरी पर वार्षिक सम्मेलन  (COLT) *  कंप्यूटर विज्ञान के सैद्धांतिक पहलुओं पर संगोष्ठी  (एसटीएसीएस) *  एल्गोरिदम पर यूरोपीय संगोष्ठी  (ईएसए) * मिश्रित अनुकूलन समस्याओं के लिए सन्निकटन एल्गोरिदम पर कार्यशाला (APPROX) * रेंडमाइजेशन और कंप्यूटेशन पर वर्कशॉप (रैंडम) *  एल्गोरिदम और संगणना पर अंतर्राष्ट्रीय संगोष्ठी  (ISAAC) * संगणना सिद्धांत (एफसीटी) के मूल सिद्धांतों पर अंतर्राष्ट्रीय संगोष्ठी
 * कम्प्यूटर साइंस (डब्ल्यूजी) में ग्राफ-सैद्धांतिक अवधारणाओं पर अंतर्राष्ट्रीय कार्यशाला

यह भी देखें

 * औपचारिक विज्ञान
 * कंप्यूटर विज्ञान में अनसुलझी समस्याएं
 * सैद्धांतिक कंप्यूटर विज्ञान में महत्वपूर्ण प्रकाशनों की सूची
 * सन–नी लॉ

आगे की पढाई

 * Martin Davis, Ron Sigal, Elaine J. Weyuker, Computability, complexity, and languages: fundamentals of theoretical computer science, 2nd ed., Academic Press, 1994, ISBN 0-12-206382-1. Covers theory of computation, but also program semantics and quantification theory. Aimed at graduate students.

बाहरी कड़ियाँ

 * SIGACT directory of additional theory links
 * Theory Matters Wiki Theoretical Computer Science (TCS) Advocacy Wiki
 * List of academic conferences in the area of theoretical computer science at confsearch
 * Theoretical Computer Science - StackExchange, a Question and Answer site for researchers in theoretical computer science
 * Computer Science Animated
 * Theory of computation @ Massachusetts Institute of Technology