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