อะไรคือสิ่งที่เจ๋งที่สุดที่คุณสามารถทำได้ในโค้ดแบบง่าย ๆ <10 บรรทัด? ช่วยฉันสร้างแรงบันดาลใจผู้เริ่มต้น! [ปิด]


406

ฉันกำลังมองหาสิ่งที่ยอดเยี่ยมที่คุณสามารถทำได้ในโค้ดง่ายๆสองสามบรรทัด ฉันแน่ใจว่าคุณสามารถเขียนชุด Mandelbrot ใน Haskell ใน 15 บรรทัดแต่มันยากที่จะติดตาม

เป้าหมายของฉันคือการสร้างแรงบันดาลใจให้นักเรียนว่าการเขียนโปรแกรมเป็นเย็น

เรารู้ว่าการเขียนโปรแกรมนั้นยอดเยี่ยมเพราะคุณสามารถสร้างทุกสิ่งที่คุณจินตนาการ - เป็นทางออกที่สร้างสรรค์ที่สุด ฉันต้องการสร้างแรงบันดาลใจผู้เริ่มต้นเหล่านี้และทำให้พวกเขาได้เรียนรู้ฮัมเพลงเร็วที่สุดเท่าที่จะทำได้

ตอนนี้เหตุผลของฉันเห็นแก่ตัว ฉันกำลังสอนหลักสูตรIntro to Computingให้กับกลุ่มวิชาครึ่งวิศวกรรม 60 สาขาวิชาเอกธุรกิจครึ่งหนึ่ง นักศึกษาทั้งหมด พวกเขาเป็นนักเรียนที่มาจากโรงเรียนมัธยมที่ด้อยโอกาส จากประสบการณ์ที่ผ่านมาของฉันกลุ่มจะแบ่งโดยทั่วไปดังนี้ไม่กี่ร็อคดาว , บางคนที่พยายามอย่างหนักมากและชนิดของการได้รับมันไม่กี่คนที่พยายามอย่างหนักมากและแทบจะไม่ได้รับมันและไม่กี่คนที่ไม่ได้มีการดูแล ฉันต้องการเข้าถึงกลุ่มเหล่านี้ให้ได้มากที่สุดเท่าที่จะทำได้ นี่คือตัวอย่างของวิธีที่ฉันใช้โปรแกรมคอมพิวเตอร์เพื่อสอน:

นี่คือตัวอย่างของสิ่งที่ฉันกำลังมองหา: สคริปต์ VBS 1 บรรทัดเพื่อให้คอมพิวเตอร์ของคุณพูดคุยกับคุณ:

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

ฉันสามารถใช้สิ่งนี้เพื่อแสดงลำดับของการดำเนินการ ฉันจะแสดงรหัสให้พวกเขาเล่นกับมันแล้วอธิบายว่ามีอะไรมากมายเกิดขึ้นในบรรทัดนั้น แต่คอมพิวเตอร์สามารถเข้าใจได้เพราะมันรู้กฎ จากนั้นฉันจะแสดงบางสิ่งเช่นนี้:

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

และคุณสามารถเห็นได้ว่าสิ่งแรกที่ฉันต้องทำคือ (5 * 5) จากนั้นฉันก็สามารถคูณ 4 และตอนนี้ฉันได้สร้างวัตถุ การหารด้วย 10 จะเหมือนกับการโทรกับ Speak - ฉันไม่สามารถพูดก่อนที่จะมีวัตถุและฉันไม่สามารถหารก่อนที่ฉันจะมี 100 จากนั้นอีกด้านหนึ่งฉันสร้าง InputBox ด้วยคำแนะนำสำหรับวิธีแสดง . เมื่อฉันกด Enter บนกล่องอินพุตมันจะประเมินหรือ "คืน" สิ่งที่ฉันป้อน (คำแนะนำ: 'oooooo' สร้างเสียงตลก) ดังนั้นเมื่อฉันพูดคำพูดทางด้านขวาคือสิ่งที่จะพูด และฉันได้รับจาก InputBox

ดังนั้นเมื่อคุณทำสิ่งต่าง ๆ ในบรรทัดเช่น:

x = 14 + y;

คุณต้องระวังลำดับของสิ่งต่าง ๆ ก่อนอื่นเราบวก 14 กับ y จากนั้นเราจะใส่ผลลัพธ์ (สิ่งที่ประเมินหรือส่งคืน) ลงใน x

นั่นคือเป้าหมายของฉันที่จะมีตัวอย่างเจ๋ง ๆ เหล่านี้เพื่อสาธิตและสอนชั้นเรียนในขณะที่พวกเขาสนุก ฉันลองตัวอย่างนี้กับเพื่อนร่วมห้องและในขณะที่ฉันไม่สามารถใช้เป็นบทเรียนแรกเธอชอบและเรียนรู้บางอย่าง

โปรแกรมคณิตศาสตร์ที่ยอดเยี่ยมบางอย่างที่สร้างกราฟหรือรูปทรงที่สวยงามที่เข้าใจได้ง่ายจะเป็นแนวคิดที่ดีและฉันจะพิจารณาเรื่องเหล่านั้น นี่คือตัวอย่างของ actioncript ที่ซับซ้อนแต่มันก็ค่อนข้างสูงเกินไปและฉันไม่สามารถสอนแฟลชได้ คุณมีความคิดอื่นใดอีกบ้าง?


102
ฉันคิดว่าคำถามเกี่ยวกับวิธีสอนการเขียนโปรแกรมนั้นยอดเยี่ยมและไม่สำคัญ ขอให้โชคดีกับสิ่งที่คุณพยายามจะทำ
Mike Dunlavey

6
"เป้าหมายของฉันคือสร้างแรงบันดาลใจให้นักเรียนเห็นว่าการเขียนโปรแกรมนั้นยอดเยี่ยม" ฉันไม่คิดว่าคุณจะบอกได้ว่าการเขียนโปรแกรมของคนเยี่ยมยอด ไม่ว่าพวกเขาจะชอบหรือไม่
Rik

2
สคริปต์ VBS บรรทัดเดียวของคุณไม่ทำงานบน Mac ของฉัน! :-P คำถามที่ดีแม้ว่า
John Topley

1
ฉันชอบสิ่งนี้ทุกอย่าง แต่ที่คุณพยายามสร้างความประทับใจปะเก็น Sierpinski ที่ฉันจะทำได้ดีมาก สำหรับคนไอทีอาจมีบางสิ่งที่สร้างไฟล์สำหรับบางคนที่ทำให้การพูดคุยด้วยคอมพิวเตอร์น่าประทับใจและอื่น ๆ ดังนั้นสิ่งที่สำคัญคือกลุ่มเป้าหมายแล้วคุณกำหนดว่าอะไรเจ๋ง
Oakcool

5
83 คนแสดงความคิดเห็นเกี่ยวกับว่าคำถามนี้เป็นอย่างไร "ยอดเยี่ยมและไม่สำคัญ" ... ปิดเป็น "ไม่สร้างสรรค์" โดย 5 คนที่เห็นด้วยอย่างเห็นได้ชัด ไม่ใช่พลังที่ยิ่งใหญ่ใช่ไหม
rg88

คำตอบ:


78

ฉันได้รับการตอบรับที่ดีจากลูก ๆ ของฉันด้วยสคริปต์ VB ฉบับย่อเพื่อจัดการกับตัวละคร Microsoft Agent สำหรับผู้ที่ไม่คุ้นเคยกับ MS Agent มันเป็นชุดของตัวอักษรบนหน้าจอเคลื่อนไหวที่สามารถจัดการได้ผ่านทางอินเตอร์เฟส COM คุณสามารถดาวน์โหลดรหัสและตัวละครได้ที่หน้าดาวน์โหลดMicrosoft Agent

เส้นสายที่เบาบางจะทำให้ตัวละคร Merlin ปรากฏบนหน้าจอบินไปมาเคาะหน้าจอเพื่อรับความสนใจของคุณและกล่าวทักทาย

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สำหรับข้อมูลเพิ่มเติม

แก้ไข 2011/09/02 ฉันเพิ่งค้นพบว่าไมโครซอฟท์ตัวแทนไม่ได้ติดตั้ง natively บน Windows 7 แต่จะนำเสนอให้ดาวน์โหลดแยกต่างหากที่นี่ ฉันยังไม่ได้ทดสอบสิ่งนี้ดังนั้นจึงไม่สามารถตรวจสอบได้ว่ามันทำงานหรือไม่


ที่น่ากลัว. สิ่งนี้สมควรได้รับการโหวตมากขึ้น
Tom Ritter

ขอบคุณสำหรับการรับรู้ทอม ดูดว่าฉันจะไม่ได้รับคะแนนตัวแทนแม้ว่ามันจะเริ่มรับ upvotes :-P
Bob Mc

32
วิธีนี้คุณสามารถดูคลิปหนีบกระดาษตลอดเวลา : D
Pedery

8
@Bob พื้นฐานเป็นภาษาเริ่มต้น VB ไม่ใช่ภาษาเบสิก VB เป็นมีดสวิสกองทัพที่ MS สร้างขึ้นเพื่อให้เหมาะกับความต้องการในเวลานั้น ทุกวันนี้มีเครื่องมือที่พิเศษกว่ามาก ๆ VB ไม่ใช่ภาษาที่ไม่ดีมีเพียงสัมภาระที่เกินจำนวนมาก ถ้าฉันให้เหตุผลที่ไม่ลำเอียงอย่างสมบูรณ์ว่าทำไมไม่ใช้มันอาจเป็นเพราะ MS กำลังลดการสนับสนุน VB อย่างช้าๆ มันเป็นภาษาที่กำลังจะตาย เพียงแค่รอจนกว่าสคริปต์สคริปต์ของ Office จะทำด้วย JavaScript (ซึ่งมีการวางแผนในอนาคตอันใกล้) จากนั้นการลดลงของ VB จะเป็นสิ่งที่แน่นอน
Evan Plaice

3
@Evan - ขอบคุณสำหรับคำตอบที่ยุติธรรมแทนที่จะพูดนานน่าเบื่อทางศาสนา ทำได้ดีมาก ไม่เคยได้ยินเกี่ยวกับการย้าย Javascript ของ Office จะทำการสอบสวน
Bob Mc

339

ป้อนรหัสนี้ในแถบที่อยู่ของคุณ (ในเบราว์เซอร์ของคุณ) แล้วกด Enter จากนั้นคุณสามารถแก้ไขเนื้อหาทั้งหมดของหน้าเว็บ!

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

นั่นคือ "หนึ่งซับ" ที่เจ๋งที่สุดฉันรู้ =)


95
"One-liner" เป็นชื่อเรียกผิด นั่นคือ 3 บรรทัดจริงๆ รหัสใดก็ได้สามารถเป็นหนึ่งบรรทัดหากคุณต้องการให้เป็น
DisgruntledGoat

5
สิ่งนี้ดูเรียบร้อยดี แต่มีวิธีรับหน้าเว็บเมื่อมีการแก้ไขหรือไม่
Sylverdrag

51
ฉันชอบมันมากฉันโหวตให้คุณ 999999999 ครั้ง !! img707.imageshack.us/img707/4843/jshack.png
JRL

4
สิ่งนี้ไม่เป็นความจริงอีกต่อไปใน Firefox เนื่องจาก javascript: ถูกปิดใช้งาน ความอัปยศ.

2
@DisgruntledGoat javascript:และvoid 0เป็นสำเร็จรูป: เทียบเท่าint main() {และreturn 0; }ใน C. และอีกสองบรรทัดเป็นเพียง API เบราว์เซอร์ที่แตกต่างกันที่ทำสิ่งเดียวกัน: ที่แรกคือ IE API ที่สองคือ NetScape API HTML5 ใช้contentEditableดังนั้นถ้าคุณไม่สนใจเกี่ยวกับการสนับสนุน Firefox 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 GOTO 30
spender

8
+1 สำหรับการแสดงชื่อผู้ใช้คนชอบเห็นชื่อของตัวเองปรากฏอยู่เสมอ @ เซาเปาโลนั่นไม่ใช่ลูปการพิมพ์ที่ไม่มีที่สิ้นสุด? มันกลับไปที่บรรทัดที่ 30 ไม่ใช่บรรทัดที่ 20
z -

13
ควรจะกลับไปข้าง 10 แน่นอนดังนั้น somone อื่นสามารถใส่ชื่อของพวกเขา ...
Omar Kooheji

17
คุณลืม 35 PRINT CHR $ (7)
Adam Jaskiewicz

6
นี่คือวิธีที่ฉันเรียนรู้การเขียนโปรแกรมด้วย มันเป็นคำตอบที่ดีที่สุด +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
มันยอดเยี่ยม แต่ฉันคิดว่ามันควรจะเกิดขึ้นในช่วงกลางของหลักสูตรเพราะมันสร้างจากแนวคิดจำนวนมากเช่นลูปและอาร์เรย์
Mike Dunlavey

4
@Masi: แนวคิดทั่วไปคือมีจุดคงที่สามจุดที่เป็นมุมของรูปสามเหลี่ยมและเป็นจุด "ปัจจุบัน" ที่คุณอัปเดตอยู่เสมอ หากต้องการย้ายให้เลือกมุมใดมุมหนึ่งโดยการสุ่มแล้วเลื่อนจุดปัจจุบันครึ่งทางไปยังมุมนั้น สีในจุดปัจจุบัน จากนั้นทำการย้ายอีกครั้งในลักษณะเดียวกันจากนั้นอีกสองสามพันครั้งและรูปแบบจะปรากฏขึ้น จากนั้นลองใช้มุมที่แตกต่างกันหรือเปลี่ยนเศษส่วนที่จุดปัจจุบันกระโดดไปที่มุมเพื่อดูว่ามันมีผลต่อรูปแบบอย่างไร
Daniel Earwicker

18
สำหรับบันทึกนั่นไม่ใช่ปะเก็น Sierpinski ... จริงๆแล้วมันคือ Triforce en.wikipedia.org/wiki/The_Legend_of_Zelda
jason

2
รหัสนี้ดูแปลกสำหรับฉันเพราะปกติฉันเห็นสิ่งนี้ทำซ้ำแล้วซ้ำอีก อันที่จริงเศษส่วนเป็นการแนะนำที่ดีสำหรับการเรียกซ้ำในชั้นเรียนวิทยาศาสตร์คอมพิวเตอร์ แต่สำหรับฉันแล้วดูเหมือนว่ารหัสนี้จะไม่มีประสิทธิภาพการวาดภาพและการทาสีพิกเซลจำนวนมากเนื่องจากวิธีการสุ่ม
Steve Wortham

105

Microsoft มีSmall Basicเป็น IDE สำหรับ "kids"

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

มันถูกออกแบบมาโดยเฉพาะเพื่อแสดงว่าการเขียนโปรแกรมที่ยอดเยี่ยมคืออะไร


80
นี่มันแย่จริง ๆ เพราะห้องสมุดเหล่านี้ดูเหมือนจะเป็นเวทมนตร์ คุณกำลังตั้งค่าให้เป็น kiddies สคริปต์ VB ฉันกลัวว่าพวกเขาจะไม่แฝงตัวเข้าไปในบริเวณ "มนต์ดำ" และอยู่ในบริเวณท่อ "ปลอดภัย" ... โอ้ดูนี่เป็นวิธีสร้างอินเทอร์เน็ตเบราเซอร์ในบรรทัดเดียว! MSIEControl (.. blabla อะไรก็ตาม ... ). show ()
hasen

88
ฉันไม่คิดว่าเด็กเป็นคนงี่เง่า หากคุณทำให้พวกเขารู้สึกตื่นเต้นเกี่ยวกับความเป็นไปได้ของการเขียนโปรแกรมพวกเขาจะได้เรียนรู้วิธีการทำสิ่งต่าง ๆ ขั้นสูงด้วยตนเอง หากไม่มีอะไรอื่นเด็กชายที่ติดเชื้อฮอร์โมนเพศชายจะพยายามเรียนรู้สิ่งที่ลึกลับและมืดมนที่สุดก่อนที่คุณจะรู้ว่าเกิดอะไรขึ้น
Tim Lin

28
@ hansen j, ไม่ยุติธรรมทุกคนจะต้องเริ่มต้นที่ไหนสักแห่ง
John Farrell

30
นี่ไม่ใช่ระดับ CS สำหรับเด็กนี่คือของเล่นที่เขียนโปรแกรม ไม่ว่าเกตเวย์จะให้เด็ก ๆ ได้เห็นความสนุกของการเขียนโปรแกรมที่ยอดเยี่ยมมันไม่จำเป็นต้องเป็น ASM
Copas

29
รู้ว่าเด็ก ๆ ที่ฉันพยายามสอนมันอาจจะประมาณสิบวินาทีก่อนที่พวกเขาจะลอง pic = Flickr.GetRandomPicture ("boobs")
Iain Galloway

83

ฉันมักจะคิดว่าคนประทับใจกับสิ่งที่พวกเขาสามารถเกี่ยวข้องหรือเกี่ยวข้องกับชีวิตของพวกเขา ฉันจะลองใช้โค้ด 10 บรรทัดล้อมรอบสิ่งที่พวกเขารู้และเข้าใจ ยกตัวอย่างเช่น Twitter และ API ทำไมไม่ใช้ API นี้เพื่อสร้างสิ่งที่ยอดเยี่ยม รหัส 10 บรรทัดต่อไปนี้จะส่งคืน "ไทม์ไลน์สาธารณะ" จาก Twitter และแสดงในแอปพลิเคชันคอนโซล ...

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 - ขอบคุณสำหรับรหัส!
Tad Donaghe

ผู้ชมที่เป็นเป้าหมายไม่ใช่คนที่รักพวกเขาไม่ให้คำด่าเกี่ยวกับทวีตเตอร์เหรอ?
peufeu

80

นี่คือเซิร์ฟเวอร์ Telnet Python ที่จะขอชื่อผู้ใช้และทักทายพวกเขา สิ่งนี้ดูดีเพราะคุณสื่อสารกับโปรแกรมของคุณจากคอมพิวเตอร์เครื่องอื่นผ่านเครือข่าย

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 สำหรับเรื่องนั้น

สคริปต์ที่ใช้เอฟเฟกต์พิเศษกับภาพหรือไม่? นั่นคือสิ่งที่ Photoshop มีไว้สำหรับ และ Photoshop ก็พัดทุกสิ่งที่คุณทำได้ใน 10 บรรทัด

วิธีการริปซีดีและแปลงไฟล์เป็น MP3 เอ่อฉันมี 50,000 เพลงที่ฉันได้รับจาก BitTorrent แล้ว พวกเขาอยู่ในรูปแบบ MP3 แล้ว ฉันเล่นบน iPhone ใครจะซื้อซีดีล่ะ

ในการแนะนำผู้ใช้ที่มีความชำนาญเกี่ยวกับการเขียนโปรแกรมคุณจะต้องค้นหาสิ่งที่:

a) ใช้ได้กับสิ่งที่พวกเขาพบว่าน่าสนใจและยอดเยี่ยมและ b) ทำสิ่งที่พวกเขาไม่สามารถทำได้

สมมติว่านักเรียนของคุณมีการเข้าถึงซอฟต์แวร์ที่แพงที่สุดแล้ว หลายคนมี Adobe CS5.5 เวอร์ชันเต็ม (ราคาขายปลีก: $ 2,600, ราคาจริง: ฟรี) และสามารถรับแอปพลิเคชั่นที่ปกติจะทำให้งบประมาณของแผนกคุณเสียไป

แต่ส่วนใหญ่ของพวกเขาไม่รู้ว่า "สิ่งคอมพิวเตอร์" นี้ใช้งานได้จริงอย่างไร

พวกเขาเป็นกลุ่มที่สร้างสรรค์อย่างไม่น่าเชื่อ: พวกเขาต้องการสร้างสิ่งต่าง ๆ พวกเขาแค่ต้องการที่จะทำหรือทำสิ่งที่เพื่อนของพวกเขาทำไม่ได้ พวกเขาต้องการที่จะคุยโม้

นี่คือบางสิ่งที่ฉันได้พบว่าสะท้อนกับนักเรียนของฉัน:

  • HTML และ CSS จากสิ่งที่พวกเขาเรียนรู้ว่าธีมของ MySpace ทำงานอย่างไรและสามารถปรับแต่งได้
  • ผสม พวกเขาทุกคนเห็นพวกเขา แต่ไม่รู้ว่าจะสร้างอย่างไร ตรวจสอบYahoo! ท่อ มีช่วงเวลาที่สามารถสอนได้มากมายเช่น RSS, XML, การกรองข้อความการแมปและการสร้างภาพ วิดเจ็ตตอบโต้กับผู้ใช้ได้ที่สมบูรณ์สามารถฝังในหน้าเว็บ
  • งานศิลปะ ดูบริบทฟรีศิลปะ การเรียกซ้ำและการสุ่มเป็นกุญแจสำคัญในการสร้างภาพที่สวยงาม
  • การเล่านิยาย ด้วยสภาพแวดล้อมการเขียนโปรแกรม 3 มิติที่ง่ายต่อการใช้งานเช่นอลิซจึงเป็นเรื่องง่ายในการสร้างเรื่องราวที่มีคุณภาพสูงและมีส่วนร่วมโดยไม่ต้องใช้อะไรมากไปกว่าการลากและวาง

สิ่งเหล่านี้ไม่เกี่ยวข้องกับการเขียนโปรแกรมใด ๆ ในความหมายดั้งเดิม แต่พวกเขาใช้ประโยชน์จากห้องสมุดที่มีประสิทธิภาพ ฉันคิดว่าพวกเขาเป็นโปรแกรมประเภทต่าง ๆ


11
+1 ฉันชอบวิธีที่คุณอธิบายเด็ก ๆ ทุกวันนี้ที่มีเพลงจาก bittorrent 50,000 เพลงและ Adobe CS4 โดยที่ไม่มีอะไรเลยมันเป็นความจริงแน่นอน
thomasrutter

เขียนอัลกอริทึมการค้นหาแบบไบนารีอย่างง่ายในหลาม ฉีกสมุดโทรศัพท์หลาย ๆ ครั้งเพื่ออธิบายวิธีการใช้งาน มันเป็นแง่มุมที่เรียบง่าย แต่ทรงพลังของการเขียนโปรแกรมที่โปรแกรมเมอร์ผู้มีประสบการณ์มักจะมองข้ามและมือใหม่มอง @ ในความกลัว คนส่วนใหญ่ไม่ทราบว่าจอภาพของพวกเขารีเฟรชอย่างน้อยครึ่งหนึ่งของพิกเซลบนจอภาพ 60-120 / วินาที แข่งกับมนุษย์ความเร็วคอมพิวเตอร์ สิ่งที่สนุก. ดูสิ่งนี้สำหรับแนวคิดเพิ่มเติม: Academicearth.org/courses/introduction-to-computer-science-i : และไม่ว่าคุณจะทำอะไร ... อย่าสอนให้ ANSI C เป็นภาษาแรกของพวกเขา ฉันเคยไปที่นั่นมันดูดแล้ว
Evan Plaice

3
หากคุณกำลังกำหนดไซต์เองทำไมไม่ลองใช้ Greasemonkey
new123456

เพียงไม่กี่ความคิดเกี่ยวกับตัวอย่างของคุณ: re photoshop คุณเพียงแค่ต้องชี้ให้เห็นชัดเจน - ด้วย photoshop คุณสามารถเปลี่ยน 1 ภาพด้วยสคริปต์คุณสามารถเปลี่ยนหลายแสน และ MP3 อีกครั้งคุณไม่มีสิทธิ์ดาวน์โหลดซีดีเลย แต่คุณสามารถทำได้ (ถ้าไม่ใช่เพราะถูกกฎหมาย) อธิบายว่าพวกเขาสามารถเขียนโปรแกรมเพื่อดาวน์โหลดเพลงล่าสุดไปยัง iPod ของพวกเขาได้โดยตรง
Jeff Welling

@JeffWelling ด้วย Photoshop คุณสามารถสร้าง Batches และ Actions เพื่อทำการเปลี่ยนแปลงเหล่านั้นกับไฟล์จำนวนเท่าใดก็ได้ มันช่างน่าประหลาดใจมากที่ได้รับอนุญาตให้ใช้คอมพิวเตอร์ในวันนี้
John

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>"

ฉันพบว่านักเรียนที่เริ่มมีแนวคิดบางอย่างที่ต้องแก้ไข

  • คอมพิวเตอร์ไม่อ่านใจ
  • คอมพิวเตอร์ทำสิ่งเดียวในแต่ละครั้งแม้ว่าพวกเขาจะทำมันเร็วพวกเขาดูเหมือนจะทำมันทั้งหมดในครั้งเดียว
  • คอมพิวเตอร์เป็นเพียงเครื่องโง่และทำในสิ่งที่พวกเขาบอกเท่านั้น
  • คอมพิวเตอร์จะรับรู้บางสิ่งบางอย่างเท่านั้นและสิ่งเหล่านี้ก็เหมือนกับหน่วยการสร้าง
  • แนวคิดหลักคือตัวแปรคือสิ่งที่มีค่าและชื่อของมันแตกต่างจากค่านั้น
  • ความแตกต่างระหว่างเวลาที่คุณแก้ไขโปรแกรมและเวลาที่ทำงาน

ขอให้โชคดีในชั้นเรียนของคุณ ฉันแน่ใจว่าคุณทำได้ดี

ป.ล. ฉันมั่นใจว่าคุณเข้าใจว่าพร้อมด้วยเนื้อหาและทักษะคุณกำลังสอนทัศนคติและนั่นก็สำคัญเช่นกัน


คอมพิวเตอร์ยุคใหม่ทำอะไรมากกว่าหนึ่งอย่างในเวลาเดียวกัน
dreamlax

แต่รหัสของคุณทำมากกว่าหนึ่งครั้ง?
JeffO

5
@dreamlax: ถูกต้องแน่นอน แต่อย่าแยกเส้นผม เรากำลังพูดถึงการแนะนำคอมพิวเตอร์ให้เด็ก ๆ และมอบพื้นฐานการสร้างจิตให้พวกเขา ความเท่าเทียมสามารถมาภายหลังได้
Mike Dunlavey

1
@Ben S: คุณมีโอกาสลบช่องว่างข้างหน้าบรรทัดที่ 10 หรือไม่? ฉันใส่มันเข้าไปเพราะดูเหมือนว่าฟอร์แมตเตอร์ SO ดูเหมือนจะปลดบุ๋มบรรทัดแรกด้วย 1 ช่องว่าง ฉันสงสัยว่ามีวิธีที่ดีกว่าในการสร้างรหัสหรือไม่
Mike Dunlavey

2
@foljs: เอ้ย! จริงๆ? :-) Dreamlax ทำจุดเดียวกัน สิ่งคือเมื่อคุณทำงานกับคนที่ไม่รู้อะไรเกี่ยวกับคอมพิวเตอร์มันดูเหมือนพวกเขาราวกับว่าทุกอย่างเกิดขึ้นในครั้งเดียวดังนั้นเราจึงต้องเอาชนะมันโดยไม่ต้องแยกผม แนวคิดพื้นฐานจริงๆคือ "ก่อนอื่นก็คือ A จากนั้นก็คือ B และอื่น ๆ "
Mike Dunlavey

62

รหัส C นี้อาจจะสับสน แต่ฉันพบว่ามันมีประสิทธิภาพมาก

#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
ดี! น่าเสียดายที่ไม่มีจุดใดในนั้นที่พูดว่า "Hello World!"
Ponkadoodle

สวยจัง! แบบ Mandelbrot: D
Aniket

45

วิธีการเกี่ยวกับการแสดงว่าคุณสามารถใช้เว็บเบราว์เซอร์ใด ๆ และป้อน JavaScript ลงในแถบที่อยู่และรับรหัสเพื่อดำเนินการ?

แก้ไข: ไปที่หน้าที่มีภาพจำนวนมากและลองทำสิ่งนี้ในแถบที่อยู่:

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
ok แต่คุณควรจะให้ตัวอย่างที่เป็นรูปธรรม u รู้ ..
Hasen

1
@ จอห์น: โปรดยกตัวอย่างที่เป็นรูปธรรม ฉันใช้ JS ในเซิร์ฟเวอร์ของฉันโดยส่งออกไฟล์ JS เท่านั้น ฉันไม่เคยใส่รหัสในแถบที่อยู่ของฉัน
LéoLéopold Hertz 준영

7
ไม่ใช่ตัวอย่างที่น่าตื่นเต้น แต่คุณสามารถใช้ javascript: alert ("Hello World");
John Topley

ฉันต้องการ: "javascript: สำหรับ (var i = 0; i> -1; i ++) การแจ้งเตือน ('ขอแสดงความยินดีคุณกด enter สำหรับ' + i + 'คูณ!');" (อ่านรหัสนั้นก่อนที่จะทำงาน ... ) ^^
Arnis Lapsa

+1 สำหรับว้าวปัจจัย ... ตัวอย่างสวยงดงาม :)
fretje

37

คุณสามารถสร้างแอปพลิเคชันที่เลือกหมายเลขสุ่ม และคุณต้องเดา หากคุณผิดก็บอกว่า: สูงหรือต่ำกว่า และถ้าคุณเดามันเป็นข้อความที่ดี

มันเจ๋งที่จะเล่นให้กับนักเรียน

Simple Python เวอร์ชั่นที่ไม่มีการตรวจสอบข้อผิดพลาด:

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!')

Erikแนะนำว่าคอมพิวเตอร์ควรคาดเดาหมายเลข สิ่งนี้สามารถทำได้ภายใน 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
ที่น่าสนใจกว่านั้นคือให้ผู้ใช้เลือกหมายเลขสุ่มจากนั้นให้คอมพิวเตอร์เดา
Erik Forbes

15
ตอนนี้ทำให้ทั้งสองโปรแกรมเล่นกันผ่านซ็อกเก็ต
Josh Lee

3
มันจะดีกว่าถ้าคอมพิวเตอร์ไม่ได้รับหมายเลขโดยตรง คุณควรบอกให้ผู้ใช้ "เลือกหมายเลขระหว่าง 1 ถึง 100" จากนั้นเอาท์พุท "ฉันเดา 50" และขออินพุต ("สูงกว่า", "ต่ำกว่า" หรือ "ถูกต้อง") และปรับการคาดเดาของคุณ
Ponkadoodle

ฉันเคยทำสิ่งนี้กับลูกชายของฉัน (9) และมันยังมีประโยชน์ในการคิดอัลกอริทึมสิ่งที่เป็นกลยุทธ์ที่ดีที่สุดสำหรับการค้นหาหมายเลขที่ถูกต้องในจำนวนการเดาที่สั้นที่สุด
mbesso

ฉันคิดว่าคุณต้องการ raw_input eval(raw_input(prompt))การป้อนข้อมูลจะมีค่าเท่ากับ ดูการป้อนข้อมูล
Jeff Kaufman

26

ย้อนกลับไปในชั้นเรียนคอมพิวเตอร์ในโรงเรียนมัธยมฉันและเพื่อนสองคนได้สอนวิธีการเขียนโปรแกรมกับ Delphi ชั้นเรียนส่วนใหญ่เน้นการเขียนโปรแกรมกับ Pascal ดังนั้น Delphi จึงเป็นขั้นตอนต่อไปที่ดี เราแสดงให้เห็นถึงลักษณะการขับเคลื่อนเหตุการณ์ของ Delphi และความสามารถของ RAD ในตอนท้ายของบทเรียนเราแสดงตัวอย่างใบสมัครชั้นเรียนและขอให้พวกเขาทำซ้ำ โปรแกรมประยุกต์ที่ถามว่า " คุณเมา? " มีสองปุ่มใช่และไม่มี ... ฉันคิดว่าคุณรู้ว่ากำลังจะเกิดอะไรขึ้นต่อไป ... ปุ่มไม่มีการเปลี่ยนตำแหน่งบนเม้าส์และแทบจะเป็นไปไม่ได้ที่จะคลิก

นักเรียนและครูได้รับการเตะออกจากมัน

โปรแกรมต้องการโค้ดที่ผู้ใช้เขียนเพียงไม่กี่บรรทัดด้วยสมการอย่างง่ายเพื่อคำนวณตำแหน่งที่จะย้ายปุ่ม ฉันไม่คิดว่านักเรียนคนอื่นจะหาคำตอบได้ แต่มีบางคนที่ใกล้ชิด


7
ไม่เพียงแค่ให้ความบันเทิง แต่เพื่อนร่วมงานของฉันเคยทำเช่นนั้นในซอฟต์แวร์บางอย่างเท่านั้นมันเป็นปุ่ม "ตกลง" ในกล่องข้อความ มันเป็นแอพที่ใช้ภายในจึงไม่ขมวดคิ้ว มันทำเพียงครั้งเดียวในดวงจันทร์สีน้ำเงิน แน่นอนพวกเขาจะเรียกเขาและเขาจะบอกว่าเขาต้องการที่จะเห็นมันเกิดขึ้นถ้าเขาจะเชื่อ ดังนั้นเขาจะเดินไปและแน่นอนว่ามันจะไม่เกิดขึ้นเมื่อเขาอยู่ที่นั่น ...
เจสัน D

ฉันจำบางอย่างเช่นนี้ .. แต่มันเป็นแฟลช .. และคำถามคือ "คุณเป็นเกย์หรือไม่?" .. และปุ่มคลิกชุดของเหตุการณ์ดอกไม้ไฟ
glasnt

2
นั่นจะเป็นเวลาที่น่าสนใจในการสอนให้ผู้คนนำทางผ่านแท็บและที่ว่าง
davidahines

23

เมื่อแรกที่ฉันคิดออกทุบตีทุบตีฉันคิดว่ามันหวานจริงๆ เรียบง่าย แต่เรียบร้อยในสิ่งที่สามารถทำได้:

:(){ :|:& };:

7
นี่คือคำอธิบายที่ดีสวย: cyberciti.biz/faq/understanding-bash-fork-bomb
hodgesmr

12
สำหรับคนใหม่ที่จะใช้ลินุกซ์: อย่าวิ่งมิฉะนั้นคุณจะสูญเสียงานทั้งหมดของคุณ
Behrooz

@Behrooz ขึ้นอยู่กับ distro ของคุณบางคนมีขีด จำกัด ของเธรด / ส้อมโดยพลการ
Razor Storm

มันทำให้เสียงดังมากใน SuSE แต่ไม่ได้ทำอะไรกับ distros ที่ใช้เดเบียนส่วนใหญ่
Behrooz

นั่นรวมถึงข้อ จำกัด ของผู้ใช้ความถี่ในการล้างแคชของดิสก์ระบบไฟล์ของคุณ ...
new123456

22

นี่คือการโกงและไม่ใช่เรื่องง่ายจากระยะไกล แต่ฉันเคยเขียน shoot'em ขึ้นใน 20 บรรทัดของ C ++ โดยใช้ไลบรารีกราฟิก Allegro ไม่มีเกณฑ์จริงสำหรับสิ่งที่บรรทัดคือ แต่มันเป็นบิตที่ผ่านมาและมันถูกสร้างขึ้นมาเพื่อความสนุกอย่างหมดจด มันยังมีเอฟเฟกต์เสียงหยาบ

นี่คือสิ่งที่ดูเหมือน:

20 Lines 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
สิ่งนี้ควรสอนทุกคนอย่างไร ในบันทึกที่ไม่เกี่ยวข้อง COOL! ฮา! รักมัน!
slezica

21

ในยุคสมัยนี้ JavaScript เป็นวิธีที่ยอดเยี่ยมในการแสดงวิธีที่คุณสามารถโปรแกรมโดยใช้เครื่องมือพื้นฐานบางอย่างเช่น Notepad

เอฟเฟกต์ 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
ฉันจะเห็นด้วย คุณสามารถเปิดแผ่นจดบันทึกและเริ่มเขียนโค้ดด้วยจาวาสคริปต์แล้วเปิดเบราว์เซอร์และฉันมั่นใจว่านักเรียนของคุณจะต้องประทับใจ นี่เป็นเครื่องมือที่ทุกคนมีและพวกเขาสามารถค้นหาเอฟเฟ็กต์และสิ่งต่าง ๆ มากมายที่สามารถทำได้เหมือนตัวอย่างของจอน
Jeff Reddy

1
ฉันไม่คิดว่ามันเป็นความคิดที่ดีที่จะสอนให้ใครบางคนรู้จักภาษาที่ค่อนข้างเรียบง่ายโดยใช้ห้องสมุด คุณสามารถทำได้โดยไม่ต้องใช้ jQuery และสำหรับผู้เริ่มต้นคุณควรทำ ไลบรารี่ไม่ได้เปลี่ยนเป็นภาษาจริง
ผู้ชายบางคน

ในกรณีของ javascript, jQuery ไม่ได้ใช้แทน javascript, มันเป็นการทดแทนสำหรับ doms (ตัวแปรสูง) ซึ่งเป็นสิ่งที่ดีที่จะสามารถก้าวเท้าเลี่ยงสำหรับทุกคน
Kzqai

20

สิ่งหนึ่งที่คุณอาจพิจารณาคือบางอย่างเช่นRobocodeซึ่งการเข้ารหัสจำนวนมากถูกแยกออกและคุณเพียงแค่บอกหุ่นยนต์ว่าจะต้องทำอะไร ฟังก์ชั่น 10 บรรทัดอย่างง่ายสามารถทำให้หุ่นยนต์ทำงานได้อย่างยอดเยี่ยมและให้ผลลัพธ์ที่เป็นภาพและง่ายต่อการติดตาม

บางที Robocode อาจไม่เหมาะกับงาน แต่สิ่งนี้เป็นวิธีที่ดีในการเชื่อมโยงโค้ดที่เป็นลายลักษณ์อักษรกับการกระทำด้วยภาพบนคอมพิวเตอร์รวมถึงความสนุกในการดูเมื่อคุณต้องการยกตัวอย่าง

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
ไม่ทราบเกี่ยวกับ robocode แต่ฉันได้รับการเข้ารหัสหลังจากใช้โลโก้ ความสามารถในการวาดบ้านโดยใช้ไปข้างหน้าถอยหลังซ้ายขวา ฯลฯ ทำให้คุณนึกถึงคำแนะนำง่ายๆในการทำงานที่ยิ่งใหญ่
วันโรบิน

1
ใช่ฉันเรียนรู้โลโก้ในห้องปฏิบัติการคอมพิวเตอร์ในโรงเรียนประถม ฉันเป็นหนึ่งในเด็ก ๆ ที่คิดว่ามันเจ๋งเกินกว่าจะอยากรู้เพิ่มเติม
Travis

1
+1 สำหรับ RoboCode! ฉันรัก robocode และเราใช้ในการทำการแข่งขันระหว่างตัวเองเพื่อดูว่าใครจะเกิดขึ้นกับขั้นตอนวิธีการที่ดีที่สุด
Andreas Grech

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อย่างไรก็ตามนั่นเป็นเพียงเพื่อให้สิ่งที่ชัดเจนและเพื่อแสดงว่าฉันไม่ได้แก้ไขเอกสารต้นฉบับ

ในเวลาน้อยกว่าสิบบรรทัดฉันได้ verbosified เอกสาร แน่นอนว่าต้องแน่ใจว่าได้แสดงวิธีการสตริงทั้งหมดที่โปรแกรมเมอร์มีให้ ที่สำคัญกว่านั้นฉันได้แสดงสิ่งที่น่าสนใจพื้นฐานสามอย่างที่ฉันทำได้: การกำหนดตัวแปรวนซ้ำไฟล์ IO และการใช้ไลบรารีมาตรฐาน

ฉันคิดว่าคุณจะเห็นด้วยว่ารหัสนี้ไม่ทำให้ตาพร่า จริงๆแล้วมันน่าเบื่อนิดหน่อย ไม่จริงมันน่าเบื่อมาก แต่แสดงรหัสนั้นให้โปรแกรมเมอร์คนใหม่และดูว่าโปรแกรมเมอร์คนนั้นไม่สามารถเปลี่ยนส่วนของสคริปต์นั้นให้เป็นสิ่งที่น่าสนใจมากขึ้นภายในสัปดาห์หรือไม่ถ้าไม่ใช่วันนั้น แน่นอนว่ามันจะน่ารังเกียจสำหรับคุณ (อาจใช้สคริปต์นี้เพื่อแยกวิเคราะห์ HTML อย่างง่าย) แต่ทุกอย่างอื่นต้องใช้เวลาและประสบการณ์


17

เช่นเดียวกับนักวิจารณ์คนอื่น ๆ ฉันเริ่มเขียนโค้ดเพื่อแก้ปัญหาทางคณิตศาสตร์ (หรือสร้างกราฟิกสำหรับเกมที่น่ากลัวจริงๆที่ฉันจะออกแบบ - สิ่งต่าง ๆ เช่น Indiana Jones กับ Zombies)

สิ่งที่ฉันเริ่มต้นจริง ๆ (ทั้งในวิชาคณิตศาสตร์และการเขียนโปรแกรม) เกิดจากการใช้ข้อความเลือกเกมสไตล์การผจญภัยของคุณเอง ... ไปยังเกมที่มีกราฟิกมากขึ้น ฉันเริ่มระบายสีกระดาษกราฟและพล็อตพิกเซลจนกว่าจะเข้าสู่รูปทรงเรขาคณิต ... และค้นพบวิธีใช้สมการในการพล็อตเส้นโค้งและเส้นกล่อง ฯลฯ

จุดของฉันคือฉันจะได้จริงๆอากาศเป็นสิ่งที่ต้องการการประมวลผล ( 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")

++ ฉันไม่แน่ใจว่ามันจะเหมาะกับแผนการสอนอย่างไร แต่มันน่ารักดี
Mike Dunlavey

13

ฉันจำได้เมื่อฉันเริ่มลูปการเข้ารหัสครั้งแรกสร้างความประทับใจให้ฉันเสมอ คุณเขียนโค้ด 5 - 10 บรรทัด (หรือน้อยกว่า) และหลายร้อย (หรือหลายบรรทัดที่คุณระบุ) พิมพ์ออกมา (ฉันเรียนรู้ครั้งแรกใน PHP และ Java)

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

13

ผมคิดว่าสถานที่ที่ดีสำหรับนักเรียนที่เริ่มต้นอาจจะGreasemonkey มีสคริปต์ตัวอย่างหลายพันรายการบน userscripts.org ซึ่งเป็นเนื้อหาการอ่านที่ดีมากบางอันมีขนาดเล็กมาก สคริปต์ Greasemonkey ส่งผลกระทบต่อหน้าเว็บซึ่งนักเรียนจะคุ้นเคยกับการใช้งานแล้วหากไม่ได้จัดการ Greasemonkey นั้นเสนอวิธีที่ง่ายมากในการแก้ไขและเปิด / ปิดการใช้งานสคริปต์ขณะทดสอบ

ตัวอย่างเช่นนี่คือสคริปต์ "Google Two Columns":

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

ดำเนินการอย่างใดอย่างหนึ่งของบล็อกข้างต้นของรหัสด้วย " ชื่อไฟล์ที่ต้องการ" บนแพลตฟอร์มที่คุณเลือก Wish มาพร้อมกับส่วนใหญ่ * nix's และ mac แต่คุณจะต้องติดตั้งด้วยตนเองสำหรับ windows

หากต้องการไปอีกขั้นหนึ่งสคริปต์บรรทัดสองบรรทัดนั้นสามารถเขียนเป็นไพ ธ อนได้แม้ว่าจะใช้เวลาแปดบรรทัด แต่ยังอยู่ภายใต้เป้าหมาย 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

แล้วบุ๊คมาร์คเล็ตล่ะ? มันจะแสดงวิธีจัดการสิ่งที่พวกเขาใช้ทุกวัน (อินเทอร์เน็ต) โดยไม่ต้องใช้เครื่องมือในการพัฒนา


ฉันต้องการคำแนะนำนี้ แต่มันจะดีกว่าด้วยตัวอย่างและสิ่งที่สามารถสอนได้ เช่นตัวอย่างที่กำหนดในคำถาม: [รหัส] javascript: alert (4 (5 * 5) / 10 + 9 (.25 + .75)); [/ code] เพื่อแสดงลำดับการทำงาน
tylermac

8

หากคุณสามารถซื้อฮาร์ดแวร์ได้การใช้บอร์ด Arduino + การประมวลผลจะทำให้สิ่งที่น่าสนใจบางอย่างแม้ว่ามันอาจจะเป็นขั้นสูงเล็กน้อยสำหรับคนที่อาจไม่สนใจในการเขียนโปรแกรม


8

ฉันเขียนเกี่ยวกับเรื่องนี้เมื่อเร็ว ๆ นี้ในบทความ"โปรแกรมที่สั้นที่สุดและมีประโยชน์ที่สุดที่ฉันเคยเขียน"

สรุป: ฉันเขียนแอป VB6 3 บรรทัดย้อนกลับไปในปี 1996 ที่ฉันยังคงใช้ทุกวัน เมื่อ exe ถูกทิ้งในโฟลเดอร์ "ส่งไปยัง" มันช่วยให้คุณคลิกขวาที่ไฟล์ใน explorer และส่งพา ธ แบบเต็มของไฟล์นั้นไปยังคลิปบอร์ด

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

ทำไมClipboard.Clear? มันลบเนื้อหาทั้งหมดจากคลิปบอร์ดแม้ข้อมูลที่ไม่ใช่ข้อความ (เช่นข้อมูลภาพ) นี่ไม่ใช่สิ่งที่คุณต้องการโดยทั่วไป
Konrad Rudolph

ดีแล้วบางทีโปรแกรมที่สั้นที่สุดจะต้องมีขนาดครึ่งหนึ่งในปัจจุบัน ...
JohnFx

เรียบร้อยจริงๆ ฉันเกลียดที่จะต้องพิมพ์เส้นทางยาว ๆ แล้วสงสัยว่ามีคำพิมพ์ผิดหรือ
เปล่า

AFAIK ในรุ่น "ทันสมัย" ของ Windows ที่ตรงกับที่คุณทำเมื่อคุณคัดลอกไฟล์ (Ctrl + C) ... เพียงแค่คัดลอกชื่อไฟล์ มีใครลองบ้างไหม (เพราะฉันไม่มีหน้าต่าง)
opatut

ฉันมี Windows 7 และไม่ทำเช่นนั้น
JohnFx

7

เป็นเรื่องที่น่าสนใจที่คุณพูดถึงชุด Mandelbrot เนื่องจากการสร้างเศษส่วนด้วย GW-BASIC เป็นสิ่งที่ทำให้ฉันรักการเขียนโปรแกรมในโรงเรียนมัธยม (ประมาณปี 1993) ก่อนที่เราจะเริ่มเรียนรู้เกี่ยวกับเศษส่วนเราได้เขียนแอปพลิเคชั่นเบี่ยงเบนมาตรฐานที่น่าเบื่อและฉันยังคงวางแผนที่จะเข้าสู่วงการสื่อสารมวลชน

แต่เมื่อฉันเห็นว่าโปรแกรม BASIC ที่ยากต่อการเขียนสร้าง "เศษส่วนภูมิประเทศ" ฉันถูกตะขอและฉันไม่เคยมองย้อนกลับไป มันเปลี่ยนวิธีที่ฉันคิดเกี่ยวกับคณิตศาสตร์วิทยาศาสตร์คอมพิวเตอร์และวิธีที่ฉันเรียนรู้

ฉันหวังว่าคุณจะพบโปรแกรมที่มีผลเช่นเดียวกันกับนักเรียนของคุณ


นั่นยอดเยี่ยมสำหรับโครงการภาคการศึกษา ฉันหวังว่าฉันจะคิดถึงเรื่องนั้นตอนที่ฉันกำลังสอนอยู่
Mike Dunlavey


6

ฉันแน่ใจว่ามันจะเปลี่ยนเป็นโค้ดมากกว่า 10 บรรทัด แต่คุณได้พิจารณาแอปที่ใช้รูปแบบที่การกดปุ่มทำสิ่งต่าง ๆ เช่นเปลี่ยนสีของพื้นหลังหรือเปลี่ยนขนาดของข้อความหรือไม่ นี่จะแสดงให้พวกเขาเห็นว่าโปรแกรมแบบโต้ตอบทำงานอย่างไร มันจะแสดงให้พวกเขาเห็นว่าพวกเขาในฐานะโปรแกรมเมอร์อยู่ในการควบคุมอย่างสมบูรณ์ในสิ่งที่คอมพิวเตอร์ (โปรแกรม) ทำ

หวังว่ามันจะนำพวกเขาให้คำแนะนำสำหรับสิ่งอื่น ๆ ที่พวกเขาสามารถเปลี่ยนแปลงได้และจากนั้นก็ไปยังสิ่งอื่น ๆ ที่พวกเขาอาจต้องการทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.