SICP वीडियो लेक्चर (1986)
(ocw.mit.edu)- MIT 6.001
Structure and Interpretation of Computer Programsकी पूरी रूपरेखा को 20 वीडियो लेक्चर के ज़रिए फॉलो किया जा सकता है, इसलिए SICP को व्यवस्थित तरीके से दोबारा पढ़ने के लिए यह बेहतरीन सामग्री है - ये लेक्चर जुलाई 1986 में Hewlett-Packard के कर्मचारियों के लिए आयोजित किए गए थे, और Hewlett-Packard Television ने इन्हें प्रोफेशनल तौर पर प्रोड्यूस किया था
- वीडियो MIT OCW और अलग उपलब्ध कराई गई साइट, दोनों पर देखे जा सकते हैं, और इन्हें व्यावसायिक उपयोग के अनुकूल Creative Commons लाइसेंस के तहत उपलब्ध कराया गया है
- लेक्चर की सामग्री 1985 की SICP प्रथम संस्करण पर आधारित है, जबकि 1996 के दूसरे संस्करण में कुछ प्रोग्राम दोबारा लिखे गए थे और नई सामग्री जोड़ी गई थी
- कुल विषय और प्रस्तुति क्रम वही रखा गया है, इसलिए दूसरे संस्करण से पढ़ने वाले शिक्षार्थियों के लिए भी यह अब भी संदर्भ के रूप में उपयोगी है
लेक्चर की संरचना और उपलब्धता
- Hal Abelson और Gerald Jay Sussman के 20 लेक्चर MIT 6.001
Structure and Interpretation of Computer Programsकोर्स को पूर्ण रूप में कवर करते हैं - ये लेक्चर जुलाई 1986 में Hewlett-Packard के कर्मचारियों के लिए आयोजित किए गए थे, और Hewlett-Packard Television ने इन्हें प्रोफेशनल तौर पर प्रोड्यूस किया था
- वीडियो Hal Abelson और Gerald Jay Sussman द्वारा उपलब्ध कराई गई सामग्री हैं और अनुमति लेकर उपयोग किए गए हैं
- यही वीडियो MIT OCW के अलावा अलग उपलब्ध कराई गई साइट पर भी उपलब्ध हैं, और व्यावसायिक उपयोग के अनुकूल Creative Commons लाइसेंस का पालन करते हैं
पाठ्यपुस्तक के संस्करण से जुड़ी सावधानियाँ
- यह लेक्चर श्रृंखला 1985 में प्रकाशित Structure and Interpretation of Computer Programs प्रथम संस्करण के आधार पर चलती है
- 1996 के द्वितीय संस्करण में लेक्चर में कवर किए गए कई प्रोग्राम दोबारा लिखे गए और नई सामग्री जोड़ी गई
- कुल विषय और प्रस्तुति क्रम नहीं बदला, इसलिए दूसरे संस्करण का उपयोग करने वाले छात्रों के लिए भी ये वीडियो लेक्चर उपयोगी हैं
लेक्चर सूची
-
Lisp और procedure abstraction
- 1A: Overview and Introduction to Lisp: Lisp का अवलोकन और परिचय
- 1B: Procedures and Processes; Substitution Model: procedures, processes और substitution model
- 2A: Higher-order Procedures: higher-order procedures
-
डेटा और symbolic processing
- 2B: Compound Data: compound data
- 3A: Henderson Escher Example: Henderson Escher उदाहरण
- 3B: Symbolic Differentiation; Quotation: symbolic differentiation और quotation
- 4A: Pattern Matching and Rule-based Substitution: pattern matching और rule-based substitution
- 4B: Generic Operators: generic operators
-
state, objects, stream
- 5A: Assignment, State, and Side-effects: assignment, state और side-effects
- 5B: Computational Objects: computational objects
- 6A: Streams, Part 1: stream भाग 1
- 6B: Streams, Part 2: stream भाग 2
-
evaluator और logic programming
- 7A: Metacircular Evaluator, Part 1: metacircular evaluator भाग 1
- 7B: Metacircular Evaluator, Part 2: metacircular evaluator भाग 2
- 8A: Logic Programming, Part 1: logic programming भाग 1
- 8B: Logic Programming, Part 2: logic programming भाग 2
-
machine models और compilation
- 9A: Register Machines: register machines
- 9B: Explicit-control Evaluator: explicit-control evaluator
- 10A: Compilation: compilation
- 10B: Storage Allocation and Garbage Collection: storage allocation और garbage collection
1 टिप्पणियां
Hacker News पर राय
SICP पढ़ने के लिए MIT Scheme इस्तेमाल कर सकते हैं, या दूसरे विकल्प के तौर पर Racket या DrRacket में यह add-on package जोड़कर भी इस्तेमाल कर सकते हैं: https://docs.racket-lang.org/sicp-manual/
बाकी चीज़ों में आसपास की सुविधाएँ इतनी ज़्यादा हैं कि ध्यान भटक सकता है
MIT Scheme को Apple Silicon पर चलने के लिए नहीं बनाया गया है, और थोड़ी तरकीब से amd64 version को नए Mac पर इस्तेमाल किया जा सकता है, लेकिन अगर Apple ने Rosetta2 हटा दिया तो यह शायद गायब हो जाएगा
इसलिए Racket बेहतर विकल्प हो सकता है
कोई भी ठीक-ठाक Scheme implementation SICP के लिए लगभग चल सकता है, लेकिन दूसरे edition के बाद भी language बदली है, इसलिए मैं इसे recommend नहीं करूँगा
हाँ, अपना project शुरू करने के बाद दूसरे systems इस्तेमाल कर सकते हैं, और पुराने idioms के आधुनिक equivalents ढूँढने के लिए manual पढ़ना पड़ सकता है
हर programmer को LISP सीखना चाहिए, या कम से कम गंभीरता से पढ़ना चाहिए
ज़्यादातर application programmers सिर्फ C programmers की तरह procedural तरीके से सोचना जानते हैं
LISP एक “खूबसूरत” language है जो hardware नहीं, concepts से deal करती है, और 1990 में अपने alma mater में कई साल graduate project करते हुए इसे इस्तेमाल किया तो मेरी सोच पूरी तरह बदल गई
पहले मैंने सिर्फ किताब देखकर SICP किया था, लेकिन मुझे लगता है कि lectures कहीं बेहतर हैं और किताब supporting reference की तरह काम करती है
exercises हल करना या किताब को follow करना ज़रूरी नहीं है
चाहे आप इस field में नए हों या दशकों का experience रखते हों, अगर आपने अभी तक ये videos नहीं देखे हैं या SICP class नहीं ली है, तो यह लगभग किसी के लिए भी मददगार हो सकता है
मैंने ये videos और पूरी किताब आखिर तक पढ़ी/देखी, और newsgroup के जरिए offline study group भी बनाया
बहुत मज़ा आया और यह बड़ा breakthrough था, लेकिन किताब के बीच तक पहुँचते-पहुँचते study group के लोग कम होने लगे
SICP पढ़ो वाली सलाह /g/ पर मिली सलाहों में सबसे अच्छी थी
मैंने इससे Lisp सीखी, फिर Clojure सीखी और उसी के इर्द-गिर्द अपना career बनाया
यह मेरी काफी पसंदीदा language है
सच में बहुत strongly recommend करता हूँ
सिर्फ पहला lecture देखने से ही आप तुरंत इसमें खिंच जाएँगे
systems programming में interest रखने वाले व्यक्ति को इससे क्या मिल सकता है?
इसलिए जब तक systems programming मुख्यतः state management और abstraction के बारे में है, मुझे लगता है कि यह बहुत गहराई से relevant है
लेकिन अगर “systems programming” से मतलब पहले से मौजूद messy systems को किसी तरह जोड़ने, या third-party libraries की समझ विकसित करने भर से है, तो यह ज़्यादा relevant नहीं हो सकता
फिर भी इसमें भी insights हैं। मैंने एक video देखा था जिसमें Sussman समझाते हैं कि उन्होंने SICP को एक तरफ रखकर MIT से नया introductory course बनाने को क्यों कहा; वह अपने तराशे हुए रत्न को विनम्रता और सोच-समझकर समेटते हुए दिख रहे थे
मतलब यह था कि वह दौर खत्म हो चुका है जिसमें हम उम्मीद कर सकते थे कि हम abstraction की सभी layers के आर-पार देख पाएँगे
इन lectures की audio quality बहुत खराब है
क्या इसे साफ़ तरीके से सुधारने का कोई तरीका है?