कंप्यूटर विज्ञान में दिलचस्पी लेने के लिए मुझे 16-17 वर्ष के बच्चों के झुंड के साथ क्या करना चाहिए?


40

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


मैं एक शिक्षक नहीं हूं और न ही एक विशेषज्ञ हूं, हालांकि मैं आपको सुझाव देता हूं कि आप उन्हें एक छोटे से पहेली-गेम को प्रोग्राम करने का तरीका सिखाएं (जिस का सामान्यीकरण एनपी-पूर्ण हो) जैसे पहलुओं को कवर करना: स्तरीय पीढ़ी, समाधान की जाँच, स्वचालित समाधान खोजना: - )
जोर

1
मुझे 2008 का रॉयल इंस्टीट्यूशन क्रिसमस लेक्चर्स पसंद आया । आप इसी तरह की गतिविधियों / डेमो की कोशिश करना चाह सकते हैं।
melhosseiny

जवाबों:


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

1
आप खान अकादमी के कंप्यूटर प्रोग्रामिंग ट्यूटोरियल के लिंक को सूची में जोड़ना चाह सकते हैं: यह ऊपर के लिए एक बहुत अच्छा / इंटरैक्टिव जोड़ है। उदाहरण के लिए: khanacademy.org/cs/intro-to-animation/830742281
PhD

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

13

कंप्यूटर साइंस अनप्लग्ड की जाँच करें । उनकी साइट से:

सीएस अनप्लग्ड मुफ्त सीखने की गतिविधियों का एक संग्रह है जो कंप्यूटर विज्ञान को आकर्षक गेम और पहेली के माध्यम से सिखाता है जो कार्ड, स्ट्रिंग, क्रेयॉन और बहुत सारे उपयोग करते हैं।

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

सीएस अनप्लग्ड सभी उम्र के लोगों के लिए उपयुक्त है , प्राथमिक विद्यालय से वरिष्ठ नागरिकों के लिए , और कई देशों और पृष्ठभूमि से। कक्षाओं, विज्ञान केंद्रों, घरों और यहां तक ​​कि एक पार्क में छुट्टी की घटनाओं के लिए, पंद्रह वर्षों से दुनिया भर में अनप्लग्ड का उपयोग किया गया है!


1
यह एक अच्छा सुझाव है, लेकिन मुझे संदेह है कि ओपी कुछ ऐसा चाहता है जो वास्तव में उस कंप्यूटर लैब का उपयोग करता है जिसे एक तरफ सेट किया गया है।
आंद्र सलामन जू

वैध बिंदु। प्रोग्रामिंग न जानने वाले लोगों के लिए एक रोबोकोड प्रोजेक्ट होना चाहिए।
पैल जीडी

11

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

आपकी तलाश दो घंटे के व्यायाम की है जो दो लक्ष्यों को पूरा करती है:

  • यह हाई स्कूल के स्नातकों को दो घंटे के लिए पर्याप्त रुचि रखने के लिए पर्याप्त रोमांचक है,
  • यह उन्हें कंप्यूटर विज्ञान क्या है की एक झलक देगा, और उम्मीद है कि वे इसमें रुचि ले सकते हैं।

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

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

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

फिर आप इस बात पर चर्चा शुरू कर सकते हैं कि आपको सबसे छोटा रास्ता कैसा मिलेगा, और इसी तरह, उन्हें इसे एक एल्गोरिथ्म आदि के रूप में तैयार करने का प्रयास करने दें ... फिर आप दिज्क्स्ट्रा के एल्गोरिथ्म का वर्णन करते हैं , जिससे उन्हें नोड्स के रंग का दौरा , अस्थायी और बिना सोचे समझे सेट। बैम। आपको एक एल्गोरिथ्म मिला है!

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

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


9

यदि आपके पास केवल 2 घंटे हैं, तो आप बहुत अधिक कोडिंग नहीं करेंगे। बस उस समय में सिंटैक्स सीखना कठिन होगा, लेकिन इसके बजाय बहुत सारे काम हो सकते हैं।

सुझाव के रूप में, उन्हें नियंत्रण प्रवाह और विशिष्ट होने के महत्व को सिखाने की कोशिश करें:

  1. कक्षा को 2, "रोबोट" और अन्य "प्रोग्रामर" में विभाजित करें।
  2. एक उपयुक्त चुनौती के साथ आओ, जिसमें कुछ सरल तर्क, लूपिंग आदि की आवश्यकता होती है - नीचे एक उदाहरण है।
  3. "प्रोग्रामर" एक सूची निर्देश लिखो जो "रोबोट" को दिया जाता है
  4. "रोबोट" निर्देशों को निष्पादित करें, लेकिन "रोबोट" को यह बताएं कि यदि निर्देश भ्रमित कर रहे हैं तो उन्हें "प्रोग्रामर" को रोकने और त्रुटि करने तक रोक देने, त्रुटि करने या अन्यथा कार्य करने की अनुमति दी जाती है। गारंटी है, अगर खेलने का मौका दिया जाता है, तो एक उच्च विद्यालयी छात्र होगा।

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

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

इस तरह से दो बार कुछ चलाएं ताकि "रोबोट" और "प्रोग्रामर" स्वैप कर सकें। बीच में, सोच के उपरोक्त पैटर्न पर एक छोटा सा सबक दें, और वे दूसरे में बहुत बेहतर प्रदर्शन करेंगे, प्रोग्रामिंग में बड़ी घटनाओं पर एक छोटी सी बातचीत के साथ बाहर - नाज़ियों को हराकर, चाँद पर जा रहे हैं, इंटरनेट, और आपके पास संभावित और लगे हुए प्रोग्रामर का एक कमरा होगा!


1
मैं इसे +10 क्यों नहीं दे सकता? यह एक महान विचार है।
Xynariz

@Xynariz धन्यवाद! मैंने इसे वास्तव में छोटे समूहों के साथ कुछ बार किया है, और यह आम तौर पर समाप्त होता है बराबर भागों में मज़ा और निराशा होती है - हालांकि निराशा "रोबोट" पर है और बच्चों को अभी तक समझ नहीं आ रहा है।

कभी-कभी लोगों को यह समझ में नहीं आता है कि कंप्यूटर बहुत, बहुत अच्छे हैं जो आप उन्हें बता रहे हैं। वहाँ भी इस बारे में एक साइबरस्पेस प्रकरण है ... (छुपाता है)
Xynariz

7

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

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

उन्हें इसका स्वाद दें कि प्रोग्रामर की तरह क्या लगता है। वे निश्चित रूप से 2 घंटे में आपको पायथन सिखाने की कोशिश कर रहे हैं।


6

आप ऐलिस की कोशिश कर सकते हैं । यह 3D एनीमेशन के लिए IDE और API है। इसमें सभी प्रकार की निर्मित वस्तुएं (खरगोश, एलियंस, पेड़, इमारतें, ...) हैं जिन्हें आप एक प्रारंभिक दृश्य में रख सकते हैं, बहुत ही उच्च-स्तरीय विधियों के साथ: जैसे walk(north)(जो चरित्र को ले जाते समय हथियारों और पैरों को एनिमेट करता है) और say("my name is Winky")जिसके कारण कार्टून बबल अक्षर मुंह से बाहर आ सकता है।

यह आपको कीबोर्ड और माउस ईवेंट को हुक करने की अनुमति देता है ताकि आप उन चीजों को कर सकें जो इंटरैक्टिव हैं।

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

मुझे लगता है कि आप यह सब एक दृश्य के साथ पूर्व निर्धारित कर सकते हैं ताकि कोई प्रोग्रामिंग अनुभव वाला कोई व्यक्ति केवल कुछ घंटों में कुछ दिलचस्प कर सके।


1
मुझे इस दृष्टिकोण का उपयोग करने में संकोच होगा; यह छोटे छात्रों के लिए काम कर सकता है, लेकिन हाईस्कूल के छात्रों को इसे बचकाने के रूप में देखने की अधिक संभावना है। उस ने कहा, यह 2 घंटे की समय सीमा में कुछ पूरा करने का एक तेज़ तरीका है ...
इज़काता

6

कोडिंग, यहां तक ​​कि एक खिलौना या चित्रमय भाषा में, एक घंटे के दौरान दूर की कौड़ी लगती है। नरक, मुझे यकीन नहीं है कि मैं ऐलिस को फिर से उठा सकता हूं और 2 घंटे में कुछ भी सार्थक कर सकता हूं। शायद एक सप्ताह के अंत में, लेकिन 2 घंटे नहीं।

मैं सुझाव देता हूं कि सीएस को नंगे जरूरी कामों के लिए उकसाया जाएगा: समस्या का समाधान और विश्लेषण। टीमों में समूह को तोड़ें। कुछ उच्च-स्तरीय कम्प्यूटेशनल समस्याओं का वर्णन करने के लिए 10 मिनट का समय लें। ये आसान समस्याएँ होनी चाहिए, जिन्हें कम गणितीय या सीएस पृष्ठभूमि वाले लोगों को आसानी से समझाया जा सकता है। उदाहरणों में शामिल:

  1. सूचियों को क्रमबद्ध करना
  2. कम से कम फैले पेड़ों को खोजना
  3. पूर्णांक की जड़ों की गणना (लगभग)
  4. आदि।

आगे की चर्चा के लिए और कार्य को समझाने के लिए एक और 10 मिनट का समय लें। प्रत्येक समूह को एक समस्या सौंपी जाती है, जिसके लिए वे बुद्धिशील समाधान करते हैं। टीम के पास उनकी सौंपी गई समस्या के समाधान या समाधान के लिए सहयोग करने के लिए आधे घंटे का समय होगा। फिर, पूरे समूह में समाधानों पर जाने के लिए एक घंटे का समय लें, और बच्चों को यह पता लगाने दें कि वे काम करते हैं या नहीं, समस्या हल करने के लिए एक तेज़ / बेहतर तरीका है, आदि।

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

बेशक, अगर बच्चे पूछते हैं कि क्या उन्हें एक सही / अच्छा / सबसे अच्छा ज्ञात उत्तर मिला है, तो उन्हें सच्चाई बताएं। लेकिन जब तक वे छात्रों के समाधान पर चर्चा करने के परिणामस्वरूप संगठित नहीं हो जाते, तब तक वे जवाब देना न भूलें। संक्षेप में:

  1. बच्चों को समझने में आसान लेकिन समृद्ध समस्याओं का पता लगाने के लिए दें।
  2. बच्चों को अपने स्वयं के समाधान के साथ आने दें, यह सुनिश्चित करने के लिए केवल पर्याप्त सहायता प्रदान करें कि बच्चे हाथ में समस्या को समझ सकें।
  3. समूह सेटिंग में शुद्धता / दक्षता पर चर्चा करें, जिससे समूहों को अपने समाधानों को समझाने का मौका मिले। काउंसलर के रूप में, आप जहाँ तक यह सोचते हैं कि आप इसे लाभप्रद रूप से जा सकते हैं, की शुद्धता / दक्षता की चर्चा करने के लिए स्वतंत्र हैं।
  4. किसी भी परिस्थिति में आपको अपने स्वयं के, या किसी भी प्रसिद्ध, समस्या के समाधान को प्रस्तुत नहीं करना चाहिए, जब तक कि वे मूल रूप से छात्रों द्वारा प्रदान किए गए समान न हों। ऐसा मत करो कि ऐसा लगता है कि सीएस एक ऐसा क्षेत्र है जहां लोग पहले ही सभी उत्तरों का पता लगा चुके हैं।
  5. यदि संभव हो तो, बच्चों को यह महसूस करना छोड़ दें कि उन्होंने कुछ सीखा है, लेकिन ताकि उनके पास अभी भी सवाल हैं: क्या उन्हें सबसे अच्छा जवाब मिला? क्या उनके अन्य प्रश्न भी वे इसी तरह से हल कर सकते हैं? आप उन्हें बाद में काम करने के लिए कुछ देने के लिए एक आसान-से-पचाने के प्रारूप में कुछ अनिर्णायक समस्या प्रदान कर सकते हैं।

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

1
उस तरह की प्रतियोगिता लोगों को जोरदार हतोत्साहित करती है और केवल उन लोगों की अहंकार को कम करती है जो पहले से ही सामान जानते हैं। यह केवल "केवल नर्ड के लिए" होने के रूप में सीएस की छवि को मजबूत करता है।
एड्रिनन

6

Im 17 अब और मैंने 16 साल की उम्र के आसपास प्रोग्रामिंग शुरू कर दी। Im अपनी कहानी बताने जा रहा हूं और कुछ सुझाव देने की तुलना में: प्रोग्रामिंग में मेरी दिलचस्पी तब शुरू हुई जब मैं एक कंप्यूटर टेक लड़का देख रहा था जिसे मैंने अपनी रजिस्ट्रियों और कमांड प्रॉम्प्ट के साथ गड़बड़ कहा। भले ही वह मेरे बीएसओडी को ठीक करने के लिए $ 500 चाहते थे और मैंने भुगतान नहीं किया, मैंने उन्हें अपने दम पर तय किया) इसलिए मैंने "कमांड प्रॉम्प्ट भाषा" को गुगली दी और पता चला कि "स्रोत कोड" नामक कुछ था और यह आपको प्रोग्राम करने की अनुमति देता है । उस समय मुझे पता नहीं था कि c ++ क्या है, मुझे नहीं लगता कि मैंने कभी इसके बारे में सुना है। इसलिए मैं cpp.com पर गया (बहुत बुरे ट्यूटोरियल, आप बुरी और पुरानी प्रथाओं को सीखेंगे) और मूल बातें सीखना शुरू कर दिया। मेरा मन पागल हो गया और मुझे वास्तव में पता चला कि जिस वायरस से मैं संक्रमित था, वह मेरी समस्याओं को सी ++ में लिखा गया था, जिसने मुझे और दिलचस्पी दी। मैंने बाद में विधानसभा और अन्य उच्च स्तरीय भाषाओं को पढ़ना, सीखना शुरू किया। मैंने पहले मैलवेयर और ग्राफिक्स प्रोग्रामिंग के बारे में सीखना शुरू किया और मैंने किया।

  1. यह बुरा लग सकता है लेकिन मेरी उम्र के बहुत से लोग वास्तव में प्रोग्रामिंग के विनाशकारी पक्ष में रुचि रखते हैं। पहला सवाल मुझे अपने दोस्तों से मिलता है जब मैं उन्हें बताता हूं कि सी ++ के साथ बहुत अच्छा है "क्या आप वायरस बना सकते हैं, ग्रेड बदल सकते हैं या गेम हैक कर सकते हैं" मुझे उस स्तर पर काफी नहीं है ... ive हाल ही में dll इंजेक्शन का अध्ययन कर रहे हैं, इसलिए im हो रही है क्या आप वहां मौजूद हैं। शायद आप मैलवेयर की तर्ज पर कुछ ऐसा कर सकते हैं जो खतरनाक या अवैध नहीं है लेकिन फिर भी दिलचस्प है। (शायद स्कूल सर्वर से किसी छात्र की लॉगिन जानकारी प्राप्त करें) आप उनसे बात कर सकते हैं कि वायरस और दुर्भावनापूर्ण सॉफ़्टवेयर कैसे काम करते हैं।
  2. पोकेमॉन की तर्ज पर एक छोटा खेल विकसित करें और उन्हें वर्णन करें कि गेम और गेम इंजन कैसे काम करते हैं। बहुत सारे लोग शायद यह जानकर आश्चर्यचकित होंगे कि बहुत सारे 2 डी गेम में जैसे कि चरित्र वास्तव में नहीं चल रहा है, पृष्ठभूमि है और चरित्र सिर्फ एक एनीमेशन का उपयोग कर रहा है, यादृच्छिक संख्याओं के बारे में बात करते हैं। कुछ 3D प्रदर्शनों के साथ भी आएं।
  3. कोड क्या करता है, यह समझाने से दूर रहने की कोशिश करें कि उन्हें यह बताने की कोशिश करें कि कार्यक्रम क्या हैखुद भी कोड के बारे में बात किए बिना बहुत ज्यादा करता है। मेरे अनुभव में, लोगों के ध्यान को खोने का एक आसान तरीका है, खासकर यदि वे भाषा की मूल बातें नहीं समझते हैं। वास्तव में, मैं कोशिश करूंगा कि स्रोत कोड को वास्तव में बाहर न रखा जाए क्योंकि यह किसी के लिए कोड की 500 लाइनों को देखने के लिए काफी हतोत्साहित करने वाला हो सकता है और इसके बारे में कोई भी समझ नहीं सकता है। इसके अलावा अगर आपके पास कोई ऐसा व्यक्ति है जो प्रदर्शन कर रहा है तो वह मेरे जैसा है, वे शायद सवालों की एक श्रृंखला पूछेंगे क्योंकि उनके पास एक जिज्ञासु दिमाग है। यानी: आप यादृच्छिक संख्याओं के बारे में बात कर रहे हैं, वे पूछते हैं कि यादृच्छिक संख्याएँ क्या हैं और वे कहाँ से आती हैं ... आपको इलेक्ट्रॉनिक शोर के बारे में उन्हें कैसे समझाना है और इसके यादृच्छिक और सब कुछ, की तुलना में आप शायद खुद को ऐसी स्थिति में पाते हैं जहाँ आप जैसे "मुझे नहीं पता"।
  4. लेगो माइंडस्टॉर्म एक शानदार आइडिया है। यदि आप लंबा रास्ता नहीं अपनाना चाहते हैं और एक प्रमुख भाषा का उपयोग करते हैं तो यह एक ब्लॉक स्टाइल प्रोग्रामिंग भाषा है जो आप उपयोग कर सकते हैं। मैंने लगभग 30-40 मिनट में भाषा का पता लगा लिया, जब आप इसके बारे में सोचते हैं तो सब कुछ ठीक हो जाता है

  5. आप जल्दी से एक ऐप विकसित कर सकते हैं और इसे दिखा सकते हैं, उनसे $ $ के बारे में बात कर सकते हैं जो ऐप डेवलपिंग से आ सकते हैं।


4

मेरे कुछ पसंदीदा

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

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

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

  • अन्य उत्तर में उल्लिखित लोगो एक पुराना क्लासिक है। एक और नया कोण गेम प्रोग्रामिंग है जैसे कि एक नई उभरती हुई लोकप्रिय भाषा जिसे स्क्रैच ( एमआईटी में आविष्कार किया गया ) कहा जाता है । यह कई प्राकृतिक / उन्नत सीएस विषय सिखा सकता है।


2

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

यह एक विज्ञान फाई भावना पर ले जा सकता है, लेकिन सीएस में कोई अन्य क्षेत्र की तरह, यह कम समय में वास्तविकता में एक बार scifi था जो बदल जाता है। वे विवादास्पद और सामयिक भी हो सकते हैं, जो आज की सुर्खियों से जुड़ते हैं, और छात्र यह समझना शुरू कर सकते हैं कि हमारे विश्व / समाज में सर्वव्यापी सीएस कैसा है और व्यापक रूप से व्याख्या करने पर यह कितना महत्वपूर्ण है। यहाँ कुछ बड़े हैं:

  • डीएनए से प्रोटीन फोल्डिंग की समस्या । वहाँ एक एल्गोरिथ्म यह सही गणना करने के लिए है?

  • सामान्य रूप से कृत्रिम बुद्धिमत्ता । क्या यह संभव है? क्या इसमें नैतिकता शामिल है?

  • रोबोटिक्स में विभिन्न प्रमुख उभरते क्षेत्र हैं। उदा। स्वायत्त ऑटोस / ड्राइविंग । निकटवर्ती क्षितिज पर। यह समाज को कैसे प्रभावित करेगा? बहुत पहले से DARPA प्रतियोगिता का वीडियो प्रभावशाली नहीं है। कुर्ज़वील के लेखन में बहुत सा सामान है। ड्रोन एक जटिल विषय है जिस पर शायद ही कभी खुलकर चर्चा की जाती है और तेजी से घरेलू उपयोग किया जाएगा। मार्स रोवर्स असाधारण प्रौद्योगिकी कर रहे हैं और इस तरह कैसे सिस्टम डिबग किया जा सकता था के रूप में यह पीछे अद्भुत कथाएँ, कर रहे हैं दूर से-interplanetarily जब वे विफल रहे।

  • अपराध / आतंकवाद का पता लगाने के लिए आईटी आधारित निगरानी प्रणाली हाल ही में समाचारों में भारी हैं।

  • हिग्स बोसोन की खोज नहीं की जा सकती थी और सुपरकोलाइडर "बड़े डेटा" का विश्लेषण करने के लिए बड़े सीएस-आधारित सिस्टम के बिना काम नहीं कर सकता है।

  • मूर का नियम । यह कब तक जारी रहेगा? इसने समाज / मानवता को कितना प्रभावित किया है?

  • क्वांटम कंप्यूटर । क्या वे संभव हैं? क्या वे तेज होंगे? क्या वे नीच या हमेशा अनहोनी होगी? डावे एक रंगीन केस स्टडी है, आरोनसन, आदि द्वारा एक महान SciAm लेख है

  • Google पेजरैंक एल्गोरिथ्म आधुनिक कंप्यूटर विज्ञान के बहुबिंदुओं के अजूबों में से एक है। क्या इसे बढ़ाया जाएगा? स्पैम फ़िल्टरिंग कैसे काम करता है? कंपनी छवियों का विश्लेषण करने की दिशा में आगे बढ़ रही है, आदि।

  • एल्गोरिथम / उच्च आवृत्ति व्यापार अब भारी मात्रा में ट्रेडिंग वॉल्यूम / मूल्य को स्थानांतरित करता है। क्या यह अच्छा / बुरा है? क्या यह बढ़ रहा है / घट रहा है? क्या इसे भविष्य में विनियमित किया जाएगा? किस तरह की कम्प्यूटेशनल हथियारों की दौड़ शामिल है?

  • सुपर कंप्यूटर बड़े पैमाने पर होते हैं, अद्भुत समस्याओं को हल करते हैं, और बड़े होते हैं। क्या कोई सीमाएं हैं? वे क्या गणना करते हैं और भविष्य में वे क्या गणना करेंगे? कुछ हद तक संबंधित, बिग डेटा और डेटामाइनिंग

  • विकास के एक दशक से भी कम समय में सोशल नेटवर्किंग साइटों पर भारी प्रभाव पड़ा है। वे अरब वसंत और कब्जे वाली दीवार सेंट जैसे लोकप्रिय विद्रोह को बढ़ावा देने में शामिल हैं । उनका भविष्य क्या है?


2

मेरा एक प्रस्ताव है कि

  • कंप्यूटर विज्ञान (प्रोग्रामिंग या सहायक नहीं) पर केंद्रित है ,
  • एक आधार के साथ शुरू होता है जो ज्यादातर बच्चे जानते हैं और
  • वास्तव में कोशिश की गई है और काम करता है।

हम माइनस्वीपर के बारे में हाई स्कूल के छात्रों के साथ छोटी कार्यशालाएँ करते रहे हैं । कार्यशाला लगभग इसी तरह जाएगी:

  1. चलो खेल को थोड़ा खेलते हैं (अधिकांश इसे जानते हैं)।

  2. हमने अभी क्या किया है? हम जिस समस्या को हल करने की कोशिश कर रहे हैं, वह क्या है? क्या हम सामान्य नियम बना सकते हैं?

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

  3. नियमों के साथ समस्याओं का प्रदर्शन।

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

  4. अधिक परिदृश्यों को कवर करने के लिए नियम में सुधार करें।

    यह आमतौर पर छात्रों को एक साथ अधिक से अधिक कोशिकाओं की जांच करने के लिए प्रेरित करेगा। आप उन्हें "सभी को हल करने" की दिशा में एक रेखीय समीकरण प्रणाली के रूप में जानकारी को व्यक्त करने जैसे दृष्टिकोणों को भी बता सकते हैं - यदि आप गणितीय शब्दों में उपलब्ध जानकारी को व्यक्त करने का प्रयास करते हैं तो यह बात सामने आती है। छात्रों को पहले से ही पता है कि ऐसी प्रणालियों को कैसे हल किया जाए!

  5. नोट सीमाएँ।

    सबसे पहले, ऐसे परिदृश्य हैं जिनके पास कोई (निर्धारक) समाधान नहीं है। इसके अलावा, हम अपनी विकसित रणनीतियों के साथ जानवर-बल के विपरीत कर सकते हैं। क्या हम व्यापार बनाम बिजली की गति को बंद कर सकते हैं? यदि समीकरण-सिस्टम दृष्टिकोण बदल जाता है, तो ध्यान दें कि हम केवल वास्तविक रूप से इसे कुशलता से हल कर सकते हैं, लेकिन हमें द्विआधारी उत्तर की आवश्यकता है। ऐसे परिदृश्यों का निर्माण करना बहुत मुश्किल नहीं है, जो विशाल रनटाइम को जन्म देते हैं (हमने वर्णन करने के लिए कंप्यूटर बीजगणित का उपयोग किया)।

समूह के आधार पर, यह दृष्टिकोण कंप्यूटर विज्ञान के कई सिद्धांतों को एक प्राकृतिक तरीके से कवर करने की अनुमति देता है: समस्याओं को परिभाषित करना, सामान्य एल्गोरिदम का वर्णन करना, पुनरावृत्ति समस्या-समाधान के साथ-साथ कम्प्यूटेबिलिटी और जटिलता के मुद्दों को सभी पर छुआ जा सकता है।

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


1

आपके पास करने के लिए बहुत सारी चीजें हैं ... लेकिन एक चीज जो "पैसे" से बाहर निकलती प्रतीत होती है, इसलिए "पी the एनपी" प्रश्न और सात सहस्राब्दी पुरस्कार पेश करें, जब मैं मध्य विद्यालय में था तब मैंने इसके बारे में पढ़ा था, हालांकि केवल उन बातों को नहीं जानता जिन्हें मैं समझता हूं: बड़ा पुरस्कार और प्रश्न है! अन्य चीजें गणित और कंप्यूटर विज्ञान के कनेक्शन को प्रस्तुत करती हैं जैसे: समीकरणों को हल करना, कंप्यूटर का उपयोग करके समाधानों की जांच करना।

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


-2

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

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