सरल कोड की <10 पंक्तियों में आप सबसे अच्छी बात क्या कर सकते हैं? शुरुआती लोगों को प्रेरित करने में मेरी मदद करें! [बन्द है]


406

मैं सबसे सरल चीज़ की तलाश में हूं जो आप सरल कोड की कुछ पंक्तियों में कर सकते हैं। मुझे यकीन है कि आप 15 लाइनों में हास्केल में सेट एक मैंडेलब्रोट लिख सकते हैं, लेकिन इसका पालन करना मुश्किल है।

मेरा लक्ष्य छात्रों को प्रेरित करना है कि प्रोग्रामिंग शांत है

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

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

यहां एक उदाहरण दिया जा रहा है कि मैं क्या देख रहा हूं: आपके कंप्यूटर पर आपसे बात करने के लिए एक 1-लाइन वीबीएस स्क्रिप्ट:

CreateObject("sapi.spvoice").Speak InputBox("Enter your text","Talk it")

मैं संचालन के क्रम को प्रदर्शित करने के लिए इसका उपयोग कर सकता हूं। मैं कोड दिखाऊंगा, उन्हें इसके साथ खेलने दूंगा, फिर समझाऊंगा कि उस लाइन में बहुत कुछ चल रहा है, लेकिन कंप्यूटर इसे समझ सकता है, क्योंकि यह नियमों को जानता है। फिर मैं उन्हें कुछ इस तरह दिखाऊंगा:

4(5*5) / 10 + 9(.25 + .75)

और आप देख सकते हैं कि पहले मुझे करने की आवश्यकता है (5 * 5)। तब मैं 4 के लिए गुणा कर सकता हूं। और अब मैंने ऑब्जेक्ट बनाया है। 10 से विभाजित करना बोल के रूप में एक ही है - मैं एक वस्तु होने से पहले बोल नहीं सकता, और मैं 100 से पहले विभाजित नहीं कर सकता। तब दूसरी तरफ मैं पहली बार एक इनपुटबॉक्स बनाता हूं जिसमें इसे प्रदर्शित करने के लिए कुछ निर्देश हैं। । जब मैं इनपुट बॉक्स पर दर्ज करता हूं, तो यह मूल्यांकन करता है या मैंने जो भी दर्ज किया है वह "रिटर्न" करता है। (संकेत: 'oooooo' एक मज़ेदार आवाज़ करता है) इसलिए जब मैं बोलता हूं तो दाईं ओर वही होता है जो बोलना है। और मुझे वह इनपुटबॉक्स से मिलता है।

इसलिए जब आप एक पंक्ति में कई काम करते हैं, जैसे:

x = 14 + y;

आपको चीजों के क्रम के बारे में पता होना चाहिए। पहले हम 14 और y जोड़ते हैं। फिर हम एक्स में परिणाम (यह क्या मूल्यांकन करता है, या रिटर्न करता है) डालते हैं।

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

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


102
मुझे लगता है कि प्रोग्रामिंग सिखाने के बारे में सवाल उत्कृष्ट और गैर-तुच्छ हैं। जो आप करने की कोशिश कर रहे हैं उसके साथ शुभकामनाएँ।
माइक डनलैवी

6
"मेरा लक्ष्य छात्रों को प्रेरित करना है कि प्रोग्रामिंग शांत है।" मुझे नहीं लगता कि आप बता सकते हैं कि लोग शांत हैं। या तो वे इसे पसंद करते हैं, या वे नहीं करते हैं।
रिक

2
आपकी एक लाइन VBS स्क्रिप्ट मेरे मैक पर काम नहीं करती है! :-P अच्छा सवाल है।
जॉन टॉपले

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

5
83 लोगों ने इस टिप्पणी के बारे में टिप्पणी की कि यह प्रश्न "उत्कृष्ट और गैर-तुच्छ" है ... 5 लोगों द्वारा "रचनात्मक नहीं" के रूप में बंद किया गया, जो स्पष्ट रूप से असहमत हैं। शक्ति भव्य नहीं है?
rg88

जवाबों:


78

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

आने वाली कुछ पंक्तियाँ स्क्रीन पर मर्लिन चरित्र को प्रदर्शित करेंगी, चारों ओर उड़ेंगी, आपका ध्यान आकर्षित करने के लिए स्क्रीन पर दस्तक देंगी, और नमस्ते करें।

agentName = "Merlin"
agentPath = "c:\windows\msagent\chars\" & agentName & ".acs"
Set agent = CreateObject("Agent.Control.2")

agent.Connected = TRUE
agent.Characters.Load agentName, agentPath
Set character = agent.Characters.Character(agentName)

character.Show

character.MoveTo 500, 400
character.Play "GetAttention"
character.Speak "Hello, how are you?"
Wscript.Sleep 15000
character.Stop
character.Play "Hide"

ऐसे कई बेहतरीन कमांड हैं जिनका आप उपयोग कर सकते हैं। चेकअधिक जानकारी के लिए http://www.microsoft.com/technet/scriptcenter/funzone/agent.mspx

EDIT 2011-09-02 मुझे हाल ही में पता चला कि Microsoft Agent विंडोज 7 पर मूल रूप से स्थापित नहीं है। हालांकि, इसे यहां एक अलग डाउनलोड के रूप में पेश किया गया है । मैंने इसका परीक्षण नहीं किया है इसलिए यह सत्यापित नहीं कर सकता है कि यह संचालित होता है या नहीं।


वह तो कमाल है। यह अधिक उत्थान के योग्य है।
टॉम रिटर

मान्यता टॉम के लिए धन्यवाद। बेकार है कि मैं कोई प्रतिनिधि अंक मिल जाएगा, भले ही यह upvotes हालांकि शुरू होता है। :-P
बॉब मैक

32
इस तरह आप हर समय
कागज़ात

8
@ याकूब बेसिक एक शुरुआती भाषा है। VB BASIC नहीं है । VB स्विस सेना का चाकू है जिसे उस समय की आवश्यकता के अनुरूप बनाने के लिए MS बनाया गया था। आजकल, इसकी जगह लेने के लिए बहुत बेहतर (बहुत अधिक विशिष्ट) उपकरण हैं। VB एक खराब भाषा नहीं है, इसमें बहुत अधिक सामान है। अगर मुझे एक पूरी तरह से निष्पक्ष कारण देना था तो इसका उपयोग क्यों नहीं करना चाहिए, ऐसा इसलिए होगा क्योंकि एमएस धीरे-धीरे वीबी के लिए समर्थन छोड़ रहा है। यह मरने वाली भाषा है। बस प्रतीक्षा करें टिल ऑफिस स्क्रिप्टिंग जावास्क्रिप्ट के साथ किया जाता है (जो निकट भविष्य में योजनाबद्ध है) फिर वीबी की गिरावट एक निश्चित चीज होगी।
इवान प्लाइस

3
@ इवान - निष्पक्ष जवाब के लिए धन्यवाद, बजाय कुछ धार्मिक पेंच के। अच्छी तरह से किया। Office जावास्क्रिप्ट चाल के बारे में नहीं सुना था। जांच करेंगे।
बॉब मैक

339

इस कोड को अपने एड्रेस बार (अपने ब्राउज़र में) में दर्ज करें और एंटर दबाएँ। फिर आप वेबपृष्ठ की सभी सामग्री को संपादित कर सकते हैं!

javascript:document.body.contentEditable='true'; document.designMode='on'; void 0

यह सबसे अच्छा "वन-लाइनर" मुझे पता है =)


95
"वन-लाइनर" एक ऐसा मिथ्या नाम है। यह 3 पंक्तियाँ हैं, वास्तव में। यदि आप चाहते हैं कि कोई भी कोड एक पंक्ति हो सकती है।
असंतुष्टगीतगृह

5
यह वास्तव में साफ-सुथरा दिखता है, लेकिन क्या पृष्ठ को संशोधित करने के बाद इसे प्राप्त करने का कोई तरीका है?
सिल्वरड्रेग

51
मुझे यह बहुत पसंद है, मैंने आपके लिए ९९९९९९९९९ बार उतारा !! img707.imageshack.us/img707/4843/jshack.png
JRL

4
फ़ायरफ़ॉक्स में जावास्क्रिप्ट के रूप में यह अब सही नहीं है: निष्क्रिय कर दिया गया है। शर्म की बात।

2
@DisgruntledGoat, javascript:और void 0के बराबर: बॉयलरप्लेट हैं int main() {और return 0; }सी में और अन्य दो पंक्तियों सिर्फ अलग ब्राउज़र एपीआई कि एक ही बात कर रहे हैं: पहला आईई एपीआई है, दूसरा नेटस्केप एपीआई है। HTML5 का उपयोग करता है contentEditable, इसलिए जब तक आप फ़ायरफ़ॉक्स 1.5 या कुछ का समर्थन करने के बारे में परवाह नहीं करते हैं, तब तक वास्तविक कोड मात्रा:document.body.contentEditable='true';
Zarel

201

जब मैंने पहली बार यह लिखा था।

10 PRINT "What is your name?"
20 INPUT A$
30 PRINT "Hello " A$
40 GOTO 30

इसने लोगों को उड़ा दिया! कंप्यूटर को उनका नाम याद था!

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


15
निम्नलिखित के साथ बेहतर होगा: 40 गोटो 30
खर्चा

8
उपयोगकर्ता नाम प्रदर्शित करने के लिए +1, लोग हमेशा अपने स्वयं के नाम को प्रदर्शित करना पसंद करते हैं। @saa, यह कैसे एक अनंत प्रिंट लूप नहीं है? यह वापस रेखा 30 पर जाता है, रेखा 20 नहीं।
z -

13
10 गोटो होना चाहिए तो किसी और नाम से प्रवेश कर सकते हैं ...
उमर कूजी

17
आप 35 PRINT CHR $ (7) भूल गए
एडम जस्क्यूविज़

6
इस तरह मैंने प्रोग्रामिंग भी सीखी। इसका सबसे अच्छा जवाब imo है। इसे स्वीकार करने के लिए +1
क्लिक करें

180

PHP - Sierpinski गैसकेट उर्फ ​​Triforce

ठीक है, यह कोड की 15 लाइनें है लेकिन परिणाम बहुत बढ़िया है! इस तरह के सामान ने मुझे एक बच्चा होने पर बाहर कर दिया। यह PHP मैनुअल से है:

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' =>  10);
$corners[1] = array('x' =>   0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0); 

for ($i = 0; $i < 100000; $i++) {
  imagesetpixel($gd, round($x),round($y), $red);
  $a = rand(0, 2);
  $x = ($x + $corners[$a]['x']) / 2;
  $y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

Sierpinski गैसकेट


25
रिकॉर्ड के लिए, यह एक Sierpinski गैसकेट है।
अराजकता

6
यह भयानक है, लेकिन मुझे लगता है कि यह पाठ्यक्रम के बीच में आना चाहिए, क्योंकि यह कई अवधारणाओं पर आधारित है, जैसे लूप और सरणियां।
माइक डनलैवी

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

18
रिकॉर्ड के लिए, यह एक Sierpinski गैसकेट नहीं है ... यह वास्तव में, Triforce है। en.wikipedia.org/wiki/The_Legend_of_Zelda
jason

2
यह कोड मुझे अजीब लगता है क्योंकि मैं इसे सामान्य रूप से पुनरावृत्ति के साथ देखता हूं (कोड की बहुत कम पंक्तियों के साथ)। वास्तव में, फ्रैक्टल्स कंप्यूटर विज्ञान कक्षाओं में पुनरावृत्ति के लिए एक अच्छा परिचय है। लेकिन यह मेरे लिए ऐसा लगता है कि यह कोड काफी अकुशल होगा, अपने यादृच्छिक दृष्टिकोण के कारण बहुत सारे पिक्सेल की पेंटिंग और पुनरावृत्ति करेगा।
स्टीव वॉर्थम

105

Microsoft के पास " बेसिक ", "बच्चों" के लिए एक आईडीई है।

pic = Flickr.GetRandomPicture("beach")
Desktop.SetWallpaper(pic)

यह विशेष रूप से यह दिखाने के लिए डिज़ाइन किया गया है कि प्रोग्रामिंग कितनी अच्छी है।


80
यह वास्तव में बेकार है, क्योंकि ये पुस्तकालय कॉल जादू की तरह लगते हैं। आप उन्हें VB स्क्रिप्ट किडिज़ होने के लिए सेट कर रहे हैं। मुझे डर है कि वे उस "काले जादू" क्षेत्र में दुबके नहीं होंगे, और "सुरक्षित" प्लंबिंग क्षेत्र पर रहेंगे। ... ओह एक लाइन में इंटरनेट ब्राउज़र बनाने के लिए यहां देखें! MSIEControl (.. blabla जो कुछ भी ...) दिखाने ()।
Hasen

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

28
@ जेसेन जे, अनुचित, हर किसी को कहीं न कहीं शुरू करना है।
जॉन फैरेल

30
यह बच्चों के लिए एक सीएस डिग्री नहीं है यह एक प्रोग्रामिंग खिलौना है। जो कुछ भी गेटवे बच्चों को प्रोग्रामिंग के मज़ेदार पक्ष को देखने के लिए हो रहा है, वह बहुत बढ़िया है, इसे एएसएम होने की आवश्यकता नहीं है।
Copas

29
जिन बच्चों को मैंने सिखाने की कोशिश की है, उनके बारे में जानने से पहले यह लगभग दस सेकंड का समय होगा जब वे पिक्स की कोशिश करेंगे = Flickr.GetRandomPicture ("बूब्स")
Iain Galloway

83

मुझे लगता है कि लोग ऐसे सामानों से प्रभावित होते हैं जिनसे वे संबंधित हो सकते हैं या उनके जीवन के लिए प्रासंगिक है। मैं कोशिश करूँगा और कोड की 10 पंक्तियों को आधार बनाऊंगा, जो वे जानते और समझते हैं। उदाहरण के लिए, ट्विटर और उसके एपीआई को ही लें। क्यों इस एपीआई का उपयोग कुछ शांत बनाने के लिए नहीं है। कोड की निम्नलिखित 10 लाइनें ट्विटर से "सार्वजनिक समयरेखा" लौटाएंगी और इसे कंसोल एप्लिकेशन में प्रदर्शित करेगी ...

using (var xmlr = XmlReader.Create("http://twitter.com/statuses/public_timeline.rss"))
    {
        SyndicationFeed
            .Load(xmlr)
            .GetRss20Formatter()
            .Feed
            .Items        
            .ToList()
            .ForEach( x => Console.WriteLine(x.Title.Text));
    }

मेरा कोड नमूना आपके छात्रों के लिए सर्वोत्तम नहीं हो सकता है। यह C # में लिखा गया है और .NET 3.5 का उपयोग करता है। इसलिए यदि आप उन्हें PHP, Java, या C ++ सिखाने जा रहे हैं तो यह उपयोगी नहीं होगा। हालाँकि, मेरा कहना यह है कि कोड की 10 पंक्तियों को कुछ "शांत, दिलचस्प, और छात्रों के लिए प्रासंगिक बनाने से जोड़कर आपका नमूना भी शांत, दिलचस्प और प्रासंगिक हो जाता है।"

सौभाग्य!

[हाँ, मुझे पता है कि मैंने बयानों और मुख्य विधि का उपयोग करने की कुछ पंक्तियों को याद किया है, लेकिन मैं अनुमान लगा रहा हूं कि 10 लाइनों को शाब्दिक रूप से 10 पंक्तियों की आवश्यकता नहीं है]


यह वास्तव में साफ है! मैं SyndicationFeed ऑब्जेक्ट से परिचित नहीं था - कोड के लिए धन्यवाद!
ताड डोनघे

टारगेट ऑडियंस नॉन-गीक्स, एर्गो होते हैं, वे ट्वीटर के बारे में कोई जानकारी नहीं देते?
Peufeu

80

यह एक पायथन टेलनेट सर्वर है जो यूजर्स का नाम पूछेगा और उन्हें हैलो कहेगा। यह अच्छा लग रहा है क्योंकि आप नेटवर्क पर एक अलग कंप्यूटर से अपने प्रोग्राम के साथ संवाद कर रहे हैं।

from socket import *
s=socket(AF_INET, SOCK_STREAM)
s.bind(("", 3333))
s.listen(5)
while 1:
   (c, a) = s.accept()
   c.send("What is your name? ")
   name = c.recv(100)
   c.send("Hello "+name)
   c.close()

68

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

कोड की 10 लाइनों में एक साधारण कैलकुलेटर? क्यों? मुझे उसके लिए एक TI-86 मिला है।

एक स्क्रिप्ट जो एक छवि पर विशेष प्रभाव लागू करती है? यही फोटोशॉप के लिए है। और फ़ोटोशॉप आपको 10 लाइनों में कुछ भी कर सकता है।

कैसे एक सीडी तेजस्वी और एमपी 3 के लिए फ़ाइल परिवर्तित करने के बारे में? उह, मेरे पास पहले से ही 50,000 गाने हैं जो मुझे बिटटोरेंट से मिले हैं। वे पहले से ही एमपी 3 प्रारूप में हैं। मैं उन्हें अपने iPhone पर खेलता हूं। वैसे भी सीडी कौन खरीदता है?

प्रोग्रामिंग के लिए समझदार उपयोगकर्ताओं को पेश करने के लिए, आपको कुछ ऐसा ढूंढना होगा:

क) वे दिलचस्प और शांत पाते हैं, और ख) कुछ ऐसा है जो वे पहले से ही नहीं कर सकते हैं।

मान लें कि आपके छात्रों के पास पहले से ही सबसे महंगे सॉफ़्टवेयर तक पहुंच है। उनमें से कई के पास Adobe CS5.5 का पूर्ण संस्करण है (खुदरा मूल्य: $ 2,600; वास्तविक मूल्य: मुफ़्त) और आसानी से कोई भी आवेदन प्राप्त कर सकते हैं जो आपके विभाग के बजट को तोड़ देगा।

लेकिन उनमें से अधिकांश को पता नहीं है कि यह "कंप्यूटर सामान" वास्तव में कैसे काम करता है।

वे एक अविश्वसनीय रचनात्मक गुच्छा हैं: वे चीजें बनाना पसंद करते हैं। वे बस ऐसा करना चाहते हैं या ऐसा कुछ कर सकते हैं जो उनके दोस्त नहीं कर सकते। वे कुछ डींग मारना चाहते हैं।

यहाँ कुछ चीजें हैं जो मैंने अपने छात्रों के साथ प्रतिध्वनित की हैं:

  • HTML और CSS। उनसे वे सीखते हैं कि माइस्पेस थीम कैसे काम करती है और उन्हें कस्टमाइज़ कर सकती है।
  • Mashups। वे सभी उन्हें देख चुके हैं, लेकिन उन्हें बनाना नहीं जानते। याहू की जाँच करें ! पाइप । आरएसएस, एक्सएमएल, टेक्स्ट फ़िल्टरिंग, मैपिंग और विज़ुअलाइज़ेशन जैसे बहुत से देखने योग्य क्षण हैं। पूरा किए गए मैशप विजेट्स को वेब पेजों में एम्बेड किया जा सकता है।
  • कलाकृति। पर देखो विषय से मुक्त कला । सुंदर चित्र बनाने के लिए पुनरावृत्ति और यादृच्छिककरण प्रमुख हैं।
  • कहानी कहने। ऐलिस की तरह एक आसानी से उपयोग किए जाने वाले 3 डी प्रोग्रामिंग वातावरण के साथ , उच्च गुणवत्ता वाली, आकर्षक कहानियों को बनाना आसान है, ड्रैग-एंड-ड्रॉप से ​​अधिक कुछ भी नहीं।

इनमें से कोई भी पारंपरिक अर्थों में किसी भी प्रोग्रामिंग को शामिल नहीं करता है। लेकिन वे शक्तिशाली पुस्तकालयों का लाभ उठाते हैं। मैं उन्हें एक अलग तरह की प्रोग्रामिंग के रूप में सोचता हूं।


11
+1 मुझे अच्छा लगा कि आपने इन दिनों बच्चों को कैसे वर्णित किया, जिनके पास
बिटोरेंट

अजगर में एक सरल द्विआधारी खोज एल्गोरिथ्म लिखें। यह कैसे काम करता है, यह वर्णन करने के लिए आधे से कई बार फोन बुक फाड़ें। यह प्रोग्रामिंग का सरल-अभी तक शक्तिशाली पहलू है जिसे अनुभवी प्रोग्रामर अक्सर अनदेखा करते हैं और नौसिखिए दिखते हैं @ खौफ में। अधिकांश लोगों को एहसास नहीं होता है कि उनके मॉनिटर 60-120 / सेकंड के मॉनिटर पर कम से कम आधे पिक्सेल को ताज़ा करते हैं। मानव बनाम कंप्यूटर की गति दौड़। मजेदार चीजें। : अधिक विचारों के लिए यह देखने academicearth.org/courses/introduction-to-computer-science-i : और, आप जो भी करते हैं ... अपनी पहली भाषा के रूप में उन्हें एएनएसआई सी सिखाना नहीं है। मैं वहाँ गया, यह चूसा।
इवान प्लाइस

3
यदि आप साइटों को कस्टमाइज़ कर रहे हैं, तो Greasemonkey का उपयोग क्यों नहीं करें?
new123456

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

@JeffWelling अच्छी तरह से फ़ोटोशॉप के साथ आप बैचों और क्रियाओं को किसी भी संख्या में फ़ाइलों में उन परिवर्तनों को करने के लिए कर सकते हैं। यह आश्चर्यजनक है कि कंप्यूटर के साथ इन दिनों के लिए कितना लिया जाता है।
जॉन

63

मैंने एक बड़ा पसंदीदा (GWBASIC में) पाया है:

10 input "What is your name ";N$
20 i = int(rnd * 2)
30 if i = 0 print "Hello ";N$;". You are a <fill in insult number 1>"
40 if i = 1 print "Hello ";N$;". You are a <fill in insult number 2>"

मैंने पाया है कि छात्रों के पास कुछ अवधारणाएँ हैं जिन्हें ठीक करने की आवश्यकता है।

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

अपनी कक्षा के साथ अच्छे भाग्य। मुझे यकीन है कि आप अच्छा करेंगे।

PS मुझे यकीन है कि आप यह समझते हैं कि सामग्री और कौशल के साथ, आप एक दृष्टिकोण भी सिखा रहे हैं, और यह उतना ही महत्वपूर्ण है।


आधुनिक दिन के कंप्यूटर एक समय में एक से अधिक काम करते हैं।
ड्रीमलैक्स

लेकिन, क्या आपका कोड एक बार में एक से अधिक काम करता है?
जेएफओ

5
@dreamlax: आप सही कह रहे हैं, लेकिन चलो बालों को विभाजित नहीं करते हैं। हम बच्चों को कंप्यूटर शुरू करने और उन्हें बुनियादी मानसिक निर्माण ब्लॉक देने के बारे में बात कर रहे हैं। समानांतरवाद बाद में आ सकता है।
माइक डनलैवी

1
@Ben S: क्या आपने किसी भी मौके पर लाइन 10 के सामने की जगह को हटा दिया? मैंने इसे रखा था क्योंकि ऐसा लगता है कि एसओ फॉर्मेटर 1 स्थान से पहली पंक्ति को अन-सेंध लगाता है। मुझे आश्चर्य है कि क्या कोड लाइन बनाने का एक बेहतर तरीका है?
माइक डनलैवी

2
@ स्टॉपज: गोश! वास्तव में? :-) ड्रीमलैक्स ने एक ही बिंदु बनाया। बात यह है कि, जब आप ऐसे लोगों के साथ काम कर रहे होते हैं जिन्हें कंप्यूटर के बारे में कुछ नहीं पता होता है, तो उन्हें ऐसा लगता है जैसे सब कुछ एक ही बार में होता है, इसलिए हम बाल काटे बिना, उस पर आ जाते हैं। तो वास्तव में एक मूल अवधारणा है "पहले यह ए करता है, फिर यह बी करता है, और इसी तरह।"
माइक डनलैवी

62

यह सी-कोड शायद आपत्तिजनक हो, लेकिन मैंने इसे बहुत शक्तिशाली पाया

#include <unistd.h>
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<L?--_
%6:6:7)+"World! \n",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}

और यहाँ परिणाम है ... केवल 3 लाइनों में ... एक तरह का भग्न Hello World...

WWWWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWooooooooooooooooorrrrrrrrrrrrrrrrrrrrroooooooooooooooooooooooooooo
WWWWWWWWWWWoooooooooooorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrooooooooooooooooooooo
WWWWWWWWWWooooooooorrrrrrrrrrrrrrrrrrrrrrrllllld!!ddllllrrrrrrooooooooooooooooo
WWWWWWWWoooooooorrrrrrrrrrrrrrrrrrrrrrllllllldd!oWW!!dllllllrrrrroooooooooooooo
WWWWWWWoooooorrrrrrrrrrrrrrrrrrrrrrlllllllldddd!orro!o!dllllllrrrrrrooooooooooo
WWWWWWooooorrrrrrrrrrrrrrrrrrrrrllllllllldddd!WorddddoW!ddllllllrrrrrrooooooooo
WWWWWoooorrrrrrrrrrrrrrrrrrrrrlllllllllddd!!!o!!!   !dWW!ddddllllrrrrrrrooooooo
WWWWooorrrrrrrrrrrrrrrrrrrrllllllllldd!!!!WWWoo      WloW!!!ddddllrrrrrrrrooooo
WWWWoorrrrrrrrrrrrrrrrrrrlllllllddddWldolrrlo!Wl     r!dlooWWWoW!dllrrrrrrroooo
WWWoorrrrrrrrrrrrrrrrrlllllddddddd!!Wdo  l!               rdo!l!r!dlrrrrrrrrooo
WWoorrrrrrrrrrrrrrrlllddddddddd!!!!oolWW                       lW!ddlrrrrrrrroo
WWorrrrrrrrrrrrllld!!!!!dddd!!!!WWrd !                        rlW!ddllrrrrrrrro
Worrrrrrrllllllddd!oooWWWoloWWWWoodr                           drrWdlllrrrrrrrr
Worrrlllllllldddd!WolWrr!!dWWWlrrldr                            ro!dlllrrrrrrrr
Wrrllllllllddddd!WWolWr        oWoo                              r!dllllrrrrrrr
Wlllllllldddd!!odrrdW            o                              lWddllllrrrrrrr
Wlddddd!!!!!WWordlWrd                                          oW!ddllllrrrrrrr
olddddd!!!!!WWordlWrd                                          oW!ddllllrrrrrrr
Wlllllllldddd!!odrrdW            o                              lWddllllrrrrrrr
Wrrllllllllddddd!WWolWr        oWoo                              r!dllllrrrrrrr
Worrrlllllllldddd!WolWrr!!dWWWlrrldr                            ro!dlllrrrrrrrr
Worrrrrrrllllllddd!oooWWWoloWWWWoodr                           droWdlllrrrrrrrr
WWorrrrrrrrrrrrllld!!!!!dddd!!!!WWrd !                        rlW!ddllrrrrrrrro
WWoorrrrrrrrrrrrrrrlllddddddddd!!!!oolWW                       lW!ddlrrrrrrrroo
WWWoorrrrrrrrrrrrrrrrrlllllddddddd!!Wdo  l!               rdo!l!r!dlrrrrrrrrooo
WWWWoorrrrrrrrrrrrrrrrrrrlllllllddddWldolrrlo!Wl     r!dlooWWWoW!dllrrrrrrroooo
WWWWooorrrrrrrrrrrrrrrrrrrrllllllllldd!!!!WWWoo      WloW!!!ddddllrrrrrrrrooooo
WWWWWoooorrrrrrrrrrrrrrrrrrrrrlllllllllddd!!!o!!!   WdWW!ddddllllrrrrrrrooooooo
WWWWWWooooorrrrrrrrrrrrrrrrrrrrrllllllllldddd!WorddddoW!ddllllllrrrrrrooooooooo
WWWWWWWoooooorrrrrrrrrrrrrrrrrrrrrrlllllllldddd!orro!o!dllllllrrrrrrooooooooooo
WWWWWWWWoooooooorrrrrrrrrrrrrrrrrrrrrrllllllldd!oWW!!dllllllrrrrroooooooooooooo
WWWWWWWWWWooooooooorrrrrrrrrrrrrrrrrrrrrrrllllld!!ddllllrrrrrrooooooooooooooooo
WWWWWWWWWWWoooooooooooorrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrooooooooooooooooooooo
WWWWWWWWWWWWWooooooooooooooooorrrrrrrrrrrrrrrrrrrrroooooooooooooooooooooooooooo
WWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWWWooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWWWWWWoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
WWWWWWWWWWWWWWWWWWWWWoooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

5
अच्छा! बहुत बुरा वहाँ पर कोई जगह नहीं है कि वास्तव में "हैलो वर्ल्ड!"
पोंगडूडल

यह प्यारा है! मैंडलब्रॉट मॉडल: D
अनिकेत

45

यह दिखाने के बारे में कि आप किसी वेब ब्राउज़र को कैसे ले सकते हैं और जावास्क्रिप्ट को एड्रेस बार में दर्ज कर सकते हैं और निष्पादित करने के लिए कोड प्राप्त कर सकते हैं?

संपादित करें: बहुत सारी छवियों वाले पृष्ठ पर जाएं और पता बार में यह प्रयास करें:

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++ }setInterval('A()',5); void(0)

2
ठीक है, लेकिन आप एक ठोस उदाहरण यू पता देना चाहिए ..
Hasen

1
@ जॉन: कृपया, एक ठोस उदाहरण दें। मैंने केवल जेएस फाइल को निर्यात करके अपने सर्वर में जेएस का उपयोग किया है। मैंने अपने एड्रेस बार में कभी भी कोड नहीं डाला है।
लेओ लेपोल्ड हर्ट्ज़ '

7
अच्छी तरह से एक बहुत ही रोमांचक उदाहरण नहीं है, लेकिन आप जावास्क्रिप्ट कर सकते हैं: सतर्क ("हैलो वर्ल्ड");
जॉन टॉपले

मैं पसंद करता हूँ: "javascript: for (var i = 0; i> -1; i ++) अलर्ट ('बधाई हो, आपने' + i + 'बार!') के लिए एंटर दबाया है।"; (चलाने से पहले उस कोड को पढ़ें ...)। ^ ^
अर्निस लैप्सा

वाह-कारक के लिए +1 ... बहुत शानदार उदाहरण :)
fretje

37

आप एक आवेदन कर सकते हैं जो एक यादृच्छिक संख्या चुनता है। और आपको इसका अनुमान लगाना होगा। यदि आप गलत हैं तो यह कहता है: उच्च या निम्न। और अगर आपने इसका अनुमान लगाया है, तो एक अच्छा संदेश।

छात्रों के लिए खेलना अच्छा है।

उचित त्रुटि जाँच के बिना सरल पायथन संस्करण:

import random

while input('Want to play higher/lower? ').lower().startswith('y'):
    n = random.randint(1, 100)
    g = int(input('Guess: '))

    while g != n:
        print('  %ser!' % (g > n and 'low' or 'high'))
        g = int(input('Guess: '))

    print('  Correct! Congratulations!')

एरिक का सुझाव है कि कंप्यूटर को संख्या का अनुमान लगाना चाहिए। यह कोड की 10 लाइनों के भीतर भी किया जा सकता है (हालांकि अब उचित त्रुटि की कमी की जांच और भी गंभीर है: सीमा के बाहर वैध संख्या एक अनंत लूप का कारण बनती है):

while input('Want to let the pc play higher/lower? ').lower().startswith('y'):
    n = int(input('Give a number between 1 and 100: '))
    lo, hi, guess, tries = 1, 100, 50, 1

    while guess != n:
        tries += 1
        lo, hi = (guess + 1, hi) if guess < n else (lo, guess - 1)
        guess = (lo + hi) // 2

    print('Computer guessed number in %d tries' % tries)

4
अधिक दिलचस्प यह होगा कि उपयोगकर्ता यादृच्छिक संख्या को चुनें, फिर कंप्यूटर को यह अनुमान लगाना चाहिए।
एरिक फोर्ब्स

15
अब इन दोनों कार्यक्रमों को एक सॉकेट के ऊपर एक दूसरे को चलायें।
जोश ली

3
यह बेहतर होगा यदि कंप्यूटर को सीधे नंबर नहीं दिया गया था। आपको उपयोगकर्ता को "1 और 100 के बीच की संख्या चुनना" बताना चाहिए। फिर आउटपुट "मुझे 50 का अनुमान है", और इनपुट के लिए पूछें ("उच्च", "निचला", या "सही") और अपने अनुमान को परिष्कृत करें।
पोंगडूडल

मैंने अपने बेटे (9) के साथ ऐसा किया है और इसे एल्गोरिथम सोच में शामिल होने का भी फायदा है, कम से कम अनुमानों में सही संख्या खोजने के लिए सबसे अच्छी रणनीति क्या है।
mbesso

मुझे लगता है कि आप raw_input चाहते हैं। इनपुट के बराबर है eval(raw_input(prompt))। देखें इनपुट
जेफ कौफमैन

26

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

छात्रों और शिक्षक को इसमें से एक अच्छी किक मिली।

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


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

मुझे ऐसा कुछ याद है .. लेकिन यह फ्लैश में था .. और सवाल था "क्या आप समलैंगिक हैं?" .. और बटन एक आतिशबाजी की घटना के सेट पर क्लिक करते हुए।
ग्लास्ंट

2
यह टैब और अंतरिक्ष के माध्यम से लोगों को नेविगेट करने के लिए सिखाने के लिए एक दिलचस्प समय होगा।
दाविदाहिन्स

23

जब मैंने पहली बार बैश फॉरबॉम्ब का पता लगाया, तो मुझे लगा कि यह वास्तव में मीठा है। इतना सरल, अभी तक साफ है कि यह क्या कर सकता है:

:(){ :|:& };:

7
यहाँ एक बहुत अच्छी व्याख्या है: cyberciti.biz/faq/understanding-bash-fork-bomb
hodgesmr

12
लिनक्स के नए लोगों के लिए: दौड़ो मत, वरना तुम अपना सारा काम ढीला कर दोगे।
बेहरोज जूल

@ बेहरोज़, आपके डिस्ट्रो पर निर्भर करता है, कुछ में मनमाने ढंग से थ्रेड / फोर्क सीमाएँ बनी होती हैं।
रेज़र स्टॉर्म

यह SuSE पर एक बड़ा धमाका करता है, लेकिन अधिकांश डेबियन आधारित डिस्ट्रोस पर कुछ नहीं करता है।
बेहरोज़

वह, साथ ही उपयोगकर्ता सीमाएँ, आपकी डिस्क कैश कितनी बार फ्लश की जाती है, आपका फाइल सिस्टम ...
new123456

22

यह धोखा दे रहा है, और दूर से भी सरल नहीं है, लेकिन मैंने एक बार Allegro ग्राफिक्स लाइब्रेरी का उपयोग करके C ++ की 20 लाइनों में एक shoot'em लिखा था। एक पंक्ति क्या थी, इसके लिए कोई वास्तविक मानदंड नहीं है , लेकिन यह थोड़ा पहले था, और इसे विशुद्ध रूप से मनोरंजन के लिए बनाया गया था। यहां तक ​​कि इसमें क्रूड साउंड इफेक्ट भी था।

यहाँ है कि यह कैसा दिखता है:

20 लाइन्स http://img227.imageshack.us/img227/8770/20linesxx0.png

और यहाँ कोड है ( संकलन करना चाहिए ):

bool inside(int x, int y, int x2, int y2) { return (x>x2&&x<x2+20&&y>y2&&y<y2+10); }
int main() {
  BITMAP* buffer;
  float px,shotx,shoty,monstars[8],first,rnd,pressed,points = 0, maxp = 0;
  unsigned char midi[5] = {0xC0,127,0x90,25,0x54}, plgfx[] = {0,0,0,10,3,10,3,5,6,5,6,10,8,12,10,10,10,5,13,5,13,10,16,10,16,0,13,0,13,2,3,2,3,0,0,0}, mongfx[] = {0,0, 10,5, 20,0, 17,8, 15,6, 10,16, 5,6, 3,8, 0,0};
  allegro_init(), set_color_depth(32), set_gfx_mode(GFX_AUTODETECT_WINDOWED,320,240,0,0), install_timer(), install_keyboard(),  install_mouse(), buffer = create_bitmap(320,240),srand(time(NULL)),install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT,""),clear_to_color(buffer,makecol32(100,100,255));
    while ((pressed=(!key[KEY_Z]&&pressed)?0:pressed)?1:1&&(((shoty=key[KEY_Z]&&shoty<0&&pressed==0?(pressed=1?200:200):first==0?-1:shoty)==200?shotx=px+9:0)==9999?1:1) && 1+(px += key[KEY_LEFT]?-0.1:0 + key[KEY_RIGHT]?0.1:0) && 1+int(px=(px<0?0:(px>228?228:px))) && !key[KEY_ESC]) {
    rectfill(buffer,0,0,244,240,makecol32(0,0,0));
    for(int i=0;i<8;i++) if (inside(shotx,shoty,i*32,monstars[i])) midi_out(midi,5);
        for (int i=0; i<8; monstars[i] += first++>8?(monstars[i]==-100?0:0.02):-100, points = monstars[i]>240?points-1:points, monstars[i]=monstars[i]>240?-100:monstars[i], points = inside(shotx,shoty,i*32,monstars[i])?points+1:points, (monstars[i] = inside(shotx,shoty,i*32,monstars[i])?shoty=-1?-100:-100:monstars[i]), maxp = maxp>points?maxp:points, i++) for (int j=1; j<9; j++) line(buffer,i*32+mongfx[j*2 - 2],monstars[i]+mongfx[j*2-1],i*32+mongfx[j*2],monstars[i]+mongfx[j*2+1],makecol32(255,0,0));
    if (int(first)%2000 == 0 && int(rnd=float(rand()%8))) monstars[int(rnd)] = monstars[int(rnd)]==-100?-20:monstars[int(rnd)]; // randomowe pojawianie potworkow
    if (shoty>0) rectfill(buffer,shotx,shoty-=0.1,shotx+2,shoty+2,makecol32(0,255,255)); // rysowanie strzalu
    for (int i=1; i<18; i++) line(buffer,px+plgfx[i*2 - 2],200-plgfx[i*2-1],px+plgfx[i*2],200-plgfx[i*2+1],makecol32(255,255,0));
    textprintf_ex(buffer,font,250,10,makecol32(255,255,255),makecol32(100,100,255),"$: %i   ",int(points)*10);
    textprintf_ex(buffer,font,250,20,makecol32(255,255,255),makecol32(100,100,255),"$$ %i   ",int(maxp)*10);
    blit(buffer, screen, 0, 0, 0, 0, 320,240);
  }
} END_OF_MAIN()

5
यह किसी को कुछ भी सिखाने के लिए कैसे माना जाता है? एक असंबंधित नोट पर, शांत! हा! पसन्द आया!
स्लीज़िका

21

इस दिन और उम्र में, जावास्क्रिप्ट यह दिखाने का एक शानदार तरीका है कि आप नोटपैड को वास्तव में कुछ बुनियादी उपकरणों का उपयोग करके कैसे प्रोग्राम कर सकते हैं।

jQuery के प्रभाव अपने दोस्तों को वाह करने के लिए किसी के लिए भी महान शुरुआती बिंदु हैं!

इस एक में, पृष्ठ के सफेद स्थान पर क्लिक करें।

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(document.body).click(function () {
  if ($("#pic").is(":hidden")) {
    $("#pic").slideDown("slow");
  } else {
    $("#pic").slideUp();
  }
});
</script>
</head>
<body><img id="pic" src="http://www.smidgy.com/smidgy/images/2007/07/26/lol_cat_icanhascheezburger.jpg"/>
</body>
</html>

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

1
मुझे नहीं लगता कि लाइब्रेरी का उपयोग करके किसी को काफी सरल भाषा का आधार सिखाना एक अच्छा विचार है। आप इसे आसानी से jQuery का उपयोग किए बिना कर सकते हैं, और शुरुआत के लिए, आपको चाहिए। पुस्तकालय वास्तविक भाषा के लिए एक प्रतिस्थापन नहीं हैं।
कुछ लड़के

जावास्क्रिप्ट के मामले में, jQuery जावास्क्रिप्ट के लिए एक प्रतिस्थापन नहीं है, यह (उच्च चर) डोम के लिए एक प्रतिस्थापन है। जो किसी के लिए भी, एक बड़ी बात है।
क्ज़कई

20

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

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

public class MyFirstJuniorRobot extends JuniorRobot {
 public void run() {
  setColors(green, black, blue);
  // Seesaw forever
  while (true) {
   ahead(100); // Move ahead 100
   turnGunRight(360); // Spin gun around
   back(100); // Move back 100
   turnGunRight(360); // Spin gun around
  }
 }
 public void onScannedRobot() {
  turnGunTo(scannedAngle);
  fire(1);
 }
 public void onHitByBullet() {
  turnAheadLeft(100, 90 - hitByBulletBearing);
 }
}

6
रोबोकोड के बारे में नहीं जानते, लेकिन मैं लोगो का उपयोग करने के बाद कोडिंग में आ गया। आगे, पीछे, बाएँ, दाएँ, आदि का उपयोग करके एक घर बनाने में सक्षम होने के नाते, यह आपको विशाल कार्यों का प्रदर्शन करने वाले सरल निर्देशों की मानसिकता में ले जाता है।
रॉबिन डे

1
हाँ, मैंने प्राथमिक विद्यालय में कंप्यूटर लैब में लोगो सीखा है। मैं उन बच्चों में से एक था, जो सोच से परे था कि वह शांत था, अधिक जानना चाहता था।
ट्रैविस

1
रोबोकोड के लिए +1! मुझे रोबोकोड पसंद है, और हम खुद के बीच प्रतियोगिताओं को करते थे, यह देखने के लिए कि कौन सबसे अच्छे एल्गोरिदम के साथ आएगा
एंड्रियास ग्रीच

18

इसलिए एक दिन, मैंने फैसला किया कि मैं पर्याप्त था। मैं होता पियानो सीखना। एल्टन जॉन जैसे लोगों को देखकर कीबोर्ड की ऐसी महारत ने मुझे विश्वास दिलाया कि मैं यही करना चाहता था।

वास्तव में पियानो सीखना एक बहुत बड़ी गिरावट थी। पियानो सबक के आठ ग्रेड पूरा करने के बाद भी, मैं अभी भी प्रभावित नहीं था कि पियानो बजाने की मेरी मानसिक छवि गतिविधि का आनंद लेने की मेरी मूल दृष्टि से कितनी अलग थी।

हालाँकि, मैंने जो अच्छी तरह से आनंद लिया, वह मेरे संगीत सिद्धांत की असभ्यता के तीन ग्रेड थे। मैंने संगीत के निर्माण के बारे में सीखा। मैं आखिरकार लिखित संगीत का प्रदर्शन करने की दुनिया से अपना खुद का संगीत लिखने में सक्षम था। इसके बाद, मैं वही खेलना शुरू कर पाया जो मैं खेलना चाहता था।


नए प्रोग्रामर, विशेषकर युवा प्रोग्रामरों को चकाचौंध करने की कोशिश न करें। "सरल कोड की दस पंक्तियों से कम" की पूरी धारणा "मुझे कुछ चतुर दिखाओ" की मनोदशा का अहसास कराती है ।

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

मैं एक नया प्रोग्रामर निम्नलिखित पायथन कोड दिखाऊंगा:

input = open("input.txt", "r")
output = open("output.txt", "w")

for line in input:
    edited_line = line
    edited_line = edited_line.replace("EDTA", "ethylenediaminetetraacetic acid")
    edited_line = edited_line.replace("ATP", "adenosine triphosphate")
    output.write(edited_line)

मुझे एहसास है कि मुझे असाइन lineकरने की आवश्यकता नहीं है edited_line। हालाँकि, यह केवल चीजों को स्पष्ट रखने के लिए है, और यह दिखाने के लिए कि मैं मूल दस्तावेज़ का संपादन नहीं कर रहा हूँ।

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

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


17

अन्य टिप्पणीकारों में से अधिकांश की तरह, मैंने गणित की समस्याओं को हल करने के लिए (या वास्तव में भयानक गेम के लिए ग्राफिक्स बनाने के लिए कोड लिखना शुरू किया था जो कि मैं डिजाइन करता हूं - इंडियाना जोन्स बनाम लाश जैसी चीजें)।

क्या वास्तव में मुझे शुरू किया (गणित और प्रोग्रामिंग दोनों पर) पाठ आधारित से जा रहा था, अपने खुद के साहसिक शैली के खेल चुनें ... अधिक ग्राफिक्स-आधारित खेलों के लिए। मैंने ग्राफ़ पेपर और प्लॉटिंग पिक्सल को रंग देना शुरू कर दिया, जब तक कि मैं ज्यामिति में नहीं आ गया ... और पता चला कि कर्व्स और रेखाओं, बक्से आदि के समीकरणों का उपयोग कैसे किया जाए।

मेरा कहना है, मैं वास्तव में प्रसंस्करण ( http://processing.org/ ) जैसी किसी चीज़ में मिल सकता था, जहाँ एक विशिष्ट कार्यक्रम कुछ इस तरह दिखता है:

void setup() 
{
  size(200, 200); 
  noStroke();
  rectMode(CENTER);
}

void draw() 
{   
  background(51); 
  fill(255, 204);
  rect(mouseX, height/2, mouseY/2+10, mouseY/2+10);
  fill(255, 204);
  int inverseX = width-mouseX;
  int inverseY = height-mouseY;
  rect(inverseX, height/2, (inverseY/2)+10, (inverseY/2)+10);
}

मेरे लिए, यह भविष्य का "लोगो" है।

ऐसे आसान "हैलो वर्ल्ड" उदाहरण हैं जो किसी को जल्दी से ड्राइंग और कोड बदल सकते हैं और देख सकते हैं कि चीजें कैसे टूटती हैं और क्या अजीब "दुर्घटनाएं" पैदा हो सकती हैं ... सभी तरह से अधिक उन्नत बातचीत और भग्न निर्माण के लिए ...


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

15

आप AutoIt के साथ लिखी गई स्क्रिप्ट का उपयोग कर सकते हैं , जो एक पारंपरिक एप्लिकेशन और प्रोग्रामिंग का उपयोग करने के बीच की रेखा को धुंधला करता है।

उदाहरण के लिए, एक स्क्रिप्ट जो नोटपैड को खोलता है और अपने स्वयं के कंप्यूटर को उसमें संदेश बॉक्स के माध्यम से उनका अपमान करता है, और फिर अपने कंप्यूटर का कोई निशान नहीं छोड़ता है:

Run("notepad.exe")
WinWaitActive("Untitled - Notepad")
Send("You smell of human.")
Sleep(10000)
MsgBox(0, "Humans smell bad", "Yuck!")
WinClose("Untitled - Notepad")
WinWaitActive("Notepad", "Do you want to save")
Send("!n")

++ मुझे यकीन नहीं है कि यह सबक योजना में कहां फिट होगा, लेकिन यह प्यारा है।
माइक डनलैवी

13

मुझे याद है जब मैंने पहली बार कोडिंग शुरू की तो मुझे हमेशा प्रभावित किया। आप कोड की 5 - 10 पंक्तियाँ (या उससे कम) और सैकड़ों (या फिर जो आप निर्दिष्ट करते हैं) पंक्तियाँ लिखते हैं। (मैंने पहले PHP और Java में सीखा)।

for( int i = 0; i < 200; i++ )
{
   System.out.println( i );
}

13

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

एक उदाहरण के रूप में, यहां "Google दो कॉलम" स्क्रिप्ट है:

result2 = '<table width="100%" align="center" cellpadding="10" style="font-size:12px">';
gEntry = document.evaluate("//li[@class='g'] | //div[@class='g'] | //li[@class='g w0'] | //li[@class='g s w0']",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
for (var i = 0; i < gEntry.snapshotLength; i++) {
  if (i==0) { var sDiv = gEntry.snapshotItem(i).parentNode.parentNode; }
  if(i%2 == 0) { result2 += '<tr><td width="50%" valign="top">'+gEntry.snapshotItem(i).innerHTML+'</td>'; }
  if(i%2 == 1) { result2 += '<td width="50%" valign="top">'+gEntry.snapshotItem(i).innerHTML+'</td></tr>'; }
}
sDiv.innerHTML = result2+'</table>';

if (document.getElementById('mbEnd') !== null) { document.getElementById('mbEnd').style.display = 'none'; }

10

यह एक बहुत ही अल्पविकसित पाठ-आधारित c # कार्यक्रम है जो एक स्लॉट मशीन की कताई कार्रवाई का अनुकरण करता है। इसमें जीतने या नकद भुगतान के विभिन्न प्रकार शामिल नहीं हैं, लेकिन यह छात्रों के लिए एक अच्छा व्यायाम हो सकता है।

क्षमा करें कि यह 10 से अधिक लाइनें हैं।

string[] symbols = new[] { "#", "?", "~" }; // The symbols on the reel
Random rand = new Random();

do
{
    string a="",b="",c="";

    for( int i = 0; i < 20; i++ )
    {
        Thread.Sleep( 50 + 25 * i ); // slow down more the longer the loop runs

        if( i < 10 )
            a = symbols[rand.Next( 0, symbols.Length )];

        if( i < 15 )
            b = symbols[rand.Next( 0, symbols.Length )];

        c = symbols[rand.Next( 0, symbols.Length )];

        Console.Clear();
        Console.WriteLine( "Spin: " + a + b + c );
    }

    if( a == b && b == c )
        Console.WriteLine( "You win. Press enter to play again or type \"exit\" to exit" );
    else
        Console.WriteLine( "You lose. Press enter to play again or type \"exit\" to exit" );
}
while( Console.ReadLine() != "exit" );

9

Tcl के साथ आपके पास कोड के लगभग 12 पंक्तियों में सेव बटन के साथ एक साधारण टेक्स्ट एडिटर है (लेकिन कोई ओपन नहीं, जो कि 8 अन्य लाइनें लेगा)। यह सभी मानक प्लेटफार्मों पर काम करता है:

pack [frame .toolbar] -side top -fill x
pack [button .save -text save -command save] -in .toolbar -side left
pack [scrollbar .vsb -orient vertical -command [list .text yview]] -side right -fill y
pack [text .text -wrap word -yscrollcommand [list .vsb set]] -side left -fill both -expand true
proc save {} {
    set filename [tk_getSaveFile]
    if {$filename ne ""} {
        set f [open $filename w]
        puts $f [.text get 1.0 end-1c]
        close $f
    }
}

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

pack [scrollbar .vsb -orient vertical -command [list .text yview]] -side left -fill y
pack [text .text -wrap word -yscrollcommand [list .vsb set]] -side left -fill both -expand true

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

एक कदम आगे जाने के लिए, दो लाइन स्क्रिप्ट भी अजगर में लिखी जा सकती है, हालांकि इसमें आठ लाइन लगती हैं, फिर भी 10 लाइन नंबर के नीचे:

from Tkinter import *
root=Tk()
text = Text(wrap="word")
sb = Scrollbar(orient="vertical", command=text.yview)
text.configure(yscrollcommand=sb.set)
sb.pack(side="right", fill="y")
text.pack(side="left", fill="both", expand=True)
root.mainloop()

9

कैसे एक बुकमार्कलेट के बारे में? यह उन्हें दिखाएगा कि किसी भी विकास उपकरण की आवश्यकता के बिना हर दिन (इंटरनेट) का उपयोग करने वाली किसी चीज़ में हेरफेर कैसे करें।


मुझे यह सुझाव पसंद है, लेकिन यह एक उदाहरण के साथ बेहतर होगा और इससे क्या सिखाया जा सकता है। जैसे प्रश्न में दिए गए उदाहरण: [कोड] जावास्क्रिप्ट: अलर्ट (4 (5 * 5) / 10 + 9 (.25 +-75)); [/ कोड] ऑपरेशन के क्रम को दिखाने के लिए।
tylermac

8

यदि आप हार्डवेयर का खर्च उठा सकते हैं, तो Arduino Board + प्रोसेसिंग का उपयोग करके कुछ बहुत बढ़िया चीजों का उत्पादन किया जाएगा, हालांकि यह उन लोगों के लिए थोड़ा उन्नत हो सकता है जो प्रोग्रामिंग में बिल्कुल भी रुचि नहीं रखते हैं।


8

मैंने इसके बारे में हाल ही में एक लेख में लिखा था "सबसे छोटा, सबसे उपयोगी कार्यक्रम जो मैंने कभी लिखा है।"

सारांश: मैंने 1996 में एक 3 लाइन VB6 ऐप वापस लिखा था कि मैं अब भी हर एक दिन का उपयोग करता हूं। एक बार एक्सई को "सेंड-इन" फ़ोल्डर में गिरा दिया जाता है। यह आपको एक्सप्लोरर में एक फ़ाइल पर राइट क्लिक करने और क्लिपबोर्ड पर उस फ़ाइल का पूरा पथ भेजने की सुविधा देता है।

Public Sub Main()   
    Clipboard.SetText Command$   
End Sub  

क्यों Clipboard.Clear? यह क्लिपबोर्ड से सभी सामग्री को हटा देता है , यहां तक ​​कि गैर-पाठ डेटा (जैसे छवि डेटा)। यह आमतौर पर वह नहीं है जो आप चाहते हैं।
कोनराड रुडोल्फ

खैर, तब शायद सबसे छोटे कार्यक्रम का वर्तमान आकार आधा होना चाहिए ...
JohnFx

वास्तव में साफ है। मुझे लंबे रास्तों को टाइप करने से नफरत है और फिर आश्चर्य है कि क्या कोई टाइपो है
सिल्वरड्रेग

"आधुनिक" विंडोज़ संस्करणों में AFAIK बिल्कुल वैसा ही होता है जब आप फ़ाइल (Ctrl + C) की प्रतिलिपि बनाते हैं ... बस फ़ाइल नाम की प्रतिलिपि बनाते हैं। क्या कोई यह कोशिश कर सकता है (जैसा कि मेरे पास कोई खिड़की नहीं है)?
opatut

मेरे पास विंडोज 7 है और यह ऐसा नहीं करता है।
जॉनफैक्स

7

यह दिलचस्प है कि आप मंडेलब्रोट सेट का उल्लेख करते हैं, जैसा कि जीडब्ल्यू-बेसिक के साथ भग्न बनाना है, जिसने हाई स्कूल (लगभग 1993) में प्रोग्रामिंग के मेरे प्यार को वापस बढ़ाया। इससे पहले कि हम भग्न के बारे में सीखना शुरू कर दें, हमने उबाऊ मानक विचलन अनुप्रयोगों को लिखा और मैंने अभी भी पत्रकारिता में जाने की योजना बनाई।

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

मुझे आशा है कि आप उस कार्यक्रम को ढूंढेंगे जिसका आपके छात्रों पर समान प्रभाव है।


यह एक सेमेस्टर परियोजना के लिए बहुत अच्छा है। मेरी इच्छा है कि जब मैं पढ़ा रहा था तो मैंने उस समय के बारे में सोचा था।
माइक डनलैवी


6

मुझे यकीन है कि यह कोड की 10 से अधिक लाइनों में बदल जाएगा, लेकिन क्या आपने एक फॉर्म आधारित ऐप पर विचार किया है जहां बटन दबाने से पृष्ठभूमि का रंग बदलने या पाठ का आकार बदलने जैसी चीजें होती हैं? यह उन्हें दिखाता है कि इंटरैक्टिव प्रोग्राम कैसे काम करते हैं। यह उन्हें यह भी दिखाएगा कि वे, प्रोग्रामर के रूप में, कंप्यूटर (कार्यक्रम) क्या करते हैं, इसका पूरा नियंत्रण है।

उम्मीद है कि यह उन्हें अन्य चीजों के लिए सुझाव देने के लिए प्रेरित करेगा जो वे बदल सकते हैं और फिर अन्य चीजों पर वे करना चाह सकते हैं।

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