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