सैद्धांतिक सीएस और गणित - स्व-अध्ययन सिफारिशें


14

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

  • कवर किए गए विषयों की पूर्णता (कृपया मुझे याद किया गया कुछ भी सुझाएं)
  • कवर की गई सामग्री / ओवरकिल क्षेत्र का ओवरलैप (कृपया उन पुस्तकों की अनुशंसा करें जिन्हें सूची से हटा दिया जाना चाहिए)
  • पुस्तकों का अध्ययन करने का आदेश (मैंने इस क्रम में सूचीबद्ध किया है कि मुझे लगता है कि उनका अध्ययन किया जाना चाहिए)

सूची अत्यधिक लंबी लगती है, इसलिए मैं सीएस के लिए आवश्यक कोर ज्ञान की हानि के बिना कुछ पुस्तकों को हटाने की सिफारिशों की सराहना करता हूं।

तो, किताबें हैं:

  1. WW Sawyer द्वारा गणितज्ञ की डिलाईट
  2. इसे कैसे साबित करें: डैनियल जे। वेलेमैन द्वारा एक संरचित दृष्टिकोण
  3. इसे कैसे हल करें: जी पोला द्वारा गणितीय पद्धति का एक नया पहलू
  4. ग्रेग माइकल्सन द्वारा लैम्ब्डा कैलकुलस के माध्यम से कार्यात्मक प्रोग्रामिंग का परिचय
  5. अल अहो और जेफ उल्मैन (http://i.stanford.edu/~ullman/focs.html) द्वारा कंप्यूटर विज्ञान की नींव
  6. ठोस गणित: ग्राहम, नुथ और पटाशनिक द्वारा कंप्यूटर विज्ञान के लिए एक फाउंडेशन
  7. माइकल Sipser द्वारा गणना के सिद्धांत का परिचय
  8. जॉन ई। होपक्रॉफ्ट, राजीव मोटवानी, जेफरी डी। उस्मान द्वारा ऑटोमेटा थ्योरी, भाषा और संगणना का परिचय।
  9. कम्प्यूटेशनल जटिलता: ओडेड गोदरेज द्वारा एक अवधारणात्मक परिप्रेक्ष्य
  10. कम्प्यूटेशनल जटिलता: संजीव अरोड़ा, बोज बराक द्वारा एक आधुनिक दृष्टिकोण
  11. जेएच वैन लिंट, आरएम विल्सन द्वारा कॉम्बिनेटरिक्स में एक कोर्स
  12. कम्प्यूटेबिलिटी: निगेल कटलैंड द्वारा पुनरावर्ती कार्य सिद्धांत का एक परिचय
  13. कंप्यूटर्स एंड इंट्रेक्टेबिलिटी: ए गाइड टू द थ्योरी ऑफ़ एनपी-कम्प्लीटेंस बाई एमआर गारेई, डीएस जॉनसन
  14. रिकर्सिव फंक्शंस का सिद्धांत और हार्टले रोजर्स द्वारा प्रभावी कम्प्यूटेशन
  15. जीएच हार्डी, जेई लिटिलवुड, जी। पोल्या द्वारा असमानताएं
  16. गणितीय तर्क: अभ्यास के साथ एक कोर्स (भाग I): प्रोपोजल कैलकुलस, बुकीन अल्जेब्रा, रेने कोरी, डैनियल लस्कर द्वारा भविष्यवाणी कैलकुलस
  17. गणितीय तर्क: अभ्यास के साथ एक कोर्स (भाग II): रिकर्सियन थ्योरी, गोडेल की सिद्धांत, सेट थ्योरी, मॉडल सिद्धांत रेने कोरी, डैनियल लस्कर

इस सवाल का संदर्भ लें cstheory.stackexchange.com/questions/3253/...
बार्तोज़ Przybylski

यदि आपको इस विषय में अभी तक कोई अनुभव नहीं है, तो एक ज्ञात एल्गोरिथम पुस्तक से शुरुआत करें।
एजेएड

@Bartek: धन्यवाद, लेकिन यह उन सवालों में से एक था जिन्हें मैंने पहले सूची में संकलित करने से पहले देखा था। मेरा प्रश्न इस बारे में अधिक है कि व्यावहारिक रूप से सभी महान सामग्री को कैसे पढ़ा जाए। समय हमेशा एक बाधा होता है, इसलिए मैं जानना चाहता हूं कि पुनरावृत्ति आदि से बचने के लिए मुझे किन पुस्तकों को "नहीं" पढ़ना चाहिए
CSLover

@AJed: क्या आप कुछ # गणित की किताबों के बजाय # 1-4 की सूची में किताब # 5 से शुरू करने का सुझाव दे रहे हैं? मेरा मानना ​​है कि # 5 एल्गोरिदम और डेटा संरचनाओं को एक सौम्य परिचय देता है।
CSLover

यहाँ बहुत ज्यादा है। मैं सिर्फ एक चुनता हूं और जाता हूं, फिर चिंता करें कि जब आप वहां पहुंचेंगे तो क्या होगा। मैं Sipser को एक शुरुआत के लिए शुरू करने की सलाह दे सकता हूं जो CS की नींव में एक ठोस पृष्ठभूमि चाहता है।
usul

जवाबों:


10

आपकी सूची अत्यंत समस्याग्रस्त है।

शुरू करने के लिए, मैं पुस्तकों को 6,11,12,14,15,16,17 पर समतल रूप से छोड़ दूंगा: पुस्तकें 6, 11 और 15 सामान्य गणित हैं जिनकी वास्तव में आवश्यकता नहीं है जब तक कि आप एक सैद्धांतिक शोधकर्ता नहीं बन जाते । पुस्तकें 12 और 14 पुनरावृत्ति सिद्धांत को कवर करती हैं जो कंप्यूटर विज्ञान नहीं है (भले ही यह कम्प्यूटेबिलिटी से संबंधित है!)। पुस्तकें 16 और 17 तर्क में उन्नत विषयों को कवर करती हैं, जबकि आपको केवल बहुत ही बुनियादी तर्क जानने की आवश्यकता है।

1,2,3 पुस्तकों में से, मैं गणित और प्रमाण के सामान्य परिचय के रूप में सेवा करने के लिए सिर्फ एक का चयन करूंगा।

पुस्तकें 5,7,8,9,10,13 कई विषयों को कवर करती हैं: ऑटोमेटा सिद्धांत, एल्गोरिदम और जटिलता सिद्धांत। मुझे सुझाव है कि आप ऑटोमेटा सिद्धांत और जटिलता सिद्धांत के लिए Sipser (पुस्तक 7), और एल्गोरिदम के लिए Cormen, Leiserson, Rivest और Stein ("CLRS") द्वारा एल्गोरिदम का परिचय दें।

पुस्तक 4 कार्यात्मक प्रोग्रामिंग से संबंधित है। हालांकि मेरी कंप्यूटर विज्ञान शिक्षा ने इस विषय पर कोई पाठ्यक्रम शामिल नहीं किया है, यह कहना उचित है कि सैद्धांतिक कंप्यूटर विज्ञान में कई शोधकर्ता आवश्यक नींव के हिस्से के रूप में कार्यात्मक प्रोग्रामिंग की गणना करते हैं।

सारांश: जो आप के साथ है वह है

  • पुस्तकों में से एक 1-3 (या किसी भी तुलनीय "प्रमाण" पाठ से परिचय)
  • CLRS
  • पुस्तक 4 (कार्यात्मक प्रोग्रामिंग)
  • पुस्तक 7 (ऑटोमेटा सिद्धांत और जटिलता सिद्धांत)

इतनी अच्छी प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। मुझे पता था कि सूची अत्यधिक थी, लेकिन कंप्यूटर वैज्ञानिकों के लिए सभी प्रकार की पुस्तक सिफारिशों को पढ़ना, आप एक लंबी सूची के साथ समाप्त करते हैं। आपकी सिफारिश बहुत व्यावहारिक है, और यही मैं बाद में हूं। आपका बहुत बहुत धन्यवाद!!
CSLover

1
मैं इस सलाह से असहमत हूं कि "गणित की जरूरत नहीं है"। कंप्यूटर विज्ञान के किसी भी पहलू को चुनें और मैं आपको बताऊंगा कि गणित की आवश्यकता कैसे है। आप जितना अधिक गणित सीखेंगे, आप उतने बेहतर होंगे। दूसरी ओर, स्कूल जाने के बिना, अपने दम पर वास्तविक गणित सीखना लगभग असंभव है। तो आप शायद कंप्यूटर विज्ञान पर ध्यान केंद्रित करने से बेहतर हैं, यह सीखना आसान है।
बाउर

5

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

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


ठीक है। मैं आपकी प्रतिक्रिया की सराहना करता हूं। आपका बहुत बहुत धन्यवाद।
CSLover

2

आपके द्वारा सुझाए जा रहे संदर्भ "बहुत" सैद्धांतिक कंप्यूटर वैज्ञानिक बना देंगे। लेकिन मैं ईमानदारी से इन सभी पुस्तकों को पढ़ने का कोई लाभ नहीं पाता अगर आप एक गैर-सीएस डिग्री से हैं। यह निश्चित रूप से सभी पर निर्भर करता है कि आपको क्या चाहिए।

मुझे कुछ किताबें मिलती हैं जैसे कि पुस्तक 14, 15, 16, 17 कंप्यूटर वैज्ञानिकों का इरादा नहीं है। पुस्तक 3 क्रिया है। यह किसी भी छात्र के लिए सामान्य है। इसलिए मैं मानता हूं कि पुस्तक 1 ​​और 2 समान हैं।

मेरे लिए - मूल रूप से एक कंप्यूटर वैज्ञानिक (बल्कि एक इलेक्ट्रिकल / कंप्यूटर इंजीनियर) के रूप में आपकी उसी स्थिति में होना - मैं दो प्रारंभिक स्थितियों का प्रस्ताव देता हूं:

  • एल्गोरिदम डिजाइन और विश्लेषण, (बहुत से लोग एल्गोरिदम के लिए CLRS परिचय का सुझाव देते हैं । यह एक महान संदर्भ है, लेकिन मैं वास्तव में इसका प्रशंसक नहीं हूं और शुरू में इसे समझने के लिए एक कठिन शर्त थी और कभी-कभी बहुत ही मौखिक। मैं सुझाव देता हूं कि हालांकि आप। सामग्री की इसकी तालिका का पालन करें, और वहाँ से आप स्पष्ट संदर्भ के लिए ऑनलाइन पाठ्यक्रम देखें)।

--- सुनिश्चित करें कि आपके द्वारा सीखी गई एल्गोरिदम और डेटा संरचनाओं को प्रभावित करने के लिए एक प्रोग्रामिंग भाषा में महारत हासिल करें - इसलिए, मैं सेग्विक (अद्भुत!) की एल्गोरिथ्म की श्रृंखला का सुझाव देता हूं ।

--- एडेड: मैं इस पुस्तक का सुझाव भी देता हूं: कॉम्बिनेटरियल एल्गोरिदम: जनरेशन, एन्यूमरेशन, और डी। ड्रेहर द्वारा खोजें। यह बहुत अच्छी किताब है। आपको एल्गोरिदम में कई मुद्दों पर एक अलग संकेत देगा।

  • कॉम्बिनेटरिक्स (विशेष रूप से ग्राफ सिद्धांत), ए कोर्स इन कॉम्बिनेटर इन जेएच वैन लिंट, आरएम विल्सन , अच्छा है। कई अन्य संदर्भ मौजूद हैं। आमतौर पर किसी भी प्रसिद्ध कॉम्बीनेटरिक्स की किताब पर्याप्त है - बाकी सब कुछ आप इंटरनेट से अतिरिक्त संदर्भों से प्राप्त करेंगे। मुझे व्यक्तिगत रूप से पसंद आया: पीटर जे कैमरन कॉम्बिनेटरिक्स, और बॉन्डी और मर्टी ग्राफ थ्योरी।

  • संभावना की शर्त (हमेशा आवश्यक)। यह हड़ताली है कि विज्ञान में कई क्षेत्र संभावना का उपयोग नहीं करते हैं। लेकिन मेरा विश्वास करो, तुम सब को पता है मूल बातें हैं।

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

अहो और उलेमन अच्छे हैं (वास्तव में उलेमन की सभी किताबें अच्छी हैं)। कंपाइलर डिज़ाइन के साथ खुद को सहज बनाएं (देखें http://infolab.stanford.edu/~ullman/ullman-books.html )।

उसके बाद: यह सब उस पर निर्भर करता है जो आप करना चाहते हैं। अलग-अलग दिशाएँ जो आप ले सकते हैं: 1) डेटाबेस, 2) पैटर्न मान्यता और डेटा खनन, 3) वितरित एल्गोरिदम, 4) प्रोग्रामिंग भाषाओं की नींव, 4) एल्गोरिदम को यादृच्छिक करना, और कई अन्य। [जिनमें से प्रत्येक को एक और पोस्ट की आवश्यकता है] लेकिन सभी के बारे में एक विचार रखने की कोशिश करें!

* सामान्य विचार: यदि आप CS में नए हैं, तो अपने आप को अधिक से अधिक CS उप-डोमेन के साथ सहज बनायें। अपने आप को "सिद्धांत" तक सीमित करने से आपको सीएस रचनात्मकता का बहुत नुकसान होगा! * (मेरी राय)


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

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

एल्गोरिथम डिजाइन और विश्लेषण में आपकी सबसे अच्छी चाल है। - हर दूसरा क्षेत्र एल्गोरिदम डिजाइन और विश्लेषण का एक उप-क्षेत्र है।
एजे डेड

क्या आप दयालु होंगे और स्पष्ट करेंगे कि किस सेग्विक एल्गोरिदम ने आपकी सिफारिश की है? उसके पास एक "एल्गोरिदम" है, लेकिन यह एक श्रृंखला नहीं है। उनके पास "एल्गोरिथ्म इन सी ++" (या अन्य भाषाएं) हैं, जो कि 2 किताबें हैं जिन्हें मैं कुल 5 भागों के साथ मानता हूं।
CSLover

मैं जिस एक का उपयोग करता था वह सी ++ वाले थे। मैंने उन्हें संदर्भ के रूप में इस्तेमाल किया, हालांकि। यह उसकी वेबसाइट है cs.princeton.edu/~rs
AJed
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.