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