क्या "कंप्यूटर साइंस! = सॉफ्टवेयर इंजीनियरिंग" प्रोग्रामिंग को खराब तरीके से सिखाने का बहाना है?


23

हम सबने इसे सुना है; जब भी सीएस के बारे में चर्चा होती है कि गरीब विकास कौशल किसी के पास है, तो आखिरकार वह कहता है,

कंप्यूटर विज्ञान सॉफ्टवेयर इंजीनियरिंग नहीं है।

मुझे जो समस्या दिखाई देती है, वह यह है कि प्रोग्रामिंग और सॉफ्टवेयर डेवलपमेंट को सीएस कोर्स में पढ़ाया जाता है। वे सिर्फ आम तौर पर खराब सिखाया जाता है। अगर यह सिखाया जा रहा है, तो इसे पहली बार क्यों नहीं पढ़ाया जाता है? *

इसलिए मैं यह देखना चाहूंगा कि 2 सवालों पर क्या राय है:

  1. CS है! = SE प्रोग्रामिंग प्रोग्रामिंग कौशल को ठीक से नहीं सिखाने के लिए एक प्रचुर या बहाना है।

  2. भले ही आपके प्रश्न का उत्तर 1 हो; यदि आप इस तरह का निर्णय लेने की सबसे अच्छी स्थिति में थे: क्या आप सीएस पाठ्यक्रमों में प्रोग्रामिंग के उचित शिक्षण पर जोर देंगे?

*। मुझे संदेह है, मैंने अपनी शिक्षा के दौरान प्राप्त किए गए उपाख्यानों के आधार पर, कि क्षेत्र के अधिकांश शिक्षाविदों को कोड बनाए रखने के लिए कोड लिखना नहीं है और कोड बनाए नहीं रखा है, और परिणामस्वरूप ज्ञान / कौशल नहीं है इसे प्रभावी ढंग से सिखाने के लिए।


7
मैं अपनी टिप्पणी स्पष्ट करूँगा; मेरे दिमाग में, वे अलग हैं (सीएस! = एसई)। इसलिए यदि मैं CS और SE को 2 अन्य फ़ील्ड A, B, जहाँ A! = B से प्रतिस्थापित करता हूँ, तो आपको बॉलिंग लेसन! = जापानी इतिहास जैसा कुछ मिल सकता है। तब आप तर्क कर रहे हैं: क्या BL = JH JH को ठीक से न पढ़ाने का बहाना है? यह अब एक बेतुका सवाल है, और इसे खारिज कर दिया जाना चाहिए। यदि आपने एक सीएस ग्रेड देखा है जो नहीं जानता था कि आप किसी लिंक की गई सूची पर हैशटेबल का उपयोग क्यों करेंगे, तो उसे खराब तरीके से पढ़ाया गया था। यदि आपने एक CS ग्रेड देखा, जो एक खराब रीफैक्टरिंग कोड का काम करता है, तो इसका उपयोग किया जा सकता है।
यिर्मयाह नून

2
@ जेरेमियाग नून: अपने सादृश्य का उपयोग करने के लिए: जापानी इतिहास में गेंदबाजी के साथ सिखाया नहीं जाता है। मैं यह तर्क दे रहा हूं कि प्रत्येक सीएस कार्यक्रम, वास्तव में प्रोग्रामिंग सिखाता है और यह कि वे "सीएस! = एसई" तर्क का उपयोग करते हैं ताकि इसे अच्छी तरह से पढ़ाने से खुद को बहाना हो।
स्टीवन एवर्स

2
एक अन्य विचार: क्या किसी विशेष सीएस में एसई कौशल की कमी स्कूल या छात्र की गलती है? प्रत्येक वर्ग में आपको संभावित रूप से सक्षम से भयानक तक फैला हुआ व्यापक कौशल प्राप्त होगा।
एडम लेअर

2
@SnOrfus सॉफ्टवेयर इंजीनियरिंग सॉफ्टवेयर निर्माण का शिल्प है। कंप्यूटर विज्ञान सॉफ्टवेयर के पीछे का सिद्धांत है। दोनों को जानना आदर्श है, लेकिन वे अभी भी अलग हैं। @ जेरेमिया की तुलना में एक बेहतर सादृश्य (IMO) भवन निर्माण उपकरण बनाम खेल में से एक होगा।
डैश-टॉम-बैंग

5
शिक्षाविदों को बनाए रखने योग्य कोड नहीं लिखने के बारे में फुटनोट लगभग बिल्कुल बिंदु है। सीएस की परवाह नहीं है।
डैश-टॉम-बैंग

जवाबों:


27

मुझे नहीं लगता कि यह एक मुकाबला है, बल्कि एक जोर है कि कंप्यूटर विज्ञान सॉफ्टवेयर इंजीनियरिंग नहीं है, यह प्रोग्रामिंग नहीं है - यह, ठीक है, औपचारिक कम्प्यूटेशन का विज्ञान। संक्षेप में, यह गणित है (वास्तव में, कई सीएस कार्यक्रमों को लागू गणित कार्यक्रमों के रूप में शुरू किया गया था)।

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

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

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

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

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


यह वास्तव में मेरा विचार है, लेकिन मेरे उत्तर से बहुत बेहतर समझाया गया है।
यिर्मयाह नून

+1: इतना अच्छा सामान यहाँ, मैं 1 चीज़ को लेने से नफरत करूँगा, लेकिन यह देखते हुए कि CS को गणित के रूप में उत्पन्न किया गया है, क्या इससे उसके आवेदन का महत्व नहीं है - इस मामले में, प्रोग्रामिंग?
स्टीवन एवर्स

2
@SnOrfus: प्रोग्रामिंग को गणित में लागू करने के लिए हाँ। लेकिन कंप्यूटर विज्ञान के रूप में! = सॉफ्टवेयर इंजीनियरिंग, प्रोग्रामिंग! = सॉफ्टवेयर इंजीनियरिंग, या तो।
मिपाडी

1
@ डेविड थॉर्नले: सबसे पहले, मैं और हर कोई कभी-कभी यह जानता है कि भौतिकी का उपयोग करने वाले लोगों ने तरंगों का अध्ययन करते समय एक ऑसिलिस्कोप का उपयोग किया था। हालांकि, सादृश्य पकड़ नहीं है। छात्रों को पहले से ही सीएस डिग्री के हिस्से के रूप में प्रोग्रामिंग सिखाई जा रही है । आप थे, मैं था, हम सभी जो एक अस्मितावादी थे, उपस्थित थे। यह एक कोर्स का एक बंद खंड भी नहीं था। यह प्रति सेमेस्टर कम से कम 1-2 कक्षाओं का एक अभिन्न अंग है ।
स्टीवन एवर्स

2
+1 यह समझाने के लिए कि स्कूल (कॉलेज, विश्वविद्यालय, जो भी हो) आपको सिखाना चाहिए कि आपको मछली कैसे दी जाती है और न सिर्फ आपको मछली दी जाती है
एमिलियानो

25

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

मैं सहमत हूँ कि CS! = SE और मुझे यकीन नहीं है कि आप बस स्कूल जा सकते हैं और SE बन सकते हैं (यहां तक ​​कि परास्नातक के साथ भी)


+! 1: मैं आपकी बात देखता हूं, लेकिन यह सिर्फ 'पॉलिश' नहीं है। कई में बहुत बुनियादी कौशल की कमी होती है।
स्टीवन एवर्स

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

मैं 14 साल से पेशेवर रूप से प्रोग्रामिंग कर रहा हूं। मैंने एसक्यूएल को देखा है और यहां तक ​​कि बुनियादी प्रश्नों को भी लिख सकता हूं, लेकिन यहां तक ​​कि ये बुनियादी कौशल केवल पिछले वर्ष में आए। SQL CS नहीं है। एसक्यूएल डेटाबेस सिद्धांत का एक कार्यान्वयन है, जो सीएस है।
डैश-टॉम-बैंग

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

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

10

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

लोग एक नए सीएस ग्रेड को वास्तव में एक आईटीटी ग्रेड मान लेना चाहते हैं; वे किसी ऐसे व्यक्ति को चाहते हैं जो एक व्यवसाय में प्रशिक्षित हो। कंप्यूटर विज्ञान विज्ञान है, प्रोग्रामिंग एक कला है। ये समान नहीं हैं।

यह पूछने की तरह है कि क्यों एक ताजा भौतिकी ग्रेड एक अच्छा कार इंजीनियर नहीं है। यह मूर्खता है।


2
प्रोग्रामिंग एक शिल्प है, कला नहीं।
डैश-टॉम-बैंग

6
प्रोग्रामिंग शिल्प है, संलग्न है और कला है।
Maciej Piechotka

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

1
का नाम बदला जाना चाहिए क्योंकि लोगों ने आप के रूप में उस पर भ्रम पैदा किया। क्या आप Edsger W. Dijastra को जानते हैं? उन्होंने एक बार कहा था, "कंप्यूटर विज्ञान कंप्यूटरों के बारे में नहीं है, बल्कि खगोल विज्ञान दूरबीनों के बारे में है।" :)
बोस

1
कला सौंदर्य पैदा करती है; शिल्प उपयोगिता बनाता है। इसकी सुंदरता के लिए कला बनाई जाती है; शिल्प इसकी उपयोगिता के लिए बनाया गया है। कला उपयोगी हो सकती है; शिल्प सुंदर हो सकता है। सॉफ्टवेयर इंजीनियरिंग उपयोगिता बनाता है; इसलिए, सॉफ्टवेयर इंजीनियरिंग एक शिल्प है।
सिस्टमोविच

8
  1. कम से कम संयुक्त राज्य अमेरिका में, कुल मिलाकर शिक्षा लाभ के बारे में बन गई है। नामांकन बढ़ाने के लिए स्कूल बोर्ड भर में पाठ्यक्रम को समाप्त कर रहे हैं। कॉलेज में और लोग हैं जो पहले से कहीं ज्यादा नहीं हैं। उचित तकनीक सीखना कुछ ऐसा नहीं है जिसे आप आसानी से सिखा सकते हैं ताकि वे न करें।
  2. व्यक्तिगत रूप से मैं एसई पर अधिक जोर देता हूं, लेकिन आमतौर पर सीएस का मानना ​​है कि उद्योग में आने वाले लोगों के लिए एक कार्यक्रम के रूप में सीएस कम उपयुक्त है। मुझे लगता है कि अधिक संस्थानों को एक व्यावहारिक एसई कार्यक्रम पेश करना चाहिए।

# 1 के लिए +1। मैंने स्कूल जाते समय इस पर ध्यान दिया। यह एक फ़ायदेमंद स्कूल था और मुझे लगा कि बहुत से छात्र वहाँ रहने के योग्य नहीं थे। इसके अलावा, स्कूल को केवल प्रति कोर्स पैसे मिलते थे और एक छात्र को असफल करने का मतलब था कि उन्हें अब उनसे पैसे नहीं मिलते थे, इसलिए अक्सर शिक्षक छात्रों को पास करने के लिए अपने रास्ते से चले जाते थे। हमारे पास कम से कम एक व्यक्ति अपनी डिग्री के साथ स्नातक था जो मुझे नहीं लगता कि भाषा की पसंद में एक हैलो वर्ल्ड प्रोग्राम भी लिख सकता था!
राहेल

जब से आपने अमेरिकी शिक्षा प्रणाली और लाभ की भूमिका को छुआ, यहाँ एक अनिवार्य मिल्टन फ्रीडमैन चोयर है: youtube.com/watch?v=W3Seg0JE1PM
Job

7

CS है! = SE प्रोग्रामिंग प्रोग्रामिंग कौशल को ठीक से नहीं सिखाने के लिए एक प्रचुर या बहाना है।

नहीं, सीएस एसई नहीं है। यह एक तथ्य है, एक बहाना नहीं है।

भले ही आपके प्रश्न का उत्तर 1 हो; यदि आप इस तरह का निर्णय लेने की सबसे अच्छी स्थिति में थे: क्या आप सीएस पाठ्यक्रमों में प्रोग्रामिंग के उचित शिक्षण पर जोर देंगे?

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


6

हां, यह मेरे लिए एक पुलिस-आउट जैसा लगता है, और एक अकादमिक अनुशासन के रूप में सीएस की अपरिपक्वता का संकेत है।

एक अमेरिकन केमिकल सोसाइटी मान्यता प्राप्त बीएस कार्यक्रम आपको सिद्धांत (व्याख्यान कक्षाओं) और अभ्यास (प्रयोगशाला कक्षाएं) दोनों में विशेष दक्षता प्रदर्शित करने के लिए विशिष्ट पाठ्यक्रम पास करने की आवश्यकता है। वर्तमान में, CS के पास ऐसा कुछ नहीं है जहाँ तक मुझे पता है।

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

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

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


यह पागल नहीं है, यह एक महामारी है। मेरे साथियों द्वारा लिखे गए कोड का लगभग 90% पीसा की झुकी हुई मीनार जैसा ही है।
मार्सेल वाल्डेज़ ओरोज़्को

5

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


मुझे ऐसा कुछ करने की कोशिश करना अच्छा लगेगा।
चाओसपांडियन

आपको अपने स्थानीय विश्वविद्यालय से संपर्क करना चाहिए और देखना चाहिए कि क्या उनके पास ऐसा कुछ है। आप कहां स्थित हैं?
बेथ व्हाइटजेल

3
  1. हां यह 100% का मुकाबला है, उन्हें दीर्घकालिक कौशल सिखाना चाहिए जो हमारे करियर के दौरान उपयोगी होगा। आपका इरादा शिक्षा या उद्योग में जाने का है या नहीं, आपको इस तरह से प्रोग्राम करने में सक्षम होना होगा, भले ही यह आपके द्वारा ही हो।

  2. हां, हालांकि यह केवल उचित पाठ्यक्रमों में जोर दिया जाएगा। व्यक्तिगत रूप से, अगर मुझे आपसे बेहतर तरीके से बात करने के लिए बात करनी है कि आपने एक एल्गोरिथ्म को कैसे लागू करने की कोशिश की, तो मैं आपके ग्रेड को चिह्नित करूंगा।

यहां तक ​​कि अगर आप शुद्ध सीएस शोध पर जाते हैं, तो आपको अपने विचारों को प्रदर्शित करने के लिए कोड बनाना होगा। उचित प्रोग्रामिंग कौशल कुछ बिंदु पर आपके लिए उपयोगी होंगे इसलिए कॉलेज में शुरू न करें।


दीर्घकालिक कौशल सीएस हैं। "जावा" एक दीर्घकालिक कौशल नहीं है, न ही .NET, SQL, पास्कल या COBOL हैं। जब तक "दीर्घकालिक" से आपका मतलब है "खुश रहें कि आपके पास एक नौकरी है जब उन्हें उन विरासत प्रणालियों को बनाए रखने के लिए किसी की आवश्यकता होती है"।
डैश-टॉम-बैंग

जबकि मैं मानता हूं कि बेस स्किल्स (CS) की जरूरत है, मेरा मतलब है कि कोड लिखना जो प्रोग्रामिंग लैंग्वेज की परवाह किए बिना बनाए रखने योग्य और पढ़ने में आसान है। लॉन्ग टर्म अर्थ स्किल्स जो कि इस्तेमाल की जा रही टेक्नोलॉजी से परे हैं।
जस्टजॉन

1
IMHO CS को और अधिक जटिल समस्या से निपटने में सक्षम होने की आवश्यकता है, यहाँ बहुत सारे लोग हैं, न ही कोड लिखने के लिए CS डिग्री की आवश्यकता है, लेकिन यदि आपको मैट्रिक्स 10x10 मिलियन डेटा को संभालने और इसे हेरफेर करने की आवश्यकता है, तो मुझे यह पता नहीं है कि कैसे एक एसई बिना सीएस की डिग्री के इसे संभाल सकता है।
boos

3

मुझे लगता है कि हमारी समस्या यह है कि हम डॉक्टरों की तुलना में बहुत अधिक हैं जैसे कि हम स्वीकार करना चाहते हैं ... हमारे पास यह विचार है कि चार साल की डिग्री छात्रों को सॉफ्टवेयर लिखने के लिए तैयार करनी चाहिए। पास भी नहीं है।

हमारा पेशा अन्य विषयों की तुलना में काफी हद तक अपनी प्रारंभिक अवस्था में है। शायद सवाल यह होना चाहिए: हम सीएस में सुधार कैसे कर सकते हैं ताकि जो छात्र उस डिग्री के साथ स्नातक हों वे बहुत कम समय में वास्तविक दुनिया की सॉफ्टवेयर विकास टीम के उत्पादक सदस्य बनने के लिए बेहतर हों?

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

हो सकता है कि अनुशासन के रूप में हमें सिर्फ इसे बेहतर बनाने की आवश्यकता है।


या एक मास्टर शिल्पकार / प्रशिक्षु कार्यक्रम
ऑस्टिन सलोनन

1
एमडी कार्यक्रम एक विज्ञान कार्यक्रम नहीं है। आप विज्ञान का अध्ययन करना चाहते हैं, आप जीव विज्ञान लेते हैं। यदि आपको कोई मेडिकल समस्या है, तो आप इसे किसी जीवविज्ञानी के पास नहीं ले जाते हैं।
डेविड थॉर्नले

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

लेकिन हम डेविड के बारे में क्या बात कर रहे हैं? हम में से कितने सीएस में डिग्री के साथ स्नातक हैं और फिर वास्तव में "कंप्यूटर साइंस" करने के लिए अपने करियर को खर्च करते हैं? हम में से अधिकांश वास्तव में दुनिया में क्या करते हैं और सॉफ्टवेयर विकास के शिल्प का अभ्यास करते हैं। यह एमडी के समान है: वे दवा का "अभ्यास" करते हैं। हम एप्लिकेशन बिल्डिंग का अभ्यास करते हैं।
क्रिस होम्स

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

3

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

हमने एल्गोरिथ्म, डिज़ाइन पैटर्न और सिद्धांत के बारे में सीखा, जो एक स्थानिक भाषा के बिना समस्याओं को हल करने के बारे में है। प्रोग्रामिंग भाषाएं आती हैं और जाती हैं, लेकिन अंडरलाइनिंग सिद्धांत एक ही रहता है।

इसलिए, आपके पहले प्रश्न के लिए, नहीं, मुझे ऐसा नहीं लगता कि CS! = SE एक मुकाबला है। यह एक तथ्य है।

आपके दूसरे प्रश्न के लिए, नहीं, मुझे नहीं लगता कि मैं करूंगा। आप प्रोग्रामिंग को कैसे सिखाते हैं? लूप्स, आईएफएस, विधियों, कक्षाओं और ओओपी से परे, 'उचित प्रोग्रामिंग' क्या होगा और आप इसे किसी भी प्रोग्रामिंग भाषा में कैसे सुधारेंगे? आपको अनुभव लेखन कोड की आवश्यकता है, कुछ ऐसा जो 4 साल की डिग्री आपको पसंद नहीं कर सकता है।

एक बात मैं हालांकि वास्तविक दुनिया में विकास पर एक वर्ग प्रदान करना होगा। स्रोत नियंत्रण, टिकट / बग ट्रैकिंग, कोड ट्रेसिंग, और यह सब जाज एक नई शुरुआत होगी जो कि अपनी नई नौकरियों में सामना करने के लिए जल्द ही तैयार हो जाएगी।

मुझे लगता है कि यह हम पर है जब हम यह समझने के लिए एक नया ग्रेड लेते हैं कि वे शायद पुरस्कार विजेता कोड लिखने वाले नहीं हैं। उन्हें मार्गदर्शन और निर्देशन की जरूरत है।


++ - उत्कृष्ट अंक। यह अच्छा होगा यदि सीएस पाठ्यक्रम में इस "वास्तविक दुनिया" सामान पर एक या दो कक्षा की पेशकश की गई है, मैं सहमत हूं। हमने इसके बारे में अपने विश्वविद्यालय में (1993 में) बात की थी लेकिन यह कभी भी कहीं नहीं गया।
डैश-टॉम-बैंग

आपको उन कक्षाओं में अपनी प्रवीणता का प्रदर्शन करने की उम्मीद कैसे की गई थी जो बिना किसी प्रोग्रामिंग केवल सिद्धांत के वर्ष के थे? विशुद्ध रूप से लिखित परीक्षा?
कार्सन 63000

@ Carson630000 - लिखित कार्य, कभी-कभी राज्य आरेखों को लिखते हुए, कभी-कभी निबंध लिखते हुए कि हम कैसे दृष्टिकोण करेंगे और एक समस्या को हल करेंगे या हम विभिन्न सीएस अवधारणाओं को कैसे लागू करेंगे। इसने हमें सिद्धांत को समझने के लिए मजबूर किया, न कि एक विशिष्ट प्रोग्रामिंग भाषा को।
त्नयाना

2

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

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

  • उपयोगकर्ता अंतरिक्ष में छोटे फ़ाइल सिस्टम को प्रोग्राम करें, linuxकर्नेल मॉड्यूल बनाएं और कर्नेल को स्वयं संशोधित करें, शुद्ध ऑब्जेक्ट ओरिएंटेड गेम को लिखें SmallTalk,
  • खुद का संचार प्रोटोकॉल लिखें और फिर शिक्षक द्वारा चुने गए एक को लागू करें (यह वास्तव में अच्छा था, जब दो छात्रों के कार्यक्रम आसानी से संवाद कर सकते थे, हालांकि उन्होंने पहले सहयोग नहीं किया था),
  • Javaचार की टीम में एक बड़ा प्रोजेक्ट बनाएं ,
  • कुछ कार्यात्मक प्रोग्रामिंग परियोजना का निर्माण,
  • Cसमानांतर प्रोग्रामिंग के लिए कई ठोस कार्यक्रम लिखें (विचार सार थे, लेकिन समीक्षाएं बहुत कठोर थीं, जैसे उचित आउटपुट प्रदान नहीं करने के लिए अंक खोना, जब प्रोग्राम विफल हो गया, जैसे एक अच्छा यूनिक्स programकरना चाहिए),
  • कुछ वेब फ्रेमवर्क का उपयोग करके एक वेब पोर्टल बनाएं (हमने चुना django, जिसने मुझे इस ढांचे से प्यार किया),
  • एक बहुत बड़े कार्यक्रम का उपयोग करके बनाएं LAMP(मेरे पास अभी भी बुरे सपने हैं php, लेकिन postgresqlइसके बजाय इसका उपयोग किया जाता है MySQLऔर मैं DBMSअब इसे जानकर बहुत खुश हूं )
  • और अगर किसी ने चुना, तो वह अपने स्वामी थीसिस के लिए एक कार्यक्रम लिख सकता है - मैंने 10k लाइनों pythonका उपयोग करते हुए डेस्कटॉप प्रोग्राम लिखा PyQt

शायद अन्य परियोजनाएं थीं, लेकिन मैं उन्हें अब भूल गया था।

मेरा कहना है: यह सब स्कूल पर निर्भर करता है। मेरे पास शुद्ध सॉफ्टवेयर इंजीनियरिंग दृष्टिकोण के लिए बहुत नापसंद है, जहां Javaमुख्य भाषा है। मुझे एक बार एक दोस्त की मदद करनी थी, जो ऐसे स्कूल में जाता है और समानांतर प्रोग्रामिंग के लिए कुछ कार्यक्रम लिखना पड़ता था। मैं मूल रूप से, उसके लिए यह लिखने के लिए क्योंकि वह हालांकि, कि था sizeof(some_string)में Cस्ट्रिंग की लंबाई देता है।

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


एक अच्छे कार्यक्रम की तरह लगता है। कुछ सिद्धांत। बहुत अभ्यास।
माइक डनलैवी

1

मुझे लगता है कि इसका उत्तर हां (एक तरह से) है।

बात यह है कि कम समय की प्रोग्रामिंग में बच्चों को पढ़ाना संभव नहीं है। उन्हें प्रोग्रामर लॉजिक थिंकिंग से जूझना चाहिए कि प्रोग्रामर की समस्याओं को कैसे (छोटे स्तर पर) हल किया जाए।

मुझे यकीन है कि स्कूल के कार्यक्रमों को संशोधित किया जाना चाहिए, मैं अपने बहुत छोटे "तीसरी दुनिया" देश, सौभाग्य से, ऐसा होने के लिए एक प्रयास किया जा रहा है। हम ओएलपीसी कार्यक्रम को लागू करने वाले पहले देश हैं; http://laptop.org/en/


1

अपने स्वयं के अनुभव से (मैं इस समय एक छात्र हूं), मैंने कहा हां, यह एक बहाना है। हर कोई CS को एक ऐसे विज्ञान के रूप में संदर्भित करता है जो हमें कंप्यूटर की सभी मूल बातें सिखाता है, और CS में एक विशेष शाखा के रूप में एसई है जो स्पष्ट रूप से प्रोग्रामिंग सिखा रहा है। Imo, हर कोई जो CS में BS है, को यह जानना होगा कि अच्छा और अनुकूलित कोड कैसे लिखना है (भले ही प्रोग्रामिंग उसका विशेष क्षेत्र न हो)। हां, अगर मेरे पास इस तरह का निर्णय लेने की सर्वशक्तिमान स्थिति थी, तो मैं छात्रों को अच्छी प्रोग्रामिंग कौशल हासिल करने के लिए मजबूर करूंगा।


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

1

यह मानते हुए कि लक्ष्य अच्छे सॉफ्टवेयर इंजीनियरों (प्रोग्रामर) को शिक्षित करना है क्योंकि दुनिया को उनकी जरूरत है, क्या यह कहना ठीक है कि मुझे लगता है कि मुझे सिखाया जाना चाहिए?

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

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

मैं मैकेनिकल और बाद में इलेक्ट्रिकल इंजीनियरिंग में इंजीनियरिंग का छात्र था। इसका एक मौलिक हिस्सा था) गणितीय नींव, और बी) व्यावहारिक समस्या-समाधान। सॉफ्टवेयर इंजीनियरिंग ऐसा होना चाहिए, न कि केवल प्रोग्रामिंग।

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


0

जो कर सकते हैं, करते हैं; जो नहीं, सिखा सकते हैं।

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

मुझे विश्वास नहीं है कि वे 'नकल' कर रहे हैं, या बहाना बना रहे हैं, मुझे सच में विश्वास है कि वे अपने अनुभवों के साथ सबसे अच्छा कर रहे हैं, जो उनके पास बहुत कम है।

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


3
मुझे लगता है कि आपके कई उदाहरण स्पष्ट रूप से सिर्फ ऐसे मामले हैं जहां आपका शिक्षक आपके फायदे के लिए चीजों को आसान बनाने की कोशिश कर रहा है। Those that can, do; those that cannot, teach.मैं भी इस बात से बिलकुल सहमत नहीं हूँ: अकादमिक और औद्योगिक करियर पूरी तरह से अलग जीवन शैली की ओर ले जाते हैं। दुनिया के अधिकांश शोध शिक्षाविदों से आते हैं। और मुझे कोई भी ऐसा तरीका नहीं दिख रहा है जिसमें आपने मूल प्रश्न का उत्तर दिया हो।
कोई भी

2
XML को डेटाबेस डिज़ाइन के साथ क्या करना है, इस तथ्य के अलावा कि यदि कोई प्रदर्शन में बिना रुकावट के हो सकता है, तो XML को डेटाबेस के लिए बैकिंग स्टोर के रूप में उपयोग करें? यह कहने के लिए नहीं कि कुछ शिक्षक बिंदु को याद कर सकते हैं (मुझे याद है कि "अत्यधिक टिप्पणी" के कारण हटाए गए बिंदुओं पर एक प्रशिक्षक के साथ बहस करना जब उस बिंदु पर पाठ्यक्रम "हवा की तरह टिप्पणी" सिखाया जाता है) लेकिन यह अतिरंजित की तरह है। यदि कोई जावा सीखना चाहता है, तो सीएस पाठ्यक्रम से गुजरने की तुलना में इसे करने के सस्ते तरीके हैं।
डैश-टॉम-बैंग

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

@ डैश-टॉम-बैंग, XML अर्ध-संरचित डेटाबेस का एक आदर्श उदाहरण है। en.wikipedia.org/wiki/Semi-structured_model
Malfist

1
इस तरह से इस्तेमाल किए गए एक्सएमएल अभी भी एक डेटाबेस सिद्धांत का कार्यान्वयन है। यह स्वयं सिद्धांत नहीं है।
डैश-टॉम-बैंग

0

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

किसी फार्मास्युटिकल कंपनी के लिए प्रयोग करने वाले रसायनज्ञों के बारे में सोचें। वे इस बात की परवाह नहीं करते कि रासायनिक एन मस्से का उत्पादन कैसे किया जाए। न ही वे मार्केटिंग, पैकेजिंग, वितरण या ऐसी किसी भी चीज़ की परवाह करते हैं जो दवा की खोज के बाद होती है। नरक वे भी प्रमाणन प्रक्रिया के बारे में परवाह नहीं है। वे सभी इस बात की परवाह करते हैं कि एक ऐसा रसायन मिल रहा है जिसका प्रभाव तब होता है जब परीक्षण विषयों को दिया जाता है। इससे आगे बढ़ने के लिए कंपनी जिम्मेदार है।

कंप्यूटर वैज्ञानिक उन केमिस्टों की तरह हैं। वे सभी कोड के साथ सिद्धांतों का परीक्षण करते हैं। उन्हें इस बात की कोई परवाह नहीं है कि कोड कितना सुगम है। वे एक सिद्धांत को साबित करते हैं और अगले पर चलते हैं। कोई और पैकेज करता है जो एल्गोरिथ्म करता है और इसे जनता के लिए उपयोगी बनाता है और हमारे पास आपके iPhone पर Kinect या स्ट्रीमिंग वीडियो के साथ MP3 या कंप्यूटर विज़न है। तो CS! = SE एक मान्य तर्क है।

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


0

Edsger Wybe Dijkstra एक डच कंप्यूटर वैज्ञानिक थे।

उन्होंने कहा कि प्रोग्रामिंग भाषाओं को विकसित करने के लिए मौलिक योगदान के लिए 1972 का ट्यूरिंग अवार्ड मिला।

"कंप्यूटर विज्ञान कंप्यूटरों से अधिक कंप्यूटरों के बारे में कोई और जानकारी नहीं है।"

सीएस वास्तव में अलग से एक है। (सीएस! = एसई)।

एक सीएस एक वैज्ञानिक है जिसने कंप्यूटर विज्ञान का ज्ञान प्राप्त किया है।

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

कंप्यूटर विज्ञान के उदाहरण के लिए कई उप-क्षेत्र हैं:

  • सैद्धांतिक कंप्यूटर विज्ञान
  • संगणना का सिद्धांत
  • एल्गोरिदम और डेटा संरचनाएं
  • कंप्यूटर तत्वों और वास्तुकला
  • बहु
  • कम्प्यूटेशनल विज्ञान
  • कृत्रिम होशियारी
  • सॉफ्टवेयर सिस्टम

हम में से कई को हर दिन काम करने या कम से कम इसके लिए किसी भी कौशल की आवश्यकता नहीं होती है।

सॉफ़्टवेयर इंजीनियर (एसई) एक पेशा है, जो सॉफ्टवेयर को डिजाइन करने, लागू करने और संशोधित करने के लिए समर्पित है, ताकि यह उच्च गुणवत्ता, अधिक सस्ती, रखरखाव योग्य और तेजी से निर्माण करने वाला हो। यह एक "सॉफ्टवेयर के लिए इंजीनियरिंग लागू करके सॉफ्टवेयर के विश्लेषण, डिजाइन, मूल्यांकन, कार्यान्वयन, परीक्षण, रखरखाव और पुनः इंजीनियरिंग के लिए व्यवस्थित दृष्टिकोण है"

एक सीएस ज्ञान के रूप में वह किसी भी अच्छी प्रोग्रामिंग भाषा को जाने बिना वास्तविक जटिल समस्या का प्रबंधन करने के लिए ज्ञान है। IMHO यहाँ हम एक और धागा खोल सकते हैं, जहाँ मेरे लिए एक DEGREE केवल एक STARTING POINT है न कि END GOAL।

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

एक साथ एक एसई की मदद से लागू विज्ञान में सीएस द्वारा किए गए विज्ञान में अनुसंधान करें।

मेरा मतलब यह नहीं है कि सीएस एसई से बेहतर है, मेरा मतलब है सीएस! = एसई।

इस तरह का प्रश्न वही प्रश्न है जो गैर कंप्यूटर लोग आपसे स्वयं पूछते हैं कि प्रोग्रामर के रूप में आप क्यों पूछते हैं, आप फोन द्वारा प्रोग्राम X, Y, Z की समस्या को ठीक नहीं कर पा रहे हैं, ऑपरेशन सिस्टम J, M, एन ;)

वास्तव में मैं सुरक्षा क्षेत्र में 10 साल के यूनिक्स सिस्टम के विकास के बाद वास्तव में कोडिंग से ऊब गया हूं और इस प्रश्न को पढ़ने के बाद मुझे यह बात मिलती है, मुझे अधिक कंप्यूटर विज्ञान और कम कंप्यूटर भाषा और कंप्यूटर सिस्टम या प्रोटोकॉल का अध्ययन करने की आवश्यकता है!

मेरे काम पर कोई भी एसई और सीएस के बारे में अंतर नहीं संभाल सकता है! यह वास्तव में एक बुरी चीज है।

अगर आपको लगता है कि एक सीएस खराब प्रोग्रामिंग कौशल का बहाना हो सकता है तो आप वास्तव में इस बात को याद नहीं करेंगे कि यह सीएस क्या है और एसई क्या है।

मुझे लगता है कि आप एक एसई हैं, क्या आप उदाहरण के लिए जानते हैं कि सभी भाषा, सभी प्रतिमान और सभी कंप्यूटर भाषा से संबंधित सामान गणितीय रूप से आंशिक पुनरावर्ती फ़ंक्शन के सेट में व्यक्त किए जा सकते हैं और जो भी आप एक नई भाषा, कोई भी नई भाषा सीखते हैं, आप केवल हैं SAME पुनरावर्ती आंशिक कार्य पर एक नया अमूर्त सीखना?

मज़े करो :)

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