कंप्यूटर साइंस किस अनुशासन से संबंधित है? [बन्द है]


15

क्या कंप्यूटर साइंस विज्ञान, लागू गणित, इंजीनियरिंग, कला, दर्शन है? "अन्य"?

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

यदि आप अनुशासन के बारे में सोच सकते हैं, तो कंप्यूटर विज्ञान इसकी परिभाषा में कैसे फिट होगा? कंप्यूटर विज्ञान के लिए अनुशासन क्या प्रोग्रामर करते हैं, या शिक्षाविदों क्या करते हैं पर आधारित होना चाहिए ? आपको ऐसे लोगों से किस तरह के जवाब मिलते हैं जो इस बारे में गहराई से सोचते हैं? वे क्या कारण देते हैं?


1
कभी मैं अकादमिक से मिला हूं जो कहता है कि कंप्यूटर विज्ञान एक विज्ञान है, यह समझाने के लिए पूरी तरह से अलग कारण है।
मैकनील

5
कंप्यूटर विज्ञान राजनीति विज्ञान है जिसमें थोड़ी कम राजनीति है।
जॉब

1
कंप्यूटर विज्ञान लागू गणित की एक शाखा है ... "विज्ञान" का अर्थ है वैज्ञानिक पद्धति का उपयोग करना, जो कंप्यूटर विज्ञान में गैर-मौजूद है; लेकिन इसका नाम तब रखा गया जब हर नया अनुशासन उनके नाम के अंत में विज्ञान शब्द रखना चाहता था।
लाल-गंदगी

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

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

जवाबों:


30

दो अलग-अलग आईटी विषय हैं:

  • कंप्यूटर विज्ञान - वैज्ञानिक विधि का उपयोग करके कंप्यूटर और कम्प्यूटेशन का अनुशासन अध्ययन है।

  • सॉफ्टवेयर इंजीनियरिंग - उचित इंजीनियरिंग सिद्धांतों का पालन करते हुए सॉफ्टवेयर को डिजाइन और कार्यान्वित करने का अनुशासन है।

दोनों कुछ हद तक ओवरलैप करते हैं, लेकिन भेद वास्तव में विज्ञान बनाम इंजीनियरिंग के वांछित परिणामों के बारे में है। वैज्ञानिक अनुशासन का वांछित परिणाम ज्ञान है। इंजीनियरिंग अनुशासन का वांछित परिणाम ऐसी चीजें हैं जो काम करती हैं।

तो आपके प्रश्न का उत्तर देने के लिए:

क्या कंप्यूटर साइंस विज्ञान, लागू गणित, इंजीनियरिंग, कला, दर्शन है? "अन्य"?

कंप्यूटर विज्ञान विज्ञान है ... जब ठीक से किया जाता है। हालांकि, अन्य विषयों की तरह सीएस में गणित, इंजीनियरिंग, भौतिक विज्ञान, सामाजिक विज्ञान, दर्शनशास्त्र और इसी तरह से ओवरलैप्स हैं।

मैं यह भी जोड़ूंगा कि जो प्रोग्रामर सबसे ज्यादा काम करते हैं, वे न तो कंप्यूटर साइंस या सॉफ्टवेयर इंजीनियरिंग हैं। यह अधिक पसंद है कि एक शिल्पकार क्या करता है।

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


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

शिल्पकार सादृश्य के लिए +1, मुझे एहसास हुआ कि एक सॉफ्टवेयर इंजीनियर सीएस क्या करता है यह समझाने के लिए सबसे सटीक अवधारणा है। इसके बारे में ओ'रेली की मुफ्त पुस्तक का लिंक यहां दिया जा रहा है। अपरेंटिसशिप-
patterns.labs.oreilly.com/ch01.html

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

@ जिओर्जियो - यह एक अफ़सोस की बात है कि आपने जो वाक्य लिखा था, उसके तुरंत बाद मैंने जो लिखा, वह नहीं पढ़ा ...
स्टीफन C

@ स्टीफन सी: मैंने इसे पढ़ा, और अभी भी मुझे यकीन नहीं है कि कंप्यूटर विज्ञान अन्य विज्ञानों की तुलना में कम कठोर है (लेकिन मैं गलत हो सकता है, निश्चित रूप से)। या हो सकता है कि पहले किसी को "वैज्ञानिक" और "कठोर" माना जाए और क्या नहीं, लेकिन यह एक लंबी चर्चा की आवश्यकता हो सकती है, मुझे लगता है कि परिभाषित करना चाहिए।
गियोर्जियो

12

प्रोग्रामर शायद ही कभी "कंप्यूटर विज्ञान करते हैं"। वे ज्यादातर "सॉफ्टवेयर इंजीनियरिंग" के परिणामों का उपयोग करते हैं , जो एक इंजीनियरिंग अनुशासन है, जाहिर है।

इसके अलावा, कंप्यूटर साइंस एप्लाइड गणित है। यदि आप CS की तुलना किसी लागू गणित से करते हैं, तो आपको बहुत समानता दिखाई देगी।

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

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

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


लेकिन अन्य विश्वविद्यालयों में, कंप्यूटर साइंस मैथ्स फैकल्टी के भीतर एक अलग विभाग है, इंजीनियरिंग संकाय, विज्ञान संकाय का एक विभाग, या ... उपरोक्त में से कोई नहीं। ये व्यवस्थापकीय / संगठनात्मक मुद्दे हैं और वास्तविक विषय सामग्री के साथ बहुत कम हैं।
स्टीफन सी

@ स्टेफेन, इसीलिए मैंने विश्वविद्यालय को "अधिकांश विश्वविद्यालयों में" या "कई विश्वविद्यालयों में" कहने के बजाय निर्दिष्ट किया ":-) यह सिर्फ एक छोटा सा उदाहरण है, उत्तर का सार नहीं।
पी शेव्ड

1
यकीन है कि यह एक "छोटा उदाहरण" है, लेकिन मेरा कहना यह है कि यह एक प्रतिनिधि उदाहरण नहीं है, और यह विशेष रूप से आपके तर्क के लिए भी प्रासंगिक नहीं है। यह बताने के लिए कि मैं जिस विश्वविद्यालय में काम करता हूं वह संकायों के पुनर्गठन की प्रक्रिया में है ... इसलिए कि प्रशासनिक लागत को कम करने के लिए जो कुछ संबंधित है, उस पर कोई गहरी सोच के कारण नहीं । कुछ साल पहले, CS और Elec Eng स्कूलों को एक ही कारण से जोड़ा गया था
स्टीफन सी

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

1
@ बिट-ट्विडलर - आपकी परिभाषा बहुत संकीर्ण है। यह बहुत सारे शैक्षणिक क्षेत्रों को शामिल करता है जिन्हें पारंपरिक रूप से "कंप्यूटर विज्ञान" के रूप में वर्गीकृत किया जाता है।
स्टीफन सी

5

कंप्यूटर विज्ञान एक शब्द है जो इन दिनों कई चीजों को कवर करता है:

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

ध्यान दें कि उपरोक्त सभी के पास केवल "कंप्यूटर वैज्ञानिकों" के बजाय अलग-अलग नामकरण हैं। अंतर सिर्फ इतना है कि नामकरण करने के लिए कंप्यूटर साइंस बहुत नया है।


प्वाइंट 2 एक टूलस्मिथ सेंटीपीड से अधिक है , लेकिन इस उत्तर पर अधिकार :)
ZJR

1

सबसे पहले, यह विज्ञान की गणना कर रहा है। यह गणना के पीछे गणित से संबंधित है।
ऐसे अन्य विषय हैं जो इंजीनियरिंग की ओर अधिक उन्मुख हैं।

अंतर किसी भी संबंधित विज्ञान और इंजीनियरिंग विषयों के समान है। एक सटीकता के बारे में है, दूसरा सटीकता के बारे में है। कम्प्यूटिंग विज्ञान सैद्धांतिक है, अन्य विज्ञान हैं जो समस्याओं पर लागू होते हैं: इंजीनियरिंग की शाखाएं।


1
MIT आपसे सहमत नहीं है eecs.mit.edu
आर्मंड

@ एलिसन, कृपया विकी प्रविष्टि ( en.wikipedia.org/wiki/Computer_science ) को भी ठीक करें।
सीएमआर

0

कंप्यूटर विज्ञान लागू और प्रयोगात्मक गणित है।


0

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

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


3
मुझे नहीं लगता कि कई अकादमिक कंप्यूटर वैज्ञानिक सीएस की इस परिभाषा को स्वीकार करेंगे।
स्टीफन सी

0

सबसे सटीक रूप से "कंप्यूटर विज्ञान" कहा जाता है, अधिकांश विश्वविद्यालयों में मैंने इंजीनियरिंग विषयों के समान एक लागू विज्ञान की जाँच की है; यदि आप इसमें प्रमुख हैं, तो आप "बीएस" या "एमएस" प्राप्त करते हैं। इंजीनियरिंग कॉलेज द्वारा टेक्सास टेक की सीएस डिग्री की पेशकश की गई थी। अनुशासन, जैसा कि सिखाया गया है, ज्यादातर सैद्धांतिक है; आप ट्यूरिंग मशीनों, डीए / एनडीए और अन्य मूलभूत अवधारणाओं की अवधारणा सीखते हैं जो "डे-टू-डे" प्रोग्रामर को वास्तव में उनकी खोपड़ी में चारों ओर झुनझुना रखने की ज़रूरत नहीं है। आपको उच्च गणित का एक पैंटलोड भी मिलता है; टेक्सास टेक सीएस की डिग्री, और मैं इसके साथ जाने के लिए बहुत से अन्य लोगों को भी, आपके द्वारा गणित नाबालिग होने के लिए बहुत अधिक हाथ लगाऊंगा। उसके लिए, अधिकांश विश्वविद्यालय की डिग्री ट्रैक व्यावहारिक निम्न-स्तरीय अनुप्रयोग के भारी डैश में जोड़ते हैं; आप एक असेंबली भाषा सीखते हैं, एक 3-जीन भाषा,

हालांकि, अधिकांश लोग जो जीवित रहने के लिए कोड करते हैं, वे "कंप्यूटर वैज्ञानिक" नहीं हैं; वे सख्ती से बोल रहे हैं, "सॉफ्टवेयर डेवलपर्स" या (जब आप विश्लेषण / डिजाइन में जोड़ते हैं) "सॉफ्टवेयर इंजीनियर"; यह काम बहुत कम हार्डवेयर-स्तर (हालांकि आपको उस की मूल बातें जानना है), बहुत अधिक सिस्टम विश्लेषण, डिज़ाइन और स्ट्रेट-आउट कोडिंग। कई विश्वविद्यालयों के लिए सिर्फ एक अलग ट्रैक है; टेक्सास टेक में इसे "सूचना प्रणाली का प्रबंधन" कहा जाता था और यह एक व्यावसायिक डिग्री (बीबीए / एमबीए) था। यह ट्रैक उच्च गणित (जिसे आपको बीजगणित और अंतर / इंटीग्रल कैल्क के बारे में जानना था, "" बिजनेस गणित "के दो सेमेस्टर में निचोड़ा गया था, और इसमें वेक्टर / टेंसर कैल्क, रैखिक बीजगणित, आदि शामिल नहीं थे), बहुत अधिक भारी वित्तीय गणित (प्रत्येक सेमेस्टर सांख्यिकी और वित्त, दो लेखांकन और अर्थशास्त्र के साथ)। ऑपरेटिंग सिस्टम पर हल्का, डेटाबेस, वेब सर्वर, नेटवर्किंग और सामान्य सिस्टम प्रशासन जैसे "स्टैक" प्रौद्योगिकियों पर भारी। निम्न-स्तरीय भाषाओं पर लाइटर, सर्किट डिज़ाइन और AI, तीसरी और 4-जीन भाषाओं पर भारी, सिस्टम विश्लेषण और परियोजना प्रबंधन। मुझे टेक्सास टेक से यह डिग्री मिली और जब तक मैंने छोड़ा मैं कम से कम जावा, VB, C # और वेब भाषाओं (HTML / CSS / PHP) में से प्रत्येक में एक सेमेस्टर, साथ ही OOA & D और विभिन्न अन्य पाठ्यक्रमों का एक वर्ष आईटी परियोजना प्रबंधन में।

वास्तविक दुनिया में कौन सा बेहतर है? मुझे MIS BBA मिला, मेरे भाई को CS BS मिला, और हम दोनों वरिष्ठ सॉफ़्टवेयर इंजीनियरों के रूप में लगभग समान वेतन स्तर (जीवनयापन के लिए समायोजन) में कार्यरत हैं। उन्हें काम पर आवश्यक OOA & D का बहुत कुछ सीखना था, साथ ही साथ अपने मूल C ++ ज्ञान से C # / Java में बहुत जल्दी स्पिन करना था। मेरे हिस्से के लिए, मेरी इच्छा है कि मेरे पास वैचारिक एल्गोरिथ्म के दो सेमेस्टर थे, जो मुझे बिजनेस मैनेजमेंट कोर्सेज में अटके हुए थे (हां, एमआईएस एक "मैनेजमेंट" डिग्री है, लेकिन मैंने पाया है कि मेरा 99% ज्ञान कैसे है? प्रबंधन करना और अन्य लोगों को प्रबंधित न करना उदाहरण द्वारा सीखा गया है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.