कंप्यूटर विज्ञान की रूपरेखा

[[कंप्यूटर विज्ञान]] जिसे कंप्यूटिंग विज्ञान भी कहा जाता है, यह मुख्य रूप से सूचना और संगणना की सैद्धांतिक नींव और कंप्यूटर प्रणाली में उपयुक्त कार्यान्वयन और अनुप्रयोगों का अध्ययन हैं। इस प्रकार कंप्यूटर विज्ञान के लिए प्रसिद्ध विषयों में उपयोग की जाने वाली वर्गीकरण प्रणाली के आधार पर संगणक प्रणाली द्वारा तैयार की गई एसीएम कंप्यूटिंग वर्गीकरण प्रणाली एक प्रसिद्ध प्रणाली है।

कंप्यूटर विज्ञान को निम्नलिखित सभी के रूप में वर्णित किया जा सकता है:
 * शैक्षिक अनुशासन
 * विज्ञान
 * व्यावहारिक विज्ञान

गणितीय नींव

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

एल्गोरिदम और डेटा संरचनाएं

 * एल्गोरिदम - समस्याओं की विस्तृत श्रृंखला को हल करने के लिए अनुक्रमिक और समांतर कम्प्यूटेरीकृत प्रक्रियाएं उपयोग की जाती हैं।
 * डेटा संरचनाएं - डेटा का संगठन।

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

संचार और सुरक्षा

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

कंप्यूटर संरचना

 * कंप्यूटर संरचना - कंप्यूटर सिस्टम में डिज़ाइन, संगठन, अनुकूलन और सत्यापन अधिकतम सीपीयू और मेमोरी (कंप्यूटर) सबसिस्टम (और उन्हें जोड़ने वाली बस) के बारे में प्रचलित हैं।
 * ऑपरेटिंग सिस्टम - कंप्यूटर प्रोग्राम के प्रबंधन के लिए सिस्टम और प्रयोग करने योग्य सिस्टम का आधार प्रदान करता हैं।

कंप्यूटर चित्रलेख

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

समवर्ती, समानांतर और वितरित प्रणाली

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

डेटाबेस
डेटाबेस की रूपरेखा
 * संबंधपरक डेटाबेस - डेटाबेस के सेट सिद्धांत और एल्गोरिथम नींव का प्रकार हैं।
 * संरचित भंडारण - गैर-संबंधपरक डेटाबेस जैसे कि NoSQL डेटाबेस का प्रकार हैं।
 * डेटा खनन - डेटाबेस में जानकारी खोजने और संसाधित करने के लिए एल्गोरिदम का अध्ययन, सूचना प्राप्ति से घनिष्ठ रूप से संबंधित है।

प्रोग्रामिंग लैंग्वेज और कंपाइलर

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

वैज्ञानिक कंप्यूटिंग

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

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

संगणना का सिद्धांत

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

इतिहास

 * कंप्यूटर विज्ञान का इतिहास
 * कंप्यूटर विज्ञान के वर्तमान जानकारों की सूची

जानकार

 * प्रोग्रामर या सॉफ्टवेयर डेवलपर
 * शिक्षक/ प्रोफ़ेसर
 * सॉफ्टवेयर इंजीनियर
 * सॉफ़्टवेयर आर्किटेक्ट
 * सॉफ्टवेयर परीक्षक
 * हार्डवेयर इंजीनियर
 * डेटा विश्लेषक
 * इंटरेक्शन डिजाइनर
 * नेटवर्क व्यवस्थापक
 * डेटा वैज्ञानिक

डेटा और डेटा संरचनाएं

 * डेटा संरचना
 * डेटा प्रकार
 * साहचर्य सरणी और हैश सूची
 * सरणी डेटा संरचना
 * सूची (कंप्यूटिंग)
 * ट्री (डेटा संरचना)
 * स्ट्रिंग (कंप्यूटर विज्ञान)
 * मैट्रिक्स (कंप्यूटर विज्ञान)
 * डेटाबेस

प्रोग्रामिंग प्रतिमान

 * अनिवार्य प्रोग्रामिंग / प्रक्रियात्मक प्रोग्रामिंग
 * कार्यात्मक प्रोग्रामिंग
 * तर्क प्रोग्रामिंग
 * ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग
 * कक्षा (कंप्यूटर विज्ञान)
 * वंशानुक्रम (कंप्यूटर विज्ञान)
 * वस्तु (कंप्यूटर विज्ञान)

यह भी देखें

 * कंप्यूटर विज्ञान
 * बिग ओ नोटेशन
 * क्लोजर (कंप्यूटर साइंस)
 * कंपाइलर
 * संज्ञात्मक विज्ञान

बाहरी संबंध

 * [[Association for Computing Machinery|ACM] report on a recommended computer science curriculum (2008)]
 * Directory of free university lectures in Computer Science
 * Collection of Computer Science Bibliographies
 * Photographs of computer scientists (Bertrand Meyer's gallery)
 * Photographs of computer scientists (Bertrand Meyer's gallery)