C परिवार LISP परिवार के बजाय गणित / CS कार्यक्रमों के लिए मानक CS अध्ययन रेजिमेंट क्यों है? [बन्द है]


14

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

मैंने JAVA स्कूलों में जोएल स्पोल्स्की के कई रेंट पढ़े हैं और क्या नहीं - और मैं उनके आश्वासन से सहमत हूं- लेकिन मेरे स्कूल ने जेएवीए को उस कारण से नहीं पढ़ाया। वे बुनियादी अवधारणाओं जैसे कि संकेत, एल्गोरिथ्म डिजाइन, पुनरावृत्ति और यहां तक ​​कि विधानसभा निर्देश पढ़ाने में कड़े थे। हालाँकि, उन्होंने यह सब C और c ++ में किया। क्या कोई इसके और / या इसके इतिहास के कारणों को जानता है?


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

2
बहुत कुछ उसी तरह LISP "एक एल्गोरिथ्म के वास्तविक गणितीय मॉडल को इकोस करता है", C, हार्डवेयर की वास्तविक संरचना को बताता है और यह सीधा है कि मेमोरी के लिए C मैप में कैसे निर्माण होता है (जो स्वाभाविक रूप से एम्बेडेड सिस्टम के लिए विशेष रूप से उपयोगी है)। हालाँकि, मैं आपसे पूरी तरह सहमत हूँ। मैंने LISP में कुछ और स्नातक शोध की सराहना की होगी ताकि मैं वास्तव में इसे आगे गोता लगा सकूं
बिल वीबी

जवाबों:


13

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

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

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

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


2
मैं आपकी बात सुनता हूं। C और c ++ का कोई अनादर नहीं, वे मेरे पूरे करियर की पसंद की भाषा रहे हैं, लेकिन LISP गणित के छात्रों के लिए एक बेहतर शिक्षण उपकरण होगा। C एक महान भाषा है, और हर तरह से, मैं कभी किसी को नौकरी नहीं दूंगा जो इसे नहीं जानते थे, लेकिन CS डिग्री का उद्देश्य तकनीकी क्षेत्र का प्रशिक्षण नहीं है, यह गणित और कंप्यूटर विज्ञान की अवधारणाओं में महारत हासिल करना है। LISP इस उद्देश्य के लिए अधिक उपयुक्त लगता है।
जोनाथन हेंसन

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

@ जोनाथन हेंसन: ऑन स्पॉट!
क्रिस

9

यह वास्तव में विश्वविद्यालय पर निर्भर करता है। योजना (लिस्प की एक बोली) उम्र के लिए एमआईटी में कंप्यूटर विज्ञान में परिचयात्मक पाठ्यक्रम के लिए भाषा रही है, हालांकि इसे हाल ही में अजगर द्वारा प्रतिस्थापित किया गया है। मैंने अपना बी एस सीएस एक इंजीनियरिंग स्कूल में प्राप्त किया, जहाँ मुझे अपने पहले वर्ष के दौरान C, स्कीम, प्रोलॉग और C ++ से अवगत कराया गया। मुझे लगता है कि यह एक अच्छा मिश्रण था।

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


1

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

अच्छे सिद्धांत और अच्छे कार्यक्रम आवश्यक रूप से संबंधित नहीं हैं।


"अच्छे सिद्धांत और अच्छे कार्यक्रम आवश्यक रूप से संबंधित नहीं हैं।": प्रोग्रामिंग समस्याओं को हल करने वाले सार के निर्माण और संयोजन के बारे में है। और, विकिपीडिया के अनुसार, "सिद्धांत एक ... अमूर्त या सामान्य सोच का प्रकार, या ऐसी सोच के परिणाम हैं।" ( en.wikipedia.org/wiki/Theory ) तो, सिद्धांत और (अच्छी) प्रोग्रामिंग वास्तव में एक दूसरे के बहुत करीब हैं।
जियोर्जियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.