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