कंप्यूटर विज्ञान और प्रोग्रामिंग के बीच अंतर क्या है?


32

मैं कंप्यूटर विज्ञान और प्रोग्रामिंग में नया हूं, और मैं सोच रहा था कि क्या कंप्यूटर विज्ञान और प्रोग्रामिंग में कोई अंतर है? और क्या आपको विश्वविद्यालय में उनमें से केवल एक या दोनों में से किसी एक का अध्ययन करने का विकल्प मिलता है?


42
बुरा सादृश्य समय।
माइक वेलर

10
वास्तुकला और निर्माण में क्या अंतर है?
ऊब

6
वे जियोलॉजी और खाई-खुदाई के रूप में दूर हैं
स्टीवन ए लोवे

27
कंप्यूटर विज्ञान वह है जो आप सीखने के लिए भुगतान करते हैं। प्रोग्रामिंग वह है जो आपको करने के लिए भुगतान किया जाता है।
jfrankcarr

5
अंतर यह है कि आप बबल सॉर्ट के बजाय स्मूथोर्ट का उपयोग करते हैं।
deadalnix

जवाबों:


68

कंप्यूटर विज्ञान यह अध्ययन करता है कि कंप्यूटर क्या [कर सकता है]; प्रोग्रामिंग कंप्यूटर बनाने का अभ्यास है।

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


1
बहुत अच्छा उत्तर, हालाँकि यह प्रश्न के व्यावहारिक भाग का उत्तर नहीं देता है;)
बैक

@ back2dos ठीक है, मैंने उत्तर बढ़ाया।

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

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

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

36

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

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

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

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

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


4
ऐ, यह आखिरी वाक्य बकवास है, है ना? यह घुंघराले बालों और चंचल उंगलियों से चर्मपत्र के चारों ओर लहराते हुए रूखे प्राध्यापकों की छवियों को जोड़ता है, और मन में उद्धरण लाता है जैसे "कंप्यूटर विज्ञान कंप्यूटरों के बारे में नहीं है क्योंकि खगोल विज्ञान दूरबीनों के बारे में है।" अगर विज्ञान आखिरकार इसे किसी मशीन में नहीं बनाता है, तो क्या बात है? दूरबीन के माध्यम से उनके दाहिने दिमाग में क्या खगोलशास्त्री कभी नहीं दिखता है?
रॉबर्ट हार्वे

मुझे नहीं लगता कि मुझे पिछले 30 वर्षों में "मशीन में कुछ कर सकते हैं" में एक एल्गोरिथ्म को बदलने के लिए कहा गया है। आप जो सोच रहे हैं, वह प्रोग्रामर नहीं है, बल्कि एक कंपाइलर है।
gnasher729

2
@ gnasher729 ठीक है, मान लें कि मेरे पास एल्गोरिथ्म है "एक सूची में प्रत्येक शब्द के लिए, यदि यह ए से शुरू होता है, तो इसे शुरुआत में ले जाएं।" आप क्या संकलक सुझाएंगे?
शनीफ

18

कंप्यूटर विज्ञान उनके कार्यान्वयन और अनुप्रयोग के लिए सूचना, गणना, और व्यावहारिक तकनीकों के सैद्धांतिक नींव के साथ संबंधित है। http://en.wikipedia.org/wiki/Computer_science

~

कंप्यूटर विज्ञान दूरबीनों के बारे में खगोल विज्ञान की तुलना में कंप्यूटर के बारे में अधिक नहीं है। एद्जर दीक्जस्त्र

प्रोग्रामिंग एक कंप्यूटर प्रोग्राम बनाने का शिल्प है।


11

कंप्यूटर विज्ञान, मेरे दृष्टिकोण से, भौतिक विज्ञान की तरह एक कठिन विज्ञान माना जाता है।

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

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

प्रोग्रामर बनने के लिए आपको कंप्यूटर साइंस की डिग्री की आवश्यकता नहीं है, लेकिन CS बैकग्राउंड वाले प्रोग्रामर को कंप्यूटर प्रोग्राम के व्यवहार की गहरी समझ होगी।


1
मुझे नहीं लगता कि सीएस छात्र अन्य प्रोग्रामिंग पाठ्यक्रमों के छात्रों की तुलना में बेहतर हैं।
तजार्ट

5
मैंने बेहतर नहीं कहा , मैंने कहा कि गहरी समझ है।
mcfinnigan

@mcfinnigan मैं कहूंगा, अधिक गुमराह। सीएस के छात्र जो खुद को सिद्धांत के आधार पर रखते हैं, उनमें कम समझ होती है क्योंकि उनके पास वास्तव में यह जानने का अनुभव नहीं होता है कि कंप्यूटर क्या कर सकते हैं , या विभिन्न भाषाओं में कैसे प्राप्त कर सकते हैं।
इज़्काता

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

2
@TikhonJelvis: इंजीनियरिंग गणित का काम करती है, लेकिन यह दो कदम दूर है। सीएस गणित की एक शाखा है।
केविन क्लाइन

3

मैं आपके प्रश्न को "कंप्यूटर विज्ञान और सॉफ्टवेयर इंजीनियरिंग के बीच अंतर क्या है?" आखिर दोनों में प्रोग्रामिंग शामिल है।

कंप्यूटर साइंस क्या गणना है और क्या है और संभव नहीं है की महाधमनी अध्ययन है। यह Godels Theorem और Halting समस्या जैसी चीजों को देखता है।

सॉफ्टवेयर इंजीनियरिंग यह है कि ऐसे प्रोग्राम कैसे लिखे जाएं जो वे करने के लिए डिज़ाइन किए गए हैं और वे मुख्य करने योग्य हैं।


नहीं, उनके प्रश्न का पुन: प्रकाशन क्यों? उसने जो पूछा वह पूछा। सॉफ्टवेयर इंजीनियरिंग प्रोग्रामिंग से अलग है और ALSO विवादास्पद है क्योंकि इसका मतलब है अलग-अलग देशों में अलग-अलग चीजें (जैसे संयुक्त राज्य अमेरिका और कनाडा)
डगलस

2

कंप्यूटर विज्ञान प्रोग्रामिंग का सिद्धांत है। प्रोग्रामिंग कार्यान्वयन है।

कंप्यूटर विज्ञान ... कम्प्यूटेशन और इसके अनुप्रयोगों के लिए वैज्ञानिक और व्यावहारिक दृष्टिकोण है। एक कंप्यूटर वैज्ञानिक कम्प्यूटेशन के सिद्धांत और कम्प्यूटेशनल सिस्टम के डिजाइन में माहिर हैं।

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


12
मेरा मानना ​​है कि कंप्यूटर विज्ञान प्रोग्रामिंग से अधिक है।
Ubermensch

2
@ Ubermensch: मेरा मानना ​​है कि प्रोग्रामिंग कंप्यूटर विज्ञान से अधिक है।
माइकल बॉर्गवर्ड

1
@MichaelBorgwardt वास्तव में, हमारे दोनों विचार सही हैं। लेकिन कंप्यूटर विज्ञान प्रोग्रामिंग की तुलना में अभी भी बहुत बड़ा है (आप दूसरे तरीके से भी बहस कर सकते हैं)। निहेल्स बोह्र का एक प्रसिद्ध उद्धरण "दो प्रकार के सत्य, छोटे सत्य और महान सत्य हैं। आप एक छोटे सत्य को पहचान सकते हैं क्योंकि इसका विपरीत एक मिथ्या है। एक महान सत्य का विपरीत एक और सत्य है।"
Ubermensch

@ Ubermensch आपका विश्वास तथ्य है। कंप्यूटर विज्ञान केवल प्रोग्रामिंग का सिद्धांत नहीं है। कंप्यूटर से पहले कंप्यूटर विज्ञान आसपास था।
केसी पैटन

1

यदि प्रोग्रामिंग बढ़ईगीरी है, तो कंप्यूटर विज्ञान वास्तुकला / डिजाइन है।

संपादित करें

अधिक जानकारी: बढ़ईगीरी में, आप चीजों में रुचि रखते हैं जैसे कि क्या चीजें बनाने का क्रम है (फ्रेम, फिर सबफ्लोर, फिर आंतरिक दीवारें, फिर ड्राईवाल, आदि)। आप इसे कैसे बनाते हैं ताकि निर्माण में कम समय लगे, लेकिन बाद में इसे संशोधित किया जा सकता है।

आर्किटेक्चर के मामले में (वैसे भी सीएस जैसा हिस्सा), आप चीजों से संबंधित हैं जैसे कि सामग्री की क्षमता क्या है, दीवार / छत के इस अंतराल का समर्थन करने के लिए आपको कितनी बड़ी बीम की आवश्यकता है?

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


3
खराब सादृश्य। अगर प्रोग्रामिंग कारपेंटरी है तो सॉफ्टवेयर डिजाइन आर्किटेक्चर / डिजाइन है। कंप्यूटर विज्ञान उस संबंध में डेंड्रोलॉजी की तरह अधिक है, या शायद सामान्य रूप से जीव विज्ञान।
13:27

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

1

कंप्यूटर विज्ञान प्रोग्रामिंग के लिए है क्योंकि भौतिकी मैकेनिकल इंजीनियरिंग के लिए है।

कंप्यूटर विज्ञान सैद्धांतिक है, यह जानकारी के लिए एक वैज्ञानिक और गणितीय दृष्टिकोण लेता है और इसकी गणना है।

कंप्यूटर प्रोग्रामिंग व्यावहारिक है, यह कंप्यूटर प्रोग्राम के स्रोत कोड को डिजाइन करने, लिखने, परीक्षण, डिबगिंग और बनाए रखने की प्रक्रिया है।

वे अलग-अलग हैं, लेकिन संबंधित क्षेत्र हैं। दोनों को एक-दूसरे का फायदा हुआ है।


0

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


0

कंप्यूटर विज्ञान : यह कंप्यूटर / कम्प्यूटेशनल विधियों के साथ समस्या को हल करने का अध्ययन है।

कंप्यूटर प्रोग्रामिंग: यह इस समस्या को हल करने की प्रक्रिया का हिस्सा है जो कंप्यूटर विज्ञान के क्षेत्र को बनाता है। कंप्यूटर प्रोग्रामिंग कंप्यूटर विज्ञान का एक छोटा सा उप-समूह है।


-1

प्रोग्रामिंग लोगों के बारे में है। लोग कोड पढ़ते हैं, लिखते हैं और बनाए रखते हैं। कंप्यूटर विज्ञान गणित के बारे में है - वे एल्गोरिदम को लागू करते हैं और उनका वर्णन करते हैं।


3
@ एसके-तर्क और डेडएमजी। मैंने इन सभी टिप्पणियों को हटा दिया है। यदि आप चर्चा करना चाहते हैं (या वास्तव में तर्क) तो कृपया इसे कहीं और ले जाएं।
ChrisF

1
वह थोड़ा संकरा है। बहुत कम से कम, मेरे विश्वविद्यालय में "एल्गोरिदम, मशीनें और लोग" प्रयोगशाला असहमत होना चाहते हैं :)। और उस लैब में सीएस के कुछ शीर्ष शोधकर्ता शामिल हैं। साथ ही सभी HCI लोगों को हर जगह। मैं थोड़ा मुखर हो रहा हूं, लेकिन सीएस वास्तव में सिर्फ एल्गोरिदम और गणित की तुलना में अधिक व्यापक है।
तिखन जेल्विस

-1

प्रोग्रामिंग (विकास) पैसा बनाने के बारे में है। विज्ञान नई चीजों की खोज के बारे में है।


7
कोई व्यक्ति ओपन सोर्स समुदाय को बताना भूल गया।
वेबबिडीव

2
@webbiedave - ठीक है, वहाँ एक या दो सच्चे परोपकारी हो सकते हैं, लेकिन अंत में खुले स्रोत के रूप में अच्छी तरह से पैसा बनाने के बारे में है। मैं कहता हूं कि ओपन सोर्स प्रोजेक्ट में शामिल ज्यादातर लोग अपने कौशल और / या CV को बढ़ाने के लिए करते हैं: अपनी भविष्य की आय क्षमता को बढ़ाते हैं। कई ओपन-सोर्स प्रोजेक्ट्स भी प्रोजेक्ट से राजस्व उत्पन्न करने के लिए वाणिज्यिक / उद्यम संस्करणों को स्पॉन करते हैं। तो जब पैसा बनाने की बात आती है तो ओपन सोर्स कम्युनिटी बहुत ज्यादा है;)
पैप

और विज्ञान के लिए भी यही सच नहीं है? ;)
वेबबेडेव

@webbiedave - नहीं, मैं इससे सहमत नहीं हूं। जबकि धन विज्ञान का एक द्वि-उत्पाद हो सकता है, यह प्राथमिक लक्ष्य नहीं है (और नहीं होना चाहिए)। विज्ञान स्वयं के लिए खोज के बारे में है। कंपनियां आर एंड डी करती हैं, लेकिन यह नई चीजों की खोज के बारे में नहीं है, यह पहले से खोजी गई चीजों को मुद्रीकृत करने के बारे में है।
पाप

अधिकांश वैज्ञानिक अधिक पैसा चाहते हैं इसका एकमात्र कारण यह है कि वे अधिक शोध कर सकते हैं। मुझे लगता है कि ओपन सोर्स के लिए भी यही बात मायने रखती है। सीवी को बढ़ाने के लिए खुला स्रोत करना मेरे लिए विफलता की राह जैसा है। यह एक जिज्ञासा, खोज और खुजली को दूर करने के बारे में होना चाहिए।
तजार्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.